Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
c2178eb6
Commit
c2178eb6
authored
Sep 16, 2008
by
Henri Verbeet
Committed by
Alexandre Julliard
Sep 16, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wined3d: Make some GLSL structs and functions private to the backend.
parent
de03fe3c
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
39 additions
and
59 deletions
+39
-59
glsl_shader.c
dlls/wined3d/glsl_shader.c
+39
-6
wined3d_private.h
dlls/wined3d/wined3d_private.h
+0
-53
No files found.
dlls/wined3d/glsl_shader.c
View file @
c2178eb6
...
...
@@ -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
));
...
...
dlls/wined3d/wined3d_private.h
View file @
c2178eb6
...
...
@@ -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
));
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment