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
922ad80f
Commit
922ad80f
authored
Mar 02, 2010
by
Roderick Colenbrander
Committed by
Alexandre Julliard
Mar 03, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wined3d: Rename yuv to complex in order to prepare for 8-bit palette fixups using the same code.
parent
2d76bf2e
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
69 additions
and
69 deletions
+69
-69
arb_program_shader.c
dlls/wined3d/arb_program_shader.c
+31
-31
glsl_shader.c
dlls/wined3d/glsl_shader.c
+4
-4
shader.c
dlls/wined3d/shader.c
+1
-1
utils.c
dlls/wined3d/utils.c
+13
-13
wined3d_private.h
dlls/wined3d/wined3d_private.h
+20
-20
No files found.
dlls/wined3d/arb_program_shader.c
View file @
922ad80f
...
...
@@ -1161,10 +1161,10 @@ static void gen_color_correction(struct wined3d_shader_buffer *buffer, const cha
{
DWORD
mask
;
if
(
is_
yuv
_fixup
(
fixup
))
if
(
is_
complex
_fixup
(
fixup
))
{
enum
yuv_fixup
yuv_fixup
=
get_yuv
_fixup
(
fixup
);
FIXME
(
"
YUV fixup (%#x) not supported
\n
"
,
yuv
_fixup
);
enum
complex_fixup
complex_fixup
=
get_complex
_fixup
(
fixup
);
FIXME
(
"
Complex fixup (%#x) not supported
\n
"
,
complex
_fixup
);
return
;
}
...
...
@@ -4673,8 +4673,8 @@ static BOOL shader_arb_color_fixup_supported(struct color_fixup_desc fixup)
dump_color_fixup_desc
(
fixup
);
}
/* We support everything except
YUV
conversions. */
if
(
!
is_
yuv
_fixup
(
fixup
))
/* We support everything except
complex
conversions. */
if
(
!
is_
complex
_fixup
(
fixup
))
{
TRACE
(
"[OK]
\n
"
);
return
TRUE
;
...
...
@@ -6260,13 +6260,13 @@ static void arbfp_blit_free(IWineD3DDevice *iface) {
device
->
blit_priv
=
NULL
;
}
static
BOOL
gen_planar_yuv_read
(
struct
wined3d_shader_buffer
*
buffer
,
enum
yuv_fixup
yuv_
fixup
,
static
BOOL
gen_planar_yuv_read
(
struct
wined3d_shader_buffer
*
buffer
,
enum
complex_fixup
fixup
,
GLenum
textype
,
char
*
luminance
)
{
char
chroma
;
const
char
*
tex
,
*
texinstr
;
if
(
yuv_fixup
==
YUV
_FIXUP_UYVY
)
{
if
(
fixup
==
COMPLEX
_FIXUP_UYVY
)
{
chroma
=
'x'
;
*
luminance
=
'w'
;
}
else
{
...
...
@@ -6495,7 +6495,7 @@ static BOOL gen_yv12_read(struct wined3d_shader_buffer *buffer, GLenum textype,
}
/* Context activation is done by the caller. */
static
GLuint
gen_yuv_shader
(
IWineD3DDeviceImpl
*
device
,
enum
yuv
_fixup
yuv_fixup
,
GLenum
textype
)
static
GLuint
gen_yuv_shader
(
IWineD3DDeviceImpl
*
device
,
enum
complex
_fixup
yuv_fixup
,
GLenum
textype
)
{
GLenum
shader
;
struct
wined3d_shader_buffer
buffer
;
...
...
@@ -6568,8 +6568,8 @@ static GLuint gen_yuv_shader(IWineD3DDeviceImpl *device, enum yuv_fixup yuv_fixu
switch
(
yuv_fixup
)
{
case
YUV
_FIXUP_UYVY
:
case
YUV
_FIXUP_YUY2
:
case
COMPLEX
_FIXUP_UYVY
:
case
COMPLEX
_FIXUP_YUY2
:
if
(
!
gen_planar_yuv_read
(
&
buffer
,
yuv_fixup
,
textype
,
&
luminance_component
))
{
shader_buffer_free
(
&
buffer
);
...
...
@@ -6577,7 +6577,7 @@ static GLuint gen_yuv_shader(IWineD3DDeviceImpl *device, enum yuv_fixup yuv_fixu
}
break
;
case
YUV
_FIXUP_YV12
:
case
COMPLEX
_FIXUP_YV12
:
if
(
!
gen_yv12_read
(
&
buffer
,
textype
,
&
luminance_component
))
{
shader_buffer_free
(
&
buffer
);
...
...
@@ -6629,17 +6629,17 @@ static GLuint gen_yuv_shader(IWineD3DDeviceImpl *device, enum yuv_fixup yuv_fixu
switch
(
yuv_fixup
)
{
case
YUV
_FIXUP_YUY2
:
case
COMPLEX
_FIXUP_YUY2
:
if
(
textype
==
GL_TEXTURE_RECTANGLE_ARB
)
priv
->
yuy2_rect_shader
=
shader
;
else
priv
->
yuy2_2d_shader
=
shader
;
break
;
case
YUV
_FIXUP_UYVY
:
case
COMPLEX
_FIXUP_UYVY
:
if
(
textype
==
GL_TEXTURE_RECTANGLE_ARB
)
priv
->
uyvy_rect_shader
=
shader
;
else
priv
->
uyvy_2d_shader
=
shader
;
break
;
case
YUV
_FIXUP_YV12
:
case
COMPLEX
_FIXUP_YV12
:
if
(
textype
==
GL_TEXTURE_RECTANGLE_ARB
)
priv
->
yv12_rect_shader
=
shader
;
else
priv
->
yv12_2d_shader
=
shader
;
break
;
...
...
@@ -6656,9 +6656,9 @@ static HRESULT arbfp_blit_set(IWineD3DDevice *iface, const struct GlPixelFormatD
IWineD3DDeviceImpl
*
device
=
(
IWineD3DDeviceImpl
*
)
iface
;
float
size
[
4
]
=
{
width
,
height
,
1
,
1
};
struct
arbfp_blit_priv
*
priv
=
device
->
blit_priv
;
enum
yuv_fixup
yuv_
fixup
;
enum
complex_fixup
fixup
;
if
(
!
is_
yuv
_fixup
(
format_desc
->
color_fixup
))
if
(
!
is_
complex
_fixup
(
format_desc
->
color_fixup
))
{
TRACE
(
"Fixup:
\n
"
);
dump_color_fixup_desc
(
format_desc
->
color_fixup
);
...
...
@@ -6670,24 +6670,24 @@ static HRESULT arbfp_blit_set(IWineD3DDevice *iface, const struct GlPixelFormatD
return
WINED3D_OK
;
}
yuv_fixup
=
get_yuv
_fixup
(
format_desc
->
color_fixup
);
fixup
=
get_complex
_fixup
(
format_desc
->
color_fixup
);
switch
(
yuv_
fixup
)
switch
(
fixup
)
{
case
YUV
_FIXUP_YUY2
:
case
COMPLEX
_FIXUP_YUY2
:
shader
=
textype
==
GL_TEXTURE_RECTANGLE_ARB
?
priv
->
yuy2_rect_shader
:
priv
->
yuy2_2d_shader
;
break
;
case
YUV
_FIXUP_UYVY
:
case
COMPLEX
_FIXUP_UYVY
:
shader
=
textype
==
GL_TEXTURE_RECTANGLE_ARB
?
priv
->
uyvy_rect_shader
:
priv
->
uyvy_2d_shader
;
break
;
case
YUV
_FIXUP_YV12
:
case
COMPLEX
_FIXUP_YV12
:
shader
=
textype
==
GL_TEXTURE_RECTANGLE_ARB
?
priv
->
yv12_rect_shader
:
priv
->
yv12_2d_shader
;
break
;
default:
FIXME
(
"Unsupported YUV fixup %#x, not setting a shader
\n
"
,
yuv_
fixup
);
FIXME
(
"Unsupported YUV fixup %#x, not setting a shader
\n
"
,
fixup
);
ENTER_GL
();
glEnable
(
textype
);
checkGLcall
(
"glEnable(textype)"
);
...
...
@@ -6695,7 +6695,7 @@ static HRESULT arbfp_blit_set(IWineD3DDevice *iface, const struct GlPixelFormatD
return
E_NOTIMPL
;
}
if
(
!
shader
)
shader
=
gen_yuv_shader
(
device
,
yuv_
fixup
,
textype
);
if
(
!
shader
)
shader
=
gen_yuv_shader
(
device
,
fixup
,
textype
);
ENTER_GL
();
glEnable
(
GL_FRAGMENT_PROGRAM_ARB
);
...
...
@@ -6734,7 +6734,7 @@ static void arbfp_blit_unset(IWineD3DDevice *iface) {
static
BOOL
arbfp_blit_color_fixup_supported
(
struct
color_fixup_desc
fixup
)
{
enum
yuv_fixup
yuv
_fixup
;
enum
complex_fixup
complex
_fixup
;
if
(
TRACE_ON
(
d3d_shader
)
&&
TRACE_ON
(
d3d
))
{
...
...
@@ -6749,23 +6749,23 @@ static BOOL arbfp_blit_color_fixup_supported(struct color_fixup_desc fixup)
}
/* We only support YUV conversions. */
if
(
!
is_
yuv
_fixup
(
fixup
))
if
(
!
is_
complex
_fixup
(
fixup
))
{
TRACE
(
"[FAILED]
\n
"
);
return
FALSE
;
}
yuv_fixup
=
get_yuv
_fixup
(
fixup
);
switch
(
yuv
_fixup
)
complex_fixup
=
get_complex
_fixup
(
fixup
);
switch
(
complex
_fixup
)
{
case
YUV
_FIXUP_YUY2
:
case
YUV
_FIXUP_UYVY
:
case
YUV
_FIXUP_YV12
:
case
COMPLEX
_FIXUP_YUY2
:
case
COMPLEX
_FIXUP_UYVY
:
case
COMPLEX
_FIXUP_YV12
:
TRACE
(
"[OK]
\n
"
);
return
TRUE
;
default:
FIXME
(
"Unsupported YUV fixup %#x
\n
"
,
yuv
_fixup
);
FIXME
(
"Unsupported YUV fixup %#x
\n
"
,
complex
_fixup
);
TRACE
(
"[FAILED]
\n
"
);
return
FALSE
;
}
...
...
dlls/wined3d/glsl_shader.c
View file @
922ad80f
...
...
@@ -1829,10 +1829,10 @@ static void shader_glsl_color_correction(const struct wined3d_shader_instruction
if
(
!
mask
)
return
;
/* Nothing to do */
if
(
is_
yuv
_fixup
(
fixup
))
if
(
is_
complex
_fixup
(
fixup
))
{
enum
yuv_fixup
yuv_fixup
=
get_yuv
_fixup
(
fixup
);
FIXME
(
"
YUV fixup (%#x) not supported
\n
"
,
yuv
_fixup
);
enum
complex_fixup
complex_fixup
=
get_complex
_fixup
(
fixup
);
FIXME
(
"
Complex fixup (%#x) not supported
\n
"
,
complex
_fixup
);
return
;
}
...
...
@@ -4907,7 +4907,7 @@ static BOOL shader_glsl_color_fixup_supported(struct color_fixup_desc fixup)
}
/* We support everything except YUV conversions. */
if
(
!
is_
yuv
_fixup
(
fixup
))
if
(
!
is_
complex
_fixup
(
fixup
))
{
TRACE
(
"[OK]
\n
"
);
return
TRUE
;
...
...
dlls/wined3d/shader.c
View file @
922ad80f
...
...
@@ -1407,7 +1407,7 @@ static BOOL shader_none_color_fixup_supported(struct color_fixup_desc fixup)
}
/* Faked to make some apps happy. */
if
(
!
is_
yuv
_fixup
(
fixup
))
if
(
!
is_
complex
_fixup
(
fixup
))
{
TRACE
(
"[OK]
\n
"
);
return
TRUE
;
...
...
dlls/wined3d/utils.c
View file @
922ad80f
...
...
@@ -1088,15 +1088,15 @@ static void apply_format_fixups(struct wined3d_gl_info *gl_info)
if
(
!
gl_info
->
supported
[
APPLE_YCBCR_422
])
{
idx
=
getFmtIdx
(
WINED3DFMT_YUY2
);
gl_info
->
gl_formats
[
idx
].
color_fixup
=
create_
yuv_fixup_desc
(
YUV
_FIXUP_YUY2
);
gl_info
->
gl_formats
[
idx
].
color_fixup
=
create_
complex_fixup_desc
(
COMPLEX
_FIXUP_YUY2
);
idx
=
getFmtIdx
(
WINED3DFMT_UYVY
);
gl_info
->
gl_formats
[
idx
].
color_fixup
=
create_
yuv_fixup_desc
(
YUV
_FIXUP_UYVY
);
gl_info
->
gl_formats
[
idx
].
color_fixup
=
create_
complex_fixup_desc
(
COMPLEX
_FIXUP_UYVY
);
}
idx
=
getFmtIdx
(
WINED3DFMT_YV12
);
gl_info
->
gl_formats
[
idx
].
heightscale
=
1
.
5
f
;
gl_info
->
gl_formats
[
idx
].
color_fixup
=
create_
yuv_fixup_desc
(
YUV
_FIXUP_YV12
);
gl_info
->
gl_formats
[
idx
].
color_fixup
=
create_
complex_fixup_desc
(
COMPLEX
_FIXUP_YV12
);
if
(
gl_info
->
supported
[
ARB_VERTEX_ARRAY_BGRA
])
{
...
...
@@ -1913,8 +1913,8 @@ static const char *debug_fixup_channel_source(enum fixup_channel_source source)
WINED3D_TO_STR
(
CHANNEL_SOURCE_Y
);
WINED3D_TO_STR
(
CHANNEL_SOURCE_Z
);
WINED3D_TO_STR
(
CHANNEL_SOURCE_W
);
WINED3D_TO_STR
(
CHANNEL_SOURCE_
YUV
0
);
WINED3D_TO_STR
(
CHANNEL_SOURCE_
YUV
1
);
WINED3D_TO_STR
(
CHANNEL_SOURCE_
COMPLEX
0
);
WINED3D_TO_STR
(
CHANNEL_SOURCE_
COMPLEX
1
);
#undef WINED3D_TO_STR
default:
FIXME
(
"Unrecognized fixup_channel_source %#x
\n
"
,
source
);
...
...
@@ -1922,26 +1922,26 @@ static const char *debug_fixup_channel_source(enum fixup_channel_source source)
}
}
static
const
char
*
debug_
yuv_fixup
(
enum
yuv_fixup
yuv_
fixup
)
static
const
char
*
debug_
complex_fixup
(
enum
complex_fixup
fixup
)
{
switch
(
yuv_
fixup
)
switch
(
fixup
)
{
#define WINED3D_TO_STR(x) case x: return #x
WINED3D_TO_STR
(
YUV
_FIXUP_YUY2
);
WINED3D_TO_STR
(
YUV
_FIXUP_UYVY
);
WINED3D_TO_STR
(
YUV
_FIXUP_YV12
);
WINED3D_TO_STR
(
COMPLEX
_FIXUP_YUY2
);
WINED3D_TO_STR
(
COMPLEX
_FIXUP_UYVY
);
WINED3D_TO_STR
(
COMPLEX
_FIXUP_YV12
);
#undef WINED3D_TO_STR
default:
FIXME
(
"Unrecognized
YUV fixup %#x
\n
"
,
yuv_
fixup
);
FIXME
(
"Unrecognized
complex fixup %#x
\n
"
,
fixup
);
return
"unrecognized"
;
}
}
void
dump_color_fixup_desc
(
struct
color_fixup_desc
fixup
)
{
if
(
is_
yuv
_fixup
(
fixup
))
if
(
is_
complex
_fixup
(
fixup
))
{
TRACE
(
"
\t
YUV: %s
\n
"
,
debug_yuv_fixup
(
get_yuv
_fixup
(
fixup
)));
TRACE
(
"
\t
Complex: %s
\n
"
,
debug_complex_fixup
(
get_complex
_fixup
(
fixup
)));
return
;
}
...
...
dlls/wined3d/wined3d_private.h
View file @
922ad80f
...
...
@@ -61,15 +61,15 @@ enum fixup_channel_source
CHANNEL_SOURCE_Y
=
3
,
CHANNEL_SOURCE_Z
=
4
,
CHANNEL_SOURCE_W
=
5
,
CHANNEL_SOURCE_
YUV
0
=
6
,
CHANNEL_SOURCE_
YUV
1
=
7
,
CHANNEL_SOURCE_
COMPLEX
0
=
6
,
CHANNEL_SOURCE_
COMPLEX
1
=
7
,
};
enum
yuv
_fixup
enum
complex
_fixup
{
YUV
_FIXUP_YUY2
=
0
,
YUV
_FIXUP_UYVY
=
1
,
YUV
_FIXUP_YV12
=
2
,
COMPLEX
_FIXUP_YUY2
=
0
,
COMPLEX
_FIXUP_UYVY
=
1
,
COMPLEX
_FIXUP_YV12
=
2
,
};
#include <pshpack2.h>
...
...
@@ -103,14 +103,14 @@ static inline struct color_fixup_desc create_color_fixup_desc(
return
fixup
;
}
static
inline
struct
color_fixup_desc
create_
yuv_fixup_desc
(
enum
yuv_fixup
yuv
_fixup
)
static
inline
struct
color_fixup_desc
create_
complex_fixup_desc
(
enum
complex_fixup
complex
_fixup
)
{
struct
color_fixup_desc
fixup
=
{
0
,
yuv_fixup
&
(
1
<<
0
)
?
CHANNEL_SOURCE_YUV1
:
CHANNEL_SOURCE_YUV
0
,
0
,
yuv_fixup
&
(
1
<<
1
)
?
CHANNEL_SOURCE_YUV1
:
CHANNEL_SOURCE_YUV
0
,
0
,
yuv_fixup
&
(
1
<<
2
)
?
CHANNEL_SOURCE_YUV1
:
CHANNEL_SOURCE_YUV
0
,
0
,
yuv_fixup
&
(
1
<<
3
)
?
CHANNEL_SOURCE_YUV1
:
CHANNEL_SOURCE_YUV
0
,
0
,
complex_fixup
&
(
1
<<
0
)
?
CHANNEL_SOURCE_COMPLEX1
:
CHANNEL_SOURCE_COMPLEX
0
,
0
,
complex_fixup
&
(
1
<<
1
)
?
CHANNEL_SOURCE_COMPLEX1
:
CHANNEL_SOURCE_COMPLEX
0
,
0
,
complex_fixup
&
(
1
<<
2
)
?
CHANNEL_SOURCE_COMPLEX1
:
CHANNEL_SOURCE_COMPLEX
0
,
0
,
complex_fixup
&
(
1
<<
3
)
?
CHANNEL_SOURCE_COMPLEX1
:
CHANNEL_SOURCE_COMPLEX
0
,
};
return
fixup
;
}
...
...
@@ -120,19 +120,19 @@ static inline BOOL is_identity_fixup(struct color_fixup_desc fixup)
return
!
memcmp
(
&
fixup
,
&
COLOR_FIXUP_IDENTITY
,
sizeof
(
fixup
));
}
static
inline
BOOL
is_
yuv
_fixup
(
struct
color_fixup_desc
fixup
)
static
inline
BOOL
is_
complex
_fixup
(
struct
color_fixup_desc
fixup
)
{
return
fixup
.
x_source
==
CHANNEL_SOURCE_
YUV0
||
fixup
.
x_source
==
CHANNEL_SOURCE_YUV
1
;
return
fixup
.
x_source
==
CHANNEL_SOURCE_
COMPLEX0
||
fixup
.
x_source
==
CHANNEL_SOURCE_COMPLEX
1
;
}
static
inline
enum
yuv_fixup
get_yuv
_fixup
(
struct
color_fixup_desc
fixup
)
static
inline
enum
complex_fixup
get_complex
_fixup
(
struct
color_fixup_desc
fixup
)
{
enum
yuv_fixup
yuv
_fixup
=
0
;
if
(
fixup
.
x_source
==
CHANNEL_SOURCE_
YUV1
)
yuv
_fixup
|=
(
1
<<
0
);
if
(
fixup
.
y_source
==
CHANNEL_SOURCE_
YUV1
)
yuv
_fixup
|=
(
1
<<
1
);
if
(
fixup
.
z_source
==
CHANNEL_SOURCE_
YUV1
)
yuv
_fixup
|=
(
1
<<
2
);
if
(
fixup
.
w_source
==
CHANNEL_SOURCE_
YUV1
)
yuv
_fixup
|=
(
1
<<
3
);
return
yuv
_fixup
;
enum
complex_fixup
complex
_fixup
=
0
;
if
(
fixup
.
x_source
==
CHANNEL_SOURCE_
COMPLEX1
)
complex
_fixup
|=
(
1
<<
0
);
if
(
fixup
.
y_source
==
CHANNEL_SOURCE_
COMPLEX1
)
complex
_fixup
|=
(
1
<<
1
);
if
(
fixup
.
z_source
==
CHANNEL_SOURCE_
COMPLEX1
)
complex
_fixup
|=
(
1
<<
2
);
if
(
fixup
.
w_source
==
CHANNEL_SOURCE_
COMPLEX1
)
complex
_fixup
|=
(
1
<<
3
);
return
complex
_fixup
;
}
void
*
wined3d_rb_alloc
(
size_t
size
)
DECLSPEC_HIDDEN
;
...
...
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