wined3d: Make some GLSL structs and functions private to the backend
Henri Verbeet
hverbeet at codeweavers.com
Tue Sep 16 07:55:39 CDT 2008
---
dlls/wined3d/glsl_shader.c | 45 +++++++++++++++++++++++++++++----
dlls/wined3d/wined3d_private.h | 53 ----------------------------------------
2 files changed, 39 insertions(+), 59 deletions(-)
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index f8159fd..3ce8188 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -53,9 +53,42 @@ typedef struct {
DWORD coord_mask;
} glsl_sample_function_t;
+/* GLSL shader private data */
+struct shader_glsl_priv {
+ struct hash_table_t *glsl_program_lookup;
+ struct glsl_shader_prog_link *glsl_program;
+ GLhandleARB depth_blt_glsl_program_id;
+};
+
+/* Struct to maintain data about a linked GLSL program */
+struct glsl_shader_prog_link {
+ struct list vshader_entry;
+ struct list pshader_entry;
+ GLhandleARB programId;
+ GLhandleARB *vuniformF_locations;
+ GLhandleARB *puniformF_locations;
+ GLhandleARB vuniformI_locations[MAX_CONST_I];
+ GLhandleARB puniformI_locations[MAX_CONST_I];
+ GLhandleARB posFixup_location;
+ GLhandleARB bumpenvmat_location[MAX_TEXTURES];
+ GLhandleARB luminancescale_location[MAX_TEXTURES];
+ GLhandleARB luminanceoffset_location[MAX_TEXTURES];
+ GLhandleARB srgb_comparison_location;
+ GLhandleARB srgb_mul_low_location;
+ GLhandleARB ycorrection_location;
+ GLenum vertex_color_clamp;
+ GLhandleARB vshader;
+ GLhandleARB pshader;
+};
+
+typedef struct {
+ GLhandleARB vshader;
+ GLhandleARB pshader;
+} glsl_program_key_t;
+
+
/** Prints the GLSL info log which will contain error messages if they exist */
-void print_glsl_info_log(WineD3D_GL_Info *gl_info, GLhandleARB obj) {
-
+static void print_glsl_info_log(WineD3D_GL_Info *gl_info, GLhandleARB obj) {
int infologLength = 0;
char *infoLog;
int i;
@@ -364,7 +397,7 @@ static void shader_glsl_load_constantsB(
/**
* Loads the app-supplied constants into the currently set GLSL program.
*/
-void shader_glsl_load_constants(
+static void shader_glsl_load_constants(
IWineD3DDevice* device,
char usePixelShader,
char useVertexShader) {
@@ -497,7 +530,7 @@ void shader_glsl_load_constants(
}
/** Generate the variable & register declarations for the GLSL output target */
-void shader_generate_glsl_declarations(
+static void shader_generate_glsl_declarations(
IWineD3DBaseShader *iface,
shader_reg_maps* reg_maps,
SHADER_BUFFER* buffer,
@@ -2762,7 +2795,7 @@ void pshader_glsl_dp2add(SHADER_OPCODE_ARG* arg) {
}
}
-void pshader_glsl_input_pack(
+static void pshader_glsl_input_pack(
SHADER_BUFFER* buffer,
semantic* semantics_in,
IWineD3DPixelShader *iface) {
@@ -2838,7 +2871,7 @@ static struct glsl_shader_prog_link *get_glsl_program_entry(struct shader_glsl_p
return (struct glsl_shader_prog_link *)hash_table_get(priv->glsl_program_lookup, &key);
}
-void delete_glsl_program_entry(struct shader_glsl_priv *priv, WineD3D_GL_Info *gl_info, struct glsl_shader_prog_link *entry) {
+static void delete_glsl_program_entry(struct shader_glsl_priv *priv, WineD3D_GL_Info *gl_info, struct glsl_shader_prog_link *entry) {
glsl_program_key_t *key;
key = HeapAlloc(GetProcessHeap(), 0, sizeof(glsl_program_key_t));
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index f009bcd..6bb7e50 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -255,13 +255,6 @@ extern const shader_backend_t glsl_shader_backend;
extern const shader_backend_t arb_program_shader_backend;
extern const shader_backend_t none_shader_backend;
-/* GLSL shader private data */
-struct shader_glsl_priv {
- struct hash_table_t *glsl_program_lookup;
- struct glsl_shader_prog_link *glsl_program;
- GLhandleARB depth_blt_glsl_program_id;
-};
-
/* ARB_program_shader private data */
struct shader_arb_priv {
GLuint current_vprogram_id;
@@ -1893,34 +1886,6 @@ unsigned int count_bits(unsigned int mask);
typedef void (*SHADER_HANDLER) (struct SHADER_OPCODE_ARG*);
-/* Struct to maintain a list of GLSL shader programs and their associated pixel and
- * vertex shaders. A list of this type is maintained on the DeviceImpl, and is only
- * used if the user is using GLSL shaders. */
-struct glsl_shader_prog_link {
- struct list vshader_entry;
- struct list pshader_entry;
- GLhandleARB programId;
- GLhandleARB *vuniformF_locations;
- GLhandleARB *puniformF_locations;
- GLhandleARB vuniformI_locations[MAX_CONST_I];
- GLhandleARB puniformI_locations[MAX_CONST_I];
- GLhandleARB posFixup_location;
- GLhandleARB bumpenvmat_location[MAX_TEXTURES];
- GLhandleARB luminancescale_location[MAX_TEXTURES];
- GLhandleARB luminanceoffset_location[MAX_TEXTURES];
- GLhandleARB srgb_comparison_location;
- GLhandleARB srgb_mul_low_location;
- GLhandleARB ycorrection_location;
- GLenum vertex_color_clamp;
- GLhandleARB vshader;
- GLhandleARB pshader;
-};
-
-typedef struct {
- GLhandleARB vshader;
- GLhandleARB pshader;
-} glsl_program_key_t;
-
/* TODO: Make this dynamic, based on shader limits ? */
#define MAX_REG_ADDR 1
#define MAX_REG_TEMP 32
@@ -2103,10 +2068,6 @@ extern void vshader_hw_rsq_rcp(SHADER_OPCODE_ARG* arg);
/* GLSL helper functions */
extern void shader_glsl_add_instruction_modifiers(SHADER_OPCODE_ARG *arg);
-extern void shader_glsl_load_constants(
- IWineD3DDevice* device,
- char usePixelShader,
- char useVertexShader);
/** The following translate DirectX pixel/vertex shader opcodes to GLSL lines */
extern void shader_glsl_cross(SHADER_OPCODE_ARG* arg);
@@ -2165,10 +2126,6 @@ extern void pshader_glsl_texreg2ar(SHADER_OPCODE_ARG* arg);
extern void pshader_glsl_texreg2gb(SHADER_OPCODE_ARG* arg);
extern void pshader_glsl_texreg2rgb(SHADER_OPCODE_ARG* arg);
extern void pshader_glsl_dp2add(SHADER_OPCODE_ARG* arg);
-extern void pshader_glsl_input_pack(
- SHADER_BUFFER* buffer,
- semantic* semantics_out,
- IWineD3DPixelShader *iface);
/*****************************************************************************
* IDirect3DBaseShader implementation structure
@@ -2236,12 +2193,6 @@ extern HRESULT shader_get_registers_used(
CONST DWORD* pToken,
IWineD3DStateBlockImpl *stateBlock);
-extern void shader_generate_glsl_declarations(
- IWineD3DBaseShader *iface,
- shader_reg_maps* reg_maps,
- SHADER_BUFFER* buffer,
- WineD3D_GL_Info* gl_info);
-
extern void shader_generate_arb_declarations(
IWineD3DBaseShader *iface,
shader_reg_maps* reg_maps,
@@ -2277,10 +2228,6 @@ extern int shader_skip_unrecognized(
IWineD3DBaseShader* iface,
const DWORD* pToken);
-extern void print_glsl_info_log(
- WineD3D_GL_Info *gl_info,
- GLhandleARB obj);
-
static inline int shader_get_regtype(const DWORD param) {
return (((param & WINED3DSP_REGTYPE_MASK) >> WINED3DSP_REGTYPE_SHIFT) |
((param & WINED3DSP_REGTYPE_MASK2) >> WINED3DSP_REGTYPE_SHIFT2));
--
1.5.6.4
--------------070305050104010202050406--
More information about the wine-patches
mailing list