wined3d-CSMT_{Helper,Main}: Rebase against upstream changes.

This commit is contained in:
Sebastian Lackner
2015-02-12 08:07:54 +01:00
parent 28bd360291
commit 2000faae13
3 changed files with 170 additions and 140 deletions

View File

@@ -1,18 +1,18 @@
From baf99f4a2a809d820805212096d4fc9deb30fe68 Mon Sep 17 00:00:00 2001
From 375b66512e4a731d4434e06036530581f9e3913f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
Date: Thu, 19 Sep 2013 14:22:24 +0200
Subject: wined3d: Merge get_pitch functions.
---
dlls/ddraw/surface.c | 12 ++++++--
dlls/wined3d/resource.c | 31 +++++++++++++++++++
dlls/wined3d/surface.c | 70 +++++++++++++++++-------------------------
dlls/ddraw/surface.c | 12 +++++--
dlls/wined3d/resource.c | 31 +++++++++++++++++
dlls/wined3d/surface.c | 75 +++++++++++++++++-------------------------
dlls/wined3d/texture.c | 2 +-
dlls/wined3d/volume.c | 28 ++---------------
dlls/wined3d/volume.c | 28 ++--------------
dlls/wined3d/wined3d.spec | 2 +-
dlls/wined3d/wined3d_private.h | 3 +-
include/wine/wined3d.h | 3 +-
8 files changed, 75 insertions(+), 76 deletions(-)
8 files changed, 78 insertions(+), 78 deletions(-)
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
index a387d12..9a8d94f 100644
@@ -58,10 +58,10 @@ index a387d12..9a8d94f 100644
desc->dwFlags &= ~(DDSD_LPSURFACE | DDSD_LINEARSIZE);
}
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
index 0ab55dc..8032a4c 100644
index 205f074..3375c0f 100644
--- a/dlls/wined3d/resource.c
+++ b/dlls/wined3d/resource.c
@@ -331,3 +331,34 @@ void wined3d_resource_update_draw_binding(struct wined3d_resource *resource)
@@ -340,3 +340,34 @@ void wined3d_resource_update_draw_binding(struct wined3d_resource *resource)
else
resource->draw_binding = WINED3D_LOCATION_TEXTURE_RGB;
}
@@ -97,10 +97,10 @@ index 0ab55dc..8032a4c 100644
+ TRACE("Returning row pitch %u, slice pitch %u.\n", *row_pitch, *slice_pitch);
+}
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index d7d2b8d..d48a2df 100644
index 0a96d6f..5efb65d 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -364,6 +364,7 @@ static HRESULT surface_create_dib_section(struct wined3d_surface *surface)
@@ -363,6 +363,7 @@ static HRESULT surface_create_dib_section(struct wined3d_surface *surface)
BITMAPINFO *b_info;
int extraline = 0;
DWORD *masks;
@@ -108,7 +108,7 @@ index d7d2b8d..d48a2df 100644
TRACE("surface %p.\n", surface);
@@ -409,10 +410,11 @@ static HRESULT surface_create_dib_section(struct wined3d_surface *surface)
@@ -408,10 +409,11 @@ static HRESULT surface_create_dib_section(struct wined3d_surface *surface)
b_info->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
/* TODO: Is there a nicer way to force a specific alignment? (8 byte for ddraw) */
@@ -122,7 +122,7 @@ index d7d2b8d..d48a2df 100644
b_info->bmiHeader.biPlanes = 1;
b_info->bmiHeader.biBitCount = format->byte_count * 8;
@@ -1359,14 +1361,14 @@ static void surface_download_data(struct wined3d_surface *surface, const struct
@@ -1358,14 +1360,14 @@ static void surface_download_data(struct wined3d_surface *surface, const struct
void *mem;
GLenum gl_format = format->glFormat;
GLenum gl_type = format->glType;
@@ -140,7 +140,7 @@ index d7d2b8d..d48a2df 100644
src_pitch = (src_pitch + alignment - 1) & ~(alignment - 1);
mem = HeapAlloc(GetProcessHeap(), 0, src_pitch * surface->pow2Height);
}
@@ -1453,12 +1455,12 @@ static void surface_download_data(struct wined3d_surface *surface, const struct
@@ -1452,12 +1454,12 @@ static void surface_download_data(struct wined3d_surface *surface, const struct
* won't be released, and doesn't have to be re-read. */
src_data = mem;
dst_data = data.addr;
@@ -156,7 +156,7 @@ index d7d2b8d..d48a2df 100644
}
HeapFree(GetProcessHeap(), 0, mem);
@@ -1612,7 +1614,7 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
@@ -1611,7 +1613,7 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
UINT update_w, update_h;
UINT dst_w, dst_h;
RECT r, dst_rect;
@@ -165,7 +165,7 @@ index d7d2b8d..d48a2df 100644
POINT p;
TRACE("dst_surface %p, dst_point %s, src_surface %p, src_rect %s.\n",
@@ -1698,10 +1700,10 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
@@ -1697,10 +1699,10 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
wined3d_texture_bind(dst_surface->container, context, FALSE);
surface_get_memory(src_surface, &data, src_surface->locations);
@@ -178,7 +178,7 @@ index d7d2b8d..d48a2df 100644
context_invalidate_active_texture(context);
@@ -2009,25 +2011,6 @@ HRESULT CDECL wined3d_surface_restore(struct wined3d_surface *surface)
@@ -2008,25 +2010,6 @@ HRESULT CDECL wined3d_surface_restore(struct wined3d_surface *surface)
return WINED3D_OK;
}
@@ -204,7 +204,7 @@ index d7d2b8d..d48a2df 100644
HRESULT CDECL wined3d_surface_set_overlay_position(struct wined3d_surface *surface, LONG x, LONG y)
{
LONG w, h;
@@ -2208,12 +2191,13 @@ HRESULT wined3d_surface_update_desc(struct wined3d_surface *surface,
@@ -2207,12 +2190,13 @@ HRESULT wined3d_surface_update_desc(struct wined3d_surface *surface,
surface->resource.map_binding = WINED3D_LOCATION_USER_MEMORY;
valid_location = WINED3D_LOCATION_USER_MEMORY;
}
@@ -221,7 +221,7 @@ index d7d2b8d..d48a2df 100644
else
surface->resource.size = wined3d_format_calculate_size(texture_resource->format,
texture_resource->device->surface_alignment, width, height, 1);
@@ -2834,7 +2818,7 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
@@ -2833,7 +2817,7 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
if (format->flags & WINED3DFMT_FLAG_BROKEN_PITCH)
map_desc->row_pitch = surface->resource.width * format->byte_count;
else
@@ -230,7 +230,26 @@ index d7d2b8d..d48a2df 100644
map_desc->slice_pitch = 0;
if (!rect)
@@ -3014,7 +2998,9 @@ static void read_from_framebuffer(struct wined3d_surface *surface, DWORD dst_loc
@@ -2960,6 +2944,7 @@ static void read_from_framebuffer(struct wined3d_surface *surface, DWORD dst_loc
int i;
BOOL srcIsUpsideDown;
struct wined3d_bo_address data;
+ UINT row_pitch, slice_pitch;
surface_get_memory(surface, &data, dst_location);
@@ -2996,8 +2981,8 @@ static void read_from_framebuffer(struct wined3d_surface *surface, DWORD dst_loc
}
/* Setup pixel store pack state -- to glReadPixels into the correct place */
- gl_info->gl_ops.gl.p_glPixelStorei(GL_PACK_ROW_LENGTH,
- wined3d_surface_get_pitch(surface) / surface->resource.format->byte_count);
+ wined3d_resource_get_pitch(&surface->resource, &row_pitch, &slice_pitch);
+ gl_info->gl_ops.gl.p_glPixelStorei(GL_PACK_ROW_LENGTH, row_pitch / surface->resource.format->byte_count);
checkGLcall("glPixelStorei");
gl_info->gl_ops.gl.p_glReadPixels(0, 0,
@@ -3014,7 +2999,9 @@ static void read_from_framebuffer(struct wined3d_surface *surface, DWORD dst_loc
{
/* glReadPixels returns the image upside down, and there is no way to prevent this.
* Flip the lines in software. */
@@ -241,7 +260,7 @@ index d7d2b8d..d48a2df 100644
if (!(row = HeapAlloc(GetProcessHeap(), 0, pitch)))
goto error;
@@ -4246,7 +4232,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
@@ -4245,7 +4232,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
const struct wined3d_color_key_conversion *conversion;
struct wined3d_texture *texture = surface->container;
struct wined3d_context *context;
@@ -250,7 +269,7 @@ index d7d2b8d..d48a2df 100644
struct wined3d_bo_address data;
struct wined3d_format format;
POINT dst_point = {0, 0};
@@ -4341,7 +4327,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
@@ -4340,7 +4327,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
else surface->flags &= ~SFLAG_GLCKEY;
width = surface->resource.width;
@@ -259,7 +278,7 @@ index d7d2b8d..d48a2df 100644
format = *texture->resource.format;
if ((conversion = wined3d_format_get_color_key_conversion(texture, TRUE)))
@@ -4380,9 +4366,9 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
@@ -4379,9 +4366,9 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
context_release(context);
return E_OUTOFMEMORY;
}
@@ -271,7 +290,7 @@ index d7d2b8d..d48a2df 100644
data.addr = mem;
}
else if (conversion)
@@ -4402,14 +4388,14 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
@@ -4401,14 +4388,14 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
}
if (texture->swapchain && texture->swapchain->palette)
palette = texture->swapchain->palette;
@@ -290,10 +309,10 @@ index d7d2b8d..d48a2df 100644
context_release(context);
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index d33bad1..1f06f39 100644
index 57c8ef7..c501a13 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -1340,7 +1340,7 @@ static void texture3d_sub_resource_upload_data(struct wined3d_resource *sub_reso
@@ -1243,7 +1243,7 @@ static void texture3d_sub_resource_upload_data(struct wined3d_resource *sub_reso
struct wined3d_const_bo_address addr;
unsigned int row_pitch, slice_pitch;
@@ -303,7 +322,7 @@ index d33bad1..1f06f39 100644
FIXME("Ignoring row/slice pitch (%u/%u).\n", data->row_pitch, data->slice_pitch);
diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c
index b5ab862..87b6ab6 100644
index 0d13dd0..472427b 100644
--- a/dlls/wined3d/volume.c
+++ b/dlls/wined3d/volume.c
@@ -40,30 +40,6 @@ BOOL volume_prepare_system_memory(struct wined3d_volume *volume)
@@ -356,7 +375,7 @@ index b5ab862..87b6ab6 100644
if (!box)
diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec
index 9ce4981..c2dda2c 100644
index afe8e82..a95d029 100644
--- a/dlls/wined3d/wined3d.spec
+++ b/dlls/wined3d/wined3d.spec
@@ -181,6 +181,7 @@
@@ -376,10 +395,10 @@ index 9ce4981..c2dda2c 100644
@ cdecl wined3d_surface_get_resource(ptr)
@ cdecl wined3d_surface_getdc(ptr ptr)
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 6ebb210..bfb7bcb 100644
index 3cae14e..d03f3e6 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2091,6 +2091,7 @@ struct wined3d_resource
@@ -2112,6 +2112,7 @@ struct wined3d_resource
UINT size;
DWORD priority;
void *heap_memory;
@@ -387,7 +406,7 @@ index 6ebb210..bfb7bcb 100644
struct list resource_list_entry;
void *parent;
@@ -2264,7 +2265,6 @@ BOOL volume_prepare_system_memory(struct wined3d_volume *volume) DECLSPEC_HIDDEN
@@ -2267,7 +2268,6 @@ BOOL volume_prepare_system_memory(struct wined3d_volume *volume) DECLSPEC_HIDDEN
HRESULT wined3d_volume_create(struct wined3d_texture *container, const struct wined3d_resource_desc *desc,
unsigned int level, struct wined3d_volume **volume) DECLSPEC_HIDDEN;
void wined3d_volume_destroy(struct wined3d_volume *volume) DECLSPEC_HIDDEN;
@@ -395,7 +414,7 @@ index 6ebb210..bfb7bcb 100644
void wined3d_volume_load(struct wined3d_volume *volume, struct wined3d_context *context,
BOOL srgb_mode) DECLSPEC_HIDDEN;
void wined3d_volume_invalidate_location(struct wined3d_volume *volume, DWORD location) DECLSPEC_HIDDEN;
@@ -2314,7 +2314,6 @@ struct wined3d_surface
@@ -2317,7 +2317,6 @@ struct wined3d_surface
DWORD flags;
@@ -404,10 +423,10 @@ index 6ebb210..bfb7bcb 100644
UINT pow2Height;
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index 92e8169..49b8d25 100644
index 1dfa495..83e0557 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -2418,6 +2418,8 @@ static inline HRESULT wined3d_private_store_set_private_data(struct wined3d_priv
@@ -2414,6 +2414,8 @@ static inline HRESULT wined3d_private_store_set_private_data(struct wined3d_priv
void __cdecl wined3d_resource_get_desc(const struct wined3d_resource *resource,
struct wined3d_resource_desc *desc);
void * __cdecl wined3d_resource_get_parent(const struct wined3d_resource *resource);
@@ -416,7 +435,7 @@ index 92e8169..49b8d25 100644
DWORD __cdecl wined3d_resource_get_priority(const struct wined3d_resource *resource);
void __cdecl wined3d_resource_set_parent(struct wined3d_resource *resource, void *parent);
DWORD __cdecl wined3d_resource_set_priority(struct wined3d_resource *resource, DWORD priority);
@@ -2475,7 +2477,6 @@ HRESULT __cdecl wined3d_surface_get_blt_status(const struct wined3d_surface *sur
@@ -2472,7 +2474,6 @@ HRESULT __cdecl wined3d_surface_get_blt_status(const struct wined3d_surface *sur
HRESULT __cdecl wined3d_surface_get_flip_status(const struct wined3d_surface *surface, DWORD flags);
HRESULT __cdecl wined3d_surface_get_overlay_position(const struct wined3d_surface *surface, LONG *x, LONG *y);
void * __cdecl wined3d_surface_get_parent(const struct wined3d_surface *surface);
@@ -425,5 +444,5 @@ index 92e8169..49b8d25 100644
struct wined3d_surface *render_target);
struct wined3d_resource * __cdecl wined3d_surface_get_resource(struct wined3d_surface *surface);
--
2.2.1
2.2.2

View File

@@ -1,4 +1,4 @@
From 97352f9938385bbf7c81995c1384633b7075076d Mon Sep 17 00:00:00 2001
From 66f266e57766def2d64f382ba84e226b931c2a4f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
Date: Mon, 16 Sep 2013 22:44:33 +0200
Subject: wined3d: Introduce a function to retrieve resource memory.
@@ -10,10 +10,10 @@ Subject: wined3d: Introduce a function to retrieve resource memory.
3 files changed, 38 insertions(+), 39 deletions(-)
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
index a7a0d44..05c5018 100644
index 7d11fa0..9c6cf70 100644
--- a/dlls/wined3d/resource.c
+++ b/dlls/wined3d/resource.c
@@ -395,6 +395,36 @@ DWORD wined3d_resource_access_from_location(DWORD location)
@@ -432,6 +432,36 @@ DWORD wined3d_resource_access_from_location(DWORD location)
}
}
@@ -51,10 +51,10 @@ index a7a0d44..05c5018 100644
void wined3d_resource_load_location(struct wined3d_resource *resource,
struct wined3d_context *context, DWORD location)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index e06a2d7..75e5acd 100644
index d4e20767..d0c9518 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -479,39 +479,6 @@ static HRESULT surface_create_dib_section(struct wined3d_surface *surface)
@@ -478,39 +478,6 @@ static HRESULT surface_create_dib_section(struct wined3d_surface *surface)
return WINED3D_OK;
}
@@ -94,7 +94,7 @@ index e06a2d7..75e5acd 100644
static void surface_prepare_buffer(struct wined3d_surface *surface)
{
struct wined3d_context *context;
@@ -1328,7 +1295,7 @@ static void surface_download_data(struct wined3d_surface *surface, const struct
@@ -1327,7 +1294,7 @@ static void surface_download_data(struct wined3d_surface *surface, const struct
return;
}
@@ -103,7 +103,7 @@ index e06a2d7..75e5acd 100644
if (format->flags & WINED3DFMT_FLAG_COMPRESSED)
{
@@ -1694,7 +1661,7 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
@@ -1693,7 +1660,7 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
wined3d_resource_load_location(&dst_surface->resource, context, WINED3D_LOCATION_TEXTURE_RGB);
wined3d_texture_bind(dst_surface->container, context, FALSE);
@@ -112,16 +112,16 @@ index e06a2d7..75e5acd 100644
wined3d_resource_get_pitch(&src_surface->resource, &src_row_pitch, &src_slice_pitch);
wined3d_surface_upload_data(dst_surface, gl_info, src_format, src_rect,
@@ -2939,7 +2906,7 @@ static void read_from_framebuffer(struct wined3d_surface *surface,
BOOL srcIsUpsideDown;
@@ -2948,7 +2915,7 @@ static void read_from_framebuffer(struct wined3d_surface *surface,
struct wined3d_bo_address data;
UINT row_pitch, slice_pitch;
- surface_get_memory(surface, &data, dst_location);
+ wined3d_resource_get_memory(&surface->resource, dst_location, &data);
/* Context_release does not restore the original context in case of
* nested context_acquire calls. Only read_from_framebuffer and
@@ -4131,8 +4098,8 @@ static void surface_copy_simple_location(struct wined3d_surface *surface, DWORD
@@ -4140,8 +4107,8 @@ static void surface_copy_simple_location(struct wined3d_surface *surface, DWORD
struct wined3d_bo_address dst, src;
UINT size = surface->resource.size;
@@ -132,7 +132,7 @@ index e06a2d7..75e5acd 100644
if (dst.buffer_object)
{
@@ -4351,7 +4318,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
@@ -4360,7 +4327,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
surface_remove_pbo(surface, gl_info);
}
@@ -142,10 +142,10 @@ index e06a2d7..75e5acd 100644
{
/* This code is entered for texture formats which need a fixup. */
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 26d2d5d..d56a63b 100644
index 23aa052..9582571 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2127,6 +2127,8 @@ BOOL wined3d_resource_allocate_sysmem(struct wined3d_resource *resource) DECLSPE
@@ -2148,6 +2148,8 @@ BOOL wined3d_resource_allocate_sysmem(struct wined3d_resource *resource) DECLSPE
void wined3d_resource_free_sysmem(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
BYTE *wined3d_resource_get_map_ptr(const struct wined3d_resource *resource,
const struct wined3d_context *context, DWORD flags) DECLSPEC_HIDDEN;
@@ -155,5 +155,5 @@ index 26d2d5d..d56a63b 100644
void wined3d_resource_invalidate_location(struct wined3d_resource *resource, DWORD location) DECLSPEC_HIDDEN;
BOOL wined3d_resource_is_offscreen(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
--
1.9.1
2.2.2

File diff suppressed because it is too large Load Diff