ReactOS 0.4.16-dev-117-g38f21f9
stateblock.c File Reference
#include "config.h"
#include "d3d9_private.h"
Include dependency graph for stateblock.c:

Go to the source code of this file.

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (d3d9)
 
static struct d3d9_stateblockimpl_from_IDirect3DStateBlock9 (IDirect3DStateBlock9 *iface)
 
static HRESULT WINAPI d3d9_stateblock_QueryInterface (IDirect3DStateBlock9 *iface, REFIID riid, void **out)
 
static ULONG WINAPI d3d9_stateblock_AddRef (IDirect3DStateBlock9 *iface)
 
static ULONG WINAPI d3d9_stateblock_Release (IDirect3DStateBlock9 *iface)
 
static HRESULT WINAPI d3d9_stateblock_GetDevice (IDirect3DStateBlock9 *iface, IDirect3DDevice9 **device)
 
static HRESULT WINAPI d3d9_stateblock_Capture (IDirect3DStateBlock9 *iface)
 
static HRESULT WINAPI d3d9_stateblock_Apply (IDirect3DStateBlock9 *iface)
 
HRESULT stateblock_init (struct d3d9_stateblock *stateblock, struct d3d9_device *device, D3DSTATEBLOCKTYPE type, struct wined3d_stateblock *wined3d_stateblock)
 

Variables

static const struct IDirect3DStateBlock9Vtbl d3d9_stateblock_vtbl
 

Function Documentation

◆ d3d9_stateblock_AddRef()

static ULONG WINAPI d3d9_stateblock_AddRef ( IDirect3DStateBlock9 *  iface)
static

Definition at line 51 of file stateblock.c.

52{
53 struct d3d9_stateblock *stateblock = impl_from_IDirect3DStateBlock9(iface);
55
56 TRACE("%p increasing refcount to %u.\n", iface, refcount);
57
58 return refcount;
59}
#define InterlockedIncrement
Definition: armddk.h:53
static struct d3d9_stateblock * impl_from_IDirect3DStateBlock9(IDirect3DStateBlock9 *iface)
Definition: stateblock.c:28
#define TRACE(s)
Definition: solgame.cpp:4
uint32_t ULONG
Definition: typedefs.h:59

◆ d3d9_stateblock_Apply()

static HRESULT WINAPI d3d9_stateblock_Apply ( IDirect3DStateBlock9 *  iface)
static

Definition at line 108 of file stateblock.c.

109{
110 struct d3d9_stateblock *stateblock = impl_from_IDirect3DStateBlock9(iface);
111
112 TRACE("iface %p.\n", iface);
113
117
118 return D3D_OK;
119}
#define D3D_OK
Definition: d3d.h:106
struct wined3d_stateblock * wined3d_stateblock
Definition: d3d9_private.h:231
void CDECL wined3d_stateblock_apply(const struct wined3d_stateblock *stateblock)
Definition: stateblock.c:965
void WINAPI wined3d_mutex_unlock(void)
Definition: wined3d_main.c:373
void WINAPI wined3d_mutex_lock(void)
Definition: wined3d_main.c:368

◆ d3d9_stateblock_Capture()

static HRESULT WINAPI d3d9_stateblock_Capture ( IDirect3DStateBlock9 *  iface)
static

Definition at line 95 of file stateblock.c.

96{
97 struct d3d9_stateblock *stateblock = impl_from_IDirect3DStateBlock9(iface);
98
99 TRACE("iface %p.\n", iface);
100
104
105 return D3D_OK;
106}
void CDECL wined3d_stateblock_capture(struct wined3d_stateblock *stateblock)
Definition: stateblock.c:684

◆ d3d9_stateblock_GetDevice()

static HRESULT WINAPI d3d9_stateblock_GetDevice ( IDirect3DStateBlock9 *  iface,
IDirect3DDevice9 **  device 
)
static

Definition at line 81 of file stateblock.c.

82{
83 struct d3d9_stateblock *stateblock = impl_from_IDirect3DStateBlock9(iface);
84
85 TRACE("iface %p, device %p.\n", iface, device);
86
87 *device = (IDirect3DDevice9 *)stateblock->parent_device;
89
90 TRACE("Returning device %p.\n", *device);
91
92 return D3D_OK;
93}
#define IDirect3DDevice9_AddRef(p)
Definition: d3d9.h:1507
IDirect3DDevice9Ex * parent_device
Definition: d3d9_private.h:232
Definition: devices.h:37

◆ d3d9_stateblock_QueryInterface()

static HRESULT WINAPI d3d9_stateblock_QueryInterface ( IDirect3DStateBlock9 *  iface,
REFIID  riid,
void **  out 
)
static

Definition at line 33 of file stateblock.c.

34{
35 TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
36
37 if (IsEqualGUID(riid, &IID_IDirect3DStateBlock9)
39 {
41 *out = iface;
42 return S_OK;
43 }
44
45 WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid));
46
47 *out = NULL;
48 return E_NOINTERFACE;
49}
#define WARN(fmt,...)
Definition: precomp.h:61
const GUID IID_IUnknown
#define IDirect3DStateBlock9_AddRef(p)
Definition: d3d9.h:1299
#define NULL
Definition: types.h:112
REFIID riid
Definition: atlbase.h:39
#define S_OK
Definition: intsafe.h:52
#define debugstr_guid
Definition: kernel32.h:35
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
static FILE * out
Definition: regtests2xml.c:44
#define E_NOINTERFACE
Definition: winerror.h:2364

◆ d3d9_stateblock_Release()

static ULONG WINAPI d3d9_stateblock_Release ( IDirect3DStateBlock9 *  iface)
static

Definition at line 61 of file stateblock.c.

62{
63 struct d3d9_stateblock *stateblock = impl_from_IDirect3DStateBlock9(iface);
65
66 TRACE("%p decreasing refcount to %u.\n", iface, refcount);
67
68 if (!refcount)
69 {
73
75 heap_free(stateblock);
76 }
77
78 return refcount;
79}
static BOOL heap_free(void *mem)
Definition: appwiz.h:76
#define InterlockedDecrement
Definition: armddk.h:52
#define IDirect3DDevice9Ex_Release(p)
Definition: d3d9.h:1917
ULONG CDECL wined3d_stateblock_decref(struct wined3d_stateblock *stateblock)
Definition: stateblock.c:552

◆ impl_from_IDirect3DStateBlock9()

static struct d3d9_stateblock * impl_from_IDirect3DStateBlock9 ( IDirect3DStateBlock9 *  iface)
inlinestatic

Definition at line 28 of file stateblock.c.

29{
30 return CONTAINING_RECORD(iface, struct d3d9_stateblock, IDirect3DStateBlock9_iface);
31}
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260

Referenced by d3d9_stateblock_AddRef(), d3d9_stateblock_Apply(), d3d9_stateblock_Capture(), d3d9_stateblock_GetDevice(), and d3d9_stateblock_Release().

◆ stateblock_init()

HRESULT stateblock_init ( struct d3d9_stateblock stateblock,
struct d3d9_device device,
D3DSTATEBLOCKTYPE  type,
struct wined3d_stateblock wined3d_stateblock 
)

Definition at line 134 of file stateblock.c.

136{
137 HRESULT hr;
138
140 stateblock->refcount = 1;
141
143 {
145 }
146 else
147 {
149 hr = wined3d_stateblock_create(device->wined3d_device,
152 if (FAILED(hr))
153 {
154 WARN("Failed to create wined3d stateblock, hr %#x.\n", hr);
155 return hr;
156 }
157 }
158
159 stateblock->parent_device = &device->IDirect3DDevice9Ex_iface;
161
162 return D3D_OK;
163}
static const struct IDirect3DStateBlock9Vtbl d3d9_stateblock_vtbl
Definition: stateblock.c:122
#define IDirect3DDevice9Ex_AddRef(p)
Definition: d3d9.h:1916
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
#define FAILED(hr)
Definition: intsafe.h:51
HRESULT hr
Definition: shlfolder.c:183
IDirect3DStateBlock9 IDirect3DStateBlock9_iface
Definition: d3d9_private.h:229
HRESULT CDECL wined3d_stateblock_create(struct wined3d_device *device, enum wined3d_stateblock_type type, struct wined3d_stateblock **stateblock)
Definition: stateblock.c:1372
wined3d_stateblock_type
Definition: wined3d.h:766

Referenced by d3d9_device_CreateStateBlock(), d3d9_device_EndStateBlock(), and wined3d_stateblock_create().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( d3d9  )

Variable Documentation

◆ d3d9_stateblock_vtbl

const struct IDirect3DStateBlock9Vtbl d3d9_stateblock_vtbl
static
Initial value:
=
{
}
static HRESULT WINAPI d3d9_stateblock_QueryInterface(IDirect3DStateBlock9 *iface, REFIID riid, void **out)
Definition: stateblock.c:33
static HRESULT WINAPI d3d9_stateblock_Apply(IDirect3DStateBlock9 *iface)
Definition: stateblock.c:108
static HRESULT WINAPI d3d9_stateblock_GetDevice(IDirect3DStateBlock9 *iface, IDirect3DDevice9 **device)
Definition: stateblock.c:81
static ULONG WINAPI d3d9_stateblock_AddRef(IDirect3DStateBlock9 *iface)
Definition: stateblock.c:51
static ULONG WINAPI d3d9_stateblock_Release(IDirect3DStateBlock9 *iface)
Definition: stateblock.c:61
static HRESULT WINAPI d3d9_stateblock_Capture(IDirect3DStateBlock9 *iface)
Definition: stateblock.c:95

Definition at line 122 of file stateblock.c.

Referenced by stateblock_init().