diff options
author | Michal Krol <[email protected]> | 2005-01-13 14:09:58 +0000 |
---|---|---|
committer | Michal Krol <[email protected]> | 2005-01-13 14:09:58 +0000 |
commit | 3d52858c784cebaafc80d51608898ef571fef7b7 (patch) | |
tree | caa6907b2e9a3ef0bf62f5f0541c842e11d9953d | |
parent | 0e85388ba8e54569c14306b5715c5cb1c20b6cb9 (diff) |
add ARB_shader_objects interfaces, shared and context state
-rw-r--r-- | src/mesa/main/mtypes.h | 83 |
1 files changed, 80 insertions, 3 deletions
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index bf24596c062..082c43fdf11 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -9,7 +9,7 @@ * 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"), @@ -1844,6 +1844,79 @@ struct gl_occlusion_state GLuint PassedCounter; struct _mesa_HashTable *QueryObjects; }; +
+/* gl2 unique interface identifier */
+/* each gl2 interface has its own interface id used for object queries */
+enum gl2_uiid
+{
+ UIID_UNKNOWN, /* supported by all objects */
+ UIID_GENERIC, /* generic object */
+ UIID_CONTAINER, /* contains generic objects */
+ UIID_SHADER, /* shader object */
+ UIID_FRAGMENT_SHADER, /* fragment shader */
+ UIID_VERTEX_SHADER, /* vertex shader */
+ UIID_PROGRAM /* program object */
+};
+
+struct gl2_unknown_intf
+{
+ GLvoid (* AddRef) (struct gl2_unknown_intf **);
+ GLvoid (* Release) (struct gl2_unknown_intf **);
+ struct gl2_unknown_intf **(* QueryInterface) (struct gl2_unknown_intf **, enum gl2_uiid uiid);
+};
+
+struct gl2_generic_intf
+{
+ struct gl2_unknown_intf _unknown;
+ GLvoid (* Delete) (struct gl2_generic_intf **);
+ GLenum (* GetType) (struct gl2_generic_intf **);
+ GLhandleARB (* GetName) (struct gl2_generic_intf **);
+ GLboolean (* GetDeleteStatus) (struct gl2_generic_intf **);
+ const GLcharARB *(* GetInfoLog) (struct gl2_generic_intf **);
+};
+
+struct gl2_container_intf
+{
+ struct gl2_generic_intf _generic;
+ GLboolean (* Attach) (struct gl2_container_intf **, struct gl2_generic_intf **);
+ GLboolean (* Detach) (struct gl2_container_intf **, struct gl2_generic_intf **);
+ GLsizei (* GetAttachedCount) (struct gl2_container_intf **);
+ struct gl2_generic_intf **(* GetAttached) (struct gl2_container_intf **, GLuint);
+};
+
+struct gl2_shader_intf
+{
+ struct gl2_generic_intf _generic;
+ GLenum (* GetSubType) (struct gl2_shader_intf **);
+ GLboolean (* GetCompileStatus) (struct gl2_shader_intf **);
+ GLvoid (* SetSource) (struct gl2_shader_intf **, GLcharARB *, GLint *, GLsizei);
+ const GLcharARB *(* GetSource) (struct gl2_shader_intf **);
+ GLvoid (* Compile) (struct gl2_shader_intf **);
+};
+
+struct gl2_program_intf
+{
+ struct gl2_container_intf _container;
+ GLboolean (* GetLinkStatus) (struct gl2_program_intf **);
+ GLboolean (* GetValidateStatus) (struct gl2_program_intf **);
+ GLvoid (* Link) (struct gl2_program_intf **);
+ GLvoid (* Validate) (struct gl2_program_intf **);
+};
+
+struct gl2_fragment_shader_intf
+{
+ struct gl2_shader_intf _shader;
+};
+
+struct gl2_vertex_shader_intf
+{
+ struct gl2_shader_intf _shader;
+};
+
+struct gl_shader_objects_state
+{
+ struct gl2_program_intf **current_program;
+};
/** @@ -1886,7 +1959,9 @@ struct gl_shared_state #if FEATURE_ARB_vertex_buffer_object struct _mesa_HashTable *BufferObjects; -#endif +#endif
+
+ struct _mesa_HashTable *GL2Objects; void *DriverData; /**< Device driver shared state */ }; @@ -2516,7 +2591,9 @@ struct __GLcontextRec 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 */
+
+ struct gl_shader_objects_state ShaderObjects; /* GL_ARB_shader_objects */ /*@}*/ GLenum ErrorValue; /**< Last error code */ |