diff options
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/opengl/qopenglshaderprogram.cpp | 133 | ||||
-rw-r--r-- | src/gui/opengl/qopenglshaderprogram.h | 14 |
2 files changed, 2 insertions, 145 deletions
diff --git a/src/gui/opengl/qopenglshaderprogram.cpp b/src/gui/opengl/qopenglshaderprogram.cpp index 2d1610a318..1d66b3c9a0 100644 --- a/src/gui/opengl/qopenglshaderprogram.cpp +++ b/src/gui/opengl/qopenglshaderprogram.cpp @@ -145,8 +145,6 @@ QT_BEGIN_NAMESPACE \value Vertex Vertex shader written in the OpenGL Shading Language (GLSL). \value Fragment Fragment shader written in the OpenGL Shading Language (GLSL). - \value Geometry Geometry shaders written in the OpenGL Shading - Language (GLSL), based on the GL_EXT_geometry_shader4 extension. */ class QOpenGLShaderPrivate : public QObjectPrivate @@ -196,10 +194,6 @@ bool QOpenGLShaderPrivate::create() GLuint shader; if (shaderType == QOpenGLShader::Vertex) shader = glfuncs->glCreateShader(GL_VERTEX_SHADER); -#if 0 - else if (shaderType == QOpenGLShader::Geometry) - shader = glfuncs->glCreateShader(GL_GEOMETRY_SHADER_EXT); -#endif else shader = glfuncs->glCreateShader(GL_FRAGMENT_SHADER); if (!shader) { @@ -240,8 +234,6 @@ bool QOpenGLShaderPrivate::compile(QOpenGLShader *q) type = types[0]; else if (shaderType == QOpenGLShader::Vertex) type = types[1]; - else if (shaderType == QOpenGLShader::Geometry) - type = types[2]; // Get info and source code lengths GLint infoLogLength = 0; @@ -517,9 +509,6 @@ public: , linked(false) , inited(false) , removingShaders(false) - , geometryVertexCount(64) - , geometryInputType(0) - , geometryOutputType(0) , glfuncs(new QOpenGLFunctions) { } @@ -530,10 +519,6 @@ public: bool inited; bool removingShaders; - int geometryVertexCount; - GLenum geometryInputType; - GLenum geometryOutputType; - QString log; QList<QOpenGLShader *> shaders; QList<QOpenGLShader *> anonShaders; @@ -838,23 +823,6 @@ bool QOpenGLShaderProgram::link() return true; } - // Set up the geometry shader parameters -#if 0 - if (glProgramParameteriEXT) { - foreach (QOpenGLShader *shader, d->shaders) { - if (shader->shaderType() & QOpenGLShader::Geometry) { - glProgramParameteriEXT(program, GL_GEOMETRY_INPUT_TYPE_EXT, - d->geometryInputType); - glProgramParameteriEXT(program, GL_GEOMETRY_OUTPUT_TYPE_EXT, - d->geometryOutputType); - glProgramParameteriEXT(program, GL_GEOMETRY_VERTICES_OUT_EXT, - d->geometryVertexCount); - break; - } - } - } -#endif - d->glfuncs->glLinkProgram(program); value = 0; d->glfuncs->glGetProgramiv(program, GL_LINK_STATUS, &value); @@ -2959,96 +2927,6 @@ void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QMatrix4 } /*! - Returns the hardware limit for how many vertices a geometry shader - can output. - - \sa setGeometryOutputVertexCount() -*/ -int QOpenGLShaderProgram::maxGeometryOutputVertices() const -{ - GLint n = 0; -// glGetIntegerv(GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT, &n); - return n; -} - -/*! - Sets the maximum number of vertices the current geometry shader - program will produce, if active, to \a count. - - This parameter takes effect the next time the program is linked. -*/ -void QOpenGLShaderProgram::setGeometryOutputVertexCount(int count) -{ -#ifndef QT_NO_DEBUG - int max = maxGeometryOutputVertices(); - if (count > max) { - qWarning("QOpenGLShaderProgram::setGeometryOutputVertexCount: count: %d higher than maximum: %d", - count, max); - } -#endif - d_func()->geometryVertexCount = count; -} - - -/*! - Returns the maximum number of vertices the current geometry shader - program will produce, if active. - - This parameter takes effect the ntext time the program is linked. -*/ -int QOpenGLShaderProgram::geometryOutputVertexCount() const -{ - return d_func()->geometryVertexCount; -} - - -/*! - Sets the input type from \a inputType. - - This parameter takes effect the next time the program is linked. -*/ -void QOpenGLShaderProgram::setGeometryInputType(GLenum inputType) -{ - d_func()->geometryInputType = inputType; -} - - -/*! - Returns the geometry shader input type, if active. - - This parameter takes effect the next time the program is linked. - */ - -GLenum QOpenGLShaderProgram::geometryInputType() const -{ - return d_func()->geometryInputType; -} - - -/*! - Sets the output type from the geometry shader, if active, to - \a outputType. - - This parameter takes effect the next time the program is linked. -*/ -void QOpenGLShaderProgram::setGeometryOutputType(GLenum outputType) -{ - d_func()->geometryOutputType = outputType; -} - - -/*! - Returns the geometry shader output type, if active. - - This parameter takes effect the next time the program is linked. - */ -GLenum QOpenGLShaderProgram::geometryOutputType() const -{ - return d_func()->geometryOutputType; -} - - -/*! Returns true if shader programs written in the OpenGL Shading Language (GLSL) are supported on this system; false otherwise. @@ -3094,18 +2972,9 @@ bool QOpenGLShader::hasOpenGLShaders(ShaderType type, QOpenGLContext *context) if (!context) return false; - if ((type & ~(Geometry | Vertex | Fragment)) || type == 0) - return false; - -#if 0 - bool resolved = qt_resolve_glsl_extensions(const_cast<QOpenGLContext *>(context)); - if (!resolved) + if ((type & ~(Vertex | Fragment)) || type == 0) return false; - if ((type & Geometry) && !QByteArray((const char *) glGetString(GL_EXTENSIONS)).contains("GL_EXT_geometry_shader4")) - return false; -#endif - return true; } diff --git a/src/gui/opengl/qopenglshaderprogram.h b/src/gui/opengl/qopenglshaderprogram.h index 1a499fd533..c765e7d344 100644 --- a/src/gui/opengl/qopenglshaderprogram.h +++ b/src/gui/opengl/qopenglshaderprogram.h @@ -66,8 +66,7 @@ public: enum ShaderTypeBit { Vertex = 0x0001, - Fragment = 0x0002, - Geometry = 0x0004 + Fragment = 0x0002 }; Q_DECLARE_FLAGS(ShaderType, ShaderTypeBit) @@ -129,17 +128,6 @@ public: GLuint programId() const; - int maxGeometryOutputVertices() const; - - void setGeometryOutputVertexCount(int count); - int geometryOutputVertexCount() const; - - void setGeometryInputType(GLenum inputType); - GLenum geometryInputType() const; - - void setGeometryOutputType(GLenum outputType); - GLenum geometryOutputType() const; - void bindAttributeLocation(const char *name, int location); void bindAttributeLocation(const QByteArray& name, int location); void bindAttributeLocation(const QString& name, int location); |