Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
844c4efb
Commit
844c4efb
authored
Apr 02, 2015
by
Stefan Dösinger
Committed by
Alexandre Julliard
Apr 03, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wined3d: Give tex_type and its values a better name.
parent
846febbc
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
95 additions
and
82 deletions
+95
-82
arb_program_shader.c
dlls/wined3d/arb_program_shader.c
+39
-26
glsl_shader.c
dlls/wined3d/glsl_shader.c
+28
-27
shader.c
dlls/wined3d/shader.c
+1
-1
surface.c
dlls/wined3d/surface.c
+9
-9
utils.c
dlls/wined3d/utils.c
+8
-8
wined3d_private.h
dlls/wined3d/wined3d_private.h
+10
-11
No files found.
dlls/wined3d/arb_program_shader.c
View file @
844c4efb
...
...
@@ -314,8 +314,8 @@ struct shader_arb_priv
const
struct
arb_ps_compiled_shader
*
compiled_fprog
;
const
struct
arb_vs_compiled_shader
*
compiled_vprog
;
GLuint
depth_blt_vprogram_id
;
GLuint
depth_blt_fprogram_id_full
[
tex_type_count
];
GLuint
depth_blt_fprogram_id_masked
[
tex_type_count
];
GLuint
depth_blt_fprogram_id_full
[
WINED3D_GL_RES_TYPE_COUNT
];
GLuint
depth_blt_fprogram_id_masked
[
WINED3D_GL_RES_TYPE_COUNT
];
BOOL
use_arbfp_fixed_func
;
struct
wine_rb_tree
fragment_shaders
;
BOOL
last_ps_const_clamped
;
...
...
@@ -3320,31 +3320,31 @@ static GLuint create_arb_blt_vertex_program(const struct wined3d_gl_info *gl_inf
/* Context activation is done by the caller. */
static
GLuint
create_arb_blt_fragment_program
(
const
struct
wined3d_gl_info
*
gl_info
,
enum
tex_types
tex_type
,
BOOL
masked
)
enum
wined3d_gl_resource_type
tex_type
,
BOOL
masked
)
{
GLuint
program_id
=
0
;
const
char
*
fprogram
;
GLint
pos
;
static
const
char
*
const
blt_fprograms_full
[
tex_type_count
]
=
static
const
char
*
const
blt_fprograms_full
[
WINED3D_GL_RES_TYPE_COUNT
]
=
{
/*
tex_1d
*/
/*
WINED3D_GL_RES_TYPE_TEX_1D
*/
NULL
,
/*
tex_2d
*/
/*
WINED3D_GL_RES_TYPE_TEX_2D
*/
"!!ARBfp1.0
\n
"
"TEMP R0;
\n
"
"TEX R0.x, fragment.texcoord[0], texture[0], 2D;
\n
"
"MOV result.depth.z, R0.x;
\n
"
"END
\n
"
,
/*
tex_3d
*/
/*
WINED3D_GL_RES_TYPE_TEX_3D
*/
NULL
,
/*
tex_cube
*/
/*
WINED3D_GL_RES_TYPE_TEX_CUBE
*/
"!!ARBfp1.0
\n
"
"TEMP R0;
\n
"
"TEX R0.x, fragment.texcoord[0], texture[0], CUBE;
\n
"
"MOV result.depth.z, R0.x;
\n
"
"END
\n
"
,
/*
tex_rect
*/
/*
WINED3D_GL_RES_TYPE_TEX_RECT
*/
"!!ARBfp1.0
\n
"
"TEMP R0;
\n
"
"TEX R0.x, fragment.texcoord[0], texture[0], RECT;
\n
"
...
...
@@ -3352,11 +3352,11 @@ static GLuint create_arb_blt_fragment_program(const struct wined3d_gl_info *gl_i
"END
\n
"
,
};
static
const
char
*
const
blt_fprograms_masked
[
tex_type_count
]
=
static
const
char
*
const
blt_fprograms_masked
[
WINED3D_GL_RES_TYPE_COUNT
]
=
{
/*
tex_1d
*/
/*
WINED3D_GL_RES_TYPE_TEX_1D
*/
NULL
,
/*
tex_2d
*/
/*
WINED3D_GL_RES_TYPE_TEX_2D
*/
"!!ARBfp1.0
\n
"
"PARAM mask = program.local[0];
\n
"
"TEMP R0;
\n
"
...
...
@@ -3366,9 +3366,9 @@ static GLuint create_arb_blt_fragment_program(const struct wined3d_gl_info *gl_i
"TEX R0.x, fragment.texcoord[0], texture[0], 2D;
\n
"
"MOV result.depth.z, R0.x;
\n
"
"END
\n
"
,
/*
tex_3d
*/
/*
WINED3D_GL_RES_TYPE_TEX_3D
*/
NULL
,
/*
tex_cube
*/
/*
WINED3D_GL_RES_TYPE_TEX_CUBE
*/
"!!ARBfp1.0
\n
"
"PARAM mask = program.local[0];
\n
"
"TEMP R0;
\n
"
...
...
@@ -3378,7 +3378,7 @@ static GLuint create_arb_blt_fragment_program(const struct wined3d_gl_info *gl_i
"TEX R0.x, fragment.texcoord[0], texture[0], CUBE;
\n
"
"MOV result.depth.z, R0.x;
\n
"
"END
\n
"
,
/*
tex_rect
*/
/*
WINED3D_GL_RES_TYPE_TEX_RECT
*/
"!!ARBfp1.0
\n
"
"PARAM mask = program.local[0];
\n
"
"TEMP R0;
\n
"
...
...
@@ -3393,8 +3393,8 @@ static GLuint create_arb_blt_fragment_program(const struct wined3d_gl_info *gl_i
fprogram
=
masked
?
blt_fprograms_masked
[
tex_type
]
:
blt_fprograms_full
[
tex_type
];
if
(
!
fprogram
)
{
FIXME
(
"tex_type %#x not supported, falling back to
tex_2d
\n
"
,
tex_type
);
tex_type
=
tex_2d
;
FIXME
(
"tex_type %#x not supported, falling back to
2D
\n
"
,
tex_type
);
tex_type
=
WINED3D_GL_RES_TYPE_TEX_2D
;
fprogram
=
masked
?
blt_fprograms_masked
[
tex_type
]
:
blt_fprograms_full
[
tex_type
];
}
...
...
@@ -4836,7 +4836,7 @@ static void shader_arb_disable(void *shader_priv, struct wined3d_context *contex
/* Context activation is done by the caller. */
static
void
shader_arb_select_depth_blt
(
void
*
shader_priv
,
const
struct
wined3d_gl_info
*
gl_info
,
enum
tex_types
tex_type
,
const
SIZE
*
ds_mask_size
)
enum
wined3d_gl_resource_type
tex_type
,
const
SIZE
*
ds_mask_size
)
{
const
float
mask
[]
=
{
0
.
0
f
,
0
.
0
f
,
(
float
)
ds_mask_size
->
cx
,
(
float
)
ds_mask_size
->
cy
};
BOOL
masked
=
ds_mask_size
->
cx
&&
ds_mask_size
->
cy
;
...
...
@@ -5039,7 +5039,7 @@ static void shader_arb_free(struct wined3d_device *device)
if
(
priv
->
depth_blt_vprogram_id
)
GL_EXTCALL
(
glDeleteProgramsARB
(
1
,
&
priv
->
depth_blt_vprogram_id
));
for
(
i
=
0
;
i
<
tex_type_count
;
++
i
)
for
(
i
=
0
;
i
<
WINED3D_GL_RES_TYPE_COUNT
;
++
i
)
{
if
(
priv
->
depth_blt_fprogram_id_full
[
i
])
{
...
...
@@ -6345,13 +6345,26 @@ static GLuint gen_arbfp_ffp_shader(const struct ffp_frag_settings *settings, con
if
(
!
tex_read
[
stage
])
continue
;
switch
(
settings
->
op
[
stage
].
tex_type
)
{
case
tex_1d
:
textype
=
"1D"
;
break
;
case
tex_2d
:
textype
=
"2D"
;
break
;
case
tex_3d
:
textype
=
"3D"
;
break
;
case
tex_cube
:
textype
=
"CUBE"
;
break
;
case
tex_rect
:
textype
=
"RECT"
;
break
;
default:
textype
=
"unexpected_textype"
;
break
;
switch
(
settings
->
op
[
stage
].
tex_type
)
{
case
WINED3D_GL_RES_TYPE_TEX_1D
:
textype
=
"1D"
;
break
;
case
WINED3D_GL_RES_TYPE_TEX_2D
:
textype
=
"2D"
;
break
;
case
WINED3D_GL_RES_TYPE_TEX_3D
:
textype
=
"3D"
;
break
;
case
WINED3D_GL_RES_TYPE_TEX_CUBE
:
textype
=
"CUBE"
;
break
;
case
WINED3D_GL_RES_TYPE_TEX_RECT
:
textype
=
"RECT"
;
break
;
default:
textype
=
"unexpected_textype"
;
break
;
}
if
(
settings
->
op
[
stage
].
projected
==
proj_none
)
{
...
...
dlls/wined3d/glsl_shader.c
View file @
844c4efb
...
...
@@ -96,8 +96,8 @@ struct shader_glsl_priv {
struct
constant_heap
vconst_heap
;
struct
constant_heap
pconst_heap
;
unsigned
char
*
stack
;
GLuint
depth_blt_program_full
[
tex_type_count
];
GLuint
depth_blt_program_masked
[
tex_type_count
];
GLuint
depth_blt_program_full
[
WINED3D_GL_RES_TYPE_COUNT
];
GLuint
depth_blt_program_masked
[
WINED3D_GL_RES_TYPE_COUNT
];
UINT
next_constant_version
;
const
struct
wined3d_vertex_pipe_ops
*
vertex_pipe
;
...
...
@@ -5570,19 +5570,19 @@ static GLuint shader_glsl_generate_ffp_fragment_shader(struct wined3d_shader_buf
switch
(
settings
->
op
[
stage
].
tex_type
)
{
case
tex_1d
:
case
WINED3D_GL_RES_TYPE_TEX_1D
:
shader_addline
(
buffer
,
"uniform sampler1D ps_sampler%u;
\n
"
,
stage
);
break
;
case
tex_2d
:
case
WINED3D_GL_RES_TYPE_TEX_2D
:
shader_addline
(
buffer
,
"uniform sampler2D ps_sampler%u;
\n
"
,
stage
);
break
;
case
tex_3d
:
case
WINED3D_GL_RES_TYPE_TEX_3D
:
shader_addline
(
buffer
,
"uniform sampler3D ps_sampler%u;
\n
"
,
stage
);
break
;
case
tex_cube
:
case
WINED3D_GL_RES_TYPE_TEX_CUBE
:
shader_addline
(
buffer
,
"uniform samplerCube ps_sampler%u;
\n
"
,
stage
);
break
;
case
tex_rect
:
case
WINED3D_GL_RES_TYPE_TEX_RECT
:
shader_addline
(
buffer
,
"uniform sampler2DRect ps_sampler%u;
\n
"
,
stage
);
break
;
default:
...
...
@@ -5647,7 +5647,7 @@ static GLuint shader_glsl_generate_ffp_fragment_shader(struct wined3d_shader_buf
switch
(
settings
->
op
[
stage
].
tex_type
)
{
case
tex_1d
:
case
WINED3D_GL_RES_TYPE_TEX_1D
:
if
(
proj
)
{
texture_function
=
"texture1DProj"
;
...
...
@@ -5659,7 +5659,7 @@ static GLuint shader_glsl_generate_ffp_fragment_shader(struct wined3d_shader_buf
coord_mask
=
"x"
;
}
break
;
case
tex_2d
:
case
WINED3D_GL_RES_TYPE_TEX_2D
:
if
(
proj
)
{
texture_function
=
"texture2DProj"
;
...
...
@@ -5671,7 +5671,7 @@ static GLuint shader_glsl_generate_ffp_fragment_shader(struct wined3d_shader_buf
coord_mask
=
"xy"
;
}
break
;
case
tex_3d
:
case
WINED3D_GL_RES_TYPE_TEX_3D
:
if
(
proj
)
{
texture_function
=
"texture3DProj"
;
...
...
@@ -5683,11 +5683,11 @@ static GLuint shader_glsl_generate_ffp_fragment_shader(struct wined3d_shader_buf
coord_mask
=
"xyz"
;
}
break
;
case
tex_cube
:
case
WINED3D_GL_RES_TYPE_TEX_CUBE
:
texture_function
=
"textureCube"
;
coord_mask
=
"xyz"
;
break
;
case
tex_rect
:
case
WINED3D_GL_RES_TYPE_TEX_RECT
:
if
(
proj
)
{
texture_function
=
"texture2DRectProj"
;
...
...
@@ -6249,7 +6249,8 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const
}
/* Context activation is done by the caller. */
static
GLuint
create_glsl_blt_shader
(
const
struct
wined3d_gl_info
*
gl_info
,
enum
tex_types
tex_type
,
BOOL
masked
)
static
GLuint
create_glsl_blt_shader
(
const
struct
wined3d_gl_info
*
gl_info
,
enum
wined3d_gl_resource_type
tex_type
,
BOOL
masked
)
{
GLuint
program_id
;
GLuint
vshader_id
,
pshader_id
;
...
...
@@ -6264,27 +6265,27 @@ static GLuint create_glsl_blt_shader(const struct wined3d_gl_info *gl_info, enum
" gl_TexCoord[0] = gl_MultiTexCoord0;
\n
"
"}
\n
"
;
static
const
char
*
const
blt_pshaders_full
[
tex_type_count
]
=
static
const
char
*
const
blt_pshaders_full
[
WINED3D_GL_RES_TYPE_COUNT
]
=
{
/*
tex_1d
*/
/*
WINED3D_GL_RES_TYPE_TEX_1D
*/
NULL
,
/*
tex_2d
*/
/*
WINED3D_GL_RES_TYPE_TEX_2D
*/
"#version 120
\n
"
"uniform sampler2D sampler;
\n
"
"void main(void)
\n
"
"{
\n
"
" gl_FragDepth = texture2D(sampler, gl_TexCoord[0].xy).x;
\n
"
"}
\n
"
,
/*
tex_3d
*/
/*
WINED3D_GL_RES_TYPE_TEX_3D
*/
NULL
,
/*
tex_cube
*/
/*
WINED3D_GL_RES_TYPE_TEX_CUBE
*/
"#version 120
\n
"
"uniform samplerCube sampler;
\n
"
"void main(void)
\n
"
"{
\n
"
" gl_FragDepth = textureCube(sampler, gl_TexCoord[0].xyz).x;
\n
"
"}
\n
"
,
/*
tex_rect
*/
/*
WINED3D_GL_RES_TYPE_TEX_RECT
*/
"#version 120
\n
"
"#extension GL_ARB_texture_rectangle : enable
\n
"
"uniform sampler2DRect sampler;
\n
"
...
...
@@ -6294,11 +6295,11 @@ static GLuint create_glsl_blt_shader(const struct wined3d_gl_info *gl_info, enum
"}
\n
"
,
};
static
const
char
*
const
blt_pshaders_masked
[
tex_type_count
]
=
static
const
char
*
const
blt_pshaders_masked
[
WINED3D_GL_RES_TYPE_COUNT
]
=
{
/*
tex_1d
*/
/*
WINED3D_GL_RES_TYPE_TEX_1D
*/
NULL
,
/*
tex_2d
*/
/*
WINED3D_GL_RES_TYPE_TEX_2D
*/
"#version 120
\n
"
"uniform sampler2D sampler;
\n
"
"uniform vec4 mask;
\n
"
...
...
@@ -6307,9 +6308,9 @@ static GLuint create_glsl_blt_shader(const struct wined3d_gl_info *gl_info, enum
" if (all(lessThan(gl_FragCoord.xy, mask.zw))) discard;
\n
"
" gl_FragDepth = texture2D(sampler, gl_TexCoord[0].xy).x;
\n
"
"}
\n
"
,
/*
tex_3d
*/
/*
WINED3D_GL_RES_TYPE_TEX_3D
*/
NULL
,
/*
tex_cube
*/
/*
WINED3D_GL_RES_TYPE_TEX_CUBE
*/
"#version 120
\n
"
"uniform samplerCube sampler;
\n
"
"uniform vec4 mask;
\n
"
...
...
@@ -6318,7 +6319,7 @@ static GLuint create_glsl_blt_shader(const struct wined3d_gl_info *gl_info, enum
" if (all(lessThan(gl_FragCoord.xy, mask.zw))) discard;
\n
"
" gl_FragDepth = textureCube(sampler, gl_TexCoord[0].xyz).x;
\n
"
"}
\n
"
,
/*
tex_rect
*/
/*
WINED3D_GL_RES_TYPE_TEX_RECT
*/
"#version 120
\n
"
"#extension GL_ARB_texture_rectangle : enable
\n
"
"uniform sampler2DRect sampler;
\n
"
...
...
@@ -6453,7 +6454,7 @@ static void shader_glsl_disable(void *shader_priv, struct wined3d_context *conte
/* Context activation is done by the caller. */
static
void
shader_glsl_select_depth_blt
(
void
*
shader_priv
,
const
struct
wined3d_gl_info
*
gl_info
,
enum
tex_types
tex_type
,
const
SIZE
*
ds_mask_size
)
enum
wined3d_gl_resource_type
tex_type
,
const
SIZE
*
ds_mask_size
)
{
BOOL
masked
=
ds_mask_size
->
cx
&&
ds_mask_size
->
cy
;
struct
shader_glsl_priv
*
priv
=
shader_priv
;
...
...
@@ -6756,7 +6757,7 @@ static void shader_glsl_free(struct wined3d_device *device)
struct
shader_glsl_priv
*
priv
=
device
->
shader_priv
;
int
i
;
for
(
i
=
0
;
i
<
tex_type_count
;
++
i
)
for
(
i
=
0
;
i
<
WINED3D_GL_RES_TYPE_COUNT
;
++
i
)
{
if
(
priv
->
depth_blt_program_full
[
i
])
{
...
...
dlls/wined3d/shader.c
View file @
844c4efb
...
...
@@ -1837,7 +1837,7 @@ struct shader_none_priv
static
void
shader_none_handle_instruction
(
const
struct
wined3d_shader_instruction
*
ins
)
{}
static
void
shader_none_select_depth_blt
(
void
*
shader_priv
,
const
struct
wined3d_gl_info
*
gl_info
,
enum
tex_types
tex_type
,
const
SIZE
*
ds_mask_size
)
{}
enum
wined3d_gl_resource_type
tex_type
,
const
SIZE
*
ds_mask_size
)
{}
static
void
shader_none_deselect_depth_blt
(
void
*
shader_priv
,
const
struct
wined3d_gl_info
*
gl_info
)
{}
static
void
shader_none_update_float_vertex_constants
(
struct
wined3d_device
*
device
,
UINT
start
,
UINT
count
)
{}
static
void
shader_none_update_float_pixel_constants
(
struct
wined3d_device
*
device
,
UINT
start
,
UINT
count
)
{}
...
...
dlls/wined3d/surface.c
View file @
844c4efb
...
...
@@ -146,7 +146,7 @@ struct blt_info
{
GLenum
binding
;
GLenum
bind_target
;
enum
tex_types
tex_type
;
enum
wined3d_gl_resource_type
tex_type
;
GLfloat
coords
[
4
][
3
];
};
...
...
@@ -179,7 +179,7 @@ static void surface_get_blt_info(GLenum target, const RECT *rect, GLsizei w, GLs
case
GL_TEXTURE_2D
:
info
->
binding
=
GL_TEXTURE_BINDING_2D
;
info
->
bind_target
=
GL_TEXTURE_2D
;
info
->
tex_type
=
tex_2d
;
info
->
tex_type
=
WINED3D_GL_RES_TYPE_TEX_2D
;
coords
[
0
][
0
]
=
(
float
)
rect
->
left
/
w
;
coords
[
0
][
1
]
=
(
float
)
rect
->
top
/
h
;
coords
[
0
][
2
]
=
0
.
0
f
;
...
...
@@ -200,7 +200,7 @@ static void surface_get_blt_info(GLenum target, const RECT *rect, GLsizei w, GLs
case
GL_TEXTURE_RECTANGLE_ARB
:
info
->
binding
=
GL_TEXTURE_BINDING_RECTANGLE_ARB
;
info
->
bind_target
=
GL_TEXTURE_RECTANGLE_ARB
;
info
->
tex_type
=
tex_rect
;
info
->
tex_type
=
WINED3D_GL_RES_TYPE_TEX_RECT
;
coords
[
0
][
0
]
=
rect
->
left
;
coords
[
0
][
1
]
=
rect
->
top
;
coords
[
0
][
2
]
=
0
.
0
f
;
coords
[
1
][
0
]
=
rect
->
right
;
coords
[
1
][
1
]
=
rect
->
top
;
coords
[
1
][
2
]
=
0
.
0
f
;
coords
[
2
][
0
]
=
rect
->
left
;
coords
[
2
][
1
]
=
rect
->
bottom
;
coords
[
2
][
2
]
=
0
.
0
f
;
...
...
@@ -210,7 +210,7 @@ static void surface_get_blt_info(GLenum target, const RECT *rect, GLsizei w, GLs
case
GL_TEXTURE_CUBE_MAP_POSITIVE_X
:
info
->
binding
=
GL_TEXTURE_BINDING_CUBE_MAP_ARB
;
info
->
bind_target
=
GL_TEXTURE_CUBE_MAP_ARB
;
info
->
tex_type
=
tex_cube
;
info
->
tex_type
=
WINED3D_GL_RES_TYPE_TEX_CUBE
;
cube_coords_float
(
rect
,
w
,
h
,
&
f
);
coords
[
0
][
0
]
=
1
.
0
f
;
coords
[
0
][
1
]
=
-
f
.
t
;
coords
[
0
][
2
]
=
-
f
.
l
;
...
...
@@ -222,7 +222,7 @@ static void surface_get_blt_info(GLenum target, const RECT *rect, GLsizei w, GLs
case
GL_TEXTURE_CUBE_MAP_NEGATIVE_X
:
info
->
binding
=
GL_TEXTURE_BINDING_CUBE_MAP_ARB
;
info
->
bind_target
=
GL_TEXTURE_CUBE_MAP_ARB
;
info
->
tex_type
=
tex_cube
;
info
->
tex_type
=
WINED3D_GL_RES_TYPE_TEX_CUBE
;
cube_coords_float
(
rect
,
w
,
h
,
&
f
);
coords
[
0
][
0
]
=
-
1
.
0
f
;
coords
[
0
][
1
]
=
-
f
.
t
;
coords
[
0
][
2
]
=
f
.
l
;
...
...
@@ -234,7 +234,7 @@ static void surface_get_blt_info(GLenum target, const RECT *rect, GLsizei w, GLs
case
GL_TEXTURE_CUBE_MAP_POSITIVE_Y
:
info
->
binding
=
GL_TEXTURE_BINDING_CUBE_MAP_ARB
;
info
->
bind_target
=
GL_TEXTURE_CUBE_MAP_ARB
;
info
->
tex_type
=
tex_cube
;
info
->
tex_type
=
WINED3D_GL_RES_TYPE_TEX_CUBE
;
cube_coords_float
(
rect
,
w
,
h
,
&
f
);
coords
[
0
][
0
]
=
f
.
l
;
coords
[
0
][
1
]
=
1
.
0
f
;
coords
[
0
][
2
]
=
f
.
t
;
...
...
@@ -246,7 +246,7 @@ static void surface_get_blt_info(GLenum target, const RECT *rect, GLsizei w, GLs
case
GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
:
info
->
binding
=
GL_TEXTURE_BINDING_CUBE_MAP_ARB
;
info
->
bind_target
=
GL_TEXTURE_CUBE_MAP_ARB
;
info
->
tex_type
=
tex_cube
;
info
->
tex_type
=
WINED3D_GL_RES_TYPE_TEX_CUBE
;
cube_coords_float
(
rect
,
w
,
h
,
&
f
);
coords
[
0
][
0
]
=
f
.
l
;
coords
[
0
][
1
]
=
-
1
.
0
f
;
coords
[
0
][
2
]
=
-
f
.
t
;
...
...
@@ -258,7 +258,7 @@ static void surface_get_blt_info(GLenum target, const RECT *rect, GLsizei w, GLs
case
GL_TEXTURE_CUBE_MAP_POSITIVE_Z
:
info
->
binding
=
GL_TEXTURE_BINDING_CUBE_MAP_ARB
;
info
->
bind_target
=
GL_TEXTURE_CUBE_MAP_ARB
;
info
->
tex_type
=
tex_cube
;
info
->
tex_type
=
WINED3D_GL_RES_TYPE_TEX_CUBE
;
cube_coords_float
(
rect
,
w
,
h
,
&
f
);
coords
[
0
][
0
]
=
f
.
l
;
coords
[
0
][
1
]
=
-
f
.
t
;
coords
[
0
][
2
]
=
1
.
0
f
;
...
...
@@ -270,7 +270,7 @@ static void surface_get_blt_info(GLenum target, const RECT *rect, GLsizei w, GLs
case
GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
:
info
->
binding
=
GL_TEXTURE_BINDING_CUBE_MAP_ARB
;
info
->
bind_target
=
GL_TEXTURE_CUBE_MAP_ARB
;
info
->
tex_type
=
tex_cube
;
info
->
tex_type
=
WINED3D_GL_RES_TYPE_TEX_CUBE
;
cube_coords_float
(
rect
,
w
,
h
,
&
f
);
coords
[
0
][
0
]
=
-
f
.
l
;
coords
[
0
][
1
]
=
-
f
.
t
;
coords
[
0
][
2
]
=
-
1
.
0
f
;
...
...
dlls/wined3d/utils.c
View file @
844c4efb
...
...
@@ -3637,7 +3637,7 @@ void gen_ffp_frag_op(const struct wined3d_context *context, const struct wined3d
settings
->
op
[
i
].
aarg0
=
settings
->
op
[
i
].
aarg1
=
settings
->
op
[
i
].
aarg2
=
ARG_UNUSED
;
settings
->
op
[
i
].
color_fixup
=
COLOR_FIXUP_IDENTITY
;
settings
->
op
[
i
].
dst
=
resultreg
;
settings
->
op
[
i
].
tex_type
=
tex_1d
;
settings
->
op
[
i
].
tex_type
=
WINED3D_GL_RES_TYPE_TEX_1D
;
settings
->
op
[
i
].
projected
=
proj_none
;
i
++
;
break
;
...
...
@@ -3648,32 +3648,32 @@ void gen_ffp_frag_op(const struct wined3d_context *context, const struct wined3d
settings
->
op
[
i
].
color_fixup
=
texture
->
resource
.
format
->
color_fixup
;
if
(
ignore_textype
)
{
settings
->
op
[
i
].
tex_type
=
tex_1d
;
settings
->
op
[
i
].
tex_type
=
WINED3D_GL_RES_TYPE_TEX_1D
;
}
else
{
switch
(
texture
->
target
)
{
case
GL_TEXTURE_1D
:
settings
->
op
[
i
].
tex_type
=
tex_1d
;
settings
->
op
[
i
].
tex_type
=
WINED3D_GL_RES_TYPE_TEX_1D
;
break
;
case
GL_TEXTURE_2D
:
settings
->
op
[
i
].
tex_type
=
tex_2d
;
settings
->
op
[
i
].
tex_type
=
WINED3D_GL_RES_TYPE_TEX_2D
;
break
;
case
GL_TEXTURE_3D
:
settings
->
op
[
i
].
tex_type
=
tex_3d
;
settings
->
op
[
i
].
tex_type
=
WINED3D_GL_RES_TYPE_TEX_3D
;
break
;
case
GL_TEXTURE_CUBE_MAP_ARB
:
settings
->
op
[
i
].
tex_type
=
tex_cube
;
settings
->
op
[
i
].
tex_type
=
WINED3D_GL_RES_TYPE_TEX_CUBE
;
break
;
case
GL_TEXTURE_RECTANGLE_ARB
:
settings
->
op
[
i
].
tex_type
=
tex_rect
;
settings
->
op
[
i
].
tex_type
=
WINED3D_GL_RES_TYPE_TEX_RECT
;
break
;
}
}
}
else
{
settings
->
op
[
i
].
color_fixup
=
COLOR_FIXUP_IDENTITY
;
settings
->
op
[
i
].
tex_type
=
tex_1d
;
settings
->
op
[
i
].
tex_type
=
WINED3D_GL_RES_TYPE_TEX_1D
;
}
cop
=
state
->
texture_states
[
i
][
WINED3D_TSS_COLOR_OP
];
...
...
dlls/wined3d/wined3d_private.h
View file @
844c4efb
...
...
@@ -772,14 +772,14 @@ struct shader_caps
DWORD
wined3d_caps
;
};
enum
tex_types
enum
wined3d_gl_resource_type
{
tex_1d
=
0
,
tex_2d
=
1
,
tex_3d
=
2
,
tex_cube
=
3
,
tex_rect
=
4
,
tex_type_count
=
5
,
WINED3D_GL_RES_TYPE_TEX_1D
=
0
,
WINED3D_GL_RES_TYPE_TEX_2D
=
1
,
WINED3D_GL_RES_TYPE_TEX_3D
=
2
,
WINED3D_GL_RES_TYPE_TEX_CUBE
=
3
,
WINED3D_GL_RES_TYPE_TEX_RECT
=
4
,
WINED3D_GL_RES_TYPE_COUNT
=
5
,
};
enum
vertexprocessing_mode
{
...
...
@@ -808,9 +808,8 @@ enum wined3d_ffp_ps_fog_mode
#define WINED3D_PSARGS_TEXTYPE_SHIFT 2
#define WINED3D_PSARGS_TEXTYPE_MASK 0x3
/* Similar to tex_types, except that it doesn't have 1d textures
* (can't be bound), rect textures (handled via np2_fixup) and
* none / unknown (treated as 2d and handled via dummy textures). */
/* Used for Shader Model 1 pixel shaders to track the bound texture
* type. 2D and RECT textures are separated through NP2 fixup. */
enum
wined3d_shader_tex_types
{
WINED3D_SHADER_TEX_2D
=
0
,
...
...
@@ -855,7 +854,7 @@ struct wined3d_shader_backend_ops
const
struct
wined3d_state
*
state
);
void
(
*
shader_disable
)(
void
*
shader_priv
,
struct
wined3d_context
*
context
);
void
(
*
shader_select_depth_blt
)(
void
*
shader_priv
,
const
struct
wined3d_gl_info
*
gl_info
,
enum
tex_types
tex_type
,
const
SIZE
*
ds_mask_size
);
enum
wined3d_gl_resource_type
tex_type
,
const
SIZE
*
ds_mask_size
);
void
(
*
shader_deselect_depth_blt
)(
void
*
shader_priv
,
const
struct
wined3d_gl_info
*
gl_info
);
void
(
*
shader_update_float_vertex_constants
)(
struct
wined3d_device
*
device
,
UINT
start
,
UINT
count
);
void
(
*
shader_update_float_pixel_constants
)(
struct
wined3d_device
*
device
,
UINT
start
,
UINT
count
);
...
...
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