* Mesa 3-D graphics library
* Version: 6.3
*
- * Copyright (C) 1999-2004 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2005 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
GLuint PassedCounter;
struct _mesa_HashTable *QueryObjects;
};
+\r
+/* gl2 unique interface identifier */\r
+/* each gl2 interface has its own interface id used for object queries */\r
+enum gl2_uiid\r
+{\r
+ UIID_UNKNOWN, /* supported by all objects */\r
+ UIID_GENERIC, /* generic object */\r
+ UIID_CONTAINER, /* contains generic objects */\r
+ UIID_SHADER, /* shader object */\r
+ UIID_FRAGMENT_SHADER, /* fragment shader */\r
+ UIID_VERTEX_SHADER, /* vertex shader */\r
+ UIID_PROGRAM /* program object */\r
+};\r
+\r
+struct gl2_unknown_intf\r
+{\r
+ GLvoid (* AddRef) (struct gl2_unknown_intf **);\r
+ GLvoid (* Release) (struct gl2_unknown_intf **);\r
+ struct gl2_unknown_intf **(* QueryInterface) (struct gl2_unknown_intf **, enum gl2_uiid uiid);\r
+};\r
+\r
+struct gl2_generic_intf\r
+{\r
+ struct gl2_unknown_intf _unknown;\r
+ GLvoid (* Delete) (struct gl2_generic_intf **);\r
+ GLenum (* GetType) (struct gl2_generic_intf **);\r
+ GLhandleARB (* GetName) (struct gl2_generic_intf **);\r
+ GLboolean (* GetDeleteStatus) (struct gl2_generic_intf **);\r
+ const GLcharARB *(* GetInfoLog) (struct gl2_generic_intf **);\r
+};\r
+\r
+struct gl2_container_intf\r
+{\r
+ struct gl2_generic_intf _generic;\r
+ GLboolean (* Attach) (struct gl2_container_intf **, struct gl2_generic_intf **);\r
+ GLboolean (* Detach) (struct gl2_container_intf **, struct gl2_generic_intf **);\r
+ GLsizei (* GetAttachedCount) (struct gl2_container_intf **);\r
+ struct gl2_generic_intf **(* GetAttached) (struct gl2_container_intf **, GLuint);\r
+};\r
+\r
+struct gl2_shader_intf\r
+{\r
+ struct gl2_generic_intf _generic;\r
+ GLenum (* GetSubType) (struct gl2_shader_intf **);\r
+ GLboolean (* GetCompileStatus) (struct gl2_shader_intf **);\r
+ GLvoid (* SetSource) (struct gl2_shader_intf **, GLcharARB *, GLint *, GLsizei);\r
+ const GLcharARB *(* GetSource) (struct gl2_shader_intf **);\r
+ GLvoid (* Compile) (struct gl2_shader_intf **);\r
+};\r
+\r
+struct gl2_program_intf\r
+{\r
+ struct gl2_container_intf _container;\r
+ GLboolean (* GetLinkStatus) (struct gl2_program_intf **);\r
+ GLboolean (* GetValidateStatus) (struct gl2_program_intf **);\r
+ GLvoid (* Link) (struct gl2_program_intf **);\r
+ GLvoid (* Validate) (struct gl2_program_intf **);\r
+};\r
+\r
+struct gl2_fragment_shader_intf\r
+{\r
+ struct gl2_shader_intf _shader;\r
+};\r
+\r
+struct gl2_vertex_shader_intf\r
+{\r
+ struct gl2_shader_intf _shader;\r
+};\r
+\r
+struct gl_shader_objects_state\r
+{\r
+ struct gl2_program_intf **current_program;\r
+};\r
/**
#if FEATURE_ARB_vertex_buffer_object
struct _mesa_HashTable *BufferObjects;
-#endif
+#endif\r
+\r
+ struct _mesa_HashTable *GL2Objects;
void *DriverData; /**< Device driver shared state */
};
struct gl_fragment_program_state FragmentProgram; /**< GL_NV_fragment_program */
struct gl_ati_fragment_shader_state ATIFragmentShader; /**< GL_ATI_fragment_shader */
- struct gl_occlusion_state Occlusion; /**< GL_ARB_occlusion_query */
+ struct gl_occlusion_state Occlusion; /**< GL_ARB_occlusion_query */\r
+\r
+ struct gl_shader_objects_state ShaderObjects; /* GL_ARB_shader_objects */
/*@}*/
GLenum ErrorValue; /**< Last error code */