ReactOS 0.4.17-dev-966-gf06eace
texture.c File Reference
#include "d3d8_private.h"
Include dependency graph for texture.c:

Go to the source code of this file.

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (d3d8)
 
static ULONG d3d8_texture_incref (struct d3d8_texture *texture)
 
static ULONG d3d8_texture_decref (struct d3d8_texture *texture)
 
static void d3d8_texture_preload (struct d3d8_texture *texture)
 
static struct d3d8_texture * impl_from_IDirect3DTexture8 (IDirect3DTexture8 *iface)
 
static struct d3d8_texture * impl_from_IDirect3DCubeTexture8 (IDirect3DCubeTexture8 *iface)
 
static struct d3d8_texture * impl_from_IDirect3DVolumeTexture8 (IDirect3DVolumeTexture8 *iface)
 
static HRESULT WINAPI d3d8_texture_2d_QueryInterface (IDirect3DTexture8 *iface, REFIID riid, void **out)
 
static ULONG WINAPI d3d8_texture_2d_AddRef (IDirect3DTexture8 *iface)
 
static ULONG WINAPI d3d8_texture_2d_Release (IDirect3DTexture8 *iface)
 
static HRESULT WINAPI d3d8_texture_2d_GetDevice (IDirect3DTexture8 *iface, IDirect3DDevice8 **device)
 
static HRESULT WINAPI d3d8_texture_2d_SetPrivateData (IDirect3DTexture8 *iface, REFGUID guid, const void *data, DWORD data_size, DWORD flags)
 
static HRESULT WINAPI d3d8_texture_2d_GetPrivateData (IDirect3DTexture8 *iface, REFGUID guid, void *data, DWORD *data_size)
 
static HRESULT WINAPI d3d8_texture_2d_FreePrivateData (IDirect3DTexture8 *iface, REFGUID guid)
 
static DWORD WINAPI d3d8_texture_2d_SetPriority (IDirect3DTexture8 *iface, DWORD priority)
 
static DWORD WINAPI d3d8_texture_2d_GetPriority (IDirect3DTexture8 *iface)
 
static void WINAPI d3d8_texture_2d_PreLoad (IDirect3DTexture8 *iface)
 
static D3DRESOURCETYPE WINAPI d3d8_texture_2d_GetType (IDirect3DTexture8 *iface)
 
static DWORD WINAPI d3d8_texture_2d_SetLOD (IDirect3DTexture8 *iface, DWORD lod)
 
static DWORD WINAPI d3d8_texture_2d_GetLOD (IDirect3DTexture8 *iface)
 
static DWORD WINAPI d3d8_texture_2d_GetLevelCount (IDirect3DTexture8 *iface)
 
static HRESULT WINAPI d3d8_texture_2d_GetLevelDesc (IDirect3DTexture8 *iface, UINT level, D3DSURFACE_DESC *desc)
 
static HRESULT WINAPI d3d8_texture_2d_GetSurfaceLevel (IDirect3DTexture8 *iface, UINT level, IDirect3DSurface8 **surface)
 
static HRESULT WINAPI d3d8_texture_2d_LockRect (IDirect3DTexture8 *iface, UINT level, D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags)
 
static HRESULT WINAPI d3d8_texture_2d_UnlockRect (IDirect3DTexture8 *iface, UINT level)
 
static HRESULT WINAPI d3d8_texture_2d_AddDirtyRect (IDirect3DTexture8 *iface, const RECT *dirty_rect)
 
static HRESULT WINAPI d3d8_texture_cube_QueryInterface (IDirect3DCubeTexture8 *iface, REFIID riid, void **out)
 
static ULONG WINAPI d3d8_texture_cube_AddRef (IDirect3DCubeTexture8 *iface)
 
static ULONG WINAPI d3d8_texture_cube_Release (IDirect3DCubeTexture8 *iface)
 
static HRESULT WINAPI d3d8_texture_cube_GetDevice (IDirect3DCubeTexture8 *iface, IDirect3DDevice8 **device)
 
static HRESULT WINAPI d3d8_texture_cube_SetPrivateData (IDirect3DCubeTexture8 *iface, REFGUID guid, const void *data, DWORD data_size, DWORD flags)
 
static HRESULT WINAPI d3d8_texture_cube_GetPrivateData (IDirect3DCubeTexture8 *iface, REFGUID guid, void *data, DWORD *data_size)
 
static HRESULT WINAPI d3d8_texture_cube_FreePrivateData (IDirect3DCubeTexture8 *iface, REFGUID guid)
 
static DWORD WINAPI d3d8_texture_cube_SetPriority (IDirect3DCubeTexture8 *iface, DWORD priority)
 
static DWORD WINAPI d3d8_texture_cube_GetPriority (IDirect3DCubeTexture8 *iface)
 
static void WINAPI d3d8_texture_cube_PreLoad (IDirect3DCubeTexture8 *iface)
 
static D3DRESOURCETYPE WINAPI d3d8_texture_cube_GetType (IDirect3DCubeTexture8 *iface)
 
static DWORD WINAPI d3d8_texture_cube_SetLOD (IDirect3DCubeTexture8 *iface, DWORD lod)
 
static DWORD WINAPI d3d8_texture_cube_GetLOD (IDirect3DCubeTexture8 *iface)
 
static DWORD WINAPI d3d8_texture_cube_GetLevelCount (IDirect3DCubeTexture8 *iface)
 
static HRESULT WINAPI d3d8_texture_cube_GetLevelDesc (IDirect3DCubeTexture8 *iface, UINT level, D3DSURFACE_DESC *desc)
 
static HRESULT WINAPI d3d8_texture_cube_GetCubeMapSurface (IDirect3DCubeTexture8 *iface, D3DCUBEMAP_FACES face, UINT level, IDirect3DSurface8 **surface)
 
static HRESULT WINAPI d3d8_texture_cube_LockRect (IDirect3DCubeTexture8 *iface, D3DCUBEMAP_FACES face, UINT level, D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags)
 
static HRESULT WINAPI d3d8_texture_cube_UnlockRect (IDirect3DCubeTexture8 *iface, D3DCUBEMAP_FACES face, UINT level)
 
static HRESULT WINAPI d3d8_texture_cube_AddDirtyRect (IDirect3DCubeTexture8 *iface, D3DCUBEMAP_FACES face, const RECT *dirty_rect)
 
static HRESULT WINAPI d3d8_texture_3d_QueryInterface (IDirect3DVolumeTexture8 *iface, REFIID riid, void **out)
 
static ULONG WINAPI d3d8_texture_3d_AddRef (IDirect3DVolumeTexture8 *iface)
 
static ULONG WINAPI d3d8_texture_3d_Release (IDirect3DVolumeTexture8 *iface)
 
static HRESULT WINAPI d3d8_texture_3d_GetDevice (IDirect3DVolumeTexture8 *iface, IDirect3DDevice8 **device)
 
static HRESULT WINAPI d3d8_texture_3d_SetPrivateData (IDirect3DVolumeTexture8 *iface, REFGUID guid, const void *data, DWORD data_size, DWORD flags)
 
static HRESULT WINAPI d3d8_texture_3d_GetPrivateData (IDirect3DVolumeTexture8 *iface, REFGUID guid, void *data, DWORD *data_size)
 
static HRESULT WINAPI d3d8_texture_3d_FreePrivateData (IDirect3DVolumeTexture8 *iface, REFGUID guid)
 
static DWORD WINAPI d3d8_texture_3d_SetPriority (IDirect3DVolumeTexture8 *iface, DWORD priority)
 
static DWORD WINAPI d3d8_texture_3d_GetPriority (IDirect3DVolumeTexture8 *iface)
 
static void WINAPI d3d8_texture_3d_PreLoad (IDirect3DVolumeTexture8 *iface)
 
static D3DRESOURCETYPE WINAPI d3d8_texture_3d_GetType (IDirect3DVolumeTexture8 *iface)
 
static DWORD WINAPI d3d8_texture_3d_SetLOD (IDirect3DVolumeTexture8 *iface, DWORD lod)
 
static DWORD WINAPI d3d8_texture_3d_GetLOD (IDirect3DVolumeTexture8 *iface)
 
static DWORD WINAPI d3d8_texture_3d_GetLevelCount (IDirect3DVolumeTexture8 *iface)
 
static HRESULT WINAPI d3d8_texture_3d_GetLevelDesc (IDirect3DVolumeTexture8 *iface, UINT level, D3DVOLUME_DESC *desc)
 
static HRESULT WINAPI d3d8_texture_3d_GetVolumeLevel (IDirect3DVolumeTexture8 *iface, UINT level, IDirect3DVolume8 **volume)
 
static HRESULT WINAPI d3d8_texture_3d_LockBox (IDirect3DVolumeTexture8 *iface, UINT level, D3DLOCKED_BOX *locked_box, const D3DBOX *box, DWORD flags)
 
static HRESULT WINAPI d3d8_texture_3d_UnlockBox (IDirect3DVolumeTexture8 *iface, UINT level)
 
static HRESULT WINAPI d3d8_texture_3d_AddDirtyBox (IDirect3DVolumeTexture8 *iface, const D3DBOX *dirty_box)
 
struct d3d8_texture * unsafe_impl_from_IDirect3DBaseTexture8 (IDirect3DBaseTexture8 *iface)
 
static void STDMETHODCALLTYPE d3d8_texture_wined3d_object_destroyed (void *parent)
 
static HRESULT d3d8_texture_init (struct d3d8_texture *texture, struct d3d8_device *device, const struct wined3d_resource_desc *desc, D3DPOOL pool, unsigned int layer_count, unsigned int level_count)
 
HRESULT d3d8_texture_2d_init (struct d3d8_texture *texture, struct d3d8_device *device, unsigned int width, unsigned int height, unsigned int level_count, DWORD usage, D3DFORMAT format, D3DPOOL pool)
 
HRESULT d3d8_texture_cube_init (struct d3d8_texture *texture, struct d3d8_device *device, unsigned int edge_length, unsigned int level_count, DWORD usage, D3DFORMAT format, D3DPOOL pool)
 
HRESULT d3d8_texture_3d_init (struct d3d8_texture *texture, struct d3d8_device *device, unsigned int width, unsigned int height, unsigned int depth, unsigned int level_count, DWORD usage, D3DFORMAT format, D3DPOOL pool)
 

Variables

static const IDirect3DTexture8Vtbl Direct3DTexture8_Vtbl
 
static const IDirect3DCubeTexture8Vtbl Direct3DCubeTexture8_Vtbl
 
static const IDirect3DVolumeTexture8Vtbl Direct3DVolumeTexture8_Vtbl
 
static const struct wined3d_parent_ops d3d8_texture_wined3d_parent_ops
 

Function Documentation

◆ d3d8_texture_2d_AddDirtyRect()

static HRESULT WINAPI d3d8_texture_2d_AddDirtyRect ( IDirect3DTexture8 *  iface,
const RECT *  dirty_rect 
)
static

Definition at line 349 of file texture.c.

350{
352 HRESULT hr;
353
354 TRACE("iface %p, dirty_rect %s.\n",
355 iface, wine_dbgstr_rect(dirty_rect));
356
358 if (!dirty_rect)
359 hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, 0, NULL);
360 else
361 {
362 struct wined3d_box dirty_region;
363
364 wined3d_box_set(&dirty_region, dirty_rect->left, dirty_rect->top, dirty_rect->right, dirty_rect->bottom, 0, 1);
365 hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, 0, &dirty_region);
366 }
368
369 return hr;
370}
static const char * wine_dbgstr_rect(const RECT *prc)
Definition: atltest.h:160
HRESULT hr
Definition: delayimp.cpp:582
#define NULL
Definition: types.h:112
static struct d3d8_texture * impl_from_IDirect3DTexture8(IDirect3DTexture8 *iface)
Definition: texture.c:82
HRESULT CDECL wined3d_texture_add_dirty_region(struct wined3d_texture *texture, UINT layer, const struct wined3d_box *dirty_region)
Definition: texture.c:2132
GLenum GLuint texture
Definition: glext.h:6295
#define TRACE(s)
Definition: solgame.cpp:4
long bottom
Definition: dcommon.idl:29
long right
Definition: dcommon.idl:29
long left
Definition: dcommon.idl:29
long top
Definition: dcommon.idl:29
static void wined3d_box_set(struct wined3d_box *box, unsigned int left, unsigned int top, unsigned int right, unsigned int bottom, unsigned int front, unsigned int back)
Definition: wined3d.h:3006
void WINAPI wined3d_mutex_unlock(void)
Definition: wined3d_main.c:544
void WINAPI wined3d_mutex_lock(void)
Definition: wined3d_main.c:539

◆ d3d8_texture_2d_AddRef()

static ULONG WINAPI d3d8_texture_2d_AddRef ( IDirect3DTexture8 *  iface)
static

Definition at line 117 of file texture.c.

118{
120
122}
static ULONG d3d8_texture_incref(struct d3d8_texture *texture)
Definition: texture.c:23

◆ d3d8_texture_2d_FreePrivateData()

static HRESULT WINAPI d3d8_texture_2d_FreePrivateData ( IDirect3DTexture8 *  iface,
REFGUID  guid 
)
static

Definition at line 165 of file texture.c.

166{
168 TRACE("iface %p, guid %s.\n", iface, debugstr_guid(guid));
169
170 return d3d8_resource_free_private_data(&texture->resource, guid);
171}
HRESULT d3d8_resource_free_private_data(struct d3d8_resource *resource, const GUID *guid)
Definition: d3d8_main.c:154
GUID guid
Definition: version.c:147
#define debugstr_guid
Definition: kernel32.h:35

◆ d3d8_texture_2d_GetDevice()

static HRESULT WINAPI d3d8_texture_2d_GetDevice ( IDirect3DTexture8 *  iface,
IDirect3DDevice8 **  device 
)
static

Definition at line 131 of file texture.c.

132{
134
135 TRACE("iface %p, device %p.\n", iface, device);
136
137 *device = &texture->parent_device->IDirect3DDevice8_iface;
139
140 TRACE("Returning device %p.\n", *device);
141
142 return D3D_OK;
143}
#define D3D_OK
Definition: d3d.h:106
#define IDirect3DDevice8_AddRef(p)
Definition: d3d8.h:943
Definition: devices.h:37

◆ d3d8_texture_2d_GetLevelCount()

static DWORD WINAPI d3d8_texture_2d_GetLevelCount ( IDirect3DTexture8 *  iface)
static

Definition at line 250 of file texture.c.

251{
253 DWORD ret;
254
255 TRACE("iface %p.\n", iface);
256
258 ret = wined3d_texture_get_level_count(texture->wined3d_texture);
260
261 return ret;
262}
UINT CDECL wined3d_texture_get_level_count(const struct wined3d_texture *texture)
Definition: texture.c:1746
return ret
Definition: mutex.c:147
unsigned long DWORD
Definition: ntddk_ex.h:95

◆ d3d8_texture_2d_GetLevelDesc()

static HRESULT WINAPI d3d8_texture_2d_GetLevelDesc ( IDirect3DTexture8 *  iface,
UINT  level,
D3DSURFACE_DESC *  desc 
)
static

Definition at line 264 of file texture.c.

265{
267 struct wined3d_sub_resource_desc wined3d_desc;
268 HRESULT hr;
269
270 TRACE("iface %p, level %u, desc %p.\n", iface, level, desc);
271
273 if (SUCCEEDED(hr = wined3d_texture_get_sub_resource_desc(texture->wined3d_texture, level, &wined3d_desc)))
274 {
275 desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
276 desc->Type = D3DRTYPE_SURFACE;
277 desc->Usage = d3dusage_from_wined3dusage(wined3d_desc.usage, wined3d_desc.bind_flags);
278 desc->Pool = d3dpool_from_wined3daccess(wined3d_desc.access, wined3d_desc.usage);
279 desc->Size = wined3d_desc.size;
280 desc->MultiSampleType = d3dmultisample_type_from_wined3d(wined3d_desc.multisample_type);
281 desc->Width = wined3d_desc.width;
282 desc->Height = wined3d_desc.height;
283 }
285
286 return hr;
287}
static DWORD d3dusage_from_wined3dusage(unsigned int wined3d_usage, unsigned int bind_flags)
Definition: d3d8_private.h:305
D3DFORMAT d3dformat_from_wined3dformat(enum wined3d_format_id format)
Definition: device.c:33
static D3DMULTISAMPLE_TYPE d3dmultisample_type_from_wined3d(enum wined3d_multisample_type type)
Definition: d3d8_private.h:387
static D3DPOOL d3dpool_from_wined3daccess(unsigned int access, unsigned int usage)
Definition: d3d8_private.h:315
@ D3DRTYPE_SURFACE
Definition: d3d8types.h:810
HRESULT CDECL wined3d_texture_get_sub_resource_desc(const struct wined3d_texture *texture, unsigned int sub_resource_idx, struct wined3d_sub_resource_desc *desc)
Definition: texture.c:4055
GLint level
Definition: gl.h:1546
#define SUCCEEDED(hr)
Definition: intsafe.h:50
D3D11_SHADER_VARIABLE_DESC desc
Definition: reflection.c:1683

◆ d3d8_texture_2d_GetLOD()

static DWORD WINAPI d3d8_texture_2d_GetLOD ( IDirect3DTexture8 *  iface)
static

Definition at line 236 of file texture.c.

237{
239 DWORD ret;
240
241 TRACE("iface %p.\n", iface);
242
246
247 return ret;
248}
static struct wined3d_texture * d3d8_texture_get_draw_texture(struct d3d8_texture *texture)
Definition: d3d8_private.h:257
unsigned int CDECL wined3d_texture_get_lod(const struct wined3d_texture *texture)
Definition: texture.c:1715

◆ d3d8_texture_2d_GetPriority()

static DWORD WINAPI d3d8_texture_2d_GetPriority ( IDirect3DTexture8 *  iface)
static

Definition at line 189 of file texture.c.

190{
192 const struct wined3d_resource *resource;
193 DWORD ret;
194
195 TRACE("iface %p.\n", iface);
196
201
202 return ret;
203}
unsigned int CDECL wined3d_resource_get_priority(const struct wined3d_resource *resource)
Definition: resource.c:263
struct wined3d_resource *CDECL wined3d_texture_get_resource(struct wined3d_texture *texture)
Definition: texture.c:1649
#define resource
Definition: kernel32.h:9

◆ d3d8_texture_2d_GetPrivateData()

static HRESULT WINAPI d3d8_texture_2d_GetPrivateData ( IDirect3DTexture8 *  iface,
REFGUID  guid,
void *  data,
DWORD *  data_size 
)
static

Definition at line 155 of file texture.c.

157{
159 TRACE("iface %p, guid %s, data %p, data_size %p.\n",
160 iface, debugstr_guid(guid), data, data_size);
161
162 return d3d8_resource_get_private_data(&texture->resource, guid, data, data_size);
163}
HRESULT d3d8_resource_get_private_data(struct d3d8_resource *resource, const GUID *guid, void *data, DWORD *data_size)
Definition: d3d8_main.c:172
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950

◆ d3d8_texture_2d_GetSurfaceLevel()

static HRESULT WINAPI d3d8_texture_2d_GetSurfaceLevel ( IDirect3DTexture8 *  iface,
UINT  level,
IDirect3DSurface8 **  surface 
)
static

Definition at line 289 of file texture.c.

291{
293 struct d3d8_surface *surface_impl;
294
295 TRACE("iface %p, level %u, surface %p.\n", iface, level, surface);
296
298 if (!(surface_impl = wined3d_texture_get_sub_resource_parent(texture->wined3d_texture, level)))
299 {
301 return D3DERR_INVALIDCALL;
302 }
303
304 *surface = &surface_impl->IDirect3DSurface8_iface;
305 IDirect3DSurface8_AddRef(*surface);
307
308 return D3D_OK;
309}
#define D3DERR_INVALIDCALL
Definition: d3d10_private.h:42
void *CDECL wined3d_texture_get_sub_resource_parent(struct wined3d_texture *texture, unsigned int sub_resource_idx)
Definition: texture.c:4033
#define IDirect3DSurface8_AddRef(p)
Definition: d3d8.h:305
IDirect3DSurface8 IDirect3DSurface8_iface
Definition: d3d8_private.h:190

◆ d3d8_texture_2d_GetType()

static D3DRESOURCETYPE WINAPI d3d8_texture_2d_GetType ( IDirect3DTexture8 *  iface)
static

Definition at line 214 of file texture.c.

215{
216 TRACE("iface %p.\n", iface);
217
218 return D3DRTYPE_TEXTURE;
219}
@ D3DRTYPE_TEXTURE
Definition: d3d8types.h:812

◆ d3d8_texture_2d_init()

HRESULT d3d8_texture_2d_init ( struct d3d8_texture *  texture,
struct d3d8_device *  device,
unsigned int  width,
unsigned int  height,
unsigned int  level_count,
DWORD  usage,
D3DFORMAT  format,
D3DPOOL  pool 
)

Definition at line 1114 of file texture.c.

1116{
1118
1119 desc.resource_type = WINED3D_RTYPE_TEXTURE_2D;
1121 desc.multisample_type = WINED3D_MULTISAMPLE_NONE;
1122 desc.multisample_quality = 0;
1126 desc.width = width;
1127 desc.height = height;
1128 desc.depth = 1;
1129 desc.size = 0;
1130
1132 {
1133 WARN("Texture can't be created with the D3DUSAGE_WRITEONLY flag, returning D3DERR_INVALIDCALL.\n");
1134 return D3DERR_INVALIDCALL;
1135 }
1136
1137 texture->IDirect3DBaseTexture8_iface.lpVtbl = (const IDirect3DBaseTexture8Vtbl *)&Direct3DTexture8_Vtbl;
1138 return d3d8_texture_init(texture, device, &desc, pool, 1, level_count);
1139}
#define WARN(fmt,...)
Definition: precomp.h:61
static unsigned int wined3d_bind_flags_from_d3d8_usage(DWORD usage)
Definition: d3d8_private.h:375
static unsigned int wined3d_usage_from_d3d(D3DPOOL pool, DWORD usage)
Definition: d3d8_private.h:365
static unsigned int wined3daccess_from_d3dpool(D3DPOOL pool, unsigned int usage)
Definition: d3d8_private.h:341
enum wined3d_format_id wined3dformat_from_d3dformat(D3DFORMAT format)
Definition: device.c:84
#define D3DUSAGE_WRITEONLY
Definition: d3d8types.h:93
static HRESULT d3d8_texture_init(struct d3d8_texture *texture, struct d3d8_device *device, const struct wined3d_resource_desc *desc, D3DPOOL pool, unsigned int layer_count, unsigned int level_count)
Definition: texture.c:1054
static const IDirect3DTexture8Vtbl Direct3DTexture8_Vtbl
Definition: texture.c:372
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
GLint GLint GLsizei width
Definition: gl.h:1546
GLsizeiptr const GLvoid GLenum usage
Definition: glext.h:5919
@ WINED3D_MULTISAMPLE_NONE
Definition: wined3d.h:573
@ WINED3D_RTYPE_TEXTURE_2D
Definition: wined3d.h:720
#define WINED3D_BIND_SHADER_RESOURCE
Definition: wined3d.h:912

Referenced by d3d8_device_CreateTexture().

◆ d3d8_texture_2d_LockRect()

static HRESULT WINAPI d3d8_texture_2d_LockRect ( IDirect3DTexture8 *  iface,
UINT  level,
D3DLOCKED_RECT *  locked_rect,
const RECT *  rect,
DWORD  flags 
)
static

Definition at line 311 of file texture.c.

313{
315 struct d3d8_surface *surface_impl;
316 HRESULT hr;
317
318 TRACE("iface %p, level %u, locked_rect %p, rect %p, flags %#lx.\n",
319 iface, level, locked_rect, rect, flags);
320
322 if (!(surface_impl = wined3d_texture_get_sub_resource_parent(texture->wined3d_texture, level)))
324 else
325 hr = IDirect3DSurface8_LockRect(&surface_impl->IDirect3DSurface8_iface, locked_rect, rect, flags);
327
328 return hr;
329}
RECT rect
Definition: combotst.c:67
GLbitfield flags
Definition: glext.h:7161
#define IDirect3DSurface8_LockRect(p, a, b, c)
Definition: d3d8.h:314

◆ d3d8_texture_2d_PreLoad()

static void WINAPI d3d8_texture_2d_PreLoad ( IDirect3DTexture8 *  iface)
static

Definition at line 205 of file texture.c.

206{
208
209 TRACE("iface %p.\n", iface);
210
212}
static void d3d8_texture_preload(struct d3d8_texture *texture)
Definition: texture.c:71

◆ d3d8_texture_2d_QueryInterface()

static HRESULT WINAPI d3d8_texture_2d_QueryInterface ( IDirect3DTexture8 *  iface,
REFIID  riid,
void **  out 
)
static

Definition at line 97 of file texture.c.

98{
99 TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
100
101 if (IsEqualGUID(riid, &IID_IDirect3DTexture8)
102 || IsEqualGUID(riid, &IID_IDirect3DBaseTexture8)
103 || IsEqualGUID(riid, &IID_IDirect3DResource8)
105 {
107 *out = iface;
108 return S_OK;
109 }
110
111 WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid));
112
113 *out = NULL;
114 return E_NOINTERFACE;
115}
const GUID IID_IUnknown
REFIID riid
Definition: atlbase.h:39
#define S_OK
Definition: intsafe.h:52
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define IDirect3DTexture8_AddRef(p)
Definition: d3d8.h:694
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383
#define E_NOINTERFACE
Definition: winerror.h:3479

◆ d3d8_texture_2d_Release()

static ULONG WINAPI d3d8_texture_2d_Release ( IDirect3DTexture8 *  iface)
static

Definition at line 124 of file texture.c.

125{
127
129}
static ULONG d3d8_texture_decref(struct d3d8_texture *texture)
Definition: texture.c:46

◆ d3d8_texture_2d_SetLOD()

static DWORD WINAPI d3d8_texture_2d_SetLOD ( IDirect3DTexture8 *  iface,
DWORD  lod 
)
static

Definition at line 221 of file texture.c.

222{
224 DWORD ret;
225
226 TRACE("iface %p, lod %lu.\n", iface, lod);
227
229 ret = wined3d_stateblock_set_texture_lod(texture->parent_device->state,
232
233 return ret;
234}
GLint lod
Definition: glext.h:7795
unsigned int CDECL wined3d_stateblock_set_texture_lod(struct wined3d_stateblock *stateblock, struct wined3d_texture *texture, unsigned int lod)
Definition: stateblock.c:4004

◆ d3d8_texture_2d_SetPriority()

static DWORD WINAPI d3d8_texture_2d_SetPriority ( IDirect3DTexture8 *  iface,
DWORD  priority 
)
static

Definition at line 173 of file texture.c.

174{
177 DWORD ret;
178
179 TRACE("iface %p, priority %lu.\n", iface, priority);
180
185
186 return ret;
187}
unsigned int CDECL wined3d_resource_set_priority(struct wined3d_resource *resource, unsigned int priority)
Definition: resource.c:247
static int priority
Definition: timer.c:163

◆ d3d8_texture_2d_SetPrivateData()

static HRESULT WINAPI d3d8_texture_2d_SetPrivateData ( IDirect3DTexture8 *  iface,
REFGUID  guid,
const void *  data,
DWORD  data_size,
DWORD  flags 
)
static

Definition at line 145 of file texture.c.

147{
149 TRACE("iface %p, guid %s, data %p, data_size %lu, flags %#lx.\n",
150 iface, debugstr_guid(guid), data, data_size, flags);
151
152 return d3d8_resource_set_private_data(&texture->resource, guid, data, data_size, flags);
153}
HRESULT d3d8_resource_set_private_data(struct d3d8_resource *resource, const GUID *guid, const void *data, DWORD data_size, DWORD flags)
Definition: d3d8_main.c:216

◆ d3d8_texture_2d_UnlockRect()

static HRESULT WINAPI d3d8_texture_2d_UnlockRect ( IDirect3DTexture8 *  iface,
UINT  level 
)
static

Definition at line 331 of file texture.c.

332{
334 struct d3d8_surface *surface_impl;
335 HRESULT hr;
336
337 TRACE("iface %p, level %u.\n", iface, level);
338
340 if (!(surface_impl = wined3d_texture_get_sub_resource_parent(texture->wined3d_texture, level)))
342 else
345
346 return hr;
347}
#define IDirect3DSurface8_UnlockRect(p)
Definition: d3d8.h:315

◆ d3d8_texture_3d_AddDirtyBox()

static HRESULT WINAPI d3d8_texture_3d_AddDirtyBox ( IDirect3DVolumeTexture8 *  iface,
const D3DBOX *  dirty_box 
)
static

Definition at line 976 of file texture.c.

977{
979 HRESULT hr;
980
981 TRACE("iface %p, dirty_box %p.\n", iface, dirty_box);
982
984 hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, 0, (const struct wined3d_box *)dirty_box);
986
987 return hr;
988}
static struct d3d8_texture * impl_from_IDirect3DVolumeTexture8(IDirect3DVolumeTexture8 *iface)
Definition: texture.c:92

◆ d3d8_texture_3d_AddRef()

static ULONG WINAPI d3d8_texture_3d_AddRef ( IDirect3DVolumeTexture8 *  iface)
static

Definition at line 744 of file texture.c.

745{
747
749}

◆ d3d8_texture_3d_FreePrivateData()

static HRESULT WINAPI d3d8_texture_3d_FreePrivateData ( IDirect3DVolumeTexture8 *  iface,
REFGUID  guid 
)
static

Definition at line 792 of file texture.c.

793{
795 TRACE("iface %p, guid %s.\n", iface, debugstr_guid(guid));
796
797 return d3d8_resource_free_private_data(&texture->resource, guid);
798}

◆ d3d8_texture_3d_GetDevice()

static HRESULT WINAPI d3d8_texture_3d_GetDevice ( IDirect3DVolumeTexture8 *  iface,
IDirect3DDevice8 **  device 
)
static

Definition at line 758 of file texture.c.

759{
761
762 TRACE("iface %p, device %p.\n", iface, device);
763
764 *device = &texture->parent_device->IDirect3DDevice8_iface;
766
767 TRACE("Returning device %p.\n", *device);
768
769 return D3D_OK;
770}

◆ d3d8_texture_3d_GetLevelCount()

static DWORD WINAPI d3d8_texture_3d_GetLevelCount ( IDirect3DVolumeTexture8 *  iface)
static

Definition at line 877 of file texture.c.

878{
880 DWORD ret;
881
882 TRACE("iface %p.\n", iface);
883
885 ret = wined3d_texture_get_level_count(texture->wined3d_texture);
887
888 return ret;
889}

◆ d3d8_texture_3d_GetLevelDesc()

static HRESULT WINAPI d3d8_texture_3d_GetLevelDesc ( IDirect3DVolumeTexture8 *  iface,
UINT  level,
D3DVOLUME_DESC *  desc 
)
static

Definition at line 891 of file texture.c.

892{
894 struct wined3d_sub_resource_desc wined3d_desc;
895 HRESULT hr;
896
897 TRACE("iface %p, level %u, desc %p.\n", iface, level, desc);
898
900 if (SUCCEEDED(hr = wined3d_texture_get_sub_resource_desc(texture->wined3d_texture, level, &wined3d_desc)))
901 {
902 desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
903 desc->Type = D3DRTYPE_VOLUME;
904 desc->Usage = d3dusage_from_wined3dusage(wined3d_desc.usage, wined3d_desc.bind_flags);
905 desc->Pool = d3dpool_from_wined3daccess(wined3d_desc.access, wined3d_desc.usage);
906 desc->Size = wined3d_desc.size;
907 desc->Width = wined3d_desc.width;
908 desc->Height = wined3d_desc.height;
909 desc->Depth = wined3d_desc.depth;
910 }
912
913 return hr;
914}
@ D3DRTYPE_VOLUME
Definition: d3d8types.h:811

◆ d3d8_texture_3d_GetLOD()

static DWORD WINAPI d3d8_texture_3d_GetLOD ( IDirect3DVolumeTexture8 *  iface)
static

Definition at line 863 of file texture.c.

864{
866 DWORD ret;
867
868 TRACE("iface %p.\n", iface);
869
873
874 return ret;
875}

◆ d3d8_texture_3d_GetPriority()

static DWORD WINAPI d3d8_texture_3d_GetPriority ( IDirect3DVolumeTexture8 *  iface)
static

Definition at line 816 of file texture.c.

◆ d3d8_texture_3d_GetPrivateData()

static HRESULT WINAPI d3d8_texture_3d_GetPrivateData ( IDirect3DVolumeTexture8 *  iface,
REFGUID  guid,
void *  data,
DWORD *  data_size 
)
static

Definition at line 782 of file texture.c.

784{
786 TRACE("iface %p, guid %s, data %p, data_size %p.\n",
787 iface, debugstr_guid(guid), data, data_size);
788
789 return d3d8_resource_get_private_data(&texture->resource, guid, data, data_size);
790}

◆ d3d8_texture_3d_GetType()

static D3DRESOURCETYPE WINAPI d3d8_texture_3d_GetType ( IDirect3DVolumeTexture8 *  iface)
static

Definition at line 841 of file texture.c.

842{
843 TRACE("iface %p.\n", iface);
844
846}
@ D3DRTYPE_VOLUMETEXTURE
Definition: d3d8types.h:813

◆ d3d8_texture_3d_GetVolumeLevel()

static HRESULT WINAPI d3d8_texture_3d_GetVolumeLevel ( IDirect3DVolumeTexture8 *  iface,
UINT  level,
IDirect3DVolume8 **  volume 
)
static

Definition at line 916 of file texture.c.

918{
920 struct d3d8_volume *volume_impl;
921
922 TRACE("iface %p, level %u, volume %p.\n", iface, level, volume);
923
925 if (!(volume_impl = wined3d_texture_get_sub_resource_parent(texture->wined3d_texture, level)))
926 {
928 return D3DERR_INVALIDCALL;
929 }
930
931 *volume = &volume_impl->IDirect3DVolume8_iface;
934
935 return D3D_OK;
936}
#define IDirect3DVolume8_AddRef(p)
Definition: d3d8.h:218
IDirect3DVolume8 IDirect3DVolume8_iface
Definition: d3d8_private.h:165

◆ d3d8_texture_3d_init()

HRESULT d3d8_texture_3d_init ( struct d3d8_texture *  texture,
struct d3d8_device *  device,
unsigned int  width,
unsigned int  height,
unsigned int  depth,
unsigned int  level_count,
DWORD  usage,
D3DFORMAT  format,
D3DPOOL  pool 
)

Definition at line 1168 of file texture.c.

1170{
1172
1173 /* In d3d8, 3D textures can't be used as rendertarget or depth/stencil buffer. */
1175 return D3DERR_INVALIDCALL;
1176
1177 desc.resource_type = WINED3D_RTYPE_TEXTURE_3D;
1179 desc.multisample_type = WINED3D_MULTISAMPLE_NONE;
1180 desc.multisample_quality = 0;
1184 desc.width = width;
1185 desc.height = height;
1186 desc.depth = depth;
1187 desc.size = 0;
1188
1190 {
1191 WARN("Texture can't be created with the D3DUSAGE_WRITEONLY flags, returning D3DERR_INVALIDCALL.\n");
1192 return D3DERR_INVALIDCALL;
1193 }
1194
1195 texture->IDirect3DBaseTexture8_iface.lpVtbl = (const IDirect3DBaseTexture8Vtbl *)&Direct3DVolumeTexture8_Vtbl;
1196 return d3d8_texture_init(texture, device, &desc, pool, 1, level_count);
1197}
#define D3DUSAGE_RENDERTARGET
Definition: d3d8types.h:91
#define D3DUSAGE_DEPTHSTENCIL
Definition: d3d8types.h:92
static const IDirect3DVolumeTexture8Vtbl Direct3DVolumeTexture8_Vtbl
Definition: texture.c:990
GLint GLint GLsizei GLsizei GLsizei depth
Definition: gl.h:1546
@ WINED3D_RTYPE_TEXTURE_3D
Definition: wined3d.h:721

Referenced by d3d8_device_CreateVolumeTexture().

◆ d3d8_texture_3d_LockBox()

static HRESULT WINAPI d3d8_texture_3d_LockBox ( IDirect3DVolumeTexture8 *  iface,
UINT  level,
D3DLOCKED_BOX *  locked_box,
const D3DBOX *  box,
DWORD  flags 
)
static

Definition at line 938 of file texture.c.

940{
942 struct d3d8_volume *volume_impl;
943 HRESULT hr;
944
945 TRACE("iface %p, level %u, locked_box %p, box %p, flags %#lx.\n",
946 iface, level, locked_box, box, flags);
947
949 if (!(volume_impl = wined3d_texture_get_sub_resource_parent(texture->wined3d_texture, level)))
951 else
952 hr = IDirect3DVolume8_LockBox(&volume_impl->IDirect3DVolume8_iface, locked_box, box, flags);
954
955 return hr;
956}
#define IDirect3DVolume8_LockBox(p, a, b, c)
Definition: d3d8.h:227
Definition: palette.c:466

◆ d3d8_texture_3d_PreLoad()

static void WINAPI d3d8_texture_3d_PreLoad ( IDirect3DVolumeTexture8 *  iface)
static

Definition at line 832 of file texture.c.

833{
835
836 TRACE("iface %p.\n", iface);
837
839}

◆ d3d8_texture_3d_QueryInterface()

static HRESULT WINAPI d3d8_texture_3d_QueryInterface ( IDirect3DVolumeTexture8 *  iface,
REFIID  riid,
void **  out 
)
static

Definition at line 724 of file texture.c.

725{
726 TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
727
728 if (IsEqualGUID(riid, &IID_IDirect3DVolumeTexture8)
729 || IsEqualGUID(riid, &IID_IDirect3DBaseTexture8)
730 || IsEqualGUID(riid, &IID_IDirect3DResource8)
732 {
734 *out = iface;
735 return S_OK;
736 }
737
738 WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid));
739
740 *out = NULL;
741 return E_NOINTERFACE;
742}
#define IDirect3DVolumeTexture8_AddRef(p)
Definition: d3d8.h:776

◆ d3d8_texture_3d_Release()

static ULONG WINAPI d3d8_texture_3d_Release ( IDirect3DVolumeTexture8 *  iface)
static

Definition at line 751 of file texture.c.

752{
754
756}

◆ d3d8_texture_3d_SetLOD()

static DWORD WINAPI d3d8_texture_3d_SetLOD ( IDirect3DVolumeTexture8 *  iface,
DWORD  lod 
)
static

Definition at line 848 of file texture.c.

849{
851 DWORD ret;
852
853 TRACE("iface %p, lod %lu.\n", iface, lod);
854
856 ret = wined3d_stateblock_set_texture_lod(texture->parent_device->state,
859
860 return ret;
861}

◆ d3d8_texture_3d_SetPriority()

static DWORD WINAPI d3d8_texture_3d_SetPriority ( IDirect3DVolumeTexture8 *  iface,
DWORD  priority 
)
static

Definition at line 800 of file texture.c.

◆ d3d8_texture_3d_SetPrivateData()

static HRESULT WINAPI d3d8_texture_3d_SetPrivateData ( IDirect3DVolumeTexture8 *  iface,
REFGUID  guid,
const void *  data,
DWORD  data_size,
DWORD  flags 
)
static

Definition at line 772 of file texture.c.

774{
776 TRACE("iface %p, guid %s, data %p, data_size %lu, flags %#lx.\n",
777 iface, debugstr_guid(guid), data, data_size, flags);
778
779 return d3d8_resource_set_private_data(&texture->resource, guid, data, data_size, flags);
780}

◆ d3d8_texture_3d_UnlockBox()

static HRESULT WINAPI d3d8_texture_3d_UnlockBox ( IDirect3DVolumeTexture8 *  iface,
UINT  level 
)
static

Definition at line 958 of file texture.c.

959{
961 struct d3d8_volume *volume_impl;
962 HRESULT hr;
963
964 TRACE("iface %p, level %u.\n", iface, level);
965
967 if (!(volume_impl = wined3d_texture_get_sub_resource_parent(texture->wined3d_texture, level)))
969 else
972
973 return hr;
974}
#define IDirect3DVolume8_UnlockBox(p)
Definition: d3d8.h:228

◆ d3d8_texture_cube_AddDirtyRect()

static HRESULT WINAPI d3d8_texture_cube_AddDirtyRect ( IDirect3DCubeTexture8 *  iface,
D3DCUBEMAP_FACES  face,
const RECT *  dirty_rect 
)
static

Definition at line 673 of file texture.c.

675{
677 HRESULT hr;
678
679 TRACE("iface %p, face %#x, dirty_rect %s.\n",
680 iface, face, wine_dbgstr_rect(dirty_rect));
681
683 if (!dirty_rect)
685 else
686 {
687 struct wined3d_box dirty_region;
688
689 wined3d_box_set(&dirty_region, dirty_rect->left, dirty_rect->top, dirty_rect->right, dirty_rect->bottom, 0, 1);
690 hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, face, &dirty_region);
691 }
693
694 return hr;
695}
static struct d3d8_texture * impl_from_IDirect3DCubeTexture8(IDirect3DCubeTexture8 *iface)
Definition: texture.c:87
GLenum GLuint GLint GLenum face
Definition: glext.h:7025

◆ d3d8_texture_cube_AddRef()

static ULONG WINAPI d3d8_texture_cube_AddRef ( IDirect3DCubeTexture8 *  iface)
static

Definition at line 419 of file texture.c.

420{
422
424}

◆ d3d8_texture_cube_FreePrivateData()

static HRESULT WINAPI d3d8_texture_cube_FreePrivateData ( IDirect3DCubeTexture8 *  iface,
REFGUID  guid 
)
static

Definition at line 467 of file texture.c.

468{
470 TRACE("iface %p, guid %s.\n", iface, debugstr_guid(guid));
471
472 return d3d8_resource_free_private_data(&texture->resource, guid);
473}

◆ d3d8_texture_cube_GetCubeMapSurface()

static HRESULT WINAPI d3d8_texture_cube_GetCubeMapSurface ( IDirect3DCubeTexture8 *  iface,
D3DCUBEMAP_FACES  face,
UINT  level,
IDirect3DSurface8 **  surface 
)
static

Definition at line 597 of file texture.c.

599{
601 struct d3d8_surface *surface_impl;
603 DWORD level_count;
604
605 TRACE("iface %p, face %#x, level %u, surface %p.\n", iface, face, level, surface);
606
608 level_count = wined3d_texture_get_level_count(texture->wined3d_texture);
609 if (level >= level_count)
610 {
612 return D3DERR_INVALIDCALL;
613 }
614
615 sub_resource_idx = level_count * face + level;
616 if (!(surface_impl = wined3d_texture_get_sub_resource_parent(texture->wined3d_texture, sub_resource_idx)))
617 {
619 return D3DERR_INVALIDCALL;
620 }
621
622 *surface = &surface_impl->IDirect3DSurface8_iface;
623 IDirect3DSurface8_AddRef(*surface);
625
626 return D3D_OK;
627}
unsigned int UINT
Definition: sysinfo.c:13
unsigned int sub_resource_idx
Definition: d3d8_private.h:193

◆ d3d8_texture_cube_GetDevice()

static HRESULT WINAPI d3d8_texture_cube_GetDevice ( IDirect3DCubeTexture8 *  iface,
IDirect3DDevice8 **  device 
)
static

Definition at line 433 of file texture.c.

434{
436
437 TRACE("iface %p, device %p.\n", iface, device);
438
439 *device = &texture->parent_device->IDirect3DDevice8_iface;
441
442 TRACE("Returning device %p.\n", *device);
443
444 return D3D_OK;
445}

◆ d3d8_texture_cube_GetLevelCount()

static DWORD WINAPI d3d8_texture_cube_GetLevelCount ( IDirect3DCubeTexture8 *  iface)
static

Definition at line 552 of file texture.c.

553{
555 DWORD ret;
556
557 TRACE("iface %p.\n", iface);
558
560 ret = wined3d_texture_get_level_count(texture->wined3d_texture);
562
563 return ret;
564}

◆ d3d8_texture_cube_GetLevelDesc()

static HRESULT WINAPI d3d8_texture_cube_GetLevelDesc ( IDirect3DCubeTexture8 *  iface,
UINT  level,
D3DSURFACE_DESC *  desc 
)
static

Definition at line 566 of file texture.c.

567{
569 struct wined3d_sub_resource_desc wined3d_desc;
570 HRESULT hr;
571
572 TRACE("iface %p, level %u, desc %p.\n", iface, level, desc);
573
575 if (level >= wined3d_texture_get_level_count(texture->wined3d_texture))
576 {
578 return D3DERR_INVALIDCALL;
579 }
580
581 if (SUCCEEDED(hr = wined3d_texture_get_sub_resource_desc(texture->wined3d_texture, level, &wined3d_desc)))
582 {
583 desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
584 desc->Type = D3DRTYPE_SURFACE;
585 desc->Usage = d3dusage_from_wined3dusage(wined3d_desc.usage, wined3d_desc.bind_flags);
586 desc->Pool = d3dpool_from_wined3daccess(wined3d_desc.access, wined3d_desc.usage);
587 desc->Size = wined3d_desc.size;
588 desc->MultiSampleType = d3dmultisample_type_from_wined3d(wined3d_desc.multisample_type);
589 desc->Width = wined3d_desc.width;
590 desc->Height = wined3d_desc.height;
591 }
593
594 return hr;
595}

◆ d3d8_texture_cube_GetLOD()

static DWORD WINAPI d3d8_texture_cube_GetLOD ( IDirect3DCubeTexture8 *  iface)
static

Definition at line 538 of file texture.c.

539{
541 DWORD ret;
542
543 TRACE("iface %p.\n", iface);
544
548
549 return ret;
550}

◆ d3d8_texture_cube_GetPriority()

static DWORD WINAPI d3d8_texture_cube_GetPriority ( IDirect3DCubeTexture8 *  iface)
static

Definition at line 491 of file texture.c.

◆ d3d8_texture_cube_GetPrivateData()

static HRESULT WINAPI d3d8_texture_cube_GetPrivateData ( IDirect3DCubeTexture8 *  iface,
REFGUID  guid,
void *  data,
DWORD *  data_size 
)
static

Definition at line 457 of file texture.c.

459{
461 TRACE("iface %p, guid %s, data %p, data_size %p.\n",
462 iface, debugstr_guid(guid), data, data_size);
463
464 return d3d8_resource_get_private_data(&texture->resource, guid, data, data_size);
465}

◆ d3d8_texture_cube_GetType()

static D3DRESOURCETYPE WINAPI d3d8_texture_cube_GetType ( IDirect3DCubeTexture8 *  iface)
static

Definition at line 516 of file texture.c.

517{
518 TRACE("iface %p.\n", iface);
519
521}
@ D3DRTYPE_CUBETEXTURE
Definition: d3d8types.h:814

◆ d3d8_texture_cube_init()

HRESULT d3d8_texture_cube_init ( struct d3d8_texture *  texture,
struct d3d8_device *  device,
unsigned int  edge_length,
unsigned int  level_count,
DWORD  usage,
D3DFORMAT  format,
D3DPOOL  pool 
)

Definition at line 1141 of file texture.c.

1143{
1145
1146 desc.resource_type = WINED3D_RTYPE_TEXTURE_2D;
1148 desc.multisample_type = WINED3D_MULTISAMPLE_NONE;
1149 desc.multisample_quality = 0;
1153 desc.width = edge_length;
1154 desc.height = edge_length;
1155 desc.depth = 1;
1156 desc.size = 0;
1157
1159 {
1160 WARN("Texture can't be created with the D3DUSAGE_WRITEONLY flag, returning D3DERR_INVALIDCALL.\n");
1161 return D3DERR_INVALIDCALL;
1162 }
1163
1164 texture->IDirect3DBaseTexture8_iface.lpVtbl = (const IDirect3DBaseTexture8Vtbl *)&Direct3DCubeTexture8_Vtbl;
1165 return d3d8_texture_init(texture, device, &desc, pool, 6, level_count);
1166}
static const IDirect3DCubeTexture8Vtbl Direct3DCubeTexture8_Vtbl
Definition: texture.c:697
#define WINED3DUSAGE_LEGACY_CUBEMAP
Definition: wined3d.h:934

Referenced by d3d8_device_CreateCubeTexture().

◆ d3d8_texture_cube_LockRect()

static HRESULT WINAPI d3d8_texture_cube_LockRect ( IDirect3DCubeTexture8 *  iface,
D3DCUBEMAP_FACES  face,
UINT  level,
D3DLOCKED_RECT *  locked_rect,
const RECT *  rect,
DWORD  flags 
)
static

Definition at line 629 of file texture.c.

632{
634 struct d3d8_surface *surface_impl;
636 HRESULT hr;
637
638 TRACE("iface %p, face %#x, level %u, locked_rect %p, rect %p, flags %#lx.\n",
639 iface, face, level, locked_rect, rect, flags);
640
643 if (!(surface_impl = wined3d_texture_get_sub_resource_parent(texture->wined3d_texture, sub_resource_idx)))
645 else
646 hr = IDirect3DSurface8_LockRect(&surface_impl->IDirect3DSurface8_iface, locked_rect, rect, flags);
648
649 return hr;
650}

◆ d3d8_texture_cube_PreLoad()

static void WINAPI d3d8_texture_cube_PreLoad ( IDirect3DCubeTexture8 *  iface)
static

Definition at line 507 of file texture.c.

508{
510
511 TRACE("iface %p.\n", iface);
512
514}

◆ d3d8_texture_cube_QueryInterface()

static HRESULT WINAPI d3d8_texture_cube_QueryInterface ( IDirect3DCubeTexture8 *  iface,
REFIID  riid,
void **  out 
)
static

Definition at line 399 of file texture.c.

400{
401 TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
402
403 if (IsEqualGUID(riid, &IID_IDirect3DCubeTexture8)
404 || IsEqualGUID(riid, &IID_IDirect3DBaseTexture8)
405 || IsEqualGUID(riid, &IID_IDirect3DResource8)
407 {
409 *out = iface;
410 return S_OK;
411 }
412
413 WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid));
414
415 *out = NULL;
416 return E_NOINTERFACE;
417}
#define IDirect3DCubeTexture8_AddRef(p)
Definition: d3d8.h:612

◆ d3d8_texture_cube_Release()

static ULONG WINAPI d3d8_texture_cube_Release ( IDirect3DCubeTexture8 *  iface)
static

Definition at line 426 of file texture.c.

427{
429
431}

◆ d3d8_texture_cube_SetLOD()

static DWORD WINAPI d3d8_texture_cube_SetLOD ( IDirect3DCubeTexture8 *  iface,
DWORD  lod 
)
static

Definition at line 523 of file texture.c.

524{
526 DWORD ret;
527
528 TRACE("iface %p, lod %lu.\n", iface, lod);
529
531 ret = wined3d_stateblock_set_texture_lod(texture->parent_device->state,
534
535 return ret;
536}

◆ d3d8_texture_cube_SetPriority()

static DWORD WINAPI d3d8_texture_cube_SetPriority ( IDirect3DCubeTexture8 *  iface,
DWORD  priority 
)
static

Definition at line 475 of file texture.c.

◆ d3d8_texture_cube_SetPrivateData()

static HRESULT WINAPI d3d8_texture_cube_SetPrivateData ( IDirect3DCubeTexture8 *  iface,
REFGUID  guid,
const void *  data,
DWORD  data_size,
DWORD  flags 
)
static

Definition at line 447 of file texture.c.

449{
451 TRACE("iface %p, guid %s, data %p, data_size %lu, flags %#lx.\n",
452 iface, debugstr_guid(guid), data, data_size, flags);
453
454 return d3d8_resource_set_private_data(&texture->resource, guid, data, data_size, flags);
455}

◆ d3d8_texture_cube_UnlockRect()

static HRESULT WINAPI d3d8_texture_cube_UnlockRect ( IDirect3DCubeTexture8 *  iface,
D3DCUBEMAP_FACES  face,
UINT  level 
)
static

Definition at line 652 of file texture.c.

654{
656 struct d3d8_surface *surface_impl;
658 HRESULT hr;
659
660 TRACE("iface %p, face %#x, level %u.\n", iface, face, level);
661
664 if (!(surface_impl = wined3d_texture_get_sub_resource_parent(texture->wined3d_texture, sub_resource_idx)))
666 else
669
670 return hr;
671}

◆ d3d8_texture_decref()

static ULONG d3d8_texture_decref ( struct d3d8_texture *  texture)
static

Definition at line 46 of file texture.c.

47{
48 ULONG ref = InterlockedDecrement(&texture->resource.refcount);
49
50 TRACE("%p decreasing refcount to %lu.\n", texture, ref);
51
52 if (!ref)
53 {
54 IDirect3DDevice8 *parent_device = &texture->parent_device->IDirect3DDevice8_iface;
55 struct d3d8_surface *surface;
56
58 LIST_FOR_EACH_ENTRY(surface, &texture->rtv_list, struct d3d8_surface, rtv_entry)
59 {
61 }
64
65 /* Release the device last, as it may cause the device to be destroyed. */
67 }
68 return ref;
69}
#define InterlockedDecrement
Definition: armddk.h:52
ULONG CDECL wined3d_texture_decref(struct wined3d_texture *texture)
Definition: texture.c:1606
ULONG CDECL wined3d_rendertarget_view_decref(struct wined3d_rendertarget_view *view)
Definition: view.c:379
#define IDirect3DDevice8_Release(p)
Definition: d3d8.h:944
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
Definition: list.h:236
IDirect3DDevice8 * parent_device
Definition: d3d8_private.h:196
struct list rtv_entry
Definition: d3d8_private.h:194
struct wined3d_rendertarget_view * wined3d_rtv
Definition: d3d8_private.h:195
Definition: send.c:48
uint32_t ULONG
Definition: typedefs.h:59

Referenced by d3d8_texture_2d_Release(), d3d8_texture_3d_Release(), and d3d8_texture_cube_Release().

◆ d3d8_texture_incref()

static ULONG d3d8_texture_incref ( struct d3d8_texture *  texture)
static

Definition at line 23 of file texture.c.

24{
25 ULONG ref = InterlockedIncrement(&texture->resource.refcount);
26
27 TRACE("%p increasing refcount to %lu.\n", texture, ref);
28
29 if (ref == 1)
30 {
31 struct d3d8_surface *surface;
32
33 IDirect3DDevice8_AddRef(&texture->parent_device->IDirect3DDevice8_iface);
35 LIST_FOR_EACH_ENTRY(surface, &texture->rtv_list, struct d3d8_surface, rtv_entry)
36 {
38 }
41 }
42
43 return ref;
44}
#define InterlockedIncrement
Definition: armddk.h:53
ULONG CDECL wined3d_texture_incref(struct wined3d_texture *texture)
Definition: texture.c:1516
ULONG CDECL wined3d_rendertarget_view_incref(struct wined3d_rendertarget_view *view)
Definition: view.c:365

Referenced by d3d8_texture_2d_AddRef(), d3d8_texture_3d_AddRef(), and d3d8_texture_cube_AddRef().

◆ d3d8_texture_init()

static HRESULT d3d8_texture_init ( struct d3d8_texture *  texture,
struct d3d8_device *  device,
const struct wined3d_resource_desc *  desc,
D3DPOOL  pool,
unsigned int  layer_count,
unsigned int  level_count 
)
static

Definition at line 1054 of file texture.c.

1056{
1057 unsigned int flags = 0;
1058 HRESULT hr;
1059
1060 d3d8_resource_init(&texture->resource);
1061 list_init(&texture->rtv_list);
1062
1063 if (!level_count)
1064 level_count = wined3d_log2i(max(max(desc->width, desc->height), desc->depth)) + 1;
1065
1068
1070
1071 if (pool == D3DPOOL_MANAGED)
1072 {
1073 struct wined3d_resource_desc managed_desc = *desc;
1074
1076 managed_desc.bind_flags = 0;
1077 if (FAILED(hr = wined3d_texture_create(device->wined3d_device, &managed_desc, layer_count, level_count, flags,
1078 NULL, texture, &d3d8_null_wined3d_parent_ops, &texture->wined3d_texture)))
1079 {
1081 WARN("Failed to create sysmem texture, hr %#lx.\n", hr);
1082 return hr;
1083 }
1084
1085 managed_desc.access = WINED3D_RESOURCE_ACCESS_GPU;
1086 managed_desc.bind_flags = desc->bind_flags;
1087 if (FAILED(hr = wined3d_texture_create(device->wined3d_device, &managed_desc, layer_count, level_count, 0,
1089 {
1090 wined3d_texture_decref(texture->wined3d_texture);
1092 WARN("Failed to create draw texture, hr %#lx.\n", hr);
1093 return hr;
1094 }
1095 }
1096 else
1097 {
1098 if (FAILED(hr = wined3d_texture_create(device->wined3d_device, desc, layer_count, level_count, flags,
1099 NULL, texture, &d3d8_texture_wined3d_parent_ops, &texture->wined3d_texture)))
1100 {
1102 WARN("Failed to create wined3d texture, hr %#lx.\n", hr);
1103 return hr;
1104 }
1105 }
1107
1108 texture->parent_device = device;
1109 IDirect3DDevice8_AddRef(&texture->parent_device->IDirect3DDevice8_iface);
1110
1111 return D3D_OK;
1112}
static void list_init(struct list_entry *head)
Definition: list.h:51
void d3d8_resource_init(struct d3d8_resource *resource)
Definition: d3d8_main.c:210
const struct wined3d_parent_ops d3d8_null_wined3d_parent_ops
Definition: device.c:28
@ D3DPOOL_SYSTEMMEM
Definition: d3d8types.h:711
@ D3DPOOL_MANAGED
Definition: d3d8types.h:710
static const struct wined3d_parent_ops d3d8_texture_wined3d_parent_ops
Definition: texture.c:1049
HRESULT CDECL wined3d_texture_create(struct wined3d_device *device, const struct wined3d_resource_desc *desc, UINT layer_count, UINT level_count, uint32_t flags, const struct wined3d_sub_resource_data *data, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_texture **texture)
Definition: texture.c:4158
#define FAILED(hr)
Definition: intsafe.h:51
unsigned int bind_flags
Definition: wined3d.h:1796
unsigned int access
Definition: wined3d.h:1797
#define max(a, b)
Definition: svc.c:63
static unsigned int wined3d_log2i(unsigned int x)
Definition: wined3d.h:2952
#define WINED3D_RESOURCE_ACCESS_GPU
Definition: wined3d.h:51
#define WINED3D_RESOURCE_ACCESS_CPU
Definition: wined3d.h:52
#define WINED3D_TEXTURE_CREATE_RECORD_DIRTY_REGIONS
Definition: wined3d.h:1567
#define WINED3D_RESOURCE_ACCESS_MAP_R
Definition: wined3d.h:53
#define WINED3D_RESOURCE_ACCESS_MAP_W
Definition: wined3d.h:54

Referenced by d3d8_texture_2d_init(), d3d8_texture_3d_init(), and d3d8_texture_cube_init().

◆ d3d8_texture_preload()

static void d3d8_texture_preload ( struct d3d8_texture *  texture)
static

Definition at line 71 of file texture.c.

72{
74 if (texture->draw_texture)
75 wined3d_device_update_texture(texture->parent_device->wined3d_device,
76 texture->wined3d_texture, texture->draw_texture);
77 else
80}
HRESULT CDECL wined3d_device_update_texture(struct wined3d_device *device, struct wined3d_texture *src_texture, struct wined3d_texture *dst_texture)
Definition: device.c:3808
void CDECL wined3d_resource_preload(struct wined3d_resource *resource)
Definition: resource.c:311

Referenced by d3d8_texture_2d_PreLoad(), d3d8_texture_3d_PreLoad(), and d3d8_texture_cube_PreLoad().

◆ d3d8_texture_wined3d_object_destroyed()

static void STDMETHODCALLTYPE d3d8_texture_wined3d_object_destroyed ( void *  parent)
static

Definition at line 1038 of file texture.c.

1039{
1040 struct d3d8_texture *texture = parent;
1041
1042 /* If the texture was managed, release the sysmem copy now. */
1043 if (texture->draw_texture)
1044 wined3d_texture_decref(texture->wined3d_texture);
1045 d3d8_resource_cleanup(&texture->resource);
1046 free(texture);
1047}
void d3d8_resource_cleanup(struct d3d8_resource *resource)
Definition: d3d8_main.c:149
#define free
Definition: debug_ros.c:5
r parent
Definition: btrfs.c:3010

◆ impl_from_IDirect3DCubeTexture8()

◆ impl_from_IDirect3DTexture8()

◆ impl_from_IDirect3DVolumeTexture8()

◆ unsafe_impl_from_IDirect3DBaseTexture8()

struct d3d8_texture * unsafe_impl_from_IDirect3DBaseTexture8 ( IDirect3DBaseTexture8 *  iface)

Definition at line 1017 of file texture.c.

1018{
1019 if (!iface)
1020 return NULL;
1021
1022 /* SetTexture() in particular doesn't do a lot of validation on the pointer
1023 * that gets passed in, and passing an invalid pointer works as long as the
1024 * application doesn't try to actually render anything with it, so we print
1025 * a WARN and return NULL instead of having the usual assert() here.
1026 * One application affected by this is Fishdom 2. */
1027 if (iface->lpVtbl != (const IDirect3DBaseTexture8Vtbl *)&Direct3DTexture8_Vtbl
1028 && iface->lpVtbl != (const IDirect3DBaseTexture8Vtbl *)&Direct3DCubeTexture8_Vtbl
1029 && iface->lpVtbl != (const IDirect3DBaseTexture8Vtbl *)&Direct3DVolumeTexture8_Vtbl)
1030 {
1031 WARN("%p is not a valid IDirect3DBaseTexture8 interface.\n", iface);
1032 return NULL;
1033 }
1034
1035 return CONTAINING_RECORD(iface, struct d3d8_texture, IDirect3DBaseTexture8_iface);
1036}

Referenced by d3d8_device_SetTexture(), d3d8_device_UpdateTexture(), and d3d8_surface_create().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( d3d8  )

Variable Documentation

◆ d3d8_texture_wined3d_parent_ops

const struct wined3d_parent_ops d3d8_texture_wined3d_parent_ops
static
Initial value:
=
{
}
static void STDMETHODCALLTYPE d3d8_texture_wined3d_object_destroyed(void *parent)
Definition: texture.c:1038

Definition at line 1049 of file texture.c.

Referenced by d3d8_texture_init().

◆ Direct3DCubeTexture8_Vtbl

const IDirect3DCubeTexture8Vtbl Direct3DCubeTexture8_Vtbl
static
Initial value:
=
{
}
static HRESULT WINAPI d3d8_texture_cube_GetCubeMapSurface(IDirect3DCubeTexture8 *iface, D3DCUBEMAP_FACES face, UINT level, IDirect3DSurface8 **surface)
Definition: texture.c:597
static DWORD WINAPI d3d8_texture_cube_GetLOD(IDirect3DCubeTexture8 *iface)
Definition: texture.c:538
static HRESULT WINAPI d3d8_texture_cube_UnlockRect(IDirect3DCubeTexture8 *iface, D3DCUBEMAP_FACES face, UINT level)
Definition: texture.c:652
static HRESULT WINAPI d3d8_texture_cube_AddDirtyRect(IDirect3DCubeTexture8 *iface, D3DCUBEMAP_FACES face, const RECT *dirty_rect)
Definition: texture.c:673
static HRESULT WINAPI d3d8_texture_cube_LockRect(IDirect3DCubeTexture8 *iface, D3DCUBEMAP_FACES face, UINT level, D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags)
Definition: texture.c:629
static void WINAPI d3d8_texture_cube_PreLoad(IDirect3DCubeTexture8 *iface)
Definition: texture.c:507
static HRESULT WINAPI d3d8_texture_cube_GetPrivateData(IDirect3DCubeTexture8 *iface, REFGUID guid, void *data, DWORD *data_size)
Definition: texture.c:457
static ULONG WINAPI d3d8_texture_cube_Release(IDirect3DCubeTexture8 *iface)
Definition: texture.c:426
static ULONG WINAPI d3d8_texture_cube_AddRef(IDirect3DCubeTexture8 *iface)
Definition: texture.c:419
static DWORD WINAPI d3d8_texture_cube_GetLevelCount(IDirect3DCubeTexture8 *iface)
Definition: texture.c:552
static HRESULT WINAPI d3d8_texture_cube_FreePrivateData(IDirect3DCubeTexture8 *iface, REFGUID guid)
Definition: texture.c:467
static DWORD WINAPI d3d8_texture_cube_SetPriority(IDirect3DCubeTexture8 *iface, DWORD priority)
Definition: texture.c:475
static HRESULT WINAPI d3d8_texture_cube_GetDevice(IDirect3DCubeTexture8 *iface, IDirect3DDevice8 **device)
Definition: texture.c:433
static DWORD WINAPI d3d8_texture_cube_GetPriority(IDirect3DCubeTexture8 *iface)
Definition: texture.c:491
static HRESULT WINAPI d3d8_texture_cube_GetLevelDesc(IDirect3DCubeTexture8 *iface, UINT level, D3DSURFACE_DESC *desc)
Definition: texture.c:566
static HRESULT WINAPI d3d8_texture_cube_SetPrivateData(IDirect3DCubeTexture8 *iface, REFGUID guid, const void *data, DWORD data_size, DWORD flags)
Definition: texture.c:447
static HRESULT WINAPI d3d8_texture_cube_QueryInterface(IDirect3DCubeTexture8 *iface, REFIID riid, void **out)
Definition: texture.c:399
static D3DRESOURCETYPE WINAPI d3d8_texture_cube_GetType(IDirect3DCubeTexture8 *iface)
Definition: texture.c:516
static DWORD WINAPI d3d8_texture_cube_SetLOD(IDirect3DCubeTexture8 *iface, DWORD lod)
Definition: texture.c:523

Definition at line 697 of file texture.c.

Referenced by d3d8_texture_cube_init(), and unsafe_impl_from_IDirect3DBaseTexture8().

◆ Direct3DTexture8_Vtbl

const IDirect3DTexture8Vtbl Direct3DTexture8_Vtbl
static
Initial value:
=
{
}
static HRESULT WINAPI d3d8_texture_2d_GetPrivateData(IDirect3DTexture8 *iface, REFGUID guid, void *data, DWORD *data_size)
Definition: texture.c:155
static HRESULT WINAPI d3d8_texture_2d_QueryInterface(IDirect3DTexture8 *iface, REFIID riid, void **out)
Definition: texture.c:97
static HRESULT WINAPI d3d8_texture_2d_SetPrivateData(IDirect3DTexture8 *iface, REFGUID guid, const void *data, DWORD data_size, DWORD flags)
Definition: texture.c:145
static HRESULT WINAPI d3d8_texture_2d_GetSurfaceLevel(IDirect3DTexture8 *iface, UINT level, IDirect3DSurface8 **surface)
Definition: texture.c:289
static HRESULT WINAPI d3d8_texture_2d_GetDevice(IDirect3DTexture8 *iface, IDirect3DDevice8 **device)
Definition: texture.c:131
static HRESULT WINAPI d3d8_texture_2d_AddDirtyRect(IDirect3DTexture8 *iface, const RECT *dirty_rect)
Definition: texture.c:349
static DWORD WINAPI d3d8_texture_2d_GetPriority(IDirect3DTexture8 *iface)
Definition: texture.c:189
static ULONG WINAPI d3d8_texture_2d_Release(IDirect3DTexture8 *iface)
Definition: texture.c:124
static DWORD WINAPI d3d8_texture_2d_SetPriority(IDirect3DTexture8 *iface, DWORD priority)
Definition: texture.c:173
static ULONG WINAPI d3d8_texture_2d_AddRef(IDirect3DTexture8 *iface)
Definition: texture.c:117
static void WINAPI d3d8_texture_2d_PreLoad(IDirect3DTexture8 *iface)
Definition: texture.c:205
static DWORD WINAPI d3d8_texture_2d_SetLOD(IDirect3DTexture8 *iface, DWORD lod)
Definition: texture.c:221
static HRESULT WINAPI d3d8_texture_2d_UnlockRect(IDirect3DTexture8 *iface, UINT level)
Definition: texture.c:331
static DWORD WINAPI d3d8_texture_2d_GetLOD(IDirect3DTexture8 *iface)
Definition: texture.c:236
static HRESULT WINAPI d3d8_texture_2d_FreePrivateData(IDirect3DTexture8 *iface, REFGUID guid)
Definition: texture.c:165
static D3DRESOURCETYPE WINAPI d3d8_texture_2d_GetType(IDirect3DTexture8 *iface)
Definition: texture.c:214
static DWORD WINAPI d3d8_texture_2d_GetLevelCount(IDirect3DTexture8 *iface)
Definition: texture.c:250
static HRESULT WINAPI d3d8_texture_2d_GetLevelDesc(IDirect3DTexture8 *iface, UINT level, D3DSURFACE_DESC *desc)
Definition: texture.c:264
static HRESULT WINAPI d3d8_texture_2d_LockRect(IDirect3DTexture8 *iface, UINT level, D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags)
Definition: texture.c:311

Definition at line 372 of file texture.c.

Referenced by d3d8_texture_2d_init(), and unsafe_impl_from_IDirect3DBaseTexture8().

◆ Direct3DVolumeTexture8_Vtbl

const IDirect3DVolumeTexture8Vtbl Direct3DVolumeTexture8_Vtbl
static
Initial value:
=
{
}
static ULONG WINAPI d3d8_texture_3d_Release(IDirect3DVolumeTexture8 *iface)
Definition: texture.c:751
static DWORD WINAPI d3d8_texture_3d_SetPriority(IDirect3DVolumeTexture8 *iface, DWORD priority)
Definition: texture.c:800
static void WINAPI d3d8_texture_3d_PreLoad(IDirect3DVolumeTexture8 *iface)
Definition: texture.c:832
static HRESULT WINAPI d3d8_texture_3d_GetDevice(IDirect3DVolumeTexture8 *iface, IDirect3DDevice8 **device)
Definition: texture.c:758
static HRESULT WINAPI d3d8_texture_3d_UnlockBox(IDirect3DVolumeTexture8 *iface, UINT level)
Definition: texture.c:958
static HRESULT WINAPI d3d8_texture_3d_GetVolumeLevel(IDirect3DVolumeTexture8 *iface, UINT level, IDirect3DVolume8 **volume)
Definition: texture.c:916
static HRESULT WINAPI d3d8_texture_3d_GetLevelDesc(IDirect3DVolumeTexture8 *iface, UINT level, D3DVOLUME_DESC *desc)
Definition: texture.c:891
static DWORD WINAPI d3d8_texture_3d_GetLevelCount(IDirect3DVolumeTexture8 *iface)
Definition: texture.c:877
static DWORD WINAPI d3d8_texture_3d_SetLOD(IDirect3DVolumeTexture8 *iface, DWORD lod)
Definition: texture.c:848
static D3DRESOURCETYPE WINAPI d3d8_texture_3d_GetType(IDirect3DVolumeTexture8 *iface)
Definition: texture.c:841
static HRESULT WINAPI d3d8_texture_3d_QueryInterface(IDirect3DVolumeTexture8 *iface, REFIID riid, void **out)
Definition: texture.c:724
static HRESULT WINAPI d3d8_texture_3d_FreePrivateData(IDirect3DVolumeTexture8 *iface, REFGUID guid)
Definition: texture.c:792
static DWORD WINAPI d3d8_texture_3d_GetPriority(IDirect3DVolumeTexture8 *iface)
Definition: texture.c:816
static HRESULT WINAPI d3d8_texture_3d_GetPrivateData(IDirect3DVolumeTexture8 *iface, REFGUID guid, void *data, DWORD *data_size)
Definition: texture.c:782
static DWORD WINAPI d3d8_texture_3d_GetLOD(IDirect3DVolumeTexture8 *iface)
Definition: texture.c:863
static HRESULT WINAPI d3d8_texture_3d_SetPrivateData(IDirect3DVolumeTexture8 *iface, REFGUID guid, const void *data, DWORD data_size, DWORD flags)
Definition: texture.c:772
static HRESULT WINAPI d3d8_texture_3d_LockBox(IDirect3DVolumeTexture8 *iface, UINT level, D3DLOCKED_BOX *locked_box, const D3DBOX *box, DWORD flags)
Definition: texture.c:938
static ULONG WINAPI d3d8_texture_3d_AddRef(IDirect3DVolumeTexture8 *iface)
Definition: texture.c:744
static HRESULT WINAPI d3d8_texture_3d_AddDirtyBox(IDirect3DVolumeTexture8 *iface, const D3DBOX *dirty_box)
Definition: texture.c:976

Definition at line 990 of file texture.c.

Referenced by d3d8_texture_3d_init(), and unsafe_impl_from_IDirect3DBaseTexture8().