Commit 922ad80f authored by Roderick Colenbrander's avatar Roderick Colenbrander Committed by Alexandre Julliard

wined3d: Rename yuv to complex in order to prepare for 8-bit palette fixups using the same code.

parent 2d76bf2e
...@@ -1161,10 +1161,10 @@ static void gen_color_correction(struct wined3d_shader_buffer *buffer, const cha ...@@ -1161,10 +1161,10 @@ static void gen_color_correction(struct wined3d_shader_buffer *buffer, const cha
{ {
DWORD mask; DWORD mask;
if (is_yuv_fixup(fixup)) if (is_complex_fixup(fixup))
{ {
enum yuv_fixup yuv_fixup = get_yuv_fixup(fixup); enum complex_fixup complex_fixup = get_complex_fixup(fixup);
FIXME("YUV fixup (%#x) not supported\n", yuv_fixup); FIXME("Complex fixup (%#x) not supported\n", complex_fixup);
return; return;
} }
...@@ -4673,8 +4673,8 @@ static BOOL shader_arb_color_fixup_supported(struct color_fixup_desc fixup) ...@@ -4673,8 +4673,8 @@ static BOOL shader_arb_color_fixup_supported(struct color_fixup_desc fixup)
dump_color_fixup_desc(fixup); dump_color_fixup_desc(fixup);
} }
/* We support everything except YUV conversions. */ /* We support everything except complex conversions. */
if (!is_yuv_fixup(fixup)) if (!is_complex_fixup(fixup))
{ {
TRACE("[OK]\n"); TRACE("[OK]\n");
return TRUE; return TRUE;
...@@ -6260,13 +6260,13 @@ static void arbfp_blit_free(IWineD3DDevice *iface) { ...@@ -6260,13 +6260,13 @@ static void arbfp_blit_free(IWineD3DDevice *iface) {
device->blit_priv = NULL; 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) GLenum textype, char *luminance)
{ {
char chroma; char chroma;
const char *tex, *texinstr; const char *tex, *texinstr;
if (yuv_fixup == YUV_FIXUP_UYVY) { if (fixup == COMPLEX_FIXUP_UYVY) {
chroma = 'x'; chroma = 'x';
*luminance = 'w'; *luminance = 'w';
} else { } else {
...@@ -6495,7 +6495,7 @@ static BOOL gen_yv12_read(struct wined3d_shader_buffer *buffer, GLenum textype, ...@@ -6495,7 +6495,7 @@ static BOOL gen_yv12_read(struct wined3d_shader_buffer *buffer, GLenum textype,
} }
/* Context activation is done by the caller. */ /* 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; GLenum shader;
struct wined3d_shader_buffer buffer; struct wined3d_shader_buffer buffer;
...@@ -6568,8 +6568,8 @@ static GLuint gen_yuv_shader(IWineD3DDeviceImpl *device, enum yuv_fixup yuv_fixu ...@@ -6568,8 +6568,8 @@ static GLuint gen_yuv_shader(IWineD3DDeviceImpl *device, enum yuv_fixup yuv_fixu
switch (yuv_fixup) switch (yuv_fixup)
{ {
case YUV_FIXUP_UYVY: case COMPLEX_FIXUP_UYVY:
case YUV_FIXUP_YUY2: case COMPLEX_FIXUP_YUY2:
if (!gen_planar_yuv_read(&buffer, yuv_fixup, textype, &luminance_component)) if (!gen_planar_yuv_read(&buffer, yuv_fixup, textype, &luminance_component))
{ {
shader_buffer_free(&buffer); shader_buffer_free(&buffer);
...@@ -6577,7 +6577,7 @@ static GLuint gen_yuv_shader(IWineD3DDeviceImpl *device, enum yuv_fixup yuv_fixu ...@@ -6577,7 +6577,7 @@ static GLuint gen_yuv_shader(IWineD3DDeviceImpl *device, enum yuv_fixup yuv_fixu
} }
break; break;
case YUV_FIXUP_YV12: case COMPLEX_FIXUP_YV12:
if (!gen_yv12_read(&buffer, textype, &luminance_component)) if (!gen_yv12_read(&buffer, textype, &luminance_component))
{ {
shader_buffer_free(&buffer); shader_buffer_free(&buffer);
...@@ -6629,17 +6629,17 @@ static GLuint gen_yuv_shader(IWineD3DDeviceImpl *device, enum yuv_fixup yuv_fixu ...@@ -6629,17 +6629,17 @@ static GLuint gen_yuv_shader(IWineD3DDeviceImpl *device, enum yuv_fixup yuv_fixu
switch (yuv_fixup) switch (yuv_fixup)
{ {
case YUV_FIXUP_YUY2: case COMPLEX_FIXUP_YUY2:
if (textype == GL_TEXTURE_RECTANGLE_ARB) priv->yuy2_rect_shader = shader; if (textype == GL_TEXTURE_RECTANGLE_ARB) priv->yuy2_rect_shader = shader;
else priv->yuy2_2d_shader = shader; else priv->yuy2_2d_shader = shader;
break; break;
case YUV_FIXUP_UYVY: case COMPLEX_FIXUP_UYVY:
if (textype == GL_TEXTURE_RECTANGLE_ARB) priv->uyvy_rect_shader = shader; if (textype == GL_TEXTURE_RECTANGLE_ARB) priv->uyvy_rect_shader = shader;
else priv->uyvy_2d_shader = shader; else priv->uyvy_2d_shader = shader;
break; break;
case YUV_FIXUP_YV12: case COMPLEX_FIXUP_YV12:
if (textype == GL_TEXTURE_RECTANGLE_ARB) priv->yv12_rect_shader = shader; if (textype == GL_TEXTURE_RECTANGLE_ARB) priv->yv12_rect_shader = shader;
else priv->yv12_2d_shader = shader; else priv->yv12_2d_shader = shader;
break; break;
...@@ -6656,9 +6656,9 @@ static HRESULT arbfp_blit_set(IWineD3DDevice *iface, const struct GlPixelFormatD ...@@ -6656,9 +6656,9 @@ static HRESULT arbfp_blit_set(IWineD3DDevice *iface, const struct GlPixelFormatD
IWineD3DDeviceImpl *device = (IWineD3DDeviceImpl *) iface; IWineD3DDeviceImpl *device = (IWineD3DDeviceImpl *) iface;
float size[4] = {width, height, 1, 1}; float size[4] = {width, height, 1, 1};
struct arbfp_blit_priv *priv = device->blit_priv; 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"); TRACE("Fixup:\n");
dump_color_fixup_desc(format_desc->color_fixup); dump_color_fixup_desc(format_desc->color_fixup);
...@@ -6670,24 +6670,24 @@ static HRESULT arbfp_blit_set(IWineD3DDevice *iface, const struct GlPixelFormatD ...@@ -6670,24 +6670,24 @@ static HRESULT arbfp_blit_set(IWineD3DDevice *iface, const struct GlPixelFormatD
return WINED3D_OK; 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; shader = textype == GL_TEXTURE_RECTANGLE_ARB ? priv->yuy2_rect_shader : priv->yuy2_2d_shader;
break; break;
case YUV_FIXUP_UYVY: case COMPLEX_FIXUP_UYVY:
shader = textype == GL_TEXTURE_RECTANGLE_ARB ? priv->uyvy_rect_shader : priv->uyvy_2d_shader; shader = textype == GL_TEXTURE_RECTANGLE_ARB ? priv->uyvy_rect_shader : priv->uyvy_2d_shader;
break; break;
case YUV_FIXUP_YV12: case COMPLEX_FIXUP_YV12:
shader = textype == GL_TEXTURE_RECTANGLE_ARB ? priv->yv12_rect_shader : priv->yv12_2d_shader; shader = textype == GL_TEXTURE_RECTANGLE_ARB ? priv->yv12_rect_shader : priv->yv12_2d_shader;
break; break;
default: 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(); ENTER_GL();
glEnable(textype); glEnable(textype);
checkGLcall("glEnable(textype)"); checkGLcall("glEnable(textype)");
...@@ -6695,7 +6695,7 @@ static HRESULT arbfp_blit_set(IWineD3DDevice *iface, const struct GlPixelFormatD ...@@ -6695,7 +6695,7 @@ static HRESULT arbfp_blit_set(IWineD3DDevice *iface, const struct GlPixelFormatD
return E_NOTIMPL; return E_NOTIMPL;
} }
if (!shader) shader = gen_yuv_shader(device, yuv_fixup, textype); if (!shader) shader = gen_yuv_shader(device, fixup, textype);
ENTER_GL(); ENTER_GL();
glEnable(GL_FRAGMENT_PROGRAM_ARB); glEnable(GL_FRAGMENT_PROGRAM_ARB);
...@@ -6734,7 +6734,7 @@ static void arbfp_blit_unset(IWineD3DDevice *iface) { ...@@ -6734,7 +6734,7 @@ static void arbfp_blit_unset(IWineD3DDevice *iface) {
static BOOL arbfp_blit_color_fixup_supported(struct color_fixup_desc fixup) 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)) if (TRACE_ON(d3d_shader) && TRACE_ON(d3d))
{ {
...@@ -6749,23 +6749,23 @@ static BOOL arbfp_blit_color_fixup_supported(struct color_fixup_desc fixup) ...@@ -6749,23 +6749,23 @@ static BOOL arbfp_blit_color_fixup_supported(struct color_fixup_desc fixup)
} }
/* We only support YUV conversions. */ /* We only support YUV conversions. */
if (!is_yuv_fixup(fixup)) if (!is_complex_fixup(fixup))
{ {
TRACE("[FAILED]\n"); TRACE("[FAILED]\n");
return FALSE; return FALSE;
} }
yuv_fixup = get_yuv_fixup(fixup); complex_fixup = get_complex_fixup(fixup);
switch(yuv_fixup) switch(complex_fixup)
{ {
case YUV_FIXUP_YUY2: case COMPLEX_FIXUP_YUY2:
case YUV_FIXUP_UYVY: case COMPLEX_FIXUP_UYVY:
case YUV_FIXUP_YV12: case COMPLEX_FIXUP_YV12:
TRACE("[OK]\n"); TRACE("[OK]\n");
return TRUE; return TRUE;
default: default:
FIXME("Unsupported YUV fixup %#x\n", yuv_fixup); FIXME("Unsupported YUV fixup %#x\n", complex_fixup);
TRACE("[FAILED]\n"); TRACE("[FAILED]\n");
return FALSE; return FALSE;
} }
......
...@@ -1829,10 +1829,10 @@ static void shader_glsl_color_correction(const struct wined3d_shader_instruction ...@@ -1829,10 +1829,10 @@ static void shader_glsl_color_correction(const struct wined3d_shader_instruction
if (!mask) return; /* Nothing to do */ 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); enum complex_fixup complex_fixup = get_complex_fixup(fixup);
FIXME("YUV fixup (%#x) not supported\n", yuv_fixup); FIXME("Complex fixup (%#x) not supported\n",complex_fixup);
return; return;
} }
...@@ -4907,7 +4907,7 @@ static BOOL shader_glsl_color_fixup_supported(struct color_fixup_desc fixup) ...@@ -4907,7 +4907,7 @@ static BOOL shader_glsl_color_fixup_supported(struct color_fixup_desc fixup)
} }
/* We support everything except YUV conversions. */ /* We support everything except YUV conversions. */
if (!is_yuv_fixup(fixup)) if (!is_complex_fixup(fixup))
{ {
TRACE("[OK]\n"); TRACE("[OK]\n");
return TRUE; return TRUE;
......
...@@ -1407,7 +1407,7 @@ static BOOL shader_none_color_fixup_supported(struct color_fixup_desc fixup) ...@@ -1407,7 +1407,7 @@ static BOOL shader_none_color_fixup_supported(struct color_fixup_desc fixup)
} }
/* Faked to make some apps happy. */ /* Faked to make some apps happy. */
if (!is_yuv_fixup(fixup)) if (!is_complex_fixup(fixup))
{ {
TRACE("[OK]\n"); TRACE("[OK]\n");
return TRUE; return TRUE;
......
...@@ -1088,15 +1088,15 @@ static void apply_format_fixups(struct wined3d_gl_info *gl_info) ...@@ -1088,15 +1088,15 @@ static void apply_format_fixups(struct wined3d_gl_info *gl_info)
if (!gl_info->supported[APPLE_YCBCR_422]) if (!gl_info->supported[APPLE_YCBCR_422])
{ {
idx = getFmtIdx(WINED3DFMT_YUY2); 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); 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); idx = getFmtIdx(WINED3DFMT_YV12);
gl_info->gl_formats[idx].heightscale = 1.5f; gl_info->gl_formats[idx].heightscale = 1.5f;
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]) if (gl_info->supported[ARB_VERTEX_ARRAY_BGRA])
{ {
...@@ -1913,8 +1913,8 @@ static const char *debug_fixup_channel_source(enum fixup_channel_source source) ...@@ -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_Y);
WINED3D_TO_STR(CHANNEL_SOURCE_Z); WINED3D_TO_STR(CHANNEL_SOURCE_Z);
WINED3D_TO_STR(CHANNEL_SOURCE_W); WINED3D_TO_STR(CHANNEL_SOURCE_W);
WINED3D_TO_STR(CHANNEL_SOURCE_YUV0); WINED3D_TO_STR(CHANNEL_SOURCE_COMPLEX0);
WINED3D_TO_STR(CHANNEL_SOURCE_YUV1); WINED3D_TO_STR(CHANNEL_SOURCE_COMPLEX1);
#undef WINED3D_TO_STR #undef WINED3D_TO_STR
default: default:
FIXME("Unrecognized fixup_channel_source %#x\n", source); FIXME("Unrecognized fixup_channel_source %#x\n", source);
...@@ -1922,26 +1922,26 @@ static const char *debug_fixup_channel_source(enum fixup_channel_source 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 #define WINED3D_TO_STR(x) case x: return #x
WINED3D_TO_STR(YUV_FIXUP_YUY2); WINED3D_TO_STR(COMPLEX_FIXUP_YUY2);
WINED3D_TO_STR(YUV_FIXUP_UYVY); WINED3D_TO_STR(COMPLEX_FIXUP_UYVY);
WINED3D_TO_STR(YUV_FIXUP_YV12); WINED3D_TO_STR(COMPLEX_FIXUP_YV12);
#undef WINED3D_TO_STR #undef WINED3D_TO_STR
default: default:
FIXME("Unrecognized YUV fixup %#x\n", yuv_fixup); FIXME("Unrecognized complex fixup %#x\n", fixup);
return "unrecognized"; return "unrecognized";
} }
} }
void dump_color_fixup_desc(struct color_fixup_desc fixup) void dump_color_fixup_desc(struct color_fixup_desc fixup)
{ {
if (is_yuv_fixup(fixup)) if (is_complex_fixup(fixup))
{ {
TRACE("\tYUV: %s\n", debug_yuv_fixup(get_yuv_fixup(fixup))); TRACE("\tComplex: %s\n", debug_complex_fixup(get_complex_fixup(fixup)));
return; return;
} }
......
...@@ -61,15 +61,15 @@ enum fixup_channel_source ...@@ -61,15 +61,15 @@ enum fixup_channel_source
CHANNEL_SOURCE_Y = 3, CHANNEL_SOURCE_Y = 3,
CHANNEL_SOURCE_Z = 4, CHANNEL_SOURCE_Z = 4,
CHANNEL_SOURCE_W = 5, CHANNEL_SOURCE_W = 5,
CHANNEL_SOURCE_YUV0 = 6, CHANNEL_SOURCE_COMPLEX0 = 6,
CHANNEL_SOURCE_YUV1 = 7, CHANNEL_SOURCE_COMPLEX1 = 7,
}; };
enum yuv_fixup enum complex_fixup
{ {
YUV_FIXUP_YUY2 = 0, COMPLEX_FIXUP_YUY2 = 0,
YUV_FIXUP_UYVY = 1, COMPLEX_FIXUP_UYVY = 1,
YUV_FIXUP_YV12 = 2, COMPLEX_FIXUP_YV12 = 2,
}; };
#include <pshpack2.h> #include <pshpack2.h>
...@@ -103,14 +103,14 @@ static inline struct color_fixup_desc create_color_fixup_desc( ...@@ -103,14 +103,14 @@ static inline struct color_fixup_desc create_color_fixup_desc(
return fixup; 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 = struct color_fixup_desc fixup =
{ {
0, yuv_fixup & (1 << 0) ? CHANNEL_SOURCE_YUV1 : CHANNEL_SOURCE_YUV0, 0, complex_fixup & (1 << 0) ? CHANNEL_SOURCE_COMPLEX1 : CHANNEL_SOURCE_COMPLEX0,
0, yuv_fixup & (1 << 1) ? CHANNEL_SOURCE_YUV1 : CHANNEL_SOURCE_YUV0, 0, complex_fixup & (1 << 1) ? CHANNEL_SOURCE_COMPLEX1 : CHANNEL_SOURCE_COMPLEX0,
0, yuv_fixup & (1 << 2) ? CHANNEL_SOURCE_YUV1 : CHANNEL_SOURCE_YUV0, 0, complex_fixup & (1 << 2) ? CHANNEL_SOURCE_COMPLEX1 : CHANNEL_SOURCE_COMPLEX0,
0, yuv_fixup & (1 << 3) ? CHANNEL_SOURCE_YUV1 : CHANNEL_SOURCE_YUV0, 0, complex_fixup & (1 << 3) ? CHANNEL_SOURCE_COMPLEX1 : CHANNEL_SOURCE_COMPLEX0,
}; };
return fixup; return fixup;
} }
...@@ -120,19 +120,19 @@ static inline BOOL is_identity_fixup(struct color_fixup_desc fixup) ...@@ -120,19 +120,19 @@ static inline BOOL is_identity_fixup(struct color_fixup_desc fixup)
return !memcmp(&fixup, &COLOR_FIXUP_IDENTITY, sizeof(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_YUV1; return fixup.x_source == CHANNEL_SOURCE_COMPLEX0 || fixup.x_source == CHANNEL_SOURCE_COMPLEX1;
} }
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; enum complex_fixup complex_fixup = 0;
if (fixup.x_source == CHANNEL_SOURCE_YUV1) yuv_fixup |= (1 << 0); if (fixup.x_source == CHANNEL_SOURCE_COMPLEX1) complex_fixup |= (1 << 0);
if (fixup.y_source == CHANNEL_SOURCE_YUV1) yuv_fixup |= (1 << 1); if (fixup.y_source == CHANNEL_SOURCE_COMPLEX1) complex_fixup |= (1 << 1);
if (fixup.z_source == CHANNEL_SOURCE_YUV1) yuv_fixup |= (1 << 2); if (fixup.z_source == CHANNEL_SOURCE_COMPLEX1) complex_fixup |= (1 << 2);
if (fixup.w_source == CHANNEL_SOURCE_YUV1) yuv_fixup |= (1 << 3); if (fixup.w_source == CHANNEL_SOURCE_COMPLEX1) complex_fixup |= (1 << 3);
return yuv_fixup; return complex_fixup;
} }
void *wined3d_rb_alloc(size_t size) DECLSPEC_HIDDEN; void *wined3d_rb_alloc(size_t size) DECLSPEC_HIDDEN;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment