Home | History | Annotate | Download | only in main
      1 /*
      2  * Mesa 3-D graphics library
      3  *
      4  * Copyright (C) 2004-2007  Brian Paul   All Rights Reserved.
      5  * Copyright (C) 2010  VMware, Inc.  All Rights Reserved.
      6  *
      7  * Permission is hereby granted, free of charge, to any person obtaining a
      8  * copy of this software and associated documentation files (the "Software"),
      9  * to deal in the Software without restriction, including without limitation
     10  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
     11  * and/or sell copies of the Software, and to permit persons to whom the
     12  * Software is furnished to do so, subject to the following conditions:
     13  *
     14  * The above copyright notice and this permission notice shall be included
     15  * in all copies or substantial portions of the Software.
     16  *
     17  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
     18  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     19  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     20  * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
     21  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
     22  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
     23  */
     24 
     25 
     26 #ifndef SHADERAPI_H
     27 #define SHADERAPI_H
     28 
     29 
     30 #include "glheader.h"
     31 
     32 
     33 #ifdef __cplusplus
     34 extern "C" {
     35 #endif
     36 
     37 
     38 struct _glapi_table;
     39 struct gl_context;
     40 struct gl_shader_program;
     41 
     42 extern void
     43 _mesa_copy_string(GLchar *dst, GLsizei maxLength,
     44                   GLsizei *length, const GLchar *src);
     45 
     46 extern void
     47 _mesa_use_program(struct gl_context *ctx, struct gl_shader_program *shProg);
     48 
     49 extern void
     50 _mesa_active_program(struct gl_context *ctx, struct gl_shader_program *shProg,
     51 		     const char *caller);
     52 
     53 extern void
     54 _mesa_init_shader_dispatch(const struct gl_context *ctx,
     55                            struct _glapi_table *exec);
     56 
     57 extern unsigned
     58 _mesa_count_active_attribs(struct gl_shader_program *shProg);
     59 
     60 extern size_t
     61 _mesa_longest_attribute_name_length(struct gl_shader_program *shProg);
     62 
     63 extern void GLAPIENTRY
     64 _mesa_AttachObjectARB(GLhandleARB, GLhandleARB);
     65 
     66 extern void  GLAPIENTRY
     67 _mesa_CompileShaderARB(GLhandleARB);
     68 
     69 extern GLhandleARB GLAPIENTRY
     70 _mesa_CreateProgramObjectARB(void);
     71 
     72 extern GLhandleARB GLAPIENTRY
     73 _mesa_CreateShaderObjectARB(GLenum type);
     74 
     75 extern void GLAPIENTRY
     76 _mesa_DeleteObjectARB(GLhandleARB obj);
     77 
     78 extern void GLAPIENTRY
     79 _mesa_DetachObjectARB(GLhandleARB, GLhandleARB);
     80 
     81 extern void GLAPIENTRY
     82 _mesa_GetAttachedObjectsARB(GLhandleARB, GLsizei, GLsizei *, GLhandleARB *);
     83 
     84 extern GLint GLAPIENTRY
     85 _mesa_GetFragDataLocation(GLuint program, const GLchar *name);
     86 
     87 extern GLint GLAPIENTRY
     88 _mesa_GetFragDataIndex(GLuint program, const GLchar *name);
     89 
     90 extern GLhandleARB GLAPIENTRY
     91 _mesa_GetHandleARB(GLenum pname);
     92 
     93 extern void GLAPIENTRY
     94 _mesa_GetInfoLogARB(GLhandleARB, GLsizei, GLsizei *, GLcharARB *);
     95 
     96 extern void GLAPIENTRY
     97 _mesa_GetObjectParameterfvARB(GLhandleARB, GLenum, GLfloat *);
     98 
     99 extern void GLAPIENTRY
    100 _mesa_GetObjectParameterivARB(GLhandleARB, GLenum, GLint *);
    101 
    102 extern void GLAPIENTRY
    103 _mesa_GetShaderSourceARB(GLhandleARB, GLsizei, GLsizei *, GLcharARB *);
    104 
    105 extern GLboolean GLAPIENTRY
    106 _mesa_IsProgram(GLuint name);
    107 
    108 extern GLboolean GLAPIENTRY
    109 _mesa_IsShader(GLuint name);
    110 
    111 extern void GLAPIENTRY
    112 _mesa_LinkProgramARB(GLhandleARB programObj);
    113 
    114 extern void GLAPIENTRY
    115 _mesa_ShaderSourceARB(GLhandleARB, GLsizei, const GLcharARB* *, const GLint *);
    116 
    117 extern void GLAPIENTRY
    118 _mesa_UseProgramObjectARB(GLhandleARB);
    119 
    120 extern void GLAPIENTRY
    121 _mesa_ValidateProgramARB(GLhandleARB);
    122 
    123 
    124 extern void GLAPIENTRY
    125 _mesa_BindAttribLocationARB(GLhandleARB, GLuint, const GLcharARB *);
    126 
    127 extern void GLAPIENTRY
    128 _mesa_BindFragDataLocation(GLuint program, GLuint colorNumber,
    129                            const GLchar *name);
    130 
    131 extern void GLAPIENTRY
    132 _mesa_BindFragDataLocationIndexed(GLuint program, GLuint colorNumber,
    133                                   GLuint index, const GLchar *name);
    134 
    135 extern void GLAPIENTRY
    136 _mesa_GetActiveAttribARB(GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *,
    137                          GLenum *, GLcharARB *);
    138 
    139 extern GLint GLAPIENTRY
    140 _mesa_GetAttribLocationARB(GLhandleARB, const GLcharARB *);
    141 
    142 
    143 
    144 extern void GLAPIENTRY
    145 _mesa_AttachShader(GLuint program, GLuint shader);
    146 
    147 extern GLuint GLAPIENTRY
    148 _mesa_CreateShader(GLenum);
    149 
    150 extern GLuint GLAPIENTRY
    151 _mesa_CreateProgram(void);
    152 
    153 extern void GLAPIENTRY
    154 _mesa_DeleteProgram(GLuint program);
    155 
    156 extern void GLAPIENTRY
    157 _mesa_DeleteShader(GLuint shader);
    158 
    159 extern void GLAPIENTRY
    160 _mesa_DetachShader(GLuint program, GLuint shader);
    161 
    162 extern void GLAPIENTRY
    163 _mesa_GetAttachedShaders(GLuint program, GLsizei maxCount,
    164                          GLsizei *count, GLuint *obj);
    165 
    166 extern void GLAPIENTRY
    167 _mesa_GetProgramiv(GLuint program, GLenum pname, GLint *params);
    168 
    169 extern void GLAPIENTRY
    170 _mesa_GetProgramInfoLog(GLuint program, GLsizei bufSize,
    171                         GLsizei *length, GLchar *infoLog);
    172 
    173 extern void GLAPIENTRY
    174 _mesa_GetShaderiv(GLuint shader, GLenum pname, GLint *params);
    175 
    176 extern void GLAPIENTRY
    177 _mesa_GetShaderInfoLog(GLuint shader, GLsizei bufSize,
    178                        GLsizei *length, GLchar *infoLog);
    179 
    180 
    181 extern void GLAPIENTRY
    182 _mesa_GetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype,
    183                                GLint *range, GLint *precision);
    184 
    185 extern void GLAPIENTRY
    186 _mesa_ReleaseShaderCompiler(void);
    187 
    188 extern void GLAPIENTRY
    189 _mesa_ShaderBinary(GLint n, const GLuint *shaders, GLenum binaryformat,
    190                    const void* binary, GLint length);
    191 
    192 extern void GLAPIENTRY
    193 _mesa_ProgramParameteriARB(GLuint program, GLenum pname,
    194                            GLint value);
    195 void
    196 _mesa_use_shader_program(struct gl_context *ctx, GLenum type,
    197 			 struct gl_shader_program *shProg);
    198 
    199 extern void GLAPIENTRY
    200 _mesa_UseShaderProgramEXT(GLenum type, GLuint program);
    201 
    202 extern void GLAPIENTRY
    203 _mesa_ActiveProgramEXT(GLuint program);
    204 
    205 extern GLuint GLAPIENTRY
    206 _mesa_CreateShaderProgramEXT(GLenum type, const GLchar *string);
    207 
    208 
    209 #ifdef __cplusplus
    210 }
    211 #endif
    212 
    213 #endif /* SHADERAPI_H */
    214