add ARB_shader_objects interfaces, shared and context state

This commit is contained in:
Michal Krol 2005-01-13 14:09:58 +00:00
parent 0e85388ba8
commit 3d52858c78

View file

@ -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 */