diff options
Diffstat (limited to 'src/render/renderers/opengl/graphicshelpers/graphicscontext.cpp')
-rw-r--r-- | src/render/renderers/opengl/graphicshelpers/graphicscontext.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/render/renderers/opengl/graphicshelpers/graphicscontext.cpp b/src/render/renderers/opengl/graphicshelpers/graphicscontext.cpp index 76320cfe5..c9b04fa8f 100644 --- a/src/render/renderers/opengl/graphicshelpers/graphicscontext.cpp +++ b/src/render/renderers/opengl/graphicshelpers/graphicscontext.cpp @@ -92,6 +92,10 @@ QT_BEGIN_NAMESPACE #define GL_DRAW_FRAMEBUFFER 0x8CA9 #endif +#ifndef GL_MAX_IMAGE_UNITS +#define GL_MAX_IMAGE_UNITS 0x8F38 +#endif + namespace { QOpenGLShader::ShaderType shaderType(Qt3DRender::QShaderProgram::ShaderType type) @@ -125,6 +129,7 @@ GraphicsContext::GraphicsContext() : m_initialized(false) , m_supportsVAO(false) , m_maxTextureUnits(0) + , m_maxImageUnits(0) , m_defaultFBO(0) , m_gl(nullptr) , m_glHelper(nullptr) @@ -152,6 +157,8 @@ void GraphicsContext::initialize() m_gl->functions()->glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &m_maxTextureUnits); qCDebug(Backend) << "context supports" << m_maxTextureUnits << "texture units"; + m_gl->functions()->glGetIntegerv(GL_MAX_IMAGE_UNITS, &m_maxImageUnits); + qCDebug(Backend) << "context supports" << m_maxImageUnits << "image units"; if (m_gl->format().majorVersion() >= 3) { m_supportsVAO = true; @@ -675,11 +682,17 @@ GLint GraphicsContext::maxClipPlaneCount() return m_glHelper->maxClipPlaneCount(); } -GLint GraphicsContext::maxTextureUnitsCount() +GLint GraphicsContext::maxTextureUnitsCount() const { return m_maxTextureUnits; } +GLint GraphicsContext::maxImageUnitsCount() const +{ + return m_maxImageUnits; +} + + void GraphicsContext::enablePrimitiveRestart(int restartIndex) { if (m_glHelper->supportsFeature(GraphicsHelperInterface::PrimitiveRestart)) |