X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Fshaderobj.h;h=0d512550de470344cb8eb371bd7fa1ed22cad6e0;hb=b85775900d084e3d27f269c3bd336b9aa356b98d;hp=814a7f11552e8f18b67a315c7a826763eb46accd;hpb=fd2b3da5c8cdbc5b00436185a3c03dfb7b7bd853;p=mesa.git diff --git a/src/mesa/main/shaderobj.h b/src/mesa/main/shaderobj.h index 814a7f11552..0d512550de4 100644 --- a/src/mesa/main/shaderobj.h +++ b/src/mesa/main/shaderobj.h @@ -27,16 +27,20 @@ #define SHADEROBJ_H -#include "main/compiler.h" #include "main/glheader.h" -#include "main/mtypes.h" +#include "compiler/shader_enums.h" #include "program/ir_to_mesa.h" +#include "util/macros.h" #ifdef __cplusplus extern "C" { #endif +struct gl_shader_program_data; +struct gl_linked_shader; +struct dd_function_table; +struct gl_pipeline_object; /** * Internal functions @@ -66,6 +70,11 @@ _mesa_reference_shader_program_(struct gl_context *ctx, struct gl_shader_program **ptr, struct gl_shader_program *shProg); +void +_mesa_reference_shader_program_data(struct gl_context *ctx, + struct gl_shader_program_data **ptr, + struct gl_shader_program_data *data); + static inline void _mesa_reference_shader_program(struct gl_context *ctx, struct gl_shader_program **ptr, @@ -78,9 +87,6 @@ _mesa_reference_shader_program(struct gl_context *ctx, extern struct gl_shader * _mesa_new_shader(GLuint name, gl_shader_stage type); -extern struct gl_linked_shader * -_mesa_new_linked_shader(gl_shader_stage type); - extern void _mesa_delete_shader(struct gl_context *ctx, struct gl_shader *sh); @@ -98,8 +104,12 @@ _mesa_lookup_shader_program_err(struct gl_context *ctx, GLuint name, extern struct gl_shader_program * _mesa_new_shader_program(GLuint name); +extern struct gl_shader_program_data * +_mesa_create_shader_program_data(void); + extern void -_mesa_clear_shader_program_data(struct gl_shader_program *shProg); +_mesa_clear_shader_program_data(struct gl_context *ctx, + struct gl_shader_program *shProg); extern void _mesa_free_shader_program_data(struct gl_context *ctx, @@ -213,6 +223,11 @@ _mesa_shader_stage_to_subroutine(gl_shader_stage stage) return GL_TESS_CONTROL_SUBROUTINE; case MESA_SHADER_TESS_EVAL: return GL_TESS_EVALUATION_SUBROUTINE; + case MESA_SHADER_NONE: + break; + case MESA_SHADER_KERNEL: + unreachable("not reached"); + break; } unreachable("not reached"); } @@ -233,6 +248,9 @@ _mesa_shader_stage_to_subroutine_uniform(gl_shader_stage stage) return GL_TESS_CONTROL_SUBROUTINE_UNIFORM; case MESA_SHADER_TESS_EVAL: return GL_TESS_EVALUATION_SUBROUTINE_UNIFORM; + case MESA_SHADER_NONE: + case MESA_SHADER_KERNEL: + break; } unreachable("not reached"); }