From: Zebediah Figura zfigura@codeweavers.com
--- dlls/wined3d/format_gl.c | 38 ++++++++++++++-------------------- dlls/wined3d/texture.c | 2 +- dlls/wined3d/wined3d_private.h | 15 ++++++-------- 3 files changed, 22 insertions(+), 33 deletions(-)
diff --git a/dlls/wined3d/format_gl.c b/dlls/wined3d/format_gl.c index b899b2913fc..d9818513e2f 100644 --- a/dlls/wined3d/format_gl.c +++ b/dlls/wined3d/format_gl.c @@ -60,18 +60,10 @@ struct wined3d_format_texture_info unsigned int conv_byte_count; unsigned int caps; enum wined3d_gl_extension extension; - void (*upload)(const BYTE *src, BYTE *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, - unsigned int dst_row_pitch, unsigned int dst_slice_pitch, - unsigned int width, unsigned int height, unsigned int depth); - void (*download)(const BYTE *src, BYTE *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, - unsigned int dst_row_pitch, unsigned int dst_slice_pitch, - unsigned int width, unsigned int height, unsigned int depth); - void (*decompress)(const BYTE *src, BYTE *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, - unsigned int dst_row_pitch, unsigned int dst_slice_pitch, - unsigned int width, unsigned int height, unsigned int depth); + wined3d_format_conversion_func upload, download, decompress; };
-static void convert_l4a4_unorm(const BYTE *src, BYTE *dst, +static void convert_l4a4_unorm(const uint8_t *src, uint8_t *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth) @@ -98,7 +90,7 @@ static void convert_l4a4_unorm(const BYTE *src, BYTE *dst, } }
-static void convert_r5g5_snorm_l6_unorm(const BYTE *src, BYTE *dst, +static void convert_r5g5_snorm_l6_unorm(const uint8_t *src, uint8_t *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth) @@ -130,7 +122,7 @@ static void convert_r5g5_snorm_l6_unorm(const BYTE *src, BYTE *dst, } }
-static void convert_r5g5_snorm_l6_unorm_ext(const BYTE *src, BYTE *dst, +static void convert_r5g5_snorm_l6_unorm_ext(const uint8_t *src, uint8_t *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth) @@ -169,7 +161,7 @@ static void convert_r5g5_snorm_l6_unorm_ext(const BYTE *src, BYTE *dst, } }
-static void convert_r5g5_snorm_l6_unorm_nv(const BYTE *src, BYTE *dst, +static void convert_r5g5_snorm_l6_unorm_nv(const uint8_t *src, uint8_t *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth) @@ -216,7 +208,7 @@ static void convert_r5g5_snorm_l6_unorm_nv(const BYTE *src, BYTE *dst, } }
-static void convert_r8g8_snorm(const BYTE *src, BYTE *dst, +static void convert_r8g8_snorm(const uint8_t *src, uint8_t *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth) @@ -241,7 +233,7 @@ static void convert_r8g8_snorm(const BYTE *src, BYTE *dst, } }
-static void convert_r8g8_snorm_l8x8_unorm(const BYTE *src, BYTE *dst, +static void convert_r8g8_snorm_l8x8_unorm(const uint8_t *src, uint8_t *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth) @@ -269,7 +261,7 @@ static void convert_r8g8_snorm_l8x8_unorm(const BYTE *src, BYTE *dst, } }
-static void convert_r8g8_snorm_l8x8_unorm_nv(const BYTE *src, BYTE *dst, +static void convert_r8g8_snorm_l8x8_unorm_nv(const uint8_t *src, uint8_t *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth) @@ -297,7 +289,7 @@ static void convert_r8g8_snorm_l8x8_unorm_nv(const BYTE *src, BYTE *dst, } }
-static void convert_r8g8b8a8_snorm(const BYTE *src, BYTE *dst, +static void convert_r8g8b8a8_snorm(const uint8_t *src, uint8_t *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth) @@ -323,7 +315,7 @@ static void convert_r8g8b8a8_snorm(const BYTE *src, BYTE *dst, } }
-static void convert_r16g16_snorm(const BYTE *src, BYTE *dst, +static void convert_r16g16_snorm(const uint8_t *src, uint8_t *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth) @@ -348,7 +340,7 @@ static void convert_r16g16_snorm(const BYTE *src, BYTE *dst, } }
-static void convert_r16g16(const BYTE *src, BYTE *dst, +static void convert_r16g16(const uint8_t *src, uint8_t *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth) @@ -376,7 +368,7 @@ static void convert_r16g16(const BYTE *src, BYTE *dst, } }
-static void convert_r32g32_float(const BYTE *src, BYTE *dst, +static void convert_r32g32_float(const uint8_t *src, uint8_t *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth) @@ -402,7 +394,7 @@ static void convert_r32g32_float(const BYTE *src, BYTE *dst, } }
-static void convert_s8_uint_d24_float(const BYTE *src, BYTE *dst, +static void convert_s8_uint_d24_float(const uint8_t *src, uint8_t *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth) @@ -424,7 +416,7 @@ static void convert_s8_uint_d24_float(const BYTE *src, BYTE *dst, } }
-static void x8_d24_unorm_upload(const BYTE *src, BYTE *dst, +static void x8_d24_unorm_upload(const uint8_t *src, uint8_t *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth) @@ -442,7 +434,7 @@ static void x8_d24_unorm_upload(const BYTE *src, BYTE *dst, } }
-static void x8_d24_unorm_download(const BYTE *src, BYTE *dst, +static void x8_d24_unorm_download(const uint8_t *src, uint8_t *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth) diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c index 8a7f9455bb0..0d89d036f2f 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c @@ -2485,8 +2485,8 @@ static void wined3d_texture_gl_upload_data(struct wined3d_context *context, unsigned int dst_row_pitch, dst_slice_pitch; struct wined3d_format_gl f; void *converted_mem; + uint8_t *src_mem; unsigned int z; - BYTE *src_mem;
if (decompress) { diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index a34b3595366..c9c62ab657e 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -4526,6 +4526,11 @@ enum wined3d_channel_type WINED3D_CHANNEL_TYPE_UNUSED, };
+typedef void (*wined3d_format_conversion_func)(const uint8_t *src, uint8_t *dst, + unsigned int src_row_pitch, unsigned int src_slice_pitch, + unsigned int dst_row_pitch, unsigned int dst_slice_pitch, + unsigned int width, unsigned int height, unsigned int depth); + struct wined3d_format { enum wined3d_format_id id; @@ -4557,15 +4562,7 @@ struct wined3d_format float depth_bias_scale; struct wined3d_rational height_scale; struct color_fixup_desc color_fixup; - void (*upload)(const BYTE *src, BYTE *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, - unsigned int dst_row_pitch, unsigned dst_slice_pitch, - unsigned int width, unsigned int height, unsigned int depth); - void (*download)(const BYTE *src, BYTE *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, - unsigned int dst_row_pitch, unsigned dst_slice_pitch, - unsigned int width, unsigned int height, unsigned int depth); - void (*decompress)(const BYTE *src, BYTE *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, - unsigned int dst_row_pitch, unsigned dst_slice_pitch, - unsigned int width, unsigned int height, unsigned int depth); + wined3d_format_conversion_func upload, download, decompress;
enum wined3d_format_id typeless_id; };