d4d99e1c44
- Update to version 9.1.0, see: https://gitlab.kitware.com/vtk/vtk/-/blob/master/Documentation/release/9.1.md - Drop upstream patches: + 0001-clean-up-some-old-opengl-es-stuff.patch + 0001-expose-1d-texture-options.patch + 0001-Remove-duplicate-check-for-QOpenGLFunctions_3_2_Core.patch + 0001-Allow-compilation-on-GLES-platforms.patch + 0001-Replace-last-glDrawBuffer-call-with-glDrawBuffers-1.patch + 0001-Guard-glPointSize-with-GL_ES_VERSION_3_0.patch + 0002-Guard-GL_LINE_SMOOTH-for-GLES.patch + 0001-Fix-PyVTKAddFile_-function-signature-mismatch.patch + 0001-Replace-invalid-GL_LINE-with-GL_LINES-for-glDrawArra.patch + vtk-freetype-2.10.3-replace-FT_CALLBACK_DEF.patch + vtk-std_numeric_limits.patch - Rebase: + 0001-Add-missing-guard-required-for-GLES-to-disable-stere.patch + 0001-Correct-GL_BACK-GL_BACK_LEFT-mapping-on-GLES.patch + 0001-GL_POINT_SPRITE-is-only-available-for-Compatibility-.patch - Replace openSUSE python hack with upstreamable solution: + vtk-opensuse-python-metadata.patch -> 0001-Always-generate-Python-Metadata-when-WRAP_PYTHON-is-.patch, 0001-Consider-VTK_PYTHON_SITE_PACKAGES_SUFFIX-for-Python-.patch - Add: + 0001-Add-missing-libm-link-library-to-kissfft-module.patch - Remove Leap 15.1 support from specfile - Remove openmpi1 flavor, add openmpi4 OBS-URL: https://build.opensuse.org/request/show/933294 OBS-URL: https://build.opensuse.org/package/show/science/vtk?expand=0&rev=170
129 lines
5.5 KiB
Diff
129 lines
5.5 KiB
Diff
From 068773541005f8d8f027b373a01c821788439c8b Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
|
|
Date: Sun, 21 Nov 2021 22:51:36 +0100
|
|
Subject: [PATCH] Use GL_DRAW_BUFFER0 instead of GL_DRAW_BUFFER for GLES
|
|
compatibility
|
|
|
|
ARB_draw_buffers is part of GL 2.0, so GL_DRAW_BUFFERS0 is always
|
|
available, and contrary to GL_DRAW_BUFFER it is also valid for GLES
|
|
(part of GLES 3 or as EXT_draw_buffers).
|
|
|
|
This also matches the universal use of glDrawBuffers instead of
|
|
glDrawBuffer.
|
|
|
|
At least with MESA, GL_DRAW_BUFFER and GL_DRAW_BUFFER0 always return the
|
|
same value. GL_DRAW_BUFFERn is also used in several places already.
|
|
---
|
|
.../ContextOpenGL2/vtkOpenGLContextBufferId.cxx | 2 +-
|
|
.../ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h | 2 +-
|
|
Rendering/External/vtkExternalOpenGLRenderWindow.cxx | 2 +-
|
|
Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx | 8 ++++----
|
|
Rendering/OpenGL2/vtkOpenGLState.cxx | 12 ++++++------
|
|
5 files changed, 13 insertions(+), 13 deletions(-)
|
|
|
|
diff --git a/Rendering/ContextOpenGL2/vtkOpenGLContextBufferId.cxx b/Rendering/ContextOpenGL2/vtkOpenGLContextBufferId.cxx
|
|
index c0e0f8909f..dd6a93bde3 100644
|
|
--- a/Rendering/ContextOpenGL2/vtkOpenGLContextBufferId.cxx
|
|
+++ b/Rendering/ContextOpenGL2/vtkOpenGLContextBufferId.cxx
|
|
@@ -139,7 +139,7 @@ vtkIdType vtkOpenGLContextBufferId::GetPickedItem(int x, int y)
|
|
// Render texture to current write buffer. Texel x,y is rendered at
|
|
// pixel x,y (instead of pixel 0,0 to work around pixel ownership test).
|
|
GLint savedDrawBuffer;
|
|
- glGetIntegerv(GL_DRAW_BUFFER, &savedDrawBuffer);
|
|
+ glGetIntegerv(GL_DRAW_BUFFER0, &savedDrawBuffer);
|
|
|
|
vtkOpenGLState::ScopedglEnableDisable dsaver(ostate, GL_DEPTH_TEST);
|
|
vtkOpenGLState::ScopedglEnableDisable ssaver(ostate, GL_STENCIL_TEST);
|
|
diff --git a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h
|
|
index 29e5f47671..7acb87e25f 100644
|
|
--- a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h
|
|
+++ b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h
|
|
@@ -309,7 +309,7 @@ public:
|
|
this->SavedStencilTest = ostate->GetEnumState(GL_STENCIL_TEST);
|
|
this->SavedBlend = ostate->GetEnumState(GL_BLEND);
|
|
ostate->vtkglGetFloatv(GL_COLOR_CLEAR_VALUE, this->SavedClearColor);
|
|
- ostate->vtkglGetIntegerv(GL_DRAW_BUFFER, &this->SavedDrawBuffer);
|
|
+ ostate->vtkglGetIntegerv(GL_DRAW_BUFFER0, &this->SavedDrawBuffer);
|
|
}
|
|
}
|
|
|
|
diff --git a/Rendering/External/vtkExternalOpenGLRenderWindow.cxx b/Rendering/External/vtkExternalOpenGLRenderWindow.cxx
|
|
index 445bfce802..5e1f2f4b24 100644
|
|
--- a/Rendering/External/vtkExternalOpenGLRenderWindow.cxx
|
|
+++ b/Rendering/External/vtkExternalOpenGLRenderWindow.cxx
|
|
@@ -58,7 +58,7 @@ void vtkExternalOpenGLRenderWindow::Start()
|
|
|
|
// For stereo, render the correct eye based on the OpenGL buffer mode
|
|
GLint bufferType;
|
|
- ostate->vtkglGetIntegerv(GL_DRAW_BUFFER, &bufferType);
|
|
+ ostate->vtkglGetIntegerv(GL_DRAW_BUFFER0, &bufferType);
|
|
vtkCollectionSimpleIterator sit;
|
|
vtkRenderer* renderer;
|
|
for (this->GetRenderers()->InitTraversal(sit);
|
|
diff --git a/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx b/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx
|
|
index 25b521bd0d..426aa69f08 100644
|
|
--- a/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx
|
|
+++ b/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx
|
|
@@ -583,8 +583,8 @@ bool vtkOpenGLRenderWindow::GetUsingSRGBColorSpace()
|
|
this->MakeCurrent();
|
|
|
|
GLint attachment = GL_BACK_LEFT;
|
|
-#ifdef GL_DRAW_BUFFER
|
|
- glGetIntegerv(GL_DRAW_BUFFER, &attachment);
|
|
+#ifdef GL_DRAW_BUFFER0
|
|
+ glGetIntegerv(GL_DRAW_BUFFER0, &attachment);
|
|
#endif
|
|
// GL seems odd with its handling of left/right.
|
|
// if it says we are using GL_FRONT or GL_BACK
|
|
@@ -639,8 +639,8 @@ int vtkOpenGLRenderWindow::GetColorBufferSizes(int* rgba)
|
|
{
|
|
this->MakeCurrent();
|
|
GLint attachment = GL_BACK_LEFT;
|
|
-#ifdef GL_DRAW_BUFFER
|
|
- glGetIntegerv(GL_DRAW_BUFFER, &attachment);
|
|
+#ifdef GL_DRAW_BUFFER0
|
|
+ glGetIntegerv(GL_DRAW_BUFFER0, &attachment);
|
|
#endif
|
|
#ifdef GL_ES_VERSION_3_0
|
|
// GLES only has the GL_BACK color
|
|
diff --git a/Rendering/OpenGL2/vtkOpenGLState.cxx b/Rendering/OpenGL2/vtkOpenGLState.cxx
|
|
index 24f23a5c44..aca4e4f247 100644
|
|
--- a/Rendering/OpenGL2/vtkOpenGLState.cxx
|
|
+++ b/Rendering/OpenGL2/vtkOpenGLState.cxx
|
|
@@ -217,8 +217,8 @@ void vtkOpenGLState::CheckState()
|
|
error = true;
|
|
}
|
|
unsigned int sval;
|
|
-#ifdef GL_DRAW_BUFFER
|
|
- ::glGetIntegerv(GL_DRAW_BUFFER, iparams);
|
|
+#ifdef GL_DRAW_BUFFER0
|
|
+ ::glGetIntegerv(GL_DRAW_BUFFER0, iparams);
|
|
sval = cs.DrawBinding.GetDrawBuffer(0);
|
|
if (sval == GL_BACK_LEFT)
|
|
{
|
|
@@ -504,8 +504,8 @@ void vtkOpenGLState::vtkglBindFramebuffer(unsigned int target, unsigned int val)
|
|
{
|
|
cs.DrawBinding.Binding = val;
|
|
::glBindFramebuffer(GL_DRAW_FRAMEBUFFER, val);
|
|
-#ifdef GL_DRAW_BUFFER
|
|
- ::glGetIntegerv(GL_DRAW_BUFFER, (int*)&cs.DrawBinding.DrawBuffers[0]);
|
|
+#ifdef GL_DRAW_BUFFER0
|
|
+ ::glGetIntegerv(GL_DRAW_BUFFER0, (int*)&cs.DrawBinding.DrawBuffers[0]);
|
|
#endif
|
|
}
|
|
}
|
|
@@ -1626,8 +1626,8 @@ void vtkOpenGLState::ResetFramebufferBindings()
|
|
{
|
|
auto& cs = this->Stack.top();
|
|
::glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, (int*)&cs.DrawBinding.Binding);
|
|
-#ifdef GL_DRAW_BUFFER
|
|
- ::glGetIntegerv(GL_DRAW_BUFFER, (int*)&cs.DrawBinding.DrawBuffers[0]);
|
|
+#ifdef GL_DRAW_BUFFER0
|
|
+ ::glGetIntegerv(GL_DRAW_BUFFER0, (int*)&cs.DrawBinding.DrawBuffers[0]);
|
|
#endif
|
|
|
|
::glGetIntegerv(GL_READ_FRAMEBUFFER_BINDING, (int*)&cs.ReadBinding.Binding);
|
|
--
|
|
2.33.1
|
|
|