X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Fshaderapi.h;h=0a10191684f0f13ed6b752357528b88172f6bce5;hb=b319fd7c14707ff345b7ce1461e5fee81b75a4cf;hp=e4b477660dc7d5e0f04687600ec7f83edef55190;hpb=0f68236a2487dbeb0396b996debcda595b0b54a1;p=mesa.git diff --git a/src/mesa/main/shaderapi.h b/src/mesa/main/shaderapi.h index e4b477660dc..0a10191684f 100644 --- a/src/mesa/main/shaderapi.h +++ b/src/mesa/main/shaderapi.h @@ -17,9 +17,10 @@ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. */ @@ -29,12 +30,18 @@ #include "glheader.h" + +#ifdef __cplusplus +extern "C" { +#endif + + struct _glapi_table; struct gl_context; struct gl_shader_program; -extern GLint -_mesa_sizeof_glsl_type(GLenum type); +extern GLbitfield +_mesa_get_shader_flags(void); extern void _mesa_copy_string(GLchar *dst, GLsizei maxLength, @@ -47,16 +54,17 @@ extern void _mesa_active_program(struct gl_context *ctx, struct gl_shader_program *shProg, const char *caller); -extern void -_mesa_init_shader_dispatch(struct _glapi_table *exec); - +extern unsigned +_mesa_count_active_attribs(struct gl_shader_program *shProg); +extern size_t +_mesa_longest_attribute_name_length(struct gl_shader_program *shProg); extern void GLAPIENTRY _mesa_AttachObjectARB(GLhandleARB, GLhandleARB); extern void GLAPIENTRY -_mesa_CompileShaderARB(GLhandleARB); +_mesa_CompileShader(GLhandleARB); extern GLhandleARB GLAPIENTRY _mesa_CreateProgramObjectARB(void); @@ -76,6 +84,9 @@ _mesa_GetAttachedObjectsARB(GLhandleARB, GLsizei, GLsizei *, GLhandleARB *); extern GLint GLAPIENTRY _mesa_GetFragDataLocation(GLuint program, const GLchar *name); +extern GLint GLAPIENTRY +_mesa_GetFragDataIndex(GLuint program, const GLchar *name); + extern GLhandleARB GLAPIENTRY _mesa_GetHandleARB(GLenum pname); @@ -89,7 +100,7 @@ extern void GLAPIENTRY _mesa_GetObjectParameterivARB(GLhandleARB, GLenum, GLint *); extern void GLAPIENTRY -_mesa_GetShaderSourceARB(GLhandleARB, GLsizei, GLsizei *, GLcharARB *); +_mesa_GetShaderSource(GLhandleARB, GLsizei, GLsizei *, GLcharARB *); extern GLboolean GLAPIENTRY _mesa_IsProgram(GLuint name); @@ -98,31 +109,35 @@ extern GLboolean GLAPIENTRY _mesa_IsShader(GLuint name); extern void GLAPIENTRY -_mesa_LinkProgramARB(GLhandleARB programObj); +_mesa_LinkProgram(GLhandleARB programObj); extern void GLAPIENTRY -_mesa_ShaderSourceARB(GLhandleARB, GLsizei, const GLcharARB* *, const GLint *); +_mesa_ShaderSource(GLhandleARB, GLsizei, const GLcharARB* const *, const GLint *); extern void GLAPIENTRY -_mesa_UseProgramObjectARB(GLhandleARB); +_mesa_UseProgram(GLhandleARB); extern void GLAPIENTRY -_mesa_ValidateProgramARB(GLhandleARB); +_mesa_ValidateProgram(GLhandleARB); extern void GLAPIENTRY -_mesa_BindAttribLocationARB(GLhandleARB, GLuint, const GLcharARB *); +_mesa_BindAttribLocation(GLhandleARB, GLuint, const GLcharARB *); extern void GLAPIENTRY _mesa_BindFragDataLocation(GLuint program, GLuint colorNumber, const GLchar *name); extern void GLAPIENTRY -_mesa_GetActiveAttribARB(GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, +_mesa_BindFragDataLocationIndexed(GLuint program, GLuint colorNumber, + GLuint index, const GLchar *name); + +extern void GLAPIENTRY +_mesa_GetActiveAttrib(GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *); extern GLint GLAPIENTRY -_mesa_GetAttribLocationARB(GLhandleARB, const GLcharARB *); +_mesa_GetAttribLocation(GLhandleARB, const GLcharARB *); @@ -175,19 +190,128 @@ _mesa_ShaderBinary(GLint n, const GLuint *shaders, GLenum binaryformat, const void* binary, GLint length); extern void GLAPIENTRY -_mesa_ProgramParameteriARB(GLuint program, GLenum pname, - GLint value); +_mesa_GetProgramBinary(GLuint program, GLsizei bufSize, GLsizei *length, + GLenum *binaryFormat, GLvoid *binary); + +extern void GLAPIENTRY +_mesa_ProgramBinary(GLuint program, GLenum binaryFormat, + const GLvoid *binary, GLsizei length); + +extern void GLAPIENTRY +_mesa_ProgramParameteri(GLuint program, GLenum pname, GLint value); + void _mesa_use_shader_program(struct gl_context *ctx, GLenum type, - struct gl_shader_program *shProg); + struct gl_shader_program *shProg, + struct gl_pipeline_object *shTarget); + +extern void +_mesa_copy_linked_program_data(gl_shader_stage type, + const struct gl_shader_program *src, + struct gl_program *dst); + +extern bool +_mesa_validate_shader_target(const struct gl_context *ctx, GLenum type); + +/* GL_ARB_separate_shader_objects */ +extern GLuint GLAPIENTRY +_mesa_CreateShaderProgramv(GLenum type, GLsizei count, + const GLchar* const *strings); + +/* GL_ARB_program_resource_query */ +extern const char* +_mesa_program_resource_name(struct gl_program_resource *res); + +extern unsigned +_mesa_program_resource_array_size(struct gl_program_resource *res); + +extern GLuint +_mesa_program_resource_index(struct gl_shader_program *shProg, + struct gl_program_resource *res); + +extern struct gl_program_resource * +_mesa_program_resource_find_name(struct gl_shader_program *shProg, + GLenum programInterface, const char *name, + unsigned *array_index); + +extern struct gl_program_resource * +_mesa_program_resource_find_index(struct gl_shader_program *shProg, + GLenum programInterface, GLuint index); + +extern bool +_mesa_get_program_resource_name(struct gl_shader_program *shProg, + GLenum programInterface, GLuint index, + GLsizei bufSize, GLsizei *length, + GLchar *name, const char *caller); + +extern GLint +_mesa_program_resource_location(struct gl_shader_program *shProg, + GLenum programInterface, const char *name); + +extern GLint +_mesa_program_resource_location_index(struct gl_shader_program *shProg, + GLenum programInterface, const char *name); + +extern unsigned +_mesa_program_resource_prop(struct gl_shader_program *shProg, + struct gl_program_resource *res, GLuint index, + const GLenum prop, GLint *val, const char *caller); + +extern void +_mesa_get_program_resourceiv(struct gl_shader_program *shProg, + GLenum programInterface, GLuint index, + GLsizei propCount, const GLenum *props, + GLsizei bufSize, GLsizei *length, + GLint *params); + +/* GL_ARB_tessellation_shader */ extern void GLAPIENTRY -_mesa_UseShaderProgramEXT(GLenum type, GLuint program); +_mesa_PatchParameteri(GLenum pname, GLint value); extern void GLAPIENTRY -_mesa_ActiveProgramEXT(GLuint program); +_mesa_PatchParameterfv(GLenum pname, const GLfloat *values); + +/* GL_ARB_shader_subroutine */ +void +_mesa_shader_program_init_subroutine_defaults(struct gl_shader_program *shProg); + +extern GLint GLAPIENTRY +_mesa_GetSubroutineUniformLocation(GLuint program, GLenum shadertype, + const GLchar *name); extern GLuint GLAPIENTRY -_mesa_CreateShaderProgramEXT(GLenum type, const GLchar *string); +_mesa_GetSubroutineIndex(GLuint program, GLenum shadertype, + const GLchar *name); + +extern GLvoid GLAPIENTRY +_mesa_GetActiveSubroutineUniformiv(GLuint program, GLenum shadertype, + GLuint index, GLenum pname, GLint *values); + +extern GLvoid GLAPIENTRY +_mesa_GetActiveSubroutineUniformName(GLuint program, GLenum shadertype, + GLuint index, GLsizei bufsize, + GLsizei *length, GLchar *name); + +extern GLvoid GLAPIENTRY +_mesa_GetActiveSubroutineName(GLuint program, GLenum shadertype, + GLuint index, GLsizei bufsize, + GLsizei *length, GLchar *name); + +extern GLvoid GLAPIENTRY +_mesa_UniformSubroutinesuiv(GLenum shadertype, GLsizei count, + const GLuint *indices); + +extern GLvoid GLAPIENTRY +_mesa_GetUniformSubroutineuiv(GLenum shadertype, GLint location, + GLuint *params); + +extern GLvoid GLAPIENTRY +_mesa_GetProgramStageiv(GLuint program, GLenum shadertype, + GLenum pname, GLint *values); + +#ifdef __cplusplus +} +#endif #endif /* SHADERAPI_H */