ReactOS 0.4.15-dev-7958-gcd0bb1a
ddraw_private.h
Go to the documentation of this file.
1/*
2 * Copyright 2006 Stefan Dösinger
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#ifndef __WINE_DLLS_DDRAW_DDRAW_PRIVATE_H
20#define __WINE_DLLS_DDRAW_DDRAW_PRIVATE_H
21
22#include <assert.h>
23#include <limits.h>
24#define COBJMACROS
25#define NONAMELESSSTRUCT
26#define NONAMELESSUNION
27#include "wine/debug.h"
28#include "wine/heap.h"
29
30#include "winbase.h"
31#include "wingdi.h"
32#include "winuser.h"
33
34#include "d3d.h"
35#include "ddraw.h"
36#ifdef DDRAW_INIT_GUID
37#include "initguid.h"
38#endif
39#include "wine/list.h"
40#include "wine/wined3d.h"
41
44
45/*****************************************************************************
46 * IDirectDraw implementation structure
47 *****************************************************************************/
48struct FvfToDecl
49{
50 DWORD fvf;
52};
53
54#define DDRAW_INITIALIZED 0x00000001
55#define DDRAW_D3D_INITIALIZED 0x00000002
56#define DDRAW_RESTORE_MODE 0x00000004
57#define DDRAW_NO3D 0x00000008
58#define DDRAW_SCL_DDRAW1 0x00000010
59#define DDRAW_SCL_RECURSIVE 0x00000020
60#define DDRAW_GDI_FLIP 0x00000040
61
62#define DDRAW_STRIDE_ALIGNMENT 8
63
64#define DDRAW_WINED3D_FLAGS (WINED3D_LEGACY_DEPTH_BIAS | WINED3D_VIDMEM_ACCOUNTING \
65 | WINED3D_RESTORE_MODE_ON_ACTIVATE | WINED3D_FOCUS_MESSAGES | WINED3D_PIXEL_CENTER_INTEGER \
66 | WINED3D_LEGACY_UNBOUND_RESOURCE_COLOR | WINED3D_NO_PRIMITIVE_RESTART \
67 | WINED3D_LEGACY_CUBEMAP_FILTERING | WINED3D_LIMIT_VIEWPORT)
68
70{
74};
75
76struct ddraw
77{
78 /* Interfaces */
80 IDirectDraw4 IDirectDraw4_iface;
81 IDirectDraw2 IDirectDraw2_iface;
82 IDirectDraw IDirectDraw_iface;
83 IDirect3D7 IDirect3D7_iface;
84 IDirect3D3 IDirect3D3_iface;
85 IDirect3D2 IDirect3D2_iface;
86 IDirect3D IDirect3D_iface;
88
89 /* See comment in IDirectDraw::AddRef */
91
96
102
103 /* DirectDraw things, which are not handled by WineD3D */
105
106 /* D3D things */
110
111 /* Various HWNDs */
115
116 /* For the dll unload cleanup code */
118 /* The surface list - can't relay this to WineD3D
119 * because of IParent
120 */
122
123 /* FVF management */
126};
127
128#define DDRAW_WINDOW_CLASS_NAME "DirectDrawDeviceWnd"
129
134
136{
137 if (window == GetDesktopWindow())
138 window = NULL;
140}
141
142/* Utility functions */
146
148{
149 /* IUnknown fields */
151 IDirectDrawSurface4 IDirectDrawSurface4_iface;
152 IDirectDrawSurface3 IDirectDrawSurface3_iface;
153 IDirectDrawSurface2 IDirectDrawSurface2_iface;
154 IDirectDrawSurface IDirectDrawSurface_iface;
155 IDirectDrawGammaControl IDirectDrawGammaControl_iface;
156 IDirect3DTexture2 IDirect3DTexture2_iface;
157 IDirect3DTexture IDirect3DTexture_iface;
158
162
164
165 /* Connections to other Objects */
166 struct ddraw *ddraw;
168 unsigned int sub_resource_idx;
172
173 /* This implementation handles attaching surfaces to other surfaces */
177
178 /* Complex surfaces are organized in a tree, although the tree is degenerated to a list in most cases.
179 * In mipmap and primary surfaces each level has only one attachment, which is the next surface level.
180 * Only the cube texture root has 6 surfaces attached, which then have a normal mipmap chain attached
181 * to them. So hardcode the array to 6, a dynamic array or a list would be an overkill.
182 */
183#define MAX_COMPLEX_ATTACHED 6
185 /* You can't traverse the tree upwards. Only a flag for Surface::Release because it's needed there,
186 * but no pointer to prevent temptations to traverse it in the wrong direction.
187 */
190
191 /* Surface description, for GetAttachedSurface */
193
194 /* Clipper objects */
197
198 /* For the ddraw surface list */
200
203};
204
206{
207 unsigned int version;
209
212};
213
214HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_desc,
215 struct ddraw_surface **surface, IUnknown *outer_unknown, unsigned int version) DECLSPEC_HIDDEN;
217void ddraw_surface_init(struct ddraw_surface *surface, struct ddraw *ddraw,
222
223static inline struct ddraw_surface *impl_from_IDirect3DTexture(IDirect3DTexture *iface)
224{
226}
227
228static inline struct ddraw_surface *impl_from_IDirect3DTexture2(IDirect3DTexture2 *iface)
229{
231}
232
233static inline struct ddraw_surface *impl_from_IDirectDrawSurface(IDirectDrawSurface *iface)
234{
236}
237
238static inline struct ddraw_surface *impl_from_IDirectDrawSurface2(IDirectDrawSurface2 *iface)
239{
241}
242
243static inline struct ddraw_surface *impl_from_IDirectDrawSurface3(IDirectDrawSurface3 *iface)
244{
246}
247
248static inline struct ddraw_surface *impl_from_IDirectDrawSurface4(IDirectDrawSurface4 *iface)
249{
251}
252
254{
256}
257
258struct ddraw_surface *unsafe_impl_from_IDirectDrawSurface(IDirectDrawSurface *iface) DECLSPEC_HIDDEN;
259struct ddraw_surface *unsafe_impl_from_IDirectDrawSurface4(IDirectDrawSurface4 *iface) DECLSPEC_HIDDEN;
261
264
265#define DDRAW_INVALID_HANDLE ~0U
266
268{
274};
275
277{
278 void *object;
280};
281
283{
288};
289
295
297{
298 /* IUnknown */
299 IDirect3DDevice7 IDirect3DDevice7_iface;
300 IDirect3DDevice3 IDirect3DDevice3_iface;
301 IDirect3DDevice2 IDirect3DDevice2_iface;
302 IDirect3DDevice IDirect3DDevice_iface;
307
310 struct ddraw *ddraw;
312
316
320
321 /* Viewport management */
325
326 /* Required to keep track which of two available texture blending modes in d3ddevice3 is used */
328
331
332 /* Light state */
334
335 /* Rendering functions to wrap D3D(1-3) to D3D7 */
343
344 /* Handle management */
347
349};
350
351HRESULT d3d_device_create(struct ddraw *ddraw, const GUID *guid, struct ddraw_surface *target, IUnknown *rt_iface,
352 UINT version, struct d3d_device **device, IUnknown *outer_unknown) DECLSPEC_HIDDEN;
354
355/* The IID */
357
358static inline struct d3d_device *impl_from_IDirect3DDevice(IDirect3DDevice *iface)
359{
361}
362
363static inline struct d3d_device *impl_from_IDirect3DDevice2(IDirect3DDevice2 *iface)
364{
366}
367
368static inline struct d3d_device *impl_from_IDirect3DDevice3(IDirect3DDevice3 *iface)
369{
371}
372
373static inline struct d3d_device *impl_from_IDirect3DDevice7(IDirect3DDevice7 *iface)
374{
376}
377
378struct d3d_device *unsafe_impl_from_IDirect3DDevice(IDirect3DDevice *iface) DECLSPEC_HIDDEN;
379struct d3d_device *unsafe_impl_from_IDirect3DDevice2(IDirect3DDevice2 *iface) DECLSPEC_HIDDEN;
380struct d3d_device *unsafe_impl_from_IDirect3DDevice3(IDirect3DDevice3 *iface) DECLSPEC_HIDDEN;
381struct d3d_device *unsafe_impl_from_IDirect3DDevice7(IDirect3DDevice7 *iface) DECLSPEC_HIDDEN;
382
384{
385 IDirectDrawClipper IDirectDrawClipper_iface;
388 HRGN region;
390};
391
393struct ddraw_clipper *unsafe_impl_from_IDirectDrawClipper(IDirectDrawClipper *iface) DECLSPEC_HIDDEN;
394
395/*****************************************************************************
396 * IDirectDrawPalette implementation structure
397 *****************************************************************************/
399{
400 /* IUnknown fields */
401 IDirectDrawPalette IDirectDrawPalette_iface;
403
405 struct ddraw *ddraw;
408};
409
410static inline struct ddraw_palette *impl_from_IDirectDrawPalette(IDirectDrawPalette *iface)
411{
413}
414
415struct ddraw_palette *unsafe_impl_from_IDirectDrawPalette(IDirectDrawPalette *iface) DECLSPEC_HIDDEN;
416
419
420/* Helper structures */
422{
423 const CLSID *clsid;
425 void **ppObj);
426};
427
428/******************************************************************************
429 * IDirect3DLight implementation structure - Wraps to D3D7
430 ******************************************************************************/
432{
433 IDirect3DLight IDirect3DLight_iface;
435
436 /* IDirect3DLight fields */
437 struct ddraw *ddraw;
438
439 /* If this light is active for one viewport, put the viewport here */
441
444
446
447 struct list entry;
448};
449
450/* Helper functions */
454struct d3d_light *unsafe_impl_from_IDirect3DLight(IDirect3DLight *iface) DECLSPEC_HIDDEN;
455
456/******************************************************************************
457 * IDirect3DMaterial implementation structure - Wraps to D3D7
458 ******************************************************************************/
460{
461 IDirect3DMaterial3 IDirect3DMaterial3_iface;
462 IDirect3DMaterial2 IDirect3DMaterial2_iface;
463 IDirect3DMaterial IDirect3DMaterial_iface;
465
466 /* IDirect3DMaterial2 fields */
467 struct ddraw *ddraw;
469
472};
473
474/* Helper functions */
477
478/*****************************************************************************
479 * IDirect3DViewport - Wraps to D3D7
480 *****************************************************************************/
482{
483 IDirect3DViewport3 IDirect3DViewport3_iface;
485
486 /* IDirect3DViewport fields */
487 struct ddraw *ddraw;
488
489 /* If this viewport is active for one device, put the device here */
491
494
496
497 union
498 {
502
503 struct list entry;
506};
507
508struct d3d_viewport *unsafe_impl_from_IDirect3DViewport3(IDirect3DViewport3 *iface) DECLSPEC_HIDDEN;
509struct d3d_viewport *unsafe_impl_from_IDirect3DViewport2(IDirect3DViewport2 *iface) DECLSPEC_HIDDEN;
510struct d3d_viewport *unsafe_impl_from_IDirect3DViewport(IDirect3DViewport *iface) DECLSPEC_HIDDEN;
511
512/* Helper functions */
513void viewport_activate(struct d3d_viewport *viewport, BOOL ignore_lights) DECLSPEC_HIDDEN;
514void d3d_viewport_init(struct d3d_viewport *viewport, struct ddraw *ddraw) DECLSPEC_HIDDEN;
515
516/*****************************************************************************
517 * IDirect3DExecuteBuffer - Wraps to D3D7
518 *****************************************************************************/
520{
521 IDirect3DExecuteBuffer IDirect3DExecuteBuffer_iface;
523 /* IDirect3DExecuteBuffer fields */
524 struct ddraw *ddraw;
526
529
530 /* This buffer will store the transformed vertices */
531 unsigned int index_size, index_pos;
534
535 /* This flags is set to TRUE if we allocated ourselves the
536 * data buffer
537 */
539};
540
544
545/* The execute function */
547 struct d3d_device *device, struct d3d_viewport *viewport) DECLSPEC_HIDDEN;
548
549/*****************************************************************************
550 * IDirect3DVertexBuffer
551 *****************************************************************************/
553{
554 IDirect3DVertexBuffer7 IDirect3DVertexBuffer7_iface;
556 unsigned int version;
557
558 /*** WineD3D and ddraw links ***/
561 struct ddraw *ddraw;
562
563 /*** Storage for D3D7 specific things ***/
568};
569
574
575/*****************************************************************************
576 * Helper functions from utils.c
577 *****************************************************************************/
578
579#define GET_TEXCOUNT_FROM_FVF(d3dvtVertexType) \
580 (((d3dvtVertexType) & D3DFVF_TEXCOUNT_MASK) >> D3DFVF_TEXCOUNT_SHIFT)
581
582#define GET_TEXCOORD_SIZE_FROM_FVF(d3dvtVertexType, tex_num) \
583 (((((d3dvtVertexType) >> (16 + (2 * (tex_num)))) + 1) & 0x03) + 1)
584
588 DWORD colour, struct wined3d_color *wined3d_colour) DECLSPEC_HIDDEN;
593void DDRAW_dump_DDCAPS(const DDCAPS *lpcaps) DECLSPEC_HIDDEN;
599
600void multiply_matrix(D3DMATRIX *dst, const D3DMATRIX *src1, const D3DMATRIX *src2) DECLSPEC_HIDDEN;
601
603{
604 return (format->dwFlags & DDPF_FOURCC) && (format->dwFourCC == WINED3DFMT_DXT1
605 || format->dwFourCC == WINED3DFMT_DXT2 || format->dwFourCC == WINED3DFMT_DXT3
606 || format->dwFourCC == WINED3DFMT_DXT4 || format->dwFourCC == WINED3DFMT_DXT5);
607}
608
610{
613 return !!(fmt->dwFlags & flags);
614}
615
616/* Used for generic dumping */
618{
620 const char *name;
621};
622
623#define FE(x) { x, #x }
624
626{
628 const char *name;
629 void (*func)(const void *);
631};
632
633/* Structure copy */
634#define ME(x,f,e) { x, #x, (void (*)(const void *))(f), offsetof(STRUCT, e) }
635
636#define DD_STRUCT_COPY_BYSIZE_(to,from,to_size,from_size) \
637 do { \
638 DWORD __size = (to)->dwSize; \
639 DWORD __resetsize = min(to_size, sizeof(*to)); \
640 DWORD __copysize = min(__resetsize, from_size); \
641 assert(to != from); \
642 memcpy(to, from, __copysize); \
643 memset((char*)(to) + __copysize, 0, __resetsize - __copysize); \
644 (to)->dwSize = __size; /* restore size */ \
645 } while (0)
646
647#define DD_STRUCT_COPY_BYSIZE(to,from) DD_STRUCT_COPY_BYSIZE_(to,from,(to)->dwSize,(from)->dwSize)
648
650
651#endif
#define read
Definition: acwin.h:96
Definition: list.h:37
#define D3DMAXUSERCLIPPLANES
Definition: d3d8types.h:75
D3DPRIMITIVETYPE
Definition: d3dtypes.h:822
DWORD D3DMATRIXHANDLE
Definition: d3dtypes.h:156
void DDSD_to_DDSD2(const DDSURFACEDESC *in, DDSURFACEDESC2 *out) DECLSPEC_HIDDEN
Definition: utils.c:1218
HRESULT ddraw_clipper_init(struct ddraw_clipper *clipper) DECLSPEC_HIDDEN
Definition: clipper.c:321
void DDRAW_dump_surface_desc(const DDSURFACEDESC2 *lpddsd) DECLSPEC_HIDDEN
Definition: utils.c:864
struct ddraw_clipper * unsafe_impl_from_IDirectDrawClipper(IDirectDrawClipper *iface) DECLSPEC_HIDDEN
Definition: clipper.c:329
void DDRAW_dump_DDCAPS(const DDCAPS *lpcaps) DECLSPEC_HIDDEN
Definition: utils.c:990
void DDRAW_Convert_DDSCAPS_1_To_2(const DDSCAPS *pIn, DDSCAPS2 *pOut) DECLSPEC_HIDDEN
Definition: utils.c:951
struct ddraw_surface * unsafe_impl_from_IDirectDrawSurface7(IDirectDrawSurface7 *iface) DECLSPEC_HIDDEN
Definition: surface.c:5641
BOOL wined3d_colour_from_ddraw_colour(const DDPIXELFORMAT *pf, const struct ddraw_palette *palette, DWORD colour, struct wined3d_color *wined3d_colour) DECLSPEC_HIDDEN
Definition: utils.c:596
static struct ddraw_surface * impl_from_IDirectDrawSurface3(IDirectDrawSurface3 *iface)
struct d3d_viewport * unsafe_impl_from_IDirect3DViewport3(IDirect3DViewport3 *iface) DECLSPEC_HIDDEN
Definition: viewport.c:1123
static struct ddraw_surface * impl_from_IDirectDrawSurface4(IDirectDrawSurface4 *iface)
HRESULT ddraw_surface_update_frontbuffer(struct ddraw_surface *surface, const RECT *rect, BOOL read) DECLSPEC_HIDDEN
Definition: surface.c:43
ddraw_device_state
Definition: ddraw_private.h:70
@ DDRAW_DEVICE_STATE_LOST
Definition: ddraw_private.h:72
@ DDRAW_DEVICE_STATE_NOT_RESTORED
Definition: ddraw_private.h:73
@ DDRAW_DEVICE_STATE_OK
Definition: ddraw_private.h:71
struct d3d_device * unsafe_impl_from_IDirect3DDevice7(IDirect3DDevice7 *iface) DECLSPEC_HIDDEN
Definition: device.c:6850
struct ddraw_surface * unsafe_impl_from_IDirectDrawSurface4(IDirectDrawSurface4 *iface) DECLSPEC_HIDDEN
Definition: surface.c:5657
HRESULT d3d_execute_buffer_init(struct d3d_execute_buffer *execute_buffer, struct d3d_device *device, D3DEXECUTEBUFFERDESC *desc) DECLSPEC_HIDDEN
struct d3d_device * unsafe_impl_from_IDirect3DDevice3(IDirect3DDevice3 *iface) DECLSPEC_HIDDEN
Definition: device.c:6857
static struct ddraw_palette * impl_from_IDirectDrawPalette(IDirectDrawPalette *iface)
static struct ddraw_surface * impl_from_IDirectDrawSurface(IDirectDrawSurface *iface)
void ddraw_surface_init(struct ddraw_surface *surface, struct ddraw *ddraw, struct wined3d_texture *wined3d_texture, unsigned int sub_resource_idx, const struct wined3d_parent_ops **parent_ops) DECLSPEC_HIDDEN
Definition: surface.c:6432
void * ddraw_free_handle(struct ddraw_handle_table *t, DWORD handle, enum ddraw_handle_type type) DECLSPEC_HIDDEN
Definition: main.c:156
static BOOL format_is_compressed(const DDPIXELFORMAT *format)
DWORD ddraw_allocate_handle(struct ddraw_handle_table *t, void *object, enum ddraw_handle_type type) DECLSPEC_HIDDEN
Definition: main.c:113
DWORD get_flexible_vertex_size(DWORD d3dvtVertexType) DECLSPEC_HIDDEN
Definition: utils.c:923
#define MAX_COMPLEX_ATTACHED
void multiply_matrix(D3DMATRIX *dst, const D3DMATRIX *src1, const D3DMATRIX *src2) DECLSPEC_HIDDEN
Definition: utils.c:1173
void DDRAW_Convert_DDDEVICEIDENTIFIER_2_To_1(const DDDEVICEIDENTIFIER2 *pIn, DDDEVICEIDENTIFIER *pOut) DECLSPEC_HIDDEN
Definition: utils.c:961
struct wined3d_rendertarget_view * ddraw_surface_get_rendertarget_view(struct ddraw_surface *surface) DECLSPEC_HIDDEN
Definition: surface.c:6520
static struct ddraw_surface * impl_from_IDirectDrawSurface2(IDirectDrawSurface2 *iface)
void d3d_light_init(struct d3d_light *light, struct ddraw *ddraw) DECLSPEC_HIDDEN
Definition: light.c:247
void ddrawformat_from_wined3dformat(DDPIXELFORMAT *ddraw_format, enum wined3d_format_id wined3d_format) DECLSPEC_HIDDEN
Definition: utils.c:33
HRESULT d3d_device_create(struct ddraw *ddraw, const GUID *guid, struct ddraw_surface *target, IUnknown *rt_iface, UINT version, struct d3d_device **device, IUnknown *outer_unknown) DECLSPEC_HIDDEN
Definition: device.c:6980
static BOOL format_is_paletteindexed(const DDPIXELFORMAT *fmt)
void d3d_viewport_init(struct d3d_viewport *viewport, struct ddraw *ddraw) DECLSPEC_HIDDEN
Definition: viewport.c:1146
struct d3d_device * unsafe_impl_from_IDirect3DDevice(IDirect3DDevice *iface) DECLSPEC_HIDDEN
Definition: device.c:6871
struct wined3d_vertex_declaration * ddraw_find_decl(struct ddraw *ddraw, DWORD fvf) DECLSPEC_HIDDEN
Definition: ddraw.c:4797
void ddraw_handle_table_destroy(struct ddraw_handle_table *t) DECLSPEC_HIDDEN
Definition: main.c:107
enum wined3d_depth_buffer_type d3d_device_update_depth_stencil(struct d3d_device *device) DECLSPEC_HIDDEN
Definition: device.c:6878
struct d3d_device * unsafe_impl_from_IDirect3DDevice2(IDirect3DDevice2 *iface) DECLSPEC_HIDDEN
Definition: device.c:6864
struct ddraw_palette * unsafe_impl_from_IDirectDrawPalette(IDirectDrawPalette *iface) DECLSPEC_HIDDEN
Definition: palette.c:234
static struct d3d_device * impl_from_IDirect3DDevice7(IDirect3DDevice7 *iface)
void DDSD2_to_DDSD(const DDSURFACEDESC2 *in, DDSURFACEDESC *out) DECLSPEC_HIDDEN
Definition: utils.c:1262
struct d3d_viewport * unsafe_impl_from_IDirect3DViewport2(IDirect3DViewport2 *iface) DECLSPEC_HIDDEN
Definition: viewport.c:1130
HRESULT hr_ddraw_from_wined3d(HRESULT hr) DECLSPEC_HIDDEN
Definition: utils.c:1206
void ddraw_update_lost_surfaces(struct ddraw *ddraw) DECLSPEC_HIDDEN
Definition: ddraw.c:4914
unsigned int wined3dmapflags_from_ddrawmapflags(unsigned int flags) DECLSPEC_HIDDEN
Definition: utils.c:564
struct d3d_material * d3d_material_create(struct ddraw *ddraw) DECLSPEC_HIDDEN
Definition: material.c:501
static void ddraw_set_swapchain_window(struct ddraw *ddraw, HWND window)
static struct ddraw_surface * impl_from_IDirect3DTexture2(IDirect3DTexture2 *iface)
HRESULT ddraw_palette_init(struct ddraw_palette *palette, struct ddraw *ddraw, DWORD flags, PALETTEENTRY *entries) DECLSPEC_HIDDEN
Definition: palette.c:258
struct ddraw_surface * unsafe_impl_from_IDirect3DTexture(IDirect3DTexture *iface) DECLSPEC_HIDDEN
Definition: surface.c:5728
struct d3d_vertex_buffer * unsafe_impl_from_IDirect3DVertexBuffer(IDirect3DVertexBuffer *iface) DECLSPEC_HIDDEN
struct ddraw_surface * unsafe_impl_from_IDirectDrawSurface(IDirectDrawSurface *iface) DECLSPEC_HIDDEN
Definition: surface.c:5705
BOOL ddraw_handle_table_init(struct ddraw_handle_table *t, UINT initial_size) DECLSPEC_HIDDEN
Definition: main.c:93
struct d3d_execute_buffer * unsafe_impl_from_IDirect3DExecuteBuffer(IDirect3DExecuteBuffer *iface) DECLSPEC_HIDDEN
struct d3d_vertex_buffer * unsafe_impl_from_IDirect3DVertexBuffer7(IDirect3DVertexBuffer7 *iface) DECLSPEC_HIDDEN
Definition: vertexbuffer.c:486
void material_activate(struct d3d_material *material) DECLSPEC_HIDDEN
Definition: material.c:447
struct d3d_light * unsafe_impl_from_IDirect3DLight(IDirect3DLight *iface) DECLSPEC_HIDDEN
Definition: light.c:254
static struct d3d_device * impl_from_IDirect3DDevice3(IDirect3DDevice3 *iface)
ddraw_handle_type
@ DDRAW_HANDLE_STATEBLOCK
@ DDRAW_HANDLE_SURFACE
@ DDRAW_HANDLE_MATRIX
@ DDRAW_HANDLE_MATERIAL
@ DDRAW_HANDLE_FREE
HRESULT ddraw_init(struct ddraw *ddraw, DWORD flags, enum wined3d_device_type device_type) DECLSPEC_HIDDEN
Definition: ddraw.c:5048
HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_desc, struct ddraw_surface **surface, IUnknown *outer_unknown, unsigned int version) DECLSPEC_HIDDEN
Definition: surface.c:5791
const struct wined3d_parent_ops ddraw_null_wined3d_parent_ops DECLSPEC_HIDDEN
Definition: ddraw_private.h:43
void light_activate(struct d3d_light *light) DECLSPEC_HIDDEN
Definition: light.c:51
void DDRAW_dump_DDSCAPS2(const DDSCAPS2 *in) DECLSPEC_HIDDEN
Definition: utils.c:713
void dump_D3DMATRIX(const D3DMATRIX *mat) DECLSPEC_HIDDEN
Definition: utils.c:914
HRESULT ddraw_get_d3dcaps(const struct ddraw *ddraw, D3DDEVICEDESC7 *caps) DECLSPEC_HIDDEN
Definition: ddraw.c:1248
struct ddraw_surface * unsafe_impl_from_IDirect3DTexture2(IDirect3DTexture2 *iface) DECLSPEC_HIDDEN
Definition: surface.c:5721
void DDRAW_dump_cooperativelevel(DWORD cooplevel) DECLSPEC_HIDDEN
Definition: utils.c:968
enum wined3d_format_id wined3dformat_from_ddrawformat(const DDPIXELFORMAT *format) DECLSPEC_HIDDEN
Definition: utils.c:333
void viewport_activate(struct d3d_viewport *viewport, BOOL ignore_lights) DECLSPEC_HIDDEN
Definition: viewport.c:55
HRESULT d3d_vertex_buffer_create(struct d3d_vertex_buffer **buffer, struct ddraw *ddraw, D3DVERTEXBUFFERDESC *desc) DECLSPEC_HIDDEN
Definition: vertexbuffer.c:432
static struct d3d_device * impl_from_IDirect3DDevice(IDirect3DDevice *iface)
void * ddraw_get_object(struct ddraw_handle_table *t, DWORD handle, enum ddraw_handle_type type) DECLSPEC_HIDDEN
Definition: main.c:182
static struct d3d_device * impl_from_IDirect3DDevice2(IDirect3DDevice2 *iface)
HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *execute_buffer, struct d3d_device *device, struct d3d_viewport *viewport) DECLSPEC_HIDDEN
Definition: executebuffer.c:51
struct d3d_viewport * unsafe_impl_from_IDirect3DViewport(IDirect3DViewport *iface) DECLSPEC_HIDDEN
Definition: viewport.c:1138
static struct ddraw_surface * impl_from_IDirectDrawSurface7(IDirectDrawSurface7 *iface)
void ddraw_d3dcaps1_from_7(D3DDEVICEDESC *caps1, D3DDEVICEDESC7 *caps7) DECLSPEC_HIDDEN
Definition: ddraw.c:1192
static struct ddraw_surface * impl_from_IDirect3DTexture(IDirect3DTexture *iface)
void light_deactivate(struct d3d_light *light) DECLSPEC_HIDDEN
Definition: light.c:75
device_type
#define NULL
Definition: types.h:112
const struct wined3d_parent_ops ddraw_null_wined3d_parent_ops
Definition: ddraw.c:83
const GUID IID_D3DDEVICE_WineD3D
Definition: device.c:39
DWORD force_refresh_rate
Definition: main.c:41
static const WCHAR version[]
Definition: asmname.c:66
__kernel_ptrdiff_t ptrdiff_t
Definition: linux.h:247
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
GLdouble GLdouble t
Definition: gl.h:2047
GLenum func
Definition: glext.h:6028
GLuint buffer
Definition: glext.h:5915
GLuint in
Definition: glext.h:9616
GLenum GLenum dst
Definition: glext.h:6340
GLbitfield flags
Definition: glext.h:7161
GLenum target
Definition: glext.h:7315
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum light
Definition: glfuncs.h:170
REFIID riid
Definition: atlbase.h:39
const GUID * guid
static HDC
Definition: imagelist.c:92
static const WCHAR desc[]
Definition: protectdata.c:36
static const MAT2 mat
Definition: font.c:66
static IHTMLWindow2 * window
Definition: events.c:77
static HPALETTE palette
Definition: clipboard.c:1345
unsigned int UINT
Definition: ndis.h:50
long LONG
Definition: pedump.c:60
#define REFIID
Definition: guiddef.h:118
DWORD IDirectDrawSurface7
Definition: vmrender.idl:20
DWORD IDirectDraw7
Definition: vmrender.idl:21
static FILE * out
Definition: regtests2xml.c:44
#define DDPF_PALETTEINDEXEDTO8
Definition: ddraw.h:505
#define DDPF_PALETTEINDEXED4
Definition: ddraw.h:504
#define DDPF_PALETTEINDEXED2
Definition: ddraw.h:513
#define DDPF_FOURCC
Definition: ddraw.h:503
#define DDPF_PALETTEINDEXED1
Definition: ddraw.h:512
#define DDPF_PALETTEINDEXED8
Definition: ddraw.h:506
HRESULT hr
Definition: shlfolder.c:183
& rect
Definition: startmenu.cpp:1413
struct wined3d_vertex_declaration * decl
Definition: ddraw_private.h:51
DWORD fvf
Definition: d3d8_private.h:87
struct wined3d_device * wined3d_device
struct list viewport_list
struct wined3d_buffer * vertex_buffer
D3DMATRIX legacy_projection
IUnknown * outer_unknown
D3DPRIMITIVETYPE primitive_type
UINT vertex_buffer_pos
BYTE * sysmem_vertex_buffer
IDirect3DDevice3 IDirect3DDevice3_iface
DWORD nb_vertices
IUnknown * rt_iface
DWORD vertex_size
D3DMATRIXHANDLE proj
UINT vertex_buffer_size
DWORD render_flags
D3DMATRIXHANDLE world
struct d3d_viewport * current_viewport
DWORD vertex_type
IUnknown IUnknown_inner
UINT index_buffer_pos
IDirect3DDevice2 IDirect3DDevice2_iface
DWORD buffer_size
BOOL legacyTextureBlending
DWORD material
D3DVIEWPORT7 active_viewport
IDirect3DDevice IDirect3DDevice_iface
struct wined3d_vec4 user_clip_planes[D3DMAXUSERCLIPPLANES]
struct ddraw * ddraw
IDirect3DDevice7 IDirect3DDevice7_iface
struct wined3d_buffer * index_buffer
D3DMATRIX legacy_clipspace
UINT index_buffer_size
D3DMATRIXHANDLE view
IDirect3DExecuteBuffer IDirect3DExecuteBuffer_iface
struct wined3d_buffer * index_buffer
unsigned int index_pos
D3DEXECUTEBUFFERDESC desc
unsigned int index_size
struct wined3d_buffer * dst_vertex_buffer
unsigned int src_vertex_pos
struct ddraw * ddraw
unsigned int vertex_size
struct d3d_device * d3ddev
D3DEXECUTEDATA data
struct wined3d_buffer * src_vertex_buffer
struct list entry
D3DLIGHT2 light
struct d3d_viewport * active_viewport
struct ddraw * ddraw
DWORD dwLightIndex
D3DLIGHT7 light7
IDirect3DLight IDirect3DLight_iface
D3DMATERIAL mat
struct d3d_device * active_device
IDirect3DMaterial IDirect3DMaterial_iface
struct ddraw * ddraw
IDirect3DMaterial2 IDirect3DMaterial2_iface
IDirect3DMaterial3 IDirect3DMaterial3_iface
struct wined3d_vertex_declaration * wined3d_declaration
struct ddraw * ddraw
struct wined3d_buffer * wined3d_buffer
IDirect3DVertexBuffer7 IDirect3DVertexBuffer7_iface
unsigned int version
struct list light_list
struct ddraw * ddraw
struct d3d_device * active_device
struct d3d_material * background
IDirect3DViewport3 IDirect3DViewport3_iface
struct list entry
D3DVIEWPORT vp1
D3DVIEWPORT2 vp2
union d3d_viewport::@255 viewports
IDirectDrawClipper IDirectDrawClipper_iface
enum ddraw_handle_type type
void * object
struct ddraw_handle_entry * free_entries
struct ddraw_handle_entry * entries
IUnknown * ifaceToRelease
struct wined3d_palette * wined3d_palette
IDirectDrawPalette IDirectDrawPalette_iface
struct ddraw * ddraw
IDirectDrawSurface IDirectDrawSurface_iface
IDirectDrawSurface2 IDirectDrawSurface2_iface
struct ddraw * ddraw
struct ddraw_clipper * clipper
IDirectDrawGammaControl IDirectDrawGammaControl_iface
DDSURFACEDESC2 surface_desc
IUnknown * texture_outer
IUnknown * attached_iface
struct wined3d_private_store private_store
IDirectDrawSurface3 IDirectDrawSurface3_iface
struct ddraw_surface * first_attached
struct wined3d_rendertarget_view * wined3d_rtv
unsigned int sub_resource_idx
IDirect3DTexture IDirect3DTexture_iface
struct d3d_device * device1
struct ddraw_palette * palette
IDirectDrawSurface7 IDirectDrawSurface7_iface
struct ddraw_surface * next_attached
struct list surface_list_entry
IUnknown * ifaceToRelease
IDirectDrawSurface4 IDirectDrawSurface4_iface
struct ddraw_surface * complex_array[MAX_COMPLEX_ATTACHED]
struct wined3d_texture * wined3d_texture
IDirect3DTexture2 IDirect3DTexture2_iface
unsigned int version
struct ddraw_surface * root
struct wined3d_device * wined3d_device
DDSURFACEDESC2 surface_desc
DWORD flags
Definition: ddraw_private.h:94
struct d3d_device * d3ddevice
IDirectDraw2 IDirectDraw2_iface
Definition: ddraw_private.h:81
IDirect3D3 IDirect3D3_iface
Definition: ddraw_private.h:84
LONG ref1
Definition: ddraw_private.h:90
struct ddraw_surface * primary
Definition: ddraw_private.h:97
HWND d3d_window
RECT primary_lock
Definition: ddraw_private.h:98
struct wined3d_device * wined3d_device
Definition: ddraw_private.h:93
LONG device_state
Definition: ddraw_private.h:95
IDirectDraw7 IDirectDraw7_iface
Definition: ddraw_private.h:79
HWND devicewindow
IDirect3D IDirect3D_iface
Definition: ddraw_private.h:86
struct wined3d_texture * wined3d_frontbuffer
Definition: ddraw_private.h:99
LONG ref7
Definition: ddraw_private.h:90
DWORD cooperative_level
struct wined3d_swapchain * wined3d_swapchain
struct list surface_list
IDirectDraw4 IDirectDraw4_iface
Definition: ddraw_private.h:80
HWND swapchain_window
struct list ddraw_list_entry
LONG numIfaces
Definition: ddraw_private.h:90
LONG ref4
Definition: ddraw_private.h:90
IDirect3D7 IDirect3D7_iface
Definition: ddraw_private.h:83
struct FvfToDecl * decls
HWND dest_window
HWND focuswindow
struct wined3d_device_parent device_parent
Definition: ddraw_private.h:87
IDirect3D2 IDirect3D2_iface
Definition: ddraw_private.h:85
struct wined3d * wined3d
Definition: ddraw_private.h:92
LONG ref2
Definition: ddraw_private.h:90
LONG ref3
Definition: ddraw_private.h:90
int d3dversion
UINT numConvertedDecls
IDirectDraw IDirectDraw_iface
Definition: ddraw_private.h:82
UINT declArraySize
Definition: devices.h:37
const char * name
Definition: dsound.c:943
ptrdiff_t offset
const char * name
const CLSID * clsid
Definition: main.c:70
HRESULT(* pfnCreateInstance)(IUnknown *pUnkOuter, LPVOID *ppObj)
Definition: main.c:71
const struct wined3d_parent_ops * parent_ops
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260
#define HRESULT
Definition: msvc.h:7
wined3d_format_id
Definition: wined3d.h:106
@ WINED3DFMT_DXT2
Definition: wined3d.h:240
@ WINED3DFMT_DXT1
Definition: wined3d.h:239
@ WINED3DFMT_DXT3
Definition: wined3d.h:241
@ WINED3DFMT_DXT4
Definition: wined3d.h:242
@ WINED3DFMT_DXT5
Definition: wined3d.h:243
wined3d_depth_buffer_type
Definition: wined3d.h:463
wined3d_device_type
Definition: wined3d.h:86
HWND WINAPI GetDesktopWindow(void)
Definition: window.c:656
unsigned char BYTE
Definition: xxhash.c:193