1 /*
2 * Copyright 2009 Henri Verbeet for CodeWeavers
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 *
18 */
19
20 #include "config.h"
21 #include "wine/port.h"
22
23 #include "d3d10core_private.h"
24
25 WINE_DEFAULT_DEBUG_CHANNEL(d3d10core);
26
27 /* IUnknown methods */
28
29 static HRESULT STDMETHODCALLTYPE d3d10_blend_state_QueryInterface(ID3D10BlendState *iface,
30 REFIID riid, void **object)
31 {
32 TRACE("iface %p, riid %s, object %p.\n", iface, debugstr_guid(riid), object);
33
34 if (IsEqualGUID(riid, &IID_ID3D10BlendState)
35 || IsEqualGUID(riid, &IID_ID3D10DeviceChild)
36 || IsEqualGUID(riid, &IID_IUnknown))
37 {
38 IUnknown_AddRef(iface);
39 *object = iface;
40 return S_OK;
41 }
42
43 WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid));
44
45 *object = NULL;
46 return E_NOINTERFACE;
47 }
48
49 static ULONG STDMETHODCALLTYPE d3d10_blend_state_AddRef(ID3D10BlendState *iface)
50 {
51 struct d3d10_blend_state *This = (struct d3d10_blend_state *)iface;
52 ULONG refcount = InterlockedIncrement(&This->refcount);
53
54 TRACE("%p increasing refcount to %u.\n", This, refcount);
55
56 return refcount;
57 }
58
59 static ULONG STDMETHODCALLTYPE d3d10_blend_state_Release(ID3D10BlendState *iface)
60 {
61 struct d3d10_blend_state *This = (struct d3d10_blend_state *)iface;
62 ULONG refcount = InterlockedDecrement(&This->refcount);
63
64 TRACE("%p decreasing refcount to %u.\n", This, refcount);
65
66 if (!refcount)
67 {
68 HeapFree(GetProcessHeap(), 0, This);
69 }
70
71 return refcount;
72 }
73
74 /* ID3D10DeviceChild methods */
75
76 static void STDMETHODCALLTYPE d3d10_blend_state_GetDevice(ID3D10BlendState *iface, ID3D10Device **device)
77 {
78 FIXME("iface %p, device %p stub!\n", iface, device);
79 }
80
81 static HRESULT STDMETHODCALLTYPE d3d10_blend_state_GetPrivateData(ID3D10BlendState *iface,
82 REFGUID guid, UINT *data_size, void *data)
83 {
84 FIXME("iface %p, guid %s, data_size %p, data %p stub!\n",
85 iface, debugstr_guid(guid), data_size, data);
86
87 return E_NOTIMPL;
88 }
89
90 static HRESULT STDMETHODCALLTYPE d3d10_blend_state_SetPrivateData(ID3D10BlendState *iface,
91 REFGUID guid, UINT data_size, const void *data)
92 {
93 FIXME("iface %p, guid %s, data_size %u, data %p stub!\n",
94 iface, debugstr_guid(guid), data_size, data);
95
96 return E_NOTIMPL;
97 }
98
99 static HRESULT STDMETHODCALLTYPE d3d10_blend_state_SetPrivateDataInterface(ID3D10BlendState *iface,
100 REFGUID guid, const IUnknown *data)
101 {
102 FIXME("iface %p, guid %s, data %p stub!\n", iface, debugstr_guid(guid), data);
103
104 return E_NOTIMPL;
105 }
106
107 /* ID3D10BlendState methods */
108
109 static void STDMETHODCALLTYPE d3d10_blend_state_GetDesc(ID3D10BlendState *iface,
110 D3D10_BLEND_DESC *desc)
111 {
112 FIXME("iface %p, desc %p stub!\n", iface, desc);
113 }
114
115 static const struct ID3D10BlendStateVtbl d3d10_blend_state_vtbl =
116 {
117 /* IUnknown methods */
118 d3d10_blend_state_QueryInterface,
119 d3d10_blend_state_AddRef,
120 d3d10_blend_state_Release,
121 /* ID3D10DeviceChild methods */
122 d3d10_blend_state_GetDevice,
123 d3d10_blend_state_GetPrivateData,
124 d3d10_blend_state_SetPrivateData,
125 d3d10_blend_state_SetPrivateDataInterface,
126 /* ID3D10BlendState methods */
127 d3d10_blend_state_GetDesc,
128 };
129
130 HRESULT d3d10_blend_state_init(struct d3d10_blend_state *state)
131 {
132 state->vtbl = &d3d10_blend_state_vtbl;
133 state->refcount = 1;
134
135 return S_OK;
136 }
137
138 /* IUnknown methods */
139
140 static HRESULT STDMETHODCALLTYPE d3d10_depthstencil_state_QueryInterface(ID3D10DepthStencilState *iface,
141 REFIID riid, void **object)
142 {
143 TRACE("iface %p, riid %s, object %p.\n", iface, debugstr_guid(riid), object);
144
145 if (IsEqualGUID(riid, &IID_ID3D10DepthStencilState)
146 || IsEqualGUID(riid, &IID_ID3D10DeviceChild)
147 || IsEqualGUID(riid, &IID_IUnknown))
148 {
149 IUnknown_AddRef(iface);
150 *object = iface;
151 return S_OK;
152 }
153
154 WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid));
155
156 *object = NULL;
157 return E_NOINTERFACE;
158 }
159
160 static ULONG STDMETHODCALLTYPE d3d10_depthstencil_state_AddRef(ID3D10DepthStencilState *iface)
161 {
162 struct d3d10_depthstencil_state *This = (struct d3d10_depthstencil_state *)iface;
163 ULONG refcount = InterlockedIncrement(&This->refcount);
164
165 TRACE("%p increasing refcount to %u.\n", This, refcount);
166
167 return refcount;
168 }
169
170 static ULONG STDMETHODCALLTYPE d3d10_depthstencil_state_Release(ID3D10DepthStencilState *iface)
171 {
172 struct d3d10_depthstencil_state *This = (struct d3d10_depthstencil_state *)iface;
173 ULONG refcount = InterlockedDecrement(&This->refcount);
174
175 TRACE("%p decreasing refcount to %u.\n", This, refcount);
176
177 if (!refcount)
178 {
179 HeapFree(GetProcessHeap(), 0, This);
180 }
181
182 return refcount;
183 }
184
185 /* ID3D10DeviceChild methods */
186
187 static void STDMETHODCALLTYPE d3d10_depthstencil_state_GetDevice(ID3D10DepthStencilState *iface, ID3D10Device **device)
188 {
189 FIXME("iface %p, device %p stub!\n", iface, device);
190 }
191
192 static HRESULT STDMETHODCALLTYPE d3d10_depthstencil_state_GetPrivateData(ID3D10DepthStencilState *iface,
193 REFGUID guid, UINT *data_size, void *data)
194 {
195 FIXME("iface %p, guid %s, data_size %p, data %p stub!\n",
196 iface, debugstr_guid(guid), data_size, data);
197
198 return E_NOTIMPL;
199 }
200
201 static HRESULT STDMETHODCALLTYPE d3d10_depthstencil_state_SetPrivateData(ID3D10DepthStencilState *iface,
202 REFGUID guid, UINT data_size, const void *data)
203 {
204 FIXME("iface %p, guid %s, data_size %u, data %p stub!\n",
205 iface, debugstr_guid(guid), data_size, data);
206
207 return E_NOTIMPL;
208 }
209
210 static HRESULT STDMETHODCALLTYPE d3d10_depthstencil_state_SetPrivateDataInterface(ID3D10DepthStencilState *iface,
211 REFGUID guid, const IUnknown *data)
212 {
213 FIXME("iface %p, guid %s, data %p stub!\n", iface, debugstr_guid(guid), data);
214
215 return E_NOTIMPL;
216 }
217
218 /* ID3D10DepthStencilState methods */
219
220 static void STDMETHODCALLTYPE d3d10_depthstencil_state_GetDesc(ID3D10DepthStencilState *iface,
221 D3D10_DEPTH_STENCIL_DESC *desc)
222 {
223 FIXME("iface %p, desc %p stub!\n", iface, desc);
224 }
225
226 static const struct ID3D10DepthStencilStateVtbl d3d10_depthstencil_state_vtbl =
227 {
228 /* IUnknown methods */
229 d3d10_depthstencil_state_QueryInterface,
230 d3d10_depthstencil_state_AddRef,
231 d3d10_depthstencil_state_Release,
232 /* ID3D10DeviceChild methods */
233 d3d10_depthstencil_state_GetDevice,
234 d3d10_depthstencil_state_GetPrivateData,
235 d3d10_depthstencil_state_SetPrivateData,
236 d3d10_depthstencil_state_SetPrivateDataInterface,
237 /* ID3D10DepthStencilState methods */
238 d3d10_depthstencil_state_GetDesc,
239 };
240
241 HRESULT d3d10_depthstencil_state_init(struct d3d10_depthstencil_state *state)
242 {
243 state->vtbl = &d3d10_depthstencil_state_vtbl;
244 state->refcount = 1;
245
246 return S_OK;
247 }
248
249 /* IUnknown methods */
250
251 static HRESULT STDMETHODCALLTYPE d3d10_rasterizer_state_QueryInterface(ID3D10RasterizerState *iface,
252 REFIID riid, void **object)
253 {
254 TRACE("iface %p, riid %s, object %p.\n", iface, debugstr_guid(riid), object);
255
256 if (IsEqualGUID(riid, &IID_ID3D10RasterizerState)
257 || IsEqualGUID(riid, &IID_ID3D10DeviceChild)
258 || IsEqualGUID(riid, &IID_IUnknown))
259 {
260 IUnknown_AddRef(iface);
261 *object = iface;
262 return S_OK;
263 }
264
265 WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid));
266
267 *object = NULL;
268 return E_NOINTERFACE;
269 }
270
271 static ULONG STDMETHODCALLTYPE d3d10_rasterizer_state_AddRef(ID3D10RasterizerState *iface)
272 {
273 struct d3d10_rasterizer_state *This = (struct d3d10_rasterizer_state *)iface;
274 ULONG refcount = InterlockedIncrement(&This->refcount);
275
276 TRACE("%p increasing refcount to %u.\n", This, refcount);
277
278 return refcount;
279 }
280
281 static ULONG STDMETHODCALLTYPE d3d10_rasterizer_state_Release(ID3D10RasterizerState *iface)
282 {
283 struct d3d10_rasterizer_state *This = (struct d3d10_rasterizer_state *)iface;
284 ULONG refcount = InterlockedDecrement(&This->refcount);
285
286 TRACE("%p decreasing refcount to %u.\n", This, refcount);
287
288 if (!refcount)
289 {
290 HeapFree(GetProcessHeap(), 0, This);
291 }
292
293 return refcount;
294 }
295
296 /* ID3D10DeviceChild methods */
297
298 static void STDMETHODCALLTYPE d3d10_rasterizer_state_GetDevice(ID3D10RasterizerState *iface, ID3D10Device **device)
299 {
300 FIXME("iface %p, device %p stub!\n", iface, device);
301 }
302
303 static HRESULT STDMETHODCALLTYPE d3d10_rasterizer_state_GetPrivateData(ID3D10RasterizerState *iface,
304 REFGUID guid, UINT *data_size, void *data)
305 {
306 FIXME("iface %p, guid %s, data_size %p, data %p stub!\n",
307 iface, debugstr_guid(guid), data_size, data);
308
309 return E_NOTIMPL;
310 }
311
312 static HRESULT STDMETHODCALLTYPE d3d10_rasterizer_state_SetPrivateData(ID3D10RasterizerState *iface,
313 REFGUID guid, UINT data_size, const void *data)
314 {
315 FIXME("iface %p, guid %s, data_size %u, data %p stub!\n",
316 iface, debugstr_guid(guid), data_size, data);
317
318 return E_NOTIMPL;
319 }
320
321 static HRESULT STDMETHODCALLTYPE d3d10_rasterizer_state_SetPrivateDataInterface(ID3D10RasterizerState *iface,
322 REFGUID guid, const IUnknown *data)
323 {
324 FIXME("iface %p, guid %s, data %p stub!\n", iface, debugstr_guid(guid), data);
325
326 return E_NOTIMPL;
327 }
328
329 /* ID3D10RasterizerState methods */
330
331 static void STDMETHODCALLTYPE d3d10_rasterizer_state_GetDesc(ID3D10RasterizerState *iface,
332 D3D10_RASTERIZER_DESC *desc)
333 {
334 FIXME("iface %p, desc %p stub!\n", iface, desc);
335 }
336
337 static const struct ID3D10RasterizerStateVtbl d3d10_rasterizer_state_vtbl =
338 {
339 /* IUnknown methods */
340 d3d10_rasterizer_state_QueryInterface,
341 d3d10_rasterizer_state_AddRef,
342 d3d10_rasterizer_state_Release,
343 /* ID3D10DeviceChild methods */
344 d3d10_rasterizer_state_GetDevice,
345 d3d10_rasterizer_state_GetPrivateData,
346 d3d10_rasterizer_state_SetPrivateData,
347 d3d10_rasterizer_state_SetPrivateDataInterface,
348 /* ID3D10RasterizerState methods */
349 d3d10_rasterizer_state_GetDesc,
350 };
351
352 HRESULT d3d10_rasterizer_state_init(struct d3d10_rasterizer_state *state)
353 {
354 state->vtbl = &d3d10_rasterizer_state_vtbl;
355 state->refcount = 1;
356
357 return S_OK;
358 }
359
360 /* IUnknown methods */
361
362 static HRESULT STDMETHODCALLTYPE d3d10_sampler_state_QueryInterface(ID3D10SamplerState *iface,
363 REFIID riid, void **object)
364 {
365 TRACE("iface %p, riid %s, object %p.\n", iface, debugstr_guid(riid), object);
366
367 if (IsEqualGUID(riid, &IID_ID3D10SamplerState)
368 || IsEqualGUID(riid, &IID_ID3D10DeviceChild)
369 || IsEqualGUID(riid, &IID_IUnknown))
370 {
371 IUnknown_AddRef(iface);
372 *object = iface;
373 return S_OK;
374 }
375
376 WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid));
377
378 *object = NULL;
379 return E_NOINTERFACE;
380 }
381
382 static ULONG STDMETHODCALLTYPE d3d10_sampler_state_AddRef(ID3D10SamplerState *iface)
383 {
384 struct d3d10_sampler_state *This = (struct d3d10_sampler_state *)iface;
385 ULONG refcount = InterlockedIncrement(&This->refcount);
386
387 TRACE("%p increasing refcount to %u.\n", This, refcount);
388
389 return refcount;
390 }
391
392 static ULONG STDMETHODCALLTYPE d3d10_sampler_state_Release(ID3D10SamplerState *iface)
393 {
394 struct d3d10_sampler_state *This = (struct d3d10_sampler_state *)iface;
395 ULONG refcount = InterlockedDecrement(&This->refcount);
396
397 TRACE("%p decreasing refcount to %u.\n", This, refcount);
398
399 if (!refcount)
400 {
401 HeapFree(GetProcessHeap(), 0, This);
402 }
403
404 return refcount;
405 }
406
407 /* ID3D10DeviceChild methods */
408
409 static void STDMETHODCALLTYPE d3d10_sampler_state_GetDevice(ID3D10SamplerState *iface, ID3D10Device **device)
410 {
411 FIXME("iface %p, device %p stub!\n", iface, device);
412 }
413
414 static HRESULT STDMETHODCALLTYPE d3d10_sampler_state_GetPrivateData(ID3D10SamplerState *iface,
415 REFGUID guid, UINT *data_size, void *data)
416 {
417 FIXME("iface %p, guid %s, data_size %p, data %p stub!\n",
418 iface, debugstr_guid(guid), data_size, data);
419
420 return E_NOTIMPL;
421 }
422
423 static HRESULT STDMETHODCALLTYPE d3d10_sampler_state_SetPrivateData(ID3D10SamplerState *iface,
424 REFGUID guid, UINT data_size, const void *data)
425 {
426 FIXME("iface %p, guid %s, data_size %u, data %p stub!\n",
427 iface, debugstr_guid(guid), data_size, data);
428
429 return E_NOTIMPL;
430 }
431
432 static HRESULT STDMETHODCALLTYPE d3d10_sampler_state_SetPrivateDataInterface(ID3D10SamplerState *iface,
433 REFGUID guid, const IUnknown *data)
434 {
435 FIXME("iface %p, guid %s, data %p stub!\n", iface, debugstr_guid(guid), data);
436
437 return E_NOTIMPL;
438 }
439
440 /* ID3D10SamplerState methods */
441
442 static void STDMETHODCALLTYPE d3d10_sampler_state_GetDesc(ID3D10SamplerState *iface,
443 D3D10_SAMPLER_DESC *desc)
444 {
445 FIXME("iface %p, desc %p stub!\n", iface, desc);
446 }
447
448 static const struct ID3D10SamplerStateVtbl d3d10_sampler_state_vtbl =
449 {
450 /* IUnknown methods */
451 d3d10_sampler_state_QueryInterface,
452 d3d10_sampler_state_AddRef,
453 d3d10_sampler_state_Release,
454 /* ID3D10DeviceChild methods */
455 d3d10_sampler_state_GetDevice,
456 d3d10_sampler_state_GetPrivateData,
457 d3d10_sampler_state_SetPrivateData,
458 d3d10_sampler_state_SetPrivateDataInterface,
459 /* ID3D10SamplerState methods */
460 d3d10_sampler_state_GetDesc,
461 };
462
463 HRESULT d3d10_sampler_state_init(struct d3d10_sampler_state *state)
464 {
465 state->vtbl = &d3d10_sampler_state_vtbl;
466 state->refcount = 1;
467
468 return S_OK;
469 }
470
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.