Henri Verbeet : wined3d: Introduce wined3d_texture_get_sub_resource_parent ().
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Feb 17 11:15:03 CST 2016
Module: wine
Branch: master
Commit: 691086eac111b2558002d8d35c4ddec4afc3878e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=691086eac111b2558002d8d35c4ddec4afc3878e
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Tue Feb 16 17:17:27 2016 +0100
wined3d: Introduce wined3d_texture_get_sub_resource_parent().
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/wined3d/texture.c | 15 +++++++++++++++
dlls/wined3d/wined3d.spec | 1 +
include/wine/wined3d.h | 1 +
3 files changed, 17 insertions(+)
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 17a035f..7a24ff0 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -1485,6 +1485,21 @@ HRESULT CDECL wined3d_texture_update_overlay(struct wined3d_texture *texture, un
return WINED3D_OK;
}
+void * CDECL wined3d_texture_get_sub_resource_parent(struct wined3d_texture *texture, unsigned int sub_resource_idx)
+{
+ unsigned int sub_count = texture->level_count * texture->layer_count;
+
+ TRACE("texture %p, sub_resource_idx %u.\n", texture, sub_resource_idx);
+
+ if (sub_resource_idx >= sub_count)
+ {
+ WARN("sub_resource_idx %u >= sub_count %u.\n", sub_resource_idx, sub_count);
+ return NULL;
+ }
+
+ return texture->sub_resources[sub_resource_idx].resource->parent;
+}
+
HRESULT CDECL wined3d_texture_create(struct wined3d_device *device, const struct wined3d_resource_desc *desc,
UINT level_count, DWORD flags, const struct wined3d_sub_resource_data *data, void *parent,
const struct wined3d_parent_ops *parent_ops, struct wined3d_texture **texture)
diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec
index 47eea42..c31ad7b 100644
--- a/dlls/wined3d/wined3d.spec
+++ b/dlls/wined3d/wined3d.spec
@@ -251,6 +251,7 @@
@ cdecl wined3d_texture_get_pitch(ptr long ptr ptr)
@ cdecl wined3d_texture_get_resource(ptr)
@ cdecl wined3d_texture_get_sub_resource(ptr long)
+@ cdecl wined3d_texture_get_sub_resource_parent(ptr long)
@ cdecl wined3d_texture_incref(ptr)
@ cdecl wined3d_texture_preload(ptr)
@ cdecl wined3d_texture_release_dc(ptr long ptr)
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index 555167a..44b54e0 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -2447,6 +2447,7 @@ void __cdecl wined3d_texture_get_pitch(const struct wined3d_texture *texture,
struct wined3d_resource * __cdecl wined3d_texture_get_resource(struct wined3d_texture *texture);
struct wined3d_resource * __cdecl wined3d_texture_get_sub_resource(const struct wined3d_texture *texture,
UINT sub_resource_idx);
+void * __cdecl wined3d_texture_get_sub_resource_parent(struct wined3d_texture *texture, unsigned int sub_resource_idx);
ULONG __cdecl wined3d_texture_incref(struct wined3d_texture *texture);
void __cdecl wined3d_texture_preload(struct wined3d_texture *texture);
HRESULT __cdecl wined3d_texture_release_dc(struct wined3d_texture *texture, unsigned int sub_resource_idx, HDC dc);
More information about the wine-cvs
mailing list