mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
0029074: Visualization, TKOpenGl - support Geometry Shader definition
Graphic3d_TypeOfShaderObject enumeration has been extended by Geometry shader object type. OpenGl_ShaderProgram::Initialize() processes new shader object types when supported by OpenGL version. Declarations.glsl has been fixed so that occFragColor is defined only for Fragment Shader object only (by handling new FRAGMENT_SHADER macros). Improved documentation of Graphic3d_ArrayOfPrimitives class. vshader Draw Harness command has been extended to support definition of Shader Object types other than Vertex and Fragment shader.
This commit is contained in:
@@ -49,20 +49,22 @@
|
||||
THE_ATTRIBUTE vec3 occNormal;
|
||||
THE_ATTRIBUTE vec4 occTexCoord;
|
||||
THE_ATTRIBUTE vec4 occVertColor;
|
||||
#elif (__VERSION__ >= 130)
|
||||
#ifdef OCC_ENABLE_draw_buffers
|
||||
out vec4 occFragColorArray[2];
|
||||
#define occFragColor occFragColorArray[0]
|
||||
#define occFragCoverage occFragColorArray[1]
|
||||
#elif defined(FRAGMENT_SHADER)
|
||||
#if (__VERSION__ >= 130)
|
||||
#ifdef OCC_ENABLE_draw_buffers
|
||||
out vec4 occFragColorArray[2];
|
||||
#define occFragColor occFragColorArray[0]
|
||||
#define occFragCoverage occFragColorArray[1]
|
||||
#else
|
||||
out vec4 occFragColor;
|
||||
#endif
|
||||
#else
|
||||
out vec4 occFragColor;
|
||||
#endif
|
||||
#else
|
||||
#ifdef OCC_ENABLE_draw_buffers
|
||||
#define occFragColor gl_FragData[0]
|
||||
#define occFragCoverage gl_FragData[1]
|
||||
#else
|
||||
#define occFragColor gl_FragColor
|
||||
#ifdef OCC_ENABLE_draw_buffers
|
||||
#define occFragColor gl_FragData[0]
|
||||
#define occFragCoverage gl_FragData[1]
|
||||
#else
|
||||
#define occFragColor gl_FragColor
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@@ -52,20 +52,22 @@ static const char Shaders_Declarations_glsl[] =
|
||||
" THE_ATTRIBUTE vec3 occNormal;\n"
|
||||
" THE_ATTRIBUTE vec4 occTexCoord;\n"
|
||||
" THE_ATTRIBUTE vec4 occVertColor;\n"
|
||||
"#elif (__VERSION__ >= 130)\n"
|
||||
" #ifdef OCC_ENABLE_draw_buffers\n"
|
||||
" out vec4 occFragColorArray[2];\n"
|
||||
" #define occFragColor occFragColorArray[0]\n"
|
||||
" #define occFragCoverage occFragColorArray[1]\n"
|
||||
"#elif defined(FRAGMENT_SHADER)\n"
|
||||
" #if (__VERSION__ >= 130)\n"
|
||||
" #ifdef OCC_ENABLE_draw_buffers\n"
|
||||
" out vec4 occFragColorArray[2];\n"
|
||||
" #define occFragColor occFragColorArray[0]\n"
|
||||
" #define occFragCoverage occFragColorArray[1]\n"
|
||||
" #else\n"
|
||||
" out vec4 occFragColor;\n"
|
||||
" #endif\n"
|
||||
" #else\n"
|
||||
" out vec4 occFragColor;\n"
|
||||
" #endif\n"
|
||||
"#else\n"
|
||||
" #ifdef OCC_ENABLE_draw_buffers\n"
|
||||
" #define occFragColor gl_FragData[0]\n"
|
||||
" #define occFragCoverage gl_FragData[1]\n"
|
||||
" #else\n"
|
||||
" #define occFragColor gl_FragColor\n"
|
||||
" #ifdef OCC_ENABLE_draw_buffers\n"
|
||||
" #define occFragColor gl_FragData[0]\n"
|
||||
" #define occFragCoverage gl_FragData[1]\n"
|
||||
" #else\n"
|
||||
" #define occFragColor gl_FragColor\n"
|
||||
" #endif\n"
|
||||
" #endif\n"
|
||||
"#endif\n"
|
||||
"\n"
|
||||
|
Reference in New Issue
Block a user