diff options
author | Zack Rusin <zackr@vmware.com> | 2010-03-31 22:16:09 -0400 |
---|---|---|
committer | Zack Rusin <zackr@vmware.com> | 2010-03-31 22:16:09 -0400 |
commit | b6d052e4fd83d923776320cf5fef66abcd4bf3d0 (patch) | |
tree | f68676e2c833965424ea82ef466ce83f8be25310 /src/mesa/main/mtypes.h | |
parent | ae5487d4276007e466b6a7c783d6fb740f9539c5 (diff) | |
parent | 2fb655d1dbb3f8425aeff1597271262661ef206b (diff) |
Merge remote branch 'origin/master' into gallium_draw_llvm
Diffstat (limited to 'src/mesa/main/mtypes.h')
-rw-r--r-- | src/mesa/main/mtypes.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 82e004f348..7657efb077 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -1910,6 +1910,11 @@ struct gl_query_state /** GL_NV_conditional_render */ struct gl_query_object *CondRenderQuery; + + /** GL_EXT_transform_feedback */ + struct gl_query_object *PrimitivesGenerated; + struct gl_query_object *PrimitivesWritten; + GLenum CondRenderMode; }; @@ -1976,6 +1981,13 @@ struct gl_shader_program /** User-defined attribute bindings (glBindAttribLocation) */ struct gl_program_parameter_list *Attributes; + /** Transform feedback varyings */ + struct { + GLenum BufferMode; + GLuint NumVarying; + GLchar **VaryingNames; /**< Array [NumVarying] of char * */ + } TransformFeedback; + /* post-link info: */ struct gl_vertex_program *VertexProgram; /**< Linked vertex program */ struct gl_fragment_program *FragmentProgram; /**< Linked fragment prog */ @@ -2017,6 +2029,29 @@ struct gl_shader_state /** + * Context state for transform feedback. + */ +struct gl_transform_feedback +{ + GLboolean Active; /**< Is transform feedback enabled? */ + GLenum Mode; /**< GL_POINTS, GL_LINES or GL_TRIANGLES */ + /** Start of feedback data in dest buffer */ + GLintptr Offset[MAX_FEEDBACK_ATTRIBS]; + /** Max data to put into dest buffer (in bytes) */ + GLsizeiptr Size[MAX_FEEDBACK_ATTRIBS]; + GLboolean RasterDiscard; /**< GL_RASTERIZER_DISCARD */ + + /** The general binding point (GL_TRANSFORM_FEEDBACK_BUFFER) */ + struct gl_buffer_object *CurrentBuffer; + + /** The feedback buffers */ + GLuint BufferNames[MAX_FEEDBACK_ATTRIBS]; + struct gl_buffer_object *Buffers[MAX_FEEDBACK_ATTRIBS]; +}; + + + +/** * State which can be shared by multiple contexts: */ struct gl_shared_state @@ -2388,6 +2423,11 @@ struct gl_constants /**< OpenGL version 3.x */ GLbitfield ContextFlags; /**< Ex: GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT */ + + /** GL_EXT_transform_feedback */ + GLuint MaxTransformFeedbackSeparateAttribs; + GLuint MaxTransformFeedbackSeparateComponents; + GLuint MaxTransformFeedbackInterleavedComponents; }; @@ -2489,6 +2529,7 @@ struct gl_extensions GLboolean EXT_texture_mirror_clamp; GLboolean EXT_texture_sRGB; GLboolean EXT_texture_swizzle; + GLboolean EXT_transform_feedback; GLboolean EXT_timer_query; GLboolean EXT_vertex_array; GLboolean EXT_vertex_array_bgra; @@ -2956,6 +2997,8 @@ struct __GLcontextRec struct gl_query_state Query; /**< occlusion, timer queries */ + struct gl_transform_feedback TransformFeedback; + struct gl_buffer_object *CopyReadBuffer; /**< GL_ARB_copy_buffer */ struct gl_buffer_object *CopyWriteBuffer; /**< GL_ARB_copy_buffer */ /*@}*/ |