ReactOS 0.4.17-dev-934-g091855f
resource.c File Reference
#include "dxgi_private.h"
Include dependency graph for resource.c:

Go to the source code of this file.

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (dxgi)
 
static struct dxgi_resource * impl_from_IUnknown (IUnknown *iface)
 
static HRESULT STDMETHODCALLTYPE dxgi_resource_inner_QueryInterface (IUnknown *iface, REFIID riid, void **out)
 
static ULONG STDMETHODCALLTYPE dxgi_resource_inner_AddRef (IUnknown *iface)
 
static ULONG STDMETHODCALLTYPE dxgi_resource_inner_Release (IUnknown *iface)
 
static struct dxgi_resource * impl_from_IDXGISurface1 (IDXGISurface1 *iface)
 
static HRESULT STDMETHODCALLTYPE dxgi_surface_QueryInterface (IDXGISurface1 *iface, REFIID riid, void **object)
 
static ULONG STDMETHODCALLTYPE dxgi_surface_AddRef (IDXGISurface1 *iface)
 
static ULONG STDMETHODCALLTYPE dxgi_surface_Release (IDXGISurface1 *iface)
 
static HRESULT STDMETHODCALLTYPE dxgi_surface_SetPrivateData (IDXGISurface1 *iface, REFGUID guid, UINT data_size, const void *data)
 
static HRESULT STDMETHODCALLTYPE dxgi_surface_SetPrivateDataInterface (IDXGISurface1 *iface, REFGUID guid, const IUnknown *object)
 
static HRESULT STDMETHODCALLTYPE dxgi_surface_GetPrivateData (IDXGISurface1 *iface, REFGUID guid, UINT *data_size, void *data)
 
static HRESULT STDMETHODCALLTYPE dxgi_surface_GetParent (IDXGISurface1 *iface, REFIID riid, void **parent)
 
static HRESULT STDMETHODCALLTYPE dxgi_surface_GetDevice (IDXGISurface1 *iface, REFIID riid, void **device)
 
static HRESULT STDMETHODCALLTYPE dxgi_surface_GetDesc (IDXGISurface1 *iface, DXGI_SURFACE_DESC *desc)
 
static HRESULT STDMETHODCALLTYPE dxgi_surface_Map (IDXGISurface1 *iface, DXGI_MAPPED_RECT *mapped_rect, UINT flags)
 
static HRESULT STDMETHODCALLTYPE dxgi_surface_Unmap (IDXGISurface1 *iface)
 
static HRESULT STDMETHODCALLTYPE dxgi_surface_GetDC (IDXGISurface1 *iface, BOOL discard, HDC *hdc)
 
static HRESULT STDMETHODCALLTYPE dxgi_surface_ReleaseDC (IDXGISurface1 *iface, RECT *dirty_rect)
 
static struct dxgi_resource * impl_from_IDXGIResource (IDXGIResource *iface)
 
static HRESULT STDMETHODCALLTYPE dxgi_resource_QueryInterface (IDXGIResource *iface, REFIID riid, void **object)
 
static ULONG STDMETHODCALLTYPE dxgi_resource_AddRef (IDXGIResource *iface)
 
static ULONG STDMETHODCALLTYPE dxgi_resource_Release (IDXGIResource *iface)
 
static HRESULT STDMETHODCALLTYPE dxgi_resource_SetPrivateData (IDXGIResource *iface, REFGUID guid, UINT data_size, const void *data)
 
static HRESULT STDMETHODCALLTYPE dxgi_resource_SetPrivateDataInterface (IDXGIResource *iface, REFGUID guid, const IUnknown *object)
 
static HRESULT STDMETHODCALLTYPE dxgi_resource_GetPrivateData (IDXGIResource *iface, REFGUID guid, UINT *data_size, void *data)
 
static HRESULT STDMETHODCALLTYPE dxgi_resource_GetParent (IDXGIResource *iface, REFIID riid, void **parent)
 
static HRESULT STDMETHODCALLTYPE dxgi_resource_GetDevice (IDXGIResource *iface, REFIID riid, void **device)
 
static HRESULT STDMETHODCALLTYPE dxgi_resource_GetSharedHandle (IDXGIResource *iface, HANDLE *shared_handle)
 
static HRESULT STDMETHODCALLTYPE dxgi_resource_GetUsage (IDXGIResource *iface, DXGI_USAGE *usage)
 
static HRESULT STDMETHODCALLTYPE dxgi_resource_SetEvictionPriority (IDXGIResource *iface, UINT eviction_priority)
 
static HRESULT STDMETHODCALLTYPE dxgi_resource_GetEvictionPriority (IDXGIResource *iface, UINT *eviction_priority)
 
HRESULT dxgi_resource_init (struct dxgi_resource *resource, IDXGIDevice *device, IUnknown *outer, BOOL needs_surface, struct wined3d_resource *wined3d_resource)
 

Variables

static const struct IDXGISurface1Vtbl dxgi_surface_vtbl
 
static const struct IDXGIResourceVtbl dxgi_resource_vtbl
 
static const struct IUnknownVtbl dxgi_resource_inner_unknown_vtbl
 

Function Documentation

◆ dxgi_resource_AddRef()

static ULONG STDMETHODCALLTYPE dxgi_resource_AddRef ( IDXGIResource *  iface)
static

Definition at line 277 of file resource.c.

278{
280 TRACE("Forwarding to outer IUnknown\n");
281 return IUnknown_AddRef(resource->outer_unknown);
282}
static struct dxgi_resource * impl_from_IDXGIResource(IDXGIResource *iface)
Definition: resource.c:262
#define TRACE(s)
Definition: solgame.cpp:4

◆ dxgi_resource_GetDevice()

static HRESULT STDMETHODCALLTYPE dxgi_resource_GetDevice ( IDXGIResource *  iface,
REFIID  riid,
void **  device 
)
static

Definition at line 334 of file resource.c.

335{
337
338 TRACE("iface %p, riid %s, device %p.\n", iface, debugstr_guid(riid), device);
339
340 return IDXGIDevice_QueryInterface(resource->device, riid, device);
341}
REFIID riid
Definition: atlbase.h:39
#define debugstr_guid
Definition: kernel32.h:35
Definition: devices.h:37

◆ dxgi_resource_GetEvictionPriority()

static HRESULT STDMETHODCALLTYPE dxgi_resource_GetEvictionPriority ( IDXGIResource *  iface,
UINT *  eviction_priority 
)
static

Definition at line 391 of file resource.c.

392{
393 FIXME("iface %p, eviction_priority %p stub!\n", iface, eviction_priority);
394
395 return E_NOTIMPL;
396}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ dxgi_resource_GetParent()

static HRESULT STDMETHODCALLTYPE dxgi_resource_GetParent ( IDXGIResource *  iface,
REFIID  riid,
void **  parent 
)
static

Definition at line 323 of file resource.c.

324{
326
327 TRACE("iface %p, riid %s, parent %p.\n", iface, debugstr_guid(riid), parent);
328
329 return IDXGIDevice_QueryInterface(resource->device, riid, parent);
330}
r parent
Definition: btrfs.c:3010

◆ dxgi_resource_GetPrivateData()

static HRESULT STDMETHODCALLTYPE dxgi_resource_GetPrivateData ( IDXGIResource *  iface,
REFGUID  guid,
UINT *  data_size,
void *  data 
)
static

Definition at line 313 of file resource.c.

315{
317
318 TRACE("iface %p, guid %s, data_size %p, data %p.\n", iface, debugstr_guid(guid), data_size, data);
319
320 return dxgi_get_private_data(&resource->private_store, guid, data_size, data);
321}
GUID guid
Definition: version.c:147
HRESULT dxgi_get_private_data(struct wined3d_private_store *store, REFGUID guid, UINT *data_size, void *data)
Definition: utils.c:624
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950

◆ dxgi_resource_GetSharedHandle()

static HRESULT STDMETHODCALLTYPE dxgi_resource_GetSharedHandle ( IDXGIResource *  iface,
HANDLE *  shared_handle 
)
static

Definition at line 344 of file resource.c.

345{
346 FIXME("iface %p, shared_handle %p stub!\n", iface, shared_handle);
347
348 return E_NOTIMPL;
349}

◆ dxgi_resource_GetUsage()

static HRESULT STDMETHODCALLTYPE dxgi_resource_GetUsage ( IDXGIResource *  iface,
DXGI_USAGE *  usage 
)
static

Definition at line 351 of file resource.c.

352{
354 struct wined3d_resource_desc resource_desc;
355
356 TRACE("iface %p, usage %p.\n", iface, usage);
357
358 wined3d_resource_get_desc(resource->wined3d_resource, &resource_desc);
359
360 *usage = dxgi_usage_from_wined3d_bind_flags(resource_desc.bind_flags);
361
362 if (resource_desc.resource_type != WINED3D_RTYPE_BUFFER)
363 {
365 struct wined3d_swapchain_desc swapchain_desc;
366 struct wined3d_swapchain *swapchain;
367
368 if ((swapchain = wined3d_texture_get_swapchain(texture)))
369 {
371
372 wined3d_swapchain_get_desc(swapchain, &swapchain_desc);
373 if (swapchain_desc.swap_effect == WINED3D_SWAP_EFFECT_DISCARD)
375
376 if (wined3d_swapchain_get_back_buffer(swapchain, 0) != texture)
378 }
379 }
380
381 return S_OK;
382}
void CDECL wined3d_resource_get_desc(const struct wined3d_resource *resource, struct wined3d_resource_desc *desc)
Definition: resource.c:280
struct wined3d_swapchain *CDECL wined3d_texture_get_swapchain(struct wined3d_texture *texture)
Definition: texture.c:4028
struct wined3d_texture *__cdecl wined3d_texture_from_resource(struct wined3d_resource *resource)
Definition: texture.c:3343
const DXGI_USAGE DXGI_USAGE_READ_ONLY
Definition: dxgi.idl:47
const DXGI_USAGE DXGI_USAGE_DISCARD_ON_PRESENT
Definition: dxgi.idl:48
const DXGI_USAGE DXGI_USAGE_BACK_BUFFER
Definition: dxgi.idl:45
DXGI_USAGE dxgi_usage_from_wined3d_bind_flags(unsigned int wined3d_bind_flags)
Definition: utils.c:490
GLenum GLuint texture
Definition: glext.h:6295
GLsizeiptr const GLvoid GLenum usage
Definition: glext.h:5919
#define S_OK
Definition: intsafe.h:52
struct wined3d_texture *CDECL wined3d_swapchain_get_back_buffer(const struct wined3d_swapchain *swapchain, UINT back_buffer_idx)
Definition: swapchain.c:256
void CDECL wined3d_swapchain_get_desc(const struct wined3d_swapchain *swapchain, struct wined3d_swapchain_desc *desc)
Definition: swapchain.c:345
@ WINED3D_SWAP_EFFECT_DISCARD
Definition: wined3d.h:534
@ WINED3D_RTYPE_BUFFER
Definition: wined3d.h:718

◆ dxgi_resource_init()

HRESULT dxgi_resource_init ( struct dxgi_resource *  resource,
IDXGIDevice *  device,
IUnknown *  outer,
BOOL  needs_surface,
struct wined3d_resource *  wined3d_resource 
)

Definition at line 426 of file resource.c.

428{
430
432 if ((desc.resource_type == WINED3D_RTYPE_TEXTURE_1D || desc.resource_type == WINED3D_RTYPE_TEXTURE_2D)
433 && needs_surface)
434 {
435 resource->IDXGISurface1_iface.lpVtbl = &dxgi_surface_vtbl;
436 }
437 else
438 resource->IDXGISurface1_iface.lpVtbl = NULL;
439 resource->IDXGIResource_iface.lpVtbl = &dxgi_resource_vtbl;
440 resource->IUnknown_iface.lpVtbl = &dxgi_resource_inner_unknown_vtbl;
441 resource->refcount = 1;
442 wined3d_private_store_init(&resource->private_store);
443 resource->outer_unknown = outer ? outer : &resource->IUnknown_iface;
444 resource->device = device;
445 resource->wined3d_resource = wined3d_resource;
446 resource->dc = NULL;
447
448 return S_OK;
449}
#define NULL
Definition: types.h:112
static const struct IDXGISurface1Vtbl dxgi_surface_vtbl
Definition: resource.c:240
static const struct IUnknownVtbl dxgi_resource_inner_unknown_vtbl
Definition: resource.c:418
static const struct IDXGIResourceVtbl dxgi_resource_vtbl
Definition: resource.c:398
D3D11_SHADER_VARIABLE_DESC desc
Definition: reflection.c:1683
static IUnknown * outer
Definition: compobj.c:82
@ WINED3D_RTYPE_TEXTURE_2D
Definition: wined3d.h:720
@ WINED3D_RTYPE_TEXTURE_1D
Definition: wined3d.h:719
static void wined3d_private_store_init(struct wined3d_private_store *store)
Definition: wined3d.h:2607

Referenced by dxgi_device_create_resource().

◆ dxgi_resource_inner_AddRef()

static ULONG STDMETHODCALLTYPE dxgi_resource_inner_AddRef ( IUnknown *  iface)
static

Definition at line 60 of file resource.c.

61{
64
65 TRACE("%p increasing refcount to %lu.\n", resource, refcount);
66
67 return refcount;
68}
#define InterlockedIncrement
Definition: armddk.h:53
static struct dxgi_resource * impl_from_IUnknown(IUnknown *iface)
Definition: resource.c:26
uint32_t ULONG
Definition: typedefs.h:59

◆ dxgi_resource_inner_QueryInterface()

static HRESULT STDMETHODCALLTYPE dxgi_resource_inner_QueryInterface ( IUnknown *  iface,
REFIID  riid,
void **  out 
)
static

Definition at line 31 of file resource.c.

32{
34
35 TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
36
37 if ((IsEqualGUID(riid, &IID_IDXGISurface1)
38 || IsEqualGUID(riid, &IID_IDXGISurface)) && resource->IDXGISurface1_iface.lpVtbl != NULL)
39 {
40 IDXGISurface1_AddRef(&resource->IDXGISurface1_iface);
41 *out = &resource->IDXGISurface1_iface;
42 return S_OK;
43 }
44 else if (IsEqualGUID(riid, &IID_IDXGIResource)
45 || IsEqualGUID(riid, &IID_IDXGIDeviceSubObject)
46 || IsEqualGUID(riid, &IID_IDXGIObject)
48 {
49 IDXGIResource_AddRef(&resource->IDXGIResource_iface);
50 *out = &resource->IDXGIResource_iface;
51 return S_OK;
52 }
53
54 WARN("%s not implemented, returning E_NOINTERFACE\n", debugstr_guid(riid));
55
56 *out = NULL;
57 return E_NOINTERFACE;
58}
#define WARN(fmt,...)
Definition: precomp.h:61
const GUID IID_IUnknown
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383
#define E_NOINTERFACE
Definition: winerror.h:3479

◆ dxgi_resource_inner_Release()

static ULONG STDMETHODCALLTYPE dxgi_resource_inner_Release ( IUnknown *  iface)
static

Definition at line 70 of file resource.c.

71{
74
75 TRACE("%p decreasing refcount to %lu.\n", resource, refcount);
76
77 if (!refcount)
78 {
81 }
82
83 return refcount;
84}
#define InterlockedDecrement
Definition: armddk.h:52
#define free
Definition: debug_ros.c:5
static void wined3d_private_store_cleanup(struct wined3d_private_store *store)
Definition: wined3d.h:2636

◆ dxgi_resource_QueryInterface()

static HRESULT STDMETHODCALLTYPE dxgi_resource_QueryInterface ( IDXGIResource *  iface,
REFIID  riid,
void **  object 
)
static

Definition at line 269 of file resource.c.

271{
273 TRACE("Forwarding to outer IUnknown\n");
274 return IUnknown_QueryInterface(resource->outer_unknown, riid, object);
275}

◆ dxgi_resource_Release()

static ULONG STDMETHODCALLTYPE dxgi_resource_Release ( IDXGIResource *  iface)
static

Definition at line 284 of file resource.c.

285{
287 TRACE("Forwarding to outer IUnknown\n");
288 return IUnknown_Release(resource->outer_unknown);
289}

◆ dxgi_resource_SetEvictionPriority()

static HRESULT STDMETHODCALLTYPE dxgi_resource_SetEvictionPriority ( IDXGIResource *  iface,
UINT  eviction_priority 
)
static

Definition at line 384 of file resource.c.

385{
386 FIXME("iface %p, eviction_priority %u stub!\n", iface, eviction_priority);
387
388 return E_NOTIMPL;
389}

◆ dxgi_resource_SetPrivateData()

static HRESULT STDMETHODCALLTYPE dxgi_resource_SetPrivateData ( IDXGIResource *  iface,
REFGUID  guid,
UINT  data_size,
const void *  data 
)
static

Definition at line 293 of file resource.c.

295{
297
298 TRACE("iface %p, guid %s, data_size %u, data %p.\n", iface, debugstr_guid(guid), data_size, data);
299
300 return dxgi_set_private_data(&resource->private_store, guid, data_size, data);
301}
HRESULT dxgi_set_private_data(struct wined3d_private_store *store, REFGUID guid, UINT data_size, const void *data)
Definition: utils.c:666

◆ dxgi_resource_SetPrivateDataInterface()

static HRESULT STDMETHODCALLTYPE dxgi_resource_SetPrivateDataInterface ( IDXGIResource *  iface,
REFGUID  guid,
const IUnknown *  object 
)
static

Definition at line 303 of file resource.c.

305{
307
308 TRACE("iface %p, guid %s, object %p.\n", iface, debugstr_guid(guid), object);
309
310 return dxgi_set_private_data_interface(&resource->private_store, guid, object);
311}
HRESULT dxgi_set_private_data_interface(struct wined3d_private_store *store, REFGUID guid, const IUnknown *object)
Definition: utils.c:694

◆ dxgi_surface_AddRef()

static ULONG STDMETHODCALLTYPE dxgi_surface_AddRef ( IDXGISurface1 *  iface)
static

Definition at line 100 of file resource.c.

101{
103 return IDXGIResource_AddRef(&resource->IDXGIResource_iface);
104}
static struct dxgi_resource * impl_from_IDXGISurface1(IDXGISurface1 *iface)
Definition: resource.c:86

◆ dxgi_surface_GetDC()

static HRESULT STDMETHODCALLTYPE dxgi_surface_GetDC ( IDXGISurface1 *  iface,
BOOL  discard,
HDC *  hdc 
)
static

Definition at line 203 of file resource.c.

204{
206 HRESULT hr;
207
208 FIXME("iface %p, discard %d, hdc %p semi-stub!\n", iface, discard, hdc);
209
210 if (!hdc)
211 return E_INVALIDARG;
212
216
217 if (SUCCEEDED(hr))
218 resource->dc = *hdc;
219
220 return hr;
221}
#define E_INVALIDARG
Definition: ddrawi.h:101
HRESULT hr
Definition: delayimp.cpp:582
HRESULT CDECL wined3d_texture_get_dc(struct wined3d_texture *texture, unsigned int sub_resource_idx, HDC *dc)
Definition: texture.c:4243
#define SUCCEEDED(hr)
Definition: intsafe.h:50
HDC hdc
Definition: main.c:9
void WINAPI wined3d_mutex_unlock(void)
Definition: wined3d_main.c:544
void WINAPI wined3d_mutex_lock(void)
Definition: wined3d_main.c:539

◆ dxgi_surface_GetDesc()

static HRESULT STDMETHODCALLTYPE dxgi_surface_GetDesc ( IDXGISurface1 *  iface,
DXGI_SURFACE_DESC *  desc 
)
static

Definition at line 150 of file resource.c.

151{
153 struct wined3d_resource_desc wined3d_desc;
154
155 TRACE("iface %p, desc %p.\n", iface, desc);
156
158 wined3d_resource_get_desc(resource->wined3d_resource, &wined3d_desc);
160 desc->Width = wined3d_desc.width;
161 desc->Height = wined3d_desc.height;
162 desc->Format = dxgi_format_from_wined3dformat(wined3d_desc.format);
163 dxgi_sample_desc_from_wined3d(&desc->SampleDesc, wined3d_desc.multisample_type, wined3d_desc.multisample_quality);
164
165 return S_OK;
166}
DXGI_FORMAT dxgi_format_from_wined3dformat(enum wined3d_format_id format)
Definition: utils.c:210
void dxgi_sample_desc_from_wined3d(DXGI_SAMPLE_DESC *desc, enum wined3d_multisample_type wined3d_type, unsigned int wined3d_quality)
Definition: utils.c:447

◆ dxgi_surface_GetDevice()

static HRESULT STDMETHODCALLTYPE dxgi_surface_GetDevice ( IDXGISurface1 *  iface,
REFIID  riid,
void **  device 
)
static

Definition at line 143 of file resource.c.

144{
146 return IDXGIResource_GetDevice(&resource->IDXGIResource_iface, riid, device);
147}

◆ dxgi_surface_GetParent()

static HRESULT STDMETHODCALLTYPE dxgi_surface_GetParent ( IDXGISurface1 *  iface,
REFIID  riid,
void **  parent 
)
static

Definition at line 135 of file resource.c.

136{
138 return IDXGIResource_GetParent(&resource->IDXGIResource_iface, riid, parent);
139}

◆ dxgi_surface_GetPrivateData()

static HRESULT STDMETHODCALLTYPE dxgi_surface_GetPrivateData ( IDXGISurface1 *  iface,
REFGUID  guid,
UINT *  data_size,
void *  data 
)
static

Definition at line 128 of file resource.c.

130{
132 return IDXGIResource_GetPrivateData(&resource->IDXGIResource_iface, guid, data_size, data);
133}

◆ dxgi_surface_Map()

static HRESULT STDMETHODCALLTYPE dxgi_surface_Map ( IDXGISurface1 *  iface,
DXGI_MAPPED_RECT *  mapped_rect,
UINT  flags 
)
static

Definition at line 168 of file resource.c.

169{
172 DWORD wined3d_map_flags = 0;
173 HRESULT hr;
174
175 TRACE("iface %p, mapped_rect %p, flags %#x.\n", iface, mapped_rect, flags);
176
177 if (flags & DXGI_MAP_READ)
178 wined3d_map_flags |= WINED3D_MAP_READ;
179 if (flags & DXGI_MAP_WRITE)
180 wined3d_map_flags |= WINED3D_MAP_WRITE;
182 wined3d_map_flags |= WINED3D_MAP_DISCARD;
183
184 if (SUCCEEDED(hr = wined3d_resource_map(resource->wined3d_resource, 0, &wined3d_map_desc, NULL, wined3d_map_flags)))
185 {
186 mapped_rect->Pitch = wined3d_map_desc.row_pitch;
187 mapped_rect->pBits = wined3d_map_desc.data;
188 }
189
190 return hr;
191}
HRESULT CDECL wined3d_resource_map(struct wined3d_resource *resource, unsigned int sub_resource_idx, struct wined3d_map_desc *map_desc, const struct wined3d_box *box, uint32_t flags)
Definition: resource.c:295
const UINT DXGI_MAP_READ
Definition: dxgi.idl:60
const UINT DXGI_MAP_WRITE
Definition: dxgi.idl:61
const UINT DXGI_MAP_DISCARD
Definition: dxgi.idl:62
unsigned long DWORD
Definition: ntddk_ex.h:95
GLbitfield flags
Definition: glext.h:7161
BYTE * pBits
Definition: dxgi.idl:86
#define WINED3D_MAP_READ
Definition: wined3d.h:957
#define WINED3D_MAP_DISCARD
Definition: wined3d.h:953
#define WINED3D_MAP_WRITE
Definition: wined3d.h:956

◆ dxgi_surface_QueryInterface()

static HRESULT STDMETHODCALLTYPE dxgi_surface_QueryInterface ( IDXGISurface1 *  iface,
REFIID  riid,
void **  object 
)
static

Definition at line 93 of file resource.c.

95{
97 return IDXGIResource_QueryInterface(&resource->IDXGIResource_iface, riid, object);
98}

◆ dxgi_surface_Release()

static ULONG STDMETHODCALLTYPE dxgi_surface_Release ( IDXGISurface1 *  iface)
static

Definition at line 106 of file resource.c.

107{
109 return IDXGIResource_Release(&resource->IDXGIResource_iface);
110}

◆ dxgi_surface_ReleaseDC()

static HRESULT STDMETHODCALLTYPE dxgi_surface_ReleaseDC ( IDXGISurface1 *  iface,
RECT *  dirty_rect 
)
static

Definition at line 223 of file resource.c.

224{
226 HRESULT hr;
227
228 TRACE("iface %p, rect %s\n", iface, wine_dbgstr_rect(dirty_rect));
229
230 if (!IsRectEmpty(dirty_rect))
231 FIXME("dirty rectangle is ignored.\n");
232
236
237 return hr;
238}
static const char * wine_dbgstr_rect(const RECT *prc)
Definition: atltest.h:160
HRESULT CDECL wined3d_texture_release_dc(struct wined3d_texture *texture, unsigned int sub_resource_idx, HDC dc)
Definition: texture.c:4291
BOOL WINAPI IsRectEmpty(_In_ LPCRECT)

◆ dxgi_surface_SetPrivateData()

static HRESULT STDMETHODCALLTYPE dxgi_surface_SetPrivateData ( IDXGISurface1 *  iface,
REFGUID  guid,
UINT  data_size,
const void *  data 
)
static

Definition at line 114 of file resource.c.

116{
118 return IDXGIResource_SetPrivateData(&resource->IDXGIResource_iface, guid, data_size, data);
119}

◆ dxgi_surface_SetPrivateDataInterface()

static HRESULT STDMETHODCALLTYPE dxgi_surface_SetPrivateDataInterface ( IDXGISurface1 *  iface,
REFGUID  guid,
const IUnknown *  object 
)
static

Definition at line 121 of file resource.c.

123{
125 return IDXGIResource_SetPrivateDataInterface(&resource->IDXGIResource_iface, guid, object);
126}

◆ dxgi_surface_Unmap()

static HRESULT STDMETHODCALLTYPE dxgi_surface_Unmap ( IDXGISurface1 *  iface)
static

Definition at line 193 of file resource.c.

194{
196
197 TRACE("iface %p.\n", iface);
198 wined3d_resource_unmap(resource->wined3d_resource, 0);
199 return S_OK;
200}
HRESULT CDECL wined3d_resource_unmap(struct wined3d_resource *resource, unsigned int sub_resource_idx)
Definition: resource.c:304

◆ impl_from_IDXGIResource()

static struct dxgi_resource * impl_from_IDXGIResource ( IDXGIResource *  iface)
inlinestatic

◆ impl_from_IDXGISurface1()

◆ impl_from_IUnknown()

static struct dxgi_resource * impl_from_IUnknown ( IUnknown *  iface)
inlinestatic

Definition at line 26 of file resource.c.

27{
28 return CONTAINING_RECORD(iface, struct dxgi_resource, IUnknown_iface);
29}

Referenced by dxgi_resource_inner_AddRef(), dxgi_resource_inner_QueryInterface(), and dxgi_resource_inner_Release().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( dxgi  )

Variable Documentation

◆ dxgi_resource_inner_unknown_vtbl

const struct IUnknownVtbl dxgi_resource_inner_unknown_vtbl
static
Initial value:
=
{
}
static ULONG STDMETHODCALLTYPE dxgi_resource_inner_Release(IUnknown *iface)
Definition: resource.c:70
static ULONG STDMETHODCALLTYPE dxgi_resource_inner_AddRef(IUnknown *iface)
Definition: resource.c:60
static HRESULT STDMETHODCALLTYPE dxgi_resource_inner_QueryInterface(IUnknown *iface, REFIID riid, void **out)
Definition: resource.c:31

Definition at line 418 of file resource.c.

Referenced by dxgi_resource_init().

◆ dxgi_resource_vtbl

const struct IDXGIResourceVtbl dxgi_resource_vtbl
static
Initial value:
=
{
}
static HRESULT STDMETHODCALLTYPE dxgi_resource_SetPrivateDataInterface(IDXGIResource *iface, REFGUID guid, const IUnknown *object)
Definition: resource.c:303
static HRESULT STDMETHODCALLTYPE dxgi_resource_SetEvictionPriority(IDXGIResource *iface, UINT eviction_priority)
Definition: resource.c:384
static HRESULT STDMETHODCALLTYPE dxgi_resource_GetUsage(IDXGIResource *iface, DXGI_USAGE *usage)
Definition: resource.c:351
static HRESULT STDMETHODCALLTYPE dxgi_resource_QueryInterface(IDXGIResource *iface, REFIID riid, void **object)
Definition: resource.c:269
static ULONG STDMETHODCALLTYPE dxgi_resource_Release(IDXGIResource *iface)
Definition: resource.c:284
static HRESULT STDMETHODCALLTYPE dxgi_resource_GetParent(IDXGIResource *iface, REFIID riid, void **parent)
Definition: resource.c:323
static ULONG STDMETHODCALLTYPE dxgi_resource_AddRef(IDXGIResource *iface)
Definition: resource.c:277
static HRESULT STDMETHODCALLTYPE dxgi_resource_GetDevice(IDXGIResource *iface, REFIID riid, void **device)
Definition: resource.c:334
static HRESULT STDMETHODCALLTYPE dxgi_resource_GetPrivateData(IDXGIResource *iface, REFGUID guid, UINT *data_size, void *data)
Definition: resource.c:313
static HRESULT STDMETHODCALLTYPE dxgi_resource_GetSharedHandle(IDXGIResource *iface, HANDLE *shared_handle)
Definition: resource.c:344
static HRESULT STDMETHODCALLTYPE dxgi_resource_SetPrivateData(IDXGIResource *iface, REFGUID guid, UINT data_size, const void *data)
Definition: resource.c:293
static HRESULT STDMETHODCALLTYPE dxgi_resource_GetEvictionPriority(IDXGIResource *iface, UINT *eviction_priority)
Definition: resource.c:391

Definition at line 398 of file resource.c.

Referenced by dxgi_resource_init().

◆ dxgi_surface_vtbl

const struct IDXGISurface1Vtbl dxgi_surface_vtbl
static
Initial value:
=
{
}
static HRESULT STDMETHODCALLTYPE dxgi_surface_GetDesc(IDXGISurface1 *iface, DXGI_SURFACE_DESC *desc)
Definition: resource.c:150
static HRESULT STDMETHODCALLTYPE dxgi_surface_SetPrivateData(IDXGISurface1 *iface, REFGUID guid, UINT data_size, const void *data)
Definition: resource.c:114
static HRESULT STDMETHODCALLTYPE dxgi_surface_Map(IDXGISurface1 *iface, DXGI_MAPPED_RECT *mapped_rect, UINT flags)
Definition: resource.c:168
static ULONG STDMETHODCALLTYPE dxgi_surface_AddRef(IDXGISurface1 *iface)
Definition: resource.c:100
static HRESULT STDMETHODCALLTYPE dxgi_surface_GetParent(IDXGISurface1 *iface, REFIID riid, void **parent)
Definition: resource.c:135
static ULONG STDMETHODCALLTYPE dxgi_surface_Release(IDXGISurface1 *iface)
Definition: resource.c:106
static HRESULT STDMETHODCALLTYPE dxgi_surface_SetPrivateDataInterface(IDXGISurface1 *iface, REFGUID guid, const IUnknown *object)
Definition: resource.c:121
static HRESULT STDMETHODCALLTYPE dxgi_surface_GetDevice(IDXGISurface1 *iface, REFIID riid, void **device)
Definition: resource.c:143
static HRESULT STDMETHODCALLTYPE dxgi_surface_ReleaseDC(IDXGISurface1 *iface, RECT *dirty_rect)
Definition: resource.c:223
static HRESULT STDMETHODCALLTYPE dxgi_surface_QueryInterface(IDXGISurface1 *iface, REFIID riid, void **object)
Definition: resource.c:93
static HRESULT STDMETHODCALLTYPE dxgi_surface_GetDC(IDXGISurface1 *iface, BOOL discard, HDC *hdc)
Definition: resource.c:203
static HRESULT STDMETHODCALLTYPE dxgi_surface_Unmap(IDXGISurface1 *iface)
Definition: resource.c:193
static HRESULT STDMETHODCALLTYPE dxgi_surface_GetPrivateData(IDXGISurface1 *iface, REFGUID guid, UINT *data_size, void *data)
Definition: resource.c:128

Definition at line 240 of file resource.c.

Referenced by dxgi_resource_init().