40 { { 0x00010001, 0x00010001 } },
43 {0xa8373c10,0x7ac4,0x4deb, {0x84,0x9a,0x00,0x98,0x44,0xd0,0x8b,0x2d}},
57 "WINE Direct3D7 Hardware Transform and Lighting acceleration using WineD3D",
59 &IID_IDirect3DTnLHalDevice,
65 "WINE Direct3D7 Hardware acceleration using WineD3D",
67 &IID_IDirect3DHALDevice,
73 "WINE Direct3D7 RGB Software Emulation using WineD3D",
75 &IID_IDirect3DRGBDevice,
90 TRACE(
"parent %p, windowed %d.\n",
parent, windowed);
160 TRACE(
"Returning IDirectDraw7 interface %p.\n", *
out);
165 TRACE(
"Returning IDirectDraw4 interface %p.\n", *
out);
170 TRACE(
"Returning IDirectDraw2 interface %p.\n", *
out);
175 TRACE(
"Returning IDirectDraw interface %p.\n", *
out);
181 TRACE(
"Returning Direct3D7 interface %p.\n", *
out);
187 TRACE(
"Returning Direct3D3 interface %p.\n", *
out);
193 TRACE(
"Returning Direct3D2 interface %p.\n", *
out);
199 TRACE(
"Returning Direct3D interface %p.\n", *
out);
346 TRACE(
"iface %p.\n", iface);
355 TRACE(
"iface %p.\n", iface);
364 TRACE(
"iface %p.\n", iface);
373 TRACE(
"iface %p.\n", iface);
382 TRACE(
"Destroying the swapchain.\n");
408 TRACE(
"Swapchain destroyed.\n");
425 IDirectDraw7_RestoreDisplayMode(&
This->IDirectDraw7_iface);
428 if(
This->devicewindow != 0)
430 TRACE(
" (%p) Destroying the device window %p\n",
This,
This->devicewindow);
432 This->devicewindow = 0;
439 if (
This->wined3d_swapchain)
516 TRACE(
"iface %p.\n", iface);
525 TRACE(
"iface %p.\n", iface);
534 TRACE(
"iface %p.\n", iface);
543 TRACE(
"iface %p.\n", iface);
558 TRACE(
"Setting DDSCL_SETFOCUSWINDOW with an already set window, returning DDERR_HWNDALREADYSET.\n");
578 ERR(
"Failed to get display mode.\n");
582 memset(&swapchain_desc, 0,
sizeof(swapchain_desc));
613 WARN(
"No window for the Direct3DDevice, created hidden window %p.\n",
window);
619 TRACE(
"Using existing window %p for Direct3D rendering.\n",
window);
638 ERR(
"Error allocating an array for the converted vertex decls.\n");
646 TRACE(
"Successfully initialized 3D.\n");
657 ERR(
"Swapchain already created.\n");
663 ERR(
"Failed to create swapchain, hr %#lx.\n",
hr);
693 TRACE(
"iface %p.\n", iface);
731 TRACE(
"iface %p.\n", iface);
740 TRACE(
"iface %p.\n", iface);
749 TRACE(
"iface %p.\n", iface);
797 DWORD cooplevel,
BOOL restore_mode_on_normal)
804 TRACE(
"ddraw %p, window %p, flags %#lx, restore_mode_on_normal %x.\n",
ddraw,
window, cooplevel,
805 restore_mode_on_normal);
812 WARN(
"Recursive call, returning DD_OK.\n");
823 TRACE(
"Incorrect cooplevel flags, returning DDERR_INVALIDPARAMS\n");
830 WARN(
"DDSCL_CREATEDEVICEWINDOW requires DDSCL_EXCLUSIVE.\n");
849 WARN(
"Called with incompatible flags, returning DDERR_INVALIDPARAMS.\n");
862 WARN(
"DDSCL_EXCLUSIVE requires DDSCL_FULLSCREEN and a window.\n");
873 WARN(
"No focus window set.\n");
889 TRACE(
"Created a device window %p.\n", device_window);
932 restore_state =
TRUE;
941 ERR(
"Failed to create stateblock, hr %#lx.\n",
hr);
958 ERR(
"Failed to create swapchain, hr %#lx.\n",
hr);
979 ERR(
"RestoreDisplayMode failed\n");
993 ERR(
"Failed to acquire focus window, hr %#lx.\n",
hr);
1006 WARN(
"Unhandled flag DDSCL_ALLOWREBOOT, harmless\n");
1008 WARN(
"Unhandled flag DDSCL_ALLOWMODEX, harmless\n");
1010 WARN(
"Unhandled flag DDSCL_FPUSETUP, harmless\n");
1021 TRACE(
"SetCooperativeLevel returning DD_OK\n");
1101 TRACE(
"iface %p, width %lu, height %lu, bpp %lu, refresh_rate %lu, flags %#lx.\n",
1106 TRACE(
"ForceRefreshRate overriding passed-in refresh rate (%lu Hz) to %lu Hz\n",
1152 ERR(
"Failed to resize buffers, hr %#lx.\n",
hr);
1177 TRACE(
"iface %p, width %lu, height %lu, bpp %lu, refresh_rate %lu, flags %#lx.\n",
1188 TRACE(
"iface %p, width %lu, height %lu, bpp %lu, refresh_rate %lu, flags %#lx.\n",
1205 memset(caps1, 0,
sizeof(*caps1));
1206 caps1->
dwSize =
sizeof(*caps1);
1301 WARN(
"Failed to get device caps, hr %#lx.\n",
hr);
1476 caps->
deviceGUID = IID_IDirect3DTnLHalDevice;
1509 TRACE(
"iface %p, driver_caps %p, hel_caps %p.\n", iface, DriverCaps, HELCaps);
1512 if (!DriverCaps && !HELCaps)
1514 WARN(
"Invalid parameters.\n");
1518 memset(&caps, 0,
sizeof(caps));
1519 memset(&winecaps, 0,
sizeof(winecaps));
1520 caps.dwSize =
sizeof(caps);
1526 WARN(
"Failed to get device caps, %#lx.\n",
hr);
1531 hr = IDirectDraw7_GetAvailableVidMem(iface, &ddscaps, &caps.dwVidMemTotal, &caps.dwVidMemFree);
1534 WARN(
"IDirectDraw7::GetAvailableVidMem failed\n");
1539 hr = IDirectDraw7_GetFourCCCodes(iface, &caps.dwNumFourCCCodes,
NULL);
1543 WARN(
"IDirectDraw7::GetFourCCCodes failed\n");
1549 caps.dwCKeyCaps = winecaps.
ddraw_caps.color_key_caps;
1552 caps.ddsCaps.dwCaps = winecaps.
ddraw_caps.dds_caps;
1553 caps.dwSVBCaps = winecaps.
ddraw_caps.svb_caps;
1554 caps.dwSVBCKeyCaps = winecaps.
ddraw_caps.svb_color_key_caps;
1555 caps.dwSVBFXCaps = winecaps.
ddraw_caps.svb_fx_caps;
1556 caps.dwVSBCaps = winecaps.
ddraw_caps.vsb_caps;
1557 caps.dwVSBCKeyCaps = winecaps.
ddraw_caps.vsb_color_key_caps;
1558 caps.dwVSBFXCaps = winecaps.
ddraw_caps.vsb_fx_caps;
1559 caps.dwSSBCaps = winecaps.
ddraw_caps.ssb_caps;
1560 caps.dwSSBCKeyCaps = winecaps.
ddraw_caps.ssb_color_key_caps;
1561 caps.dwSSBFXCaps = winecaps.
ddraw_caps.ssb_fx_caps;
1566 caps.ddsOldCaps.dwCaps = caps.ddsCaps.dwCaps;
1573 TRACE(
"Driver Caps :\n");
1583 TRACE(
"HEL Caps :\n");
1595 TRACE(
"iface %p, driver_caps %p, hel_caps %p.\n", iface, driver_caps, hel_caps);
1604 TRACE(
"iface %p, driver_caps %p, hel_caps %p.\n", iface, driver_caps, hel_caps);
1613 TRACE(
"iface %p, driver_caps %p, hel_caps %p.\n", iface, driver_caps, hel_caps);
1629 TRACE(
"iface %p.\n", iface);
1638 TRACE(
"iface %p.\n", iface);
1647 TRACE(
"iface %p.\n", iface);
1656 TRACE(
"iface %p.\n", iface);
1681 TRACE(
"iface %p, surface_desc %p.\n", iface, DDSD);
1691 ERR(
"Failed to get display mode, hr %#lx.\n",
hr);
1697 DDSD->
dwSize =
sizeof(*DDSD);
1708 TRACE(
"Returning surface desc :\n");
1721 TRACE(
"iface %p, surface_desc %p.\n", iface, surface_desc);
1731 TRACE(
"iface %p, surface_desc %p.\n", iface, surface_desc);
1734 if (
SUCCEEDED(
hr)) surface_desc->dwSize =
sizeof(*surface_desc);
1743 TRACE(
"iface %p, surface_desc %p.\n", iface, surface_desc);
1746 if (
SUCCEEDED(
hr)) surface_desc->dwSize =
sizeof(*surface_desc);
1780 TRACE(
"iface %p, codes_count %p, codes %p.\n", iface, NumCodes, Codes);
1784 ERR(
"Failed to get display mode, hr %#lx.\n",
hr);
1788 outsize = NumCodes && Codes ? *NumCodes : 0;
1801 TRACE(
"Returning %lu FourCC codes\n",
count);
1812 TRACE(
"iface %p, codes_count %p, codes %p.\n", iface, codes_count, codes);
1821 TRACE(
"iface %p, codes_count %p, codes %p.\n", iface, codes_count, codes);
1830 TRACE(
"iface %p, codes_count %p, codes %p.\n", iface, codes_count, codes);
1848 WARN(
"Failed to get display mode, hr %#lx.\n",
hr);
1900 WARN(
"Failed to get raster status, hr %#lx.\n",
hr);
1954 unsigned int framebuffer_size, total_vidmem, free_vidmem;
1959 TRACE(
"iface %p, caps %p, total %p, free %p.\n", iface, caps,
total,
free);
1966 TRACE(
"Asked for memory with description: ");
1981 WARN(
"Failed to get display mode, hr %#lx.\n",
hr);
1987 framebuffer_size *=
mode.height;
1992 *
free = framebuffer_size > free_vidmem ? 0 : free_vidmem - framebuffer_size;
1993 TRACE(
"Free video memory %#lx.\n", *
free);
2002 *
total = framebuffer_size > total_vidmem ? 0 : total_vidmem - framebuffer_size;
2016 TRACE(
"iface %p, caps %p, total %p, free %p.\n", iface, caps,
total,
free);
2027 TRACE(
"iface %p, caps %p, total %p, free %p.\n", iface, caps,
total,
free);
2119 TRACE(
"iface %p.\n", iface);
2123 if (
FAILED(
hr = IDirectDraw7_GetGDISurface(iface, &gdi_surface)))
2125 WARN(
"Failed to retrieve GDI surface, hr %#lx.\n",
hr);
2135 IDirectDrawSurface7_Release(gdi_surface);
2146 TRACE(
"iface %p.\n", iface);
2155 TRACE(
"iface %p.\n", iface);
2164 TRACE(
"iface %p.\n", iface);
2239 TRACE(
"iface %p, line %p.\n", iface, Scanline);
2246 WARN(
"Failed to get raster status, hr %#lx.\n",
hr);
2262 TRACE(
"iface %p, line %p.\n", iface,
line);
2271 TRACE(
"iface %p, line %p.\n", iface,
line);
2280 TRACE(
"iface %p, line %p.\n", iface,
line);
2289 TRACE(
"iface %p.\n", iface);
2298 TRACE(
"iface %p.\n", iface);
2322 TRACE(
"iface %p, surface %p.\n", iface, surface);
2328 WARN(
"GDI surface not available.\n");
2334 IDirectDrawSurface7_AddRef(*surface);
2348 TRACE(
"iface %p, surface %p.\n", iface, surface);
2358 IDirectDrawSurface4_AddRef(*surface);
2359 IDirectDrawSurface7_Release(surface7);
2371 TRACE(
"iface %p, surface %p.\n", iface, surface);
2381 IDirectDrawSurface_AddRef(*surface);
2382 IDirectDrawSurface7_Release(surface7);
2394 TRACE(
"iface %p, surface %p.\n", iface, surface);
2404 IDirectDrawSurface_AddRef(*surface);
2405 IDirectDrawSurface7_Release(surface7);
2449 unsigned int modenum,
fmt;
2451 unsigned enum_mode_count = 0, enum_mode_array_size = 16;
2461 TRACE(
"iface %p, flags %#lx, surface_desc %p, context %p, callback %p.\n",
2467 if (!(enum_modes =
malloc(enum_mode_array_size *
sizeof(*enum_modes))))
2497 for (
i = 0;
i < enum_mode_count;
i++)
2509 memset(&callback_sd, 0,
sizeof(callback_sd));
2510 callback_sd.
dwSize =
sizeof(callback_sd);
2531 TRACE(
"Application asked to terminate the enumeration\n");
2537 if (enum_mode_count == enum_mode_array_size)
2541 enum_mode_array_size *= 2;
2542 if (!(new_enum_modes =
realloc(enum_modes, enum_mode_array_size *
sizeof(*new_enum_modes))))
2549 enum_modes = new_enum_modes;
2551 enum_modes[enum_mode_count++] =
mode;
2555 TRACE(
"End of enumeration\n");
2567 TRACE(
"iface %p, flags %#lx, surface_desc %p, context %p, callback %p.\n",
2580 TRACE(
"iface %p, flags %#lx, surface_desc %p, context %p, callback %p.\n",
2586 if (surface_desc)
DDSD_to_DDSD2(surface_desc, &surface_desc2);
2598 TRACE(
"iface %p, flags %#lx, surface_desc %p, context %p, callback %p.\n",
2604 if (surface_desc)
DDSD_to_DDSD2(surface_desc, &surface_desc2);
2656 TRACE(
"iface %p, device_identifier %p, flags %#lx.\n", iface, DDDI,
Flags);
2701 TRACE(
"iface %p, identifier %p, flags %#lx.\n", iface, identifier,
flags);
2729 TRACE(
"iface %p, dc %p, surface %p.\n", iface,
dc, surface);
2740 if (surface_impl->
dc !=
dc)
2743 TRACE(
"Found surface %p for dc %p.\n", surface_impl,
dc);
2745 IDirectDrawSurface7_AddRef(*surface);
2752 TRACE(
"No surface found for dc %p.\n",
dc);
2758 IDirectDrawSurface4 **surface)
2765 TRACE(
"iface %p, dc %p, surface %p.\n", iface,
dc, surface);
2779 IDirectDrawSurface7_Release(surface7);
2786 IDirectDrawSurface_Restore(surface);
2787 IDirectDrawSurface_Release(surface);
2794 TRACE(
"iface %p.\n", iface);
2804 TRACE(
"iface %p.\n", iface);
2833 FIXME(
"iface %p, modes %p, mode_count %lu, flags %#lx partial stub!\n",
2857 TRACE(
"iface %p, surface_desc %p, surface %p, outer_unknown %p.\n",
2864 WARN(
"Cooperative level not set.\n");
2871 WARN(
"Application supplied invalid surface descriptor\n");
2882 WARN(
"Surface pointer %p is invalid.\n", surface);
2892 TRACE(
" (%p) Requesting surface desc :\n", iface);
2896 WARN(
"Application tried to create an explicit front or back buffer\n");
2907 IDirectDraw7_AddRef(iface);
2920 TRACE(
"iface %p, surface_desc %p, surface %p, outer_unknown %p.\n",
2927 WARN(
"Cooperative level not set.\n");
2934 WARN(
"Application supplied invalid surface descriptor\n");
2945 WARN(
"Surface pointer %p is invalid.\n", surface);
2955 TRACE(
" (%p) Requesting surface desc :\n", iface);
2959 WARN(
"Application tried to create an explicit front or back buffer\n");
2970 IDirectDraw4_AddRef(iface);
2984 TRACE(
"iface %p, surface_desc %p, surface %p, outer_unknown %p.\n",
2991 WARN(
"Cooperative level not set.\n");
2998 WARN(
"Application supplied invalid surface descriptor\n");
3009 WARN(
"Surface pointer %p is invalid.\n", surface);
3020 TRACE(
" (%p) Requesting surface desc :\n", iface);
3024 WARN(
"Application tried to create an explicit front or back buffer\n");
3048 TRACE(
"iface %p, surface_desc %p, surface %p, outer_unknown %p.\n",
3055 WARN(
"Cooperative level not set.\n");
3062 WARN(
"Application supplied invalid surface descriptor\n");
3073 WARN(
"Surface pointer %p is invalid.\n", surface);
3084 WARN(
"Application tried to create an explicit front or back buffer.\n");
3113 if ((requested->
dwFlags & must_match) != (provided->
dwFlags & must_match))
3156#define CMP(FLAG, FIELD) \
3157 { DDSD_##FLAG, offsetof(DDSURFACEDESC2, FIELD), \
3158 sizeof(((DDSURFACEDESC2 *)(NULL))->FIELD) }
3165 CMP(CKDESTBLT, ddckCKDestBlt),
3167 CMP(CKSRCBLT, ddckCKSrcBlt),
3168 CMP(CKSRCOVERLAY, ddckCKSrcOverlay),
3171 CMP(LPSURFACE, lpSurface),
3176 CMP(TEXTURESTAGE, dwTextureStage),
3229 IDirectDrawSurface7_Release(surface);
3232 surface_desc, cbcontext->
context);
3245 IDirectDrawSurface7_Release(surface);
3273 IDirectDrawSurface7_Release(surface);
3304 TRACE(
"iface %p, flags %#lx, surface_desc %p, context %p, callback %p.\n",
3325 IDirectDrawSurface7_Release(surface);
3332 .dwSize =
sizeof(
desc),
3339 .desc = surface_desc,
3347 ERR(
"Failed to get display mode, hr %#lx.\n",
hr);
3370 WARN(
"Not enumerating surface %p because it doesn't have any references.\n", surface);
3379 TRACE(
"Enumerating surface %p.\n", surface);
3402 TRACE(
"iface %p, flags %#lx, surface_desc %p, context %p, callback %p.\n",
3419 TRACE(
"iface %p, flags %#lx, surface_desc %p, context %p, callback %p.\n",
3425 if (surface_desc)
DDSD_to_DDSD2(surface_desc, &surface_desc2);
3437 TRACE(
"iface %p, flags %#lx, surface_desc %p, context %p, callback %p.\n",
3443 if (surface_desc)
DDSD_to_DDSD2(surface_desc, &surface_desc2);
3468 TRACE(
"flags %#lx, clipper %p, outer_unknown %p.\n",
3469 flags, clipper, outer_unknown);
3476 if (!(
object =
calloc(1,
sizeof(*
object))))
3485 WARN(
"Failed to initialize clipper, hr %#lx.\n",
hr);
3491 TRACE(
"Created clipper %p.\n",
object);
3492 *clipper = &
object->IDirectDrawClipper_iface;
3505 IDirectDrawClipper **Clipper,
IUnknown *UnkOuter)
3507 TRACE(
"iface %p, flags %#lx, clipper %p, outer_unknown %p.\n",
3508 iface,
Flags, Clipper, UnkOuter);
3514 IDirectDrawClipper **clipper,
IUnknown *outer_unknown)
3518 TRACE(
"iface %p, flags %#lx, clipper %p, outer_unknown %p.\n",
3519 iface,
flags, clipper, outer_unknown);
3529 TRACE(
"iface %p, flags %#lx, clipper %p, outer_unknown %p.\n",
3530 iface,
flags, clipper, outer_unknown);
3540 TRACE(
"iface %p, flags %#lx, clipper %p, outer_unknown %p.\n",
3541 iface,
flags, clipper, outer_unknown);
3570 TRACE(
"iface %p, flags %#lx, color_table %p, palette %p, outer_unknown %p.\n",
3571 iface,
Flags, ColorTable, Palette, pUnkOuter);
3581 WARN(
"No cooperative level set, returning DDERR_NOCOOPERATIVELEVELSET\n");
3586 if (!(
object =
malloc(
sizeof(*
object))))
3588 ERR(
"Out of memory when allocating memory for a palette implementation\n");
3596 WARN(
"Failed to initialize palette, hr %#lx.\n",
hr);
3602 TRACE(
"Created palette %p.\n",
object);
3603 *Palette = &
object->IDirectDrawPalette_iface;
3615 TRACE(
"iface %p, flags %#lx, entries %p, palette %p, outer_unknown %p.\n",
3623 IDirectDraw4_AddRef(iface);
3635 TRACE(
"iface %p, flags %#lx, entries %p, palette %p, outer_unknown %p.\n",
3655 TRACE(
"iface %p, flags %#lx, entries %p, palette %p, outer_unknown %p.\n",
3691 FIXME(
"iface %p, src %p, dst %p partial stub!\n", iface, Src, Dest);
3694 return IDirectDraw7_CreateSurface(iface, &src_surface->
surface_desc, Dest,
NULL);
3698 IDirectDrawSurface4 **
dst)
3706 TRACE(
"iface %p, src %p, dst %p.\n", iface,
src,
dst);
3717 IDirectDrawSurface4_AddRef(*
dst);
3718 IDirectDrawSurface7_Release(dst7);
3724 IDirectDrawSurface *
src, IDirectDrawSurface **
dst)
3732 TRACE(
"iface %p, src %p, dst %p.\n", iface,
src,
dst);
3740 IDirectDrawSurface_AddRef(*
dst);
3741 IDirectDrawSurface7_Release(dst7);
3747 IDirectDrawSurface **
dst)
3755 TRACE(
"iface %p, src %p, dst %p.\n", iface,
src,
dst);
3763 IDirectDrawSurface_AddRef(*
dst);
3764 IDirectDrawSurface7_Release(dst7);
3810 device_desc7.
dwDevCaps = dev_caps & ~device_list7[
i].unsupported_caps;
3814 TRACE(
"Application cancelled the enumeration.\n");
3820 TRACE(
"End of enumeration.\n");
3846 static CHAR wined3d_description[] =
"Wine D3DDevice using WineD3D and OpenGL";
3897 static CHAR reference_description[64] =
"RGB Direct3D emulation";
3899 TRACE(
"Enumerating WineD3D D3DDevice interface.\n");
3900 hal_desc = device_desc1;
3901 hel_desc = device_desc1;
3915 hr =
callback((
GUID *)&IID_IDirect3DRGBDevice, reference_description,
3919 TRACE(
"Application cancelled the enumeration.\n");
3927 TRACE(
"Enumerating HAL Direct3D device.\n");
3928 hal_desc = device_desc1;
3929 hel_desc = device_desc1;
3941 hr =
callback((
GUID *)&IID_IDirect3DHALDevice, wined3d_description,
3945 TRACE(
"Application cancelled the enumeration.\n");
3950 TRACE(
"End of enumeration.\n");
4002 TRACE(
"iface %p, light %p, outer_unknown %p.\n", iface,
light, outer_unknown);
4007 if (!(
object =
calloc(1,
sizeof(*
object))))
4009 ERR(
"Failed to allocate light memory.\n");
4015 TRACE(
"Created light %p.\n",
object);
4016 *
light = &
object->IDirect3DLight_iface;
4025 TRACE(
"iface %p, light %p, outer_unknown %p.\n", iface,
light, outer_unknown);
4034 TRACE(
"iface %p, light %p, outer_unknown %p.\n", iface,
light, outer_unknown);
4065 TRACE(
"iface %p, material %p, outer_unknown %p.\n", iface, material, outer_unknown);
4072 ERR(
"Failed to allocate material memory.\n");
4076 TRACE(
"Created material %p.\n",
object);
4077 *material = &
object->IDirect3DMaterial3_iface;
4088 TRACE(
"iface %p, material %p, outer_unknown %p.\n", iface, material, outer_unknown);
4093 ERR(
"Failed to allocate material memory.\n");
4097 TRACE(
"Created material %p.\n",
object);
4098 *material = &
object->IDirect3DMaterial2_iface;
4109 TRACE(
"iface %p, material %p, outer_unknown %p.\n", iface, material, outer_unknown);
4114 ERR(
"Failed to allocate material memory.\n");
4118 TRACE(
"Created material %p.\n",
object);
4119 *material = &
object->IDirect3DMaterial_iface;
4150 TRACE(
"iface %p, viewport %p, outer_unknown %p.\n", iface, viewport, outer_unknown);
4154 if (!(
object =
calloc(1,
sizeof(*
object))))
4156 ERR(
"Failed to allocate viewport memory.\n");
4162 TRACE(
"Created viewport %p.\n",
object);
4163 *viewport = &
object->IDirect3DViewport3_iface;
4172 TRACE(
"iface %p, viewport %p, outer_unknown %p.\n", iface, viewport, outer_unknown);
4182 TRACE(
"iface %p, viewport %p, outer_unknown %p.\n", iface, viewport, outer_unknown);
4191 struct ddraw_find_device_result_v1
4198 struct ddraw_find_device_result_v2
4210 TRACE(
"ddraw %p, fds %p, fdr %p, guid_count %u, guids %p, device_desc_size %lu.\n",
4216 if (fds->
dwSize !=
sizeof(*fds))
4218 WARN(
"Got invalid search structure size %lu.\n", fds->
dwSize);
4222 if (fdr->
dwSize !=
sizeof(*fdr) && fdr->
dwSize !=
sizeof(*fdr2) && fdr->
dwSize !=
sizeof(*fdr1))
4224 WARN(
"Got invalid result structure size %lu.\n", fdr->
dwSize);
4239 WARN(
"HAL device not available without 3D support.\n");
4270 if (fdr->
dwSize ==
sizeof(*fdr1))
4272 fdr1 = (
struct ddraw_find_device_result_v1 *)fdr;
4273 memcpy(&fdr1->hw_desc, &desc1,
sizeof(fdr1->hw_desc));
4274 fdr1->hw_desc.dwSize = device_desc_size;
4275 memcpy(&fdr1->sw_desc, &desc1,
sizeof(fdr1->sw_desc));
4276 fdr1->sw_desc.dwSize = device_desc_size;
4278 else if (fdr->
dwSize ==
sizeof(*fdr2))
4280 fdr2 = (
struct ddraw_find_device_result_v2 *)fdr;
4281 memcpy(&fdr2->hw_desc, &desc1,
sizeof(fdr2->hw_desc));
4282 fdr2->hw_desc.dwSize = device_desc_size;
4283 memcpy(&fdr2->sw_desc, &desc1,
sizeof(fdr2->sw_desc));
4284 fdr2->sw_desc.dwSize = device_desc_size;
4294 TRACE(
"Returning Wine's wined3d device with (undumped) capabilities.\n");
4305 &IID_IDirect3DHALDevice,
4306 &IID_IDirect3DRGBDevice,
4309 TRACE(
"iface %p, fds %p, fdr %p.\n", iface, fds, fdr);
4320 &IID_IDirect3DHALDevice,
4321 &IID_IDirect3DMMXDevice,
4322 &IID_IDirect3DRGBDevice,
4323 &IID_IDirect3DRampDevice,
4326 TRACE(
"iface %p, fds %p, fdr %p.\n", iface, fds, fdr);
4337 &IID_IDirect3DHALDevice,
4338 &IID_IDirect3DRGBDevice,
4339 &IID_IDirect3DRampDevice,
4342 TRACE(
"iface %p, fds %p, fdr %p.\n", iface, fds, fdr);
4381 *
device = &
object->IDirect3DDevice7_iface;
4385 WARN(
"Failed to create device, hr %#lx.\n",
hr);
4401 TRACE(
"iface %p, riid %s, surface %p, device %p, outer_unknown %p.\n",
4414 WARN(
"Failed to create device, hr %#lx.\n",
hr);
4423 IDirectDrawSurface *surface, IDirect3DDevice2 **
device)
4430 TRACE(
"iface %p, riid %s, surface %p, device %p.\n",
4440 WARN(
"Failed to create device, hr %#lx.\n",
hr);
4474 TRACE(
"iface %p, desc %p, vertex_buffer %p, flags %#lx.\n",
4482 TRACE(
"Created vertex buffer %p.\n",
object);
4486 WARN(
"Failed to create vertex buffer, hr %#lx.\n",
hr);
4498 TRACE(
"iface %p, desc %p, vertex_buffer %p, flags %#lx, outer_unknown %p.\n",
4509 TRACE(
"Created vertex buffer %p.\n",
object);
4513 WARN(
"Failed to create vertex buffer, hr %#lx.\n",
hr);
4556 TRACE(
"iface %p, device_iid %s, callback %p, context %p.\n",
4561 if (
IsEqualGUID(device_iid, &IID_IDirect3DHALDevice)
4562 ||
IsEqualGUID(device_iid, &IID_IDirect3DTnLHalDevice)
4565 TRACE(
"Asked for HAL device.\n");
4568 else if (
IsEqualGUID(device_iid, &IID_IDirect3DRGBDevice)
4569 ||
IsEqualGUID(device_iid, &IID_IDirect3DMMXDevice))
4571 TRACE(
"Asked for SW device.\n");
4574 else if (
IsEqualGUID(device_iid, &IID_IDirect3DRefDevice))
4576 TRACE(
"Asked for REF device.\n");
4579 else if (
IsEqualGUID(device_iid, &IID_IDirect3DNullDevice))
4581 TRACE(
"Asked for NULLREF device.\n");
4599 ERR(
"Failed to get display mode, hr %#lx.\n",
hr);
4611 memset(&pformat, 0,
sizeof(pformat));
4612 pformat.
dwSize =
sizeof(pformat);
4619 TRACE(
"Format enumeration cancelled by application.\n");
4636 {24}, {0x00000000}, {0x00ffffff}, {0x00000000}
4638 TRACE(
"Enumerating WINED3DFMT_X8D24_UNORM, dwZBufferBitDepth=24 version\n");
4642 TRACE(
"End of enumeration.\n");
4654 TRACE(
"iface %p, device_iid %s, callback %p, context %p.\n",
4676 TRACE(
"iface %p!\n", iface);
4690 TRACE(
"iface %p.\n", iface);
4924 TRACE(
"Searching for declaration for fvf %08lx... ",
fvf);
4927 high =
This->numConvertedDecls - 1;
4928 while(low <= high) {
4929 p = (low + high) >> 1;
4931 if(convertedDecls[
p].
fvf ==
fvf) {
4933 return convertedDecls[
p].
decl;
4934 }
else if(convertedDecls[
p].
fvf <
fvf) {
4940 TRACE(
"not found. Creating and inserting at position %d.\n", low);
4946 if (
This->declArraySize ==
This->numConvertedDecls)
4948 unsigned int grow =
max(
This->declArraySize / 2, 8);
4950 if (!(convertedDecls =
realloc(convertedDecls,
4951 (
This->numConvertedDecls + grow) *
sizeof(*convertedDecls))))
4956 This->decls = convertedDecls;
4957 This->declArraySize += grow;
4960 memmove(convertedDecls + low + 1, convertedDecls + low,
sizeof(convertedDecls[0]) * (
This->numConvertedDecls - low));
4961 convertedDecls[low].
decl = pDecl;
4962 convertedDecls[low].
fvf =
fvf;
4963 This->numConvertedDecls++;
4965 TRACE(
"Returning %p. %d decls in array\n", pDecl,
This->numConvertedDecls);
4990 TRACE(
"device_parent %p.\n", device_parent);
4994 TRACE(
"Nothing to resize.\n");
5000 ERR(
"Failed to get output description.\n");
5009 ERR(
"Failed to resize window.\n");
5062 TRACE(
"device_parent %p, type %#x, wined3d_texture %p, sub_resource_idx %u, parent %p, parent_ops %p.\n",
5110 WARN(
"Failed to create a wined3d object.\n");
5117 WARN(
"Failed to get the default wined3d adapter.\n");
5124 WARN(
"Failed to get the default wined3d output.\n");
5131 ERR(
"Failed to get device caps, hr %#lx.\n",
hr);
5138 WARN(
"Created a wined3d object without 3D support.\n");
5146 WARN(
"Failed to create a wined3d device, hr %#lx.\n",
hr);
#define InterlockedIncrement
#define InterlockedDecrement
static const char * wine_dbgstr_rect(const RECT *prc)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static void list_init(struct list_entry *head)
#define STDMETHODCALLTYPE
#define D3DMAXUSERCLIPPLANES
HRESULT(CALLBACK * LPD3DENUMPIXELFORMATSCALLBACK)(DDPIXELFORMAT *format, void *ctx)
#define DDRAW_SCL_RECURSIVE
struct ddraw_surface * unsafe_impl_from_IDirectDrawSurface4(IDirectDrawSurface4 *iface)
@ DDRAW_DEVICE_STATE_LOST
@ DDRAW_DEVICE_STATE_NOT_RESTORED
void d3d_viewport_init(struct d3d_viewport *viewport, struct ddraw *ddraw)
void DDSD_to_DDSD2(const DDSURFACEDESC *in, DDSURFACEDESC2 *out)
#define DDRAW_RESTORE_MODE
void DDSD2_to_DDSD(const DDSURFACEDESC2 *in, DDSURFACEDESC *out)
static struct ddraw_palette * impl_from_IDirectDrawPalette(IDirectDrawPalette *iface)
HRESULT d3d_vertex_buffer_create(struct d3d_vertex_buffer **buffer, struct ddraw *ddraw, D3DVERTEXBUFFERDESC *desc)
#define DDRAW_INITIALIZED
HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_desc, struct ddraw_surface **surface, IUnknown *outer_unknown, unsigned int version)
#define DDRAW_STRIDE_ALIGNMENT
void DDRAW_dump_DDSCAPS2(const DDSCAPS2 *in)
HRESULT hr_ddraw_from_wined3d(HRESULT hr)
#define DDRAW_WINDOW_CLASS_NAME
void DDRAW_dump_surface_desc(const DDSURFACEDESC2 *lpddsd)
void DDRAW_dump_cooperativelevel(DWORD cooplevel)
void d3d_light_init(struct d3d_light *light, struct ddraw *ddraw)
struct ddraw_surface * unsafe_impl_from_IDirectDrawSurface7(IDirectDrawSurface7 *iface)
#define DDRAW_D3D_INITIALIZED
static void ddraw_set_swapchain_window(struct ddraw *ddraw, HWND window)
struct ddraw_surface * unsafe_impl_from_IDirectDrawSurface(IDirectDrawSurface *iface)
#define DD_STRUCT_COPY_BYSIZE(to, from)
#define DDRAW_WINED3D_SWAPCHAIN_FLAGS
struct d3d_material * d3d_material_create(struct ddraw *ddraw)
void DDRAW_Convert_DDDEVICEIDENTIFIER_2_To_1(const DDDEVICEIDENTIFIER2 *pIn, DDDEVICEIDENTIFIER *pOut)
void ddrawformat_from_wined3dformat(DDPIXELFORMAT *ddraw_format, enum wined3d_format_id wined3d_format)
static BOOL ddraw_surface_can_be_lost(const struct ddraw_surface *surface)
static struct ddraw_surface * impl_from_IDirectDrawSurface7(IDirectDrawSurface7 *iface)
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)
#define DDRAW_WINED3D_FLAGS
HRESULT ddraw_palette_init(struct ddraw_palette *palette, struct ddraw *ddraw, DWORD flags, PALETTEENTRY *entries)
void DDRAW_dump_DDCAPS(const DDCAPS *lpcaps)
const GUID IID_D3DDEVICE_WineD3D
void DDRAW_Convert_DDSCAPS_1_To_2(const DDSCAPS *pIn, DDSCAPS2 *pOut)
HRESULT ddraw_clipper_init(struct ddraw_clipper *clipper)
_In_ D3DDDI_VIDEO_PRESENT_TARGET_ID _In_ ULONG _In_ ULONG Flags
static const struct pixel_format_desc formats[]
struct wined3d_vertex_declaration * ddraw_find_decl(struct ddraw *This, DWORD fvf)
static HRESULT WINAPI d3d1_CreateViewport(IDirect3D *iface, IDirect3DViewport **viewport, IUnknown *outer_unknown)
static HRESULT WINAPI ddraw7_SetDisplayMode(IDirectDraw7 *iface, DWORD width, DWORD height, DWORD bpp, DWORD refresh_rate, DWORD flags)
static void ddraw_destroy_swapchain(struct ddraw *ddraw)
static HRESULT WINAPI ddraw4_GetGDISurface(IDirectDraw4 *iface, IDirectDrawSurface4 **surface)
static const struct ddraw * exclusive_ddraw
static HRESULT WINAPI ddraw1_DuplicateSurface(IDirectDraw *iface, IDirectDrawSurface *src, IDirectDrawSurface **dst)
static HRESULT WINAPI ddraw4_EnumSurfaces(IDirectDraw4 *iface, DWORD flags, DDSURFACEDESC2 *surface_desc, void *context, LPDDENUMSURFACESCALLBACK2 callback)
static HRESULT WINAPI ddraw4_GetSurfaceFromDC(IDirectDraw4 *iface, HDC dc, IDirectDrawSurface4 **surface)
static HRESULT WINAPI ddraw4_GetVerticalBlankStatus(IDirectDraw4 *iface, BOOL *status)
static HRESULT WINAPI ddraw1_RestoreDisplayMode(IDirectDraw *iface)
static HRESULT WINAPI ddraw1_WaitForVerticalBlank(IDirectDraw *iface, DWORD flags, HANDLE event)
static const struct IDirect3D3Vtbl d3d3_vtbl
static const struct wined3d_swapchain_state_parent_ops ddraw_swapchain_state_parent_ops
static HRESULT WINAPI ddraw7_StartModeTest(IDirectDraw7 *iface, SIZE *Modes, DWORD NumModes, DWORD Flags)
static ULONG WINAPI d3d1_Release(IDirect3D *iface)
static HRESULT WINAPI ddraw7_Compact(IDirectDraw7 *iface)
static HRESULT WINAPI d3d1_CreateLight(IDirect3D *iface, IDirect3DLight **light, IUnknown *outer_unknown)
static void CDECL ddraw_swapchain_windowed_state_changed(struct wined3d_swapchain_state_parent *parent, BOOL windowed)
static void CDECL device_parent_mode_changed(struct wined3d_device_parent *device_parent)
HRESULT ddraw_get_d3dcaps(const struct ddraw *ddraw, D3DDEVICEDESC7 *caps)
static HRESULT WINAPI d3d3_CreateMaterial(IDirect3D3 *iface, IDirect3DMaterial3 **material, IUnknown *outer_unknown)
static HRESULT WINAPI ddraw4_CreatePalette(IDirectDraw4 *iface, DWORD flags, PALETTEENTRY *entries, IDirectDrawPalette **palette, IUnknown *outer_unknown)
HRESULT WINAPI DirectDrawCreateClipper(DWORD flags, IDirectDrawClipper **clipper, IUnknown *outer_unknown)
static const struct IDirect3D7Vtbl d3d7_vtbl
static HRESULT WINAPI d3d3_EvictManagedTextures(IDirect3D3 *iface)
static HRESULT WINAPI ddraw1_GetScanLine(IDirectDraw *iface, DWORD *line)
static HRESULT WINAPI d3d2_EnumDevices(IDirect3D2 *iface, LPD3DENUMDEVICESCALLBACK callback, void *context)
static struct ddraw * impl_from_IDirectDraw(IDirectDraw *iface)
static HRESULT WINAPI d3d3_CreateLight(IDirect3D3 *iface, IDirect3DLight **light, IUnknown *outer_unknown)
static HRESULT WINAPI ddraw7_GetMonitorFrequency(IDirectDraw7 *iface, DWORD *frequency)
static BOOL ddraw_match_surface_desc(const DDSURFACEDESC2 *requested, const DDSURFACEDESC2 *provided)
static HRESULT WINAPI ddraw4_WaitForVerticalBlank(IDirectDraw4 *iface, DWORD flags, HANDLE event)
static HRESULT WINAPI ddraw7_CreateClipper(IDirectDraw7 *iface, DWORD Flags, IDirectDrawClipper **Clipper, IUnknown *UnkOuter)
static HRESULT WINAPI ddraw2_GetScanLine(IDirectDraw2 *iface, DWORD *line)
static struct ddraw * impl_from_IDirect3D(IDirect3D *iface)
static HRESULT WINAPI ddraw7_CreateSurface(IDirectDraw7 *iface, DDSURFACEDESC2 *surface_desc, IDirectDrawSurface7 **surface, IUnknown *outer_unknown)
static HRESULT WINAPI ddraw1_GetDisplayMode(IDirectDraw *iface, DDSURFACEDESC *surface_desc)
static ULONG WINAPI d3d3_AddRef(IDirect3D3 *iface)
static HRESULT WINAPI d3d7_EnumDevices(IDirect3D7 *iface, LPD3DENUMDEVICESCALLBACK7 callback, void *context)
static HRESULT WINAPI d3d3_FindDevice(IDirect3D3 *iface, D3DFINDDEVICESEARCH *fds, D3DFINDDEVICERESULT *fdr)
static HRESULT CALLBACK EnumDisplayModesCallbackThunk(DDSURFACEDESC2 *surface_desc, void *context)
static HRESULT WINAPI ddraw2_DuplicateSurface(IDirectDraw2 *iface, IDirectDrawSurface *src, IDirectDrawSurface **dst)
static HRESULT WINAPI ddraw1_EnumSurfaces(IDirectDraw *iface, DWORD flags, DDSURFACEDESC *surface_desc, void *context, LPDDENUMSURFACESCALLBACK callback)
static ULONG WINAPI d3d2_AddRef(IDirect3D2 *iface)
static HRESULT WINAPI ddraw1_GetMonitorFrequency(IDirectDraw *iface, DWORD *frequency)
static HRESULT WINAPI ddraw2_EnumDisplayModes(IDirectDraw2 *iface, DWORD flags, DDSURFACEDESC *surface_desc, void *context, LPDDENUMMODESCALLBACK callback)
static HRESULT WINAPI ddraw1_GetFourCCCodes(IDirectDraw *iface, DWORD *codes_count, DWORD *codes)
static HRESULT WINAPI ddraw7_FlipToGDISurface(IDirectDraw7 *iface)
static HRESULT WINAPI ddraw4_FlipToGDISurface(IDirectDraw4 *iface)
static HRESULT WINAPI ddraw2_GetFourCCCodes(IDirectDraw2 *iface, DWORD *codes_count, DWORD *codes)
static ULONG WINAPI ddraw2_Release(IDirectDraw2 *iface)
static HRESULT WINAPI d3d3_EnumZBufferFormats(IDirect3D3 *iface, REFCLSID device_iid, LPD3DENUMPIXELFORMATSCALLBACK callback, void *context)
static struct ddraw * impl_from_IDirect3D7(IDirect3D7 *iface)
static HRESULT WINAPI ddraw2_SetCooperativeLevel(IDirectDraw2 *iface, HWND window, DWORD flags)
static ULONG WINAPI ddraw2_AddRef(IDirectDraw2 *iface)
static HRESULT WINAPI ddraw4_CreateClipper(IDirectDraw4 *iface, DWORD flags, IDirectDrawClipper **clipper, IUnknown *outer_unknown)
static HRESULT WINAPI ddraw7_EnumSurfaces(IDirectDraw7 *iface, DWORD flags, DDSURFACEDESC2 *surface_desc, void *context, LPDDENUMSURFACESCALLBACK7 callback)
static const struct IDirect3D2Vtbl d3d2_vtbl
static HRESULT ddraw_find_device(struct ddraw *ddraw, const D3DFINDDEVICESEARCH *fds, D3DFINDDEVICERESULT *fdr, unsigned int guid_count, const GUID *const *guids, DWORD device_desc_size)
static ULONG WINAPI ddraw1_AddRef(IDirectDraw *iface)
static HRESULT WINAPI ddraw2_Initialize(IDirectDraw2 *iface, GUID *guid)
static HRESULT WINAPI ddraw2_EnumSurfaces(IDirectDraw2 *iface, DWORD flags, DDSURFACEDESC *surface_desc, void *context, LPDDENUMSURFACESCALLBACK callback)
static HRESULT WINAPI d3d2_CreateDevice(IDirect3D2 *iface, REFCLSID riid, IDirectDrawSurface *surface, IDirect3DDevice2 **device)
static HRESULT WINAPI ddraw2_QueryInterface(IDirectDraw2 *iface, REFIID riid, void **object)
static ULONG WINAPI ddraw7_AddRef(IDirectDraw7 *iface)
static HRESULT WINAPI ddraw7_GetDisplayMode(IDirectDraw7 *iface, DDSURFACEDESC2 *DDSD)
static const struct IDirectDraw2Vtbl ddraw2_vtbl
static HRESULT WINAPI d3d1_QueryInterface(IDirect3D *iface, REFIID riid, void **object)
static HRESULT WINAPI ddraw7_GetDeviceIdentifier(IDirectDraw7 *iface, DDDEVICEIDENTIFIER2 *DDDI, DWORD Flags)
static BOOL Main_DirectDraw_DDPIXELFORMAT_Match(const DDPIXELFORMAT *requested, const DDPIXELFORMAT *provided)
static HRESULT ddraw_set_cooperative_level(struct ddraw *ddraw, HWND window, DWORD cooplevel, BOOL restore_mode_on_normal)
static HRESULT WINAPI ddraw1_CreateClipper(IDirectDraw *iface, DWORD flags, IDirectDrawClipper **clipper, IUnknown *outer_unknown)
static HRESULT WINAPI d3d2_FindDevice(IDirect3D2 *iface, D3DFINDDEVICESEARCH *fds, D3DFINDDEVICERESULT *fdr)
static HRESULT WINAPI ddraw2_GetDisplayMode(IDirectDraw2 *iface, DDSURFACEDESC *surface_desc)
static HRESULT WINAPI ddraw4_Initialize(IDirectDraw4 *iface, GUID *guid)
static struct ddraw * impl_from_IDirectDraw2(IDirectDraw2 *iface)
static void STDMETHODCALLTYPE ddraw_null_wined3d_object_destroyed(void *parent)
static HRESULT WINAPI d3d3_CreateDevice(IDirect3D3 *iface, REFCLSID riid, IDirectDrawSurface4 *surface, IDirect3DDevice3 **device, IUnknown *outer_unknown)
static struct ddraw * ddraw_from_device_parent(struct wined3d_device_parent *device_parent)
static HRESULT WINAPI ddraw7_CreatePalette(IDirectDraw7 *iface, DWORD Flags, PALETTEENTRY *ColorTable, IDirectDrawPalette **Palette, IUnknown *pUnkOuter)
static HRESULT WINAPI ddraw4_EnumDisplayModes(IDirectDraw4 *iface, DWORD flags, DDSURFACEDESC2 *surface_desc, void *context, LPDDENUMMODESCALLBACK2 callback)
static HRESULT WINAPI ddraw4_TestCooperativeLevel(IDirectDraw4 *iface)
static HRESULT WINAPI ddraw4_GetMonitorFrequency(IDirectDraw4 *iface, DWORD *frequency)
static HRESULT WINAPI ddraw2_CreatePalette(IDirectDraw2 *iface, DWORD flags, PALETTEENTRY *entries, IDirectDrawPalette **palette, IUnknown *outer_unknown)
static ULONG WINAPI d3d7_Release(IDirect3D7 *iface)
HRESULT ddraw_init(struct ddraw *ddraw, DWORD flags, enum wined3d_device_type device_type)
static HRESULT WINAPI ddraw1_GetVerticalBlankStatus(IDirectDraw *iface, BOOL *status)
static HRESULT WINAPI ddraw7_GetSurfaceFromDC(IDirectDraw7 *iface, HDC dc, IDirectDrawSurface7 **surface)
static HRESULT CALLBACK enum_surface_mode_callback(DDSURFACEDESC2 *surface_desc, void *context)
static HRESULT WINAPI ddraw4_GetDisplayMode(IDirectDraw4 *iface, DDSURFACEDESC2 *surface_desc)
static HRESULT WINAPI d3d1_CreateMaterial(IDirect3D *iface, IDirect3DMaterial **material, IUnknown *outer_unknown)
static HRESULT WINAPI ddraw2_GetGDISurface(IDirectDraw2 *iface, IDirectDrawSurface **surface)
static HRESULT WINAPI ddraw1_CreateSurface(IDirectDraw *iface, DDSURFACEDESC *surface_desc, IDirectDrawSurface **surface, IUnknown *outer_unknown)
static HRESULT WINAPI ddraw2_FlipToGDISurface(IDirectDraw2 *iface)
static ULONG WINAPI ddraw1_Release(IDirectDraw *iface)
static HRESULT WINAPI d3d3_QueryInterface(IDirect3D3 *iface, REFIID riid, void **object)
static HRESULT CALLBACK EnumSurfacesCallback2Thunk(IDirectDrawSurface7 *surface, DDSURFACEDESC2 *surface_desc, void *context)
static HRESULT WINAPI ddraw2_SetDisplayMode(IDirectDraw2 *iface, DWORD width, DWORD height, DWORD bpp, DWORD refresh_rate, DWORD flags)
static HRESULT WINAPI ddraw7_QueryInterface(IDirectDraw7 *iface, REFIID riid, void **out)
static HRESULT WINAPI ddraw1_FlipToGDISurface(IDirectDraw *iface)
static void CDECL device_parent_activate(struct wined3d_device_parent *device_parent, BOOL activate)
static HRESULT WINAPI ddraw7_EvaluateMode(IDirectDraw7 *iface, DWORD Flags, DWORD *Timeout)
static HRESULT WINAPI ddraw1_SetCooperativeLevel(IDirectDraw *iface, HWND window, DWORD flags)
static HRESULT WINAPI d3d2_CreateViewport(IDirect3D2 *iface, IDirect3DViewport2 **viewport, IUnknown *outer_unknown)
static struct enum_device_entry device_list7[]
static HRESULT WINAPI ddraw4_QueryInterface(IDirectDraw4 *iface, REFIID riid, void **object)
static HWND exclusive_window
static HRESULT WINAPI ddraw4_RestoreDisplayMode(IDirectDraw4 *iface)
static HRESULT WINAPI ddraw4_SetDisplayMode(IDirectDraw4 *iface, DWORD width, DWORD height, DWORD bpp, DWORD refresh_rate, DWORD flags)
static HRESULT WINAPI d3d7_CreateVertexBuffer(IDirect3D7 *iface, D3DVERTEXBUFFERDESC *desc, IDirect3DVertexBuffer7 **vertex_buffer, DWORD flags)
static HRESULT WINAPI ddraw2_GetVerticalBlankStatus(IDirectDraw2 *iface, BOOL *status)
static HRESULT WINAPI ddraw4_Compact(IDirectDraw4 *iface)
static HRESULT WINAPI ddraw7_GetGDISurface(IDirectDraw7 *iface, IDirectDrawSurface7 **surface)
static HRESULT WINAPI ddraw7_Initialize(IDirectDraw7 *iface, GUID *guid)
static HRESULT WINAPI ddraw4_GetDeviceIdentifier(IDirectDraw4 *iface, DDDEVICEIDENTIFIER *identifier, DWORD flags)
static HRESULT WINAPI ddraw4_CreateSurface(IDirectDraw4 *iface, DDSURFACEDESC2 *surface_desc, IDirectDrawSurface4 **surface, IUnknown *outer_unknown)
static const DDDEVICEIDENTIFIER2 deviceidentifier
static HRESULT WINAPI d3d3_CreateVertexBuffer(IDirect3D3 *iface, D3DVERTEXBUFFERDESC *desc, IDirect3DVertexBuffer **vertex_buffer, DWORD flags, IUnknown *outer_unknown)
static HRESULT WINAPI ddraw4_SetCooperativeLevel(IDirectDraw4 *iface, HWND window, DWORD flags)
static HRESULT WINAPI d3d2_CreateLight(IDirect3D2 *iface, IDirect3DLight **light, IUnknown *outer_unknown)
static struct ddraw * impl_from_IDirect3D2(IDirect3D2 *iface)
static HRESULT WINAPI d3d7_QueryInterface(IDirect3D7 *iface, REFIID riid, void **object)
static HRESULT WINAPI d3d1_Initialize(IDirect3D *iface, REFIID riid)
static HRESULT WINAPI ddraw1_Compact(IDirectDraw *iface)
static HRESULT WINAPI ddraw2_GetAvailableVidMem(IDirectDraw2 *iface, DDSCAPS *caps, DWORD *total, DWORD *free)
static const struct IDirectDraw7Vtbl ddraw7_vtbl
static HRESULT WINAPI ddraw1_CreatePalette(IDirectDraw *iface, DWORD flags, PALETTEENTRY *entries, IDirectDrawPalette **palette, IUnknown *outer_unknown)
void ddraw_update_lost_surfaces(struct ddraw *ddraw)
static HRESULT WINAPI ddraw2_GetCaps(IDirectDraw2 *iface, DDCAPS *driver_caps, DDCAPS *hel_caps)
static HRESULT WINAPI d3d1_EnumDevices(IDirect3D *iface, LPD3DENUMDEVICESCALLBACK callback, void *context)
static HRESULT WINAPI d3d7_EnumZBufferFormats(IDirect3D7 *iface, REFCLSID device_iid, LPD3DENUMPIXELFORMATSCALLBACK callback, void *context)
static ULONG WINAPI d3d2_Release(IDirect3D2 *iface)
static HRESULT WINAPI ddraw4_GetFourCCCodes(IDirectDraw4 *iface, DWORD *codes_count, DWORD *codes)
static HRESULT WINAPI ddraw1_Initialize(IDirectDraw *iface, GUID *guid)
static HRESULT ddraw_create_swapchain(struct ddraw *ddraw, HWND window, DWORD cooplevel)
static HRESULT WINAPI ddraw2_RestoreDisplayMode(IDirectDraw2 *iface)
static HRESULT WINAPI ddraw7_GetVerticalBlankStatus(IDirectDraw7 *iface, BOOL *status)
static HRESULT WINAPI ddraw7_TestCooperativeLevel(IDirectDraw7 *iface)
static HRESULT WINAPI ddraw7_EnumDisplayModes(IDirectDraw7 *iface, DWORD Flags, DDSURFACEDESC2 *DDSD, void *Context, LPDDENUMMODESCALLBACK2 cb)
static HRESULT WINAPI ddraw1_GetGDISurface(IDirectDraw *iface, IDirectDrawSurface **surface)
static HRESULT WINAPI ddraw4_GetCaps(IDirectDraw4 *iface, DDCAPS *driver_caps, DDCAPS *hel_caps)
static ULONG WINAPI d3d7_AddRef(IDirect3D7 *iface)
static ULONG WINAPI ddraw4_AddRef(IDirectDraw4 *iface)
static const struct IDirect3DVtbl d3d1_vtbl
static HRESULT WINAPI ddraw7_GetAvailableVidMem(IDirectDraw7 *iface, DDSCAPS2 *caps, DWORD *total, DWORD *free)
static HRESULT WINAPI ddraw1_GetCaps(IDirectDraw *iface, DDCAPS *driver_caps, DDCAPS *hel_caps)
static HRESULT WINAPI ddraw4_GetAvailableVidMem(IDirectDraw4 *iface, DDSCAPS2 *caps, DWORD *total, DWORD *free)
static HRESULT WINAPI d3d7_CreateDevice(IDirect3D7 *iface, REFCLSID riid, IDirectDrawSurface7 *surface, IDirect3DDevice7 **device)
static HRESULT CALLBACK restore_callback(IDirectDrawSurface7 *surface, DDSURFACEDESC2 *desc, void *context)
static HRESULT WINAPI ddraw2_GetMonitorFrequency(IDirectDraw2 *iface, DWORD *frequency)
static HRESULT WINAPI ddraw7_RestoreDisplayMode(IDirectDraw7 *iface)
static HRESULT WINAPI ddraw7_GetScanLine(IDirectDraw7 *iface, DWORD *Scanline)
static const struct wined3d_device_parent_ops ddraw_wined3d_device_parent_ops
static HRESULT WINAPI ddraw7_SetCooperativeLevel(IDirectDraw7 *iface, HWND window, DWORD flags)
static HRESULT WINAPI d3d2_CreateMaterial(IDirect3D2 *iface, IDirect3DMaterial2 **material, IUnknown *outer_unknown)
static HRESULT WINAPI ddraw7_GetCaps(IDirectDraw7 *iface, DDCAPS *DriverCaps, DDCAPS *HELCaps)
static HRESULT WINAPI ddraw7_DuplicateSurface(IDirectDraw7 *iface, IDirectDrawSurface7 *Src, IDirectDrawSurface7 **Dest)
static const struct IDirectDraw4Vtbl ddraw4_vtbl
static HRESULT WINAPI ddraw7_WaitForVerticalBlank(IDirectDraw7 *iface, DWORD Flags, HANDLE event)
static HRESULT WINAPI d3d3_CreateViewport(IDirect3D3 *iface, IDirect3DViewport3 **viewport, IUnknown *outer_unknown)
static HRESULT WINAPI ddraw4_DuplicateSurface(IDirectDraw4 *iface, IDirectDrawSurface4 *src, IDirectDrawSurface4 **dst)
static HRESULT WINAPI d3d1_FindDevice(IDirect3D *iface, D3DFINDDEVICESEARCH *fds, D3DFINDDEVICERESULT *fdr)
static HRESULT WINAPI ddraw2_CreateClipper(IDirectDraw2 *iface, DWORD flags, IDirectDrawClipper **clipper, IUnknown *outer_unknown)
void ddraw_d3dcaps1_from_7(D3DDEVICEDESC *caps1, D3DDEVICEDESC7 *caps7)
static HRESULT WINAPI ddraw4_RestoreAllSurfaces(IDirectDraw4 *iface)
static HRESULT WINAPI ddraw2_WaitForVerticalBlank(IDirectDraw2 *iface, DWORD flags, HANDLE event)
static struct ddraw * impl_from_IDirectDraw4(IDirectDraw4 *iface)
static struct ddraw * impl_from_IDirectDraw7(IDirectDraw7 *iface)
static ULONG WINAPI d3d1_AddRef(IDirect3D *iface)
static HRESULT CDECL device_parent_texture_sub_resource_created(struct wined3d_device_parent *device_parent, enum wined3d_resource_type type, struct wined3d_texture *wined3d_texture, unsigned int sub_resource_idx, void **parent, const struct wined3d_parent_ops **parent_ops)
static HRESULT WINAPI d3d3_EnumDevices(IDirect3D3 *iface, LPD3DENUMDEVICESCALLBACK callback, void *context)
static HRESULT WINAPI ddraw1_QueryInterface(IDirectDraw *iface, REFIID riid, void **object)
static HRESULT CALLBACK EnumSurfacesCallbackThunk(IDirectDrawSurface7 *surface, DDSURFACEDESC2 *surface_desc, void *context)
static HRESULT WINAPI ddraw1_EnumDisplayModes(IDirectDraw *iface, DWORD flags, DDSURFACEDESC *surface_desc, void *context, LPDDENUMMODESCALLBACK callback)
static HRESULT ddraw_set_focus_window(struct ddraw *ddraw, HWND window)
static void CDECL device_parent_wined3d_device_created(struct wined3d_device_parent *device_parent, struct wined3d_device *device)
static ULONG WINAPI ddraw4_Release(IDirectDraw4 *iface)
static HRESULT WINAPI ddraw1_SetDisplayMode(IDirectDraw *iface, DWORD width, DWORD height, DWORD bpp)
static HRESULT WINAPI ddraw4_GetScanLine(IDirectDraw4 *iface, DWORD *line)
static HRESULT WINAPI d3d2_QueryInterface(IDirect3D2 *iface, REFIID riid, void **object)
static HRESULT WINAPI ddraw7_GetFourCCCodes(IDirectDraw7 *iface, DWORD *NumCodes, DWORD *Codes)
static void ddraw_destroy(struct ddraw *This)
static HRESULT WINAPI ddraw2_Compact(IDirectDraw2 *iface)
static struct IDirectDrawVtbl ddraw1_vtbl
const struct wined3d_parent_ops ddraw_null_wined3d_parent_ops
static HRESULT ddraw_attach_d3d_device(struct ddraw *ddraw, HWND window, DWORD cooplevel, struct wined3d_swapchain **wined3d_swapchain)
static HRESULT WINAPI ddraw7_RestoreAllSurfaces(IDirectDraw7 *iface)
static ULONG WINAPI ddraw7_Release(IDirectDraw7 *iface)
static ULONG WINAPI d3d3_Release(IDirect3D3 *iface)
static HRESULT WINAPI ddraw2_CreateSurface(IDirectDraw2 *iface, DDSURFACEDESC *surface_desc, IDirectDrawSurface **surface, IUnknown *outer_unknown)
static HRESULT WINAPI d3d7_EvictManagedTextures(IDirect3D7 *iface)
static struct ddraw * impl_from_IDirect3D3(IDirect3D3 *iface)
HRESULT CDECL wined3d_device_acquire_focus_window(struct wined3d_device *device, HWND window)
void CDECL wined3d_device_evict_managed_resources(struct wined3d_device *device)
UINT CDECL wined3d_device_get_available_texture_mem(const struct wined3d_device *device)
ULONG CDECL wined3d_device_decref(struct wined3d_device *device)
void CDECL wined3d_device_set_multithreaded(struct wined3d_device *device)
struct wined3d_device_context *CDECL wined3d_device_get_immediate_context(struct wined3d_device *device)
void CDECL wined3d_device_release_focus_window(struct wined3d_device *device)
HRESULT CDECL wined3d_device_get_device_caps(const struct wined3d_device *device, struct wined3d_caps *caps)
void *CDECL wined3d_texture_get_sub_resource_parent(struct wined3d_texture *texture, unsigned int sub_resource_idx)
#define __EXCEPT_PAGE_FAULT
const struct sortguid * guids
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
static int compare_info(WCHAR *name, DWORD flags, WCHAR *buff, const WCHAR *cmp, BOOL exact)
static const WCHAR device_name[]
#define D3DPCMPCAPS_EQUAL
#define D3DPRASTERCAPS_ANTIALIASEDGES
#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR
#define D3DDEVCAPS_EXECUTESYSTEMMEMORY
#define D3DTEXOPCAPS_MODULATE2X
#define D3DTEXOPCAPS_ADDSIGNED2X
#define D3DPTADDRESSCAPS_MIRROR
#define D3DPBLENDCAPS_SRCCOLOR
#define D3DDEVCAPS_CANRENDERAFTERFLIP
#define D3DTEXOPCAPS_SELECTARG1
#define D3DVTXPCAPS_LOCALVIEWER
#define D3DPTEXTURECAPS_PROJECTED
#define D3DTEXOPCAPS_BLENDCURRENTALPHA
#define D3DPRASTERCAPS_WBUFFER
#define D3DPBLENDCAPS_DESTCOLOR
#define D3DTEXOPCAPS_ADDSMOOTH
#define D3DDEVCAPS_HWTRANSFORMANDLIGHT
#define D3DPTADDRESSCAPS_WRAP
#define D3DPMISCCAPS_CULLNONE
#define D3DPTFILTERCAPS_MAGFAFLATCUBIC
#define D3DPTFILTERCAPS_MIPFLINEAR
#define D3DPMISCCAPS_CULLCW
#define D3DDEVCAPS_TEXTUREVIDEOMEMORY
#define D3DTEXOPCAPS_ADDSIGNED
#define D3DDEVCAPS_DRAWPRIMITIVES2
#define D3DPBLENDCAPS_INVSRCCOLOR
#define D3DPBLENDCAPS_ZERO
#define D3DSTENCILCAPS_DECR
#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM
#define D3DDEVCAPS_TEXTURESYSTEMMEMORY
#define D3DPTFILTERCAPS_MINFANISOTROPIC
#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE
#define D3DPBLENDCAPS_INVDESTCOLOR
#define D3DTEXOPCAPS_SUBTRACT
#define D3DPBLENDCAPS_INVDESTALPHA
#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA
#define D3DSTENCILCAPS_INVERT
#define D3DVTXPCAPS_MATERIALSOURCE7
#define D3DPTFILTERCAPS_MINFLINEAR
#define D3DPTEXTURECAPS_SQUAREONLY
#define D3DDEVCAPS_DRAWPRIMITIVES2EX
#define D3DPTFILTERCAPS_MAGFANISOTROPIC
#define D3DPTEXTURECAPS_ALPHAPALETTE
#define D3DPSHADECAPS_COLORGOURAUDRGB
#define D3DPRASTERCAPS_ZBUFFERLESSHSR
#define D3DPBLENDCAPS_SRCALPHASAT
#define D3DPBLENDCAPS_BOTHSRCALPHA
#define D3DDEVCAPS_EXECUTEVIDEOMEMORY
#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE
#define D3DPRASTERCAPS_WFOG
#define D3DPTADDRESSCAPS_BORDER
#define D3DPTADDRESSCAPS_INDEPENDENTUV
#define D3DPSHADECAPS_FOGGOURAUD
#define D3DPTEXTURECAPS_ALPHA
#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES
#define D3DTEXOPCAPS_DISABLE
#define D3DPSHADECAPS_SPECULARGOURAUDRGB
#define D3DPMISCCAPS_CULLCCW
#define D3DTEXOPCAPS_SELECTARG2
#define D3DPMISCCAPS_LINEPATTERNREP
#define D3DPCMPCAPS_NOTEQUAL
#define D3DSTENCILCAPS_DECRSAT
#define D3DDEVCAPS_DRAWPRIMTLVERTEX
#define D3DPRASTERCAPS_ANISOTROPY
#define D3DVTXPCAPS_DIRECTIONALLIGHTS
#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY
#define D3DPBLENDCAPS_INVSRCALPHA
#define D3DSTENCILCAPS_ZERO
#define D3DPRASTERCAPS_ZFOG
#define D3DPCMPCAPS_GREATER
#define D3DPBLENDCAPS_DESTALPHA
#define D3DTEXOPCAPS_BLENDTEXTUREALPHA
#define D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC
#define D3DSTENCILCAPS_INCR
#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL
#define D3DTEXOPCAPS_MODULATE
#define D3DPRASTERCAPS_PAT
#define D3DTEXOPCAPS_BUMPENVMAP
#define D3DPCMPCAPS_ALWAYS
#define D3DPRASTERCAPS_FOGRANGE
#define D3DPSHADECAPS_ALPHAGOURAUDBLEND
#define D3DPTEXTURECAPS_PERSPECTIVE
#define D3DPBLENDCAPS_SRCALPHA
#define D3DDEVCAPS_HWRASTERIZATION
#define D3DPBLENDCAPS_ONE
#define D3DTEXOPCAPS_PREMODULATE
#define D3DPRASTERCAPS_FOGVERTEX
#define D3DTEXOPCAPS_BLENDFACTORALPHA
#define D3DSTENCILCAPS_INCRSAT
#define D3DPCMPCAPS_LESSEQUAL
#define D3DPTFILTERCAPS_MAGFLINEAR
#define D3DPTADDRESSCAPS_CLAMP
#define D3DPTFILTERCAPS_MINFPOINT
#define D3DPTEXTURECAPS_CUBEMAP
#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM
#define D3DVTXPCAPS_TEXGEN
#define D3DTEXOPCAPS_DOTPRODUCT3
#define D3DPBLENDCAPS_BOTHINVSRCALPHA
#define D3DPCMPCAPS_NEVER
#define D3DDEVCAPS_CANBLTSYSTONONLOCAL
#define D3DPRASTERCAPS_FOGTABLE
#define D3DSTENCILCAPS_KEEP
#define D3DPTFILTERCAPS_MIPFPOINT
#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY
#define D3DPMISCCAPS_MASKZ
#define D3DPCMPCAPS_GREATEREQUAL
#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR
#define D3DPRASTERCAPS_ZTEST
#define D3DVTXPCAPS_POSITIONALLIGHTS
#define D3DPRASTERCAPS_ZBIAS
#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA
#define D3DPTEXTURECAPS_POW2
#define D3DSTENCILCAPS_REPLACE
#define D3DPTFILTERCAPS_MAGFPOINT
#define D3DPRASTERCAPS_MIPMAPLODBIAS
#define D3DTEXOPCAPS_MODULATE4X
#define D3DPRASTERCAPS_DITHER
#define D3DPTBLENDCAPS_COPY
#define D3DPTBLENDCAPS_MODULATEALPHA
#define D3DPRASTERCAPS_ROP2
#define D3DDD_LIGHTINGCAPS
#define D3DPTFILTERCAPS_LINEAR
#define D3DFDS_COLORMODEL
#define D3DDD_MAXBUFFERSIZE
#define D3DPSHADECAPS_SPECULARFLATMONO
#define D3DPTFILTERCAPS_LINEARMIPNEAREST
#define D3DPTBLENDCAPS_MODULATEMASK
#define D3DDD_DEVICEZBUFFERBITDEPTH
#define D3DDEVCAPS_FLOATTLVERTEX
#define D3DLIGHTCAPS_DIRECTIONAL
#define D3DPTBLENDCAPS_MODULATE
#define D3DPRASTERCAPS_ANTIALIASSORTDEPENDENT
#define D3DPRASTERCAPS_STIPPLE
#define D3DPTEXTURECAPS_BORDER
#define D3DPTFILTERCAPS_NEAREST
#define D3DPSHADECAPS_ALPHAGOURAUDSTIPPLED
#define D3DPTBLENDCAPS_DECALMASK
#define D3DDEVCAPS_SORTDECREASINGZ
#define D3DPTEXTURECAPS_TRANSPARENCY
#define D3DPSHADECAPS_SPECULARGOURAUDMONO
#define D3DPSHADECAPS_ALPHAPHONGBLEND
#define D3DPSHADECAPS_COLORPHONGRGB
#define D3DPSHADECAPS_ALPHAPHONGSTIPPLED
#define D3DLIGHTCAPS_POINT
#define D3DDD_DEVICERENDERBITDEPTH
HRESULT(CALLBACK * LPD3DENUMDEVICESCALLBACK)(GUID *lpGuid, LPSTR lpDeviceDescription, LPSTR lpDeviceName, LPD3DDEVICEDESC, LPD3DDEVICEDESC, LPVOID)
#define D3DPMISCCAPS_CONFORMANT
#define D3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT
#define D3DPTFILTERCAPS_LINEARMIPLINEAR
#define D3DDEVCAPS_SORTEXACT
#define D3DPTFILTERCAPS_MIPNEAREST
#define D3DPSHADECAPS_SPECULARFLATRGB
HRESULT(CALLBACK * LPD3DENUMDEVICESCALLBACK7)(LPSTR lpDeviceDescription, LPSTR lpDeviceName, LPD3DDEVICEDESC7, LPVOID)
#define D3DLIGHTCAPS_SPOT
#define D3DVTXPCAPS_VERTEXFOG
#define D3DDD_TRANSFORMCAPS
#define D3DPTEXTURECAPS_COLORKEYBLEND
#define D3DPTBLENDCAPS_ADD
#define D3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT
#define D3DPSHADECAPS_COLORFLATMONO
#define D3DPRASTERCAPS_SUBPIXELX
#define D3DPSHADECAPS_ALPHAFLATBLEND
#define D3DPTBLENDCAPS_DECALALPHA
#define D3DTRANSFORMCAPS_CLIP
#define D3DPRASTERCAPS_XOR
#define D3DDD_MAXVERTEXCOUNT
#define D3DPSHADECAPS_ALPHAFLATSTIPPLED
#define D3DPMISCCAPS_MASKPLANES
#define D3DPRASTERCAPS_SUBPIXEL
#define D3DPSHADECAPS_FOGFLAT
#define D3DPSHADECAPS_FOGPHONG
#define D3DPSHADECAPS_COLORPHONGMONO
#define D3DPSHADECAPS_COLORGOURAUDMONO
#define D3DPSHADECAPS_SPECULARPHONGMONO
#define D3DPSHADECAPS_SPECULARPHONGRGB
#define D3DLIGHTINGMODEL_RGB
#define D3DPSHADECAPS_COLORFLATRGB
#define D3DPTBLENDCAPS_DECAL
#define D3DDEVCAPS_SORTINCREASINGZ
#define D3DPTFILTERCAPS_MIPLINEAR
GLuint GLuint GLsizei count
GLint GLint GLsizei GLsizei height
GLuint GLuint GLsizei GLenum type
GLdouble GLdouble GLdouble r
GLint GLint GLsizei width
GLenum const GLfloat * params
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 flag
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 GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
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
static D3D_DRIVER_TYPE HMODULE UINT const D3D_FEATURE_LEVEL * feature_levels
#define InterlockedCompareExchange
unsigned char size_t * outsize
#define memcpy(s1, s2, n)
#define memmove(s1, s2, n)
#define D3DLIGHTCAPS_PARALLELPOINT
static IPrintDialogCallback callback
D3D11_SHADER_VARIABLE_DESC desc
static IHTMLWindow2 * window
static LARGE_INTEGER * frequency
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
#define IsEqualGUID(rguid1, rguid2)
DWORD IDirectDrawSurface7
HWND WINAPI CreateWindowExA(_In_ DWORD dwExStyle, _In_opt_ LPCSTR lpClassName, _In_opt_ LPCSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
HWND WINAPI GetForegroundWindow(void)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
BOOL WINAPI ClipCursor(_In_opt_ LPCRECT)
HWND WINAPI GetDesktopWindow(void)
BOOL WINAPI DestroyWindow(_In_ HWND)
int WINAPI GetSystemMetrics(_In_ int)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)
#define DDSCL_SETDEVICEWINDOW
#define DDPCAPS_PRIMARYSURFACE
#define DDSCL_SETFOCUSWINDOW
#define DDSCL_FPUPRESERVE
#define DDSCAPS_FRONTBUFFER
#define DDPF_PALETTEINDEXED4
HRESULT(WINAPI * LPDDENUMMODESCALLBACK2)(LPDDSURFACEDESC2, LPVOID)
#define DDPF_PALETTEINDEXED2
#define DDEDM_REFRESHRATES
#define DDERR_VERTICALBLANKINPROGRESS
#define DDENUMSURFACES_CANBECREATED
#define DDSCL_MULTITHREADED
#define DDSCAPS_PRIMARYSURFACE
#define DDERR_INVALIDCAPS
#define DDWAITVB_BLOCKBEGINEVENT
DDPIXELFORMAT ddpfPixelFormat
#define DDGDI_GETHOSTIDENTIFIER
struct _DDPIXELFORMAT DDPIXELFORMAT
HRESULT(WINAPI * LPDDENUMSURFACESCALLBACK)(LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID)
#define DDPF_STENCILBUFFER
#define DDENUMSURFACES_ALL
#define DDSCL_ALLOWREBOOT
DDCOLORKEY ddckCKDestOverlay
HRESULT(WINAPI * LPDDENUMSURFACESCALLBACK2)(LPDIRECTDRAWSURFACE4, LPDDSURFACEDESC2, LPVOID)
#define DDERR_NOEXCLUSIVEMODE
#define DDERR_OUTOFMEMORY
#define DDERR_HWNDALREADYSET
HRESULT(WINAPI * LPDDENUMMODESCALLBACK)(LPDDSURFACEDESC, LPVOID)
#define DDENUMSURFACES_NOMATCH
#define DDENUMSURFACES_MATCH
#define DDERR_NOCOOPERATIVELEVELSET
#define DDPF_PALETTEINDEXED1
#define DDENUMSURFACES_DOESEXIST
#define DDERR_NOFOCUSWINDOW
#define DDCAPS_ALIGNSTRIDE
#define DDSCAPS_BACKBUFFER
#define DDSCL_CREATEDEVICEWINDOW
#define DDERR_UNSUPPORTED
HRESULT(WINAPI * LPDDENUMSURFACESCALLBACK7)(LPDIRECTDRAWSURFACE7, LPDDSURFACEDESC2, LPVOID)
#define DDSCL_NOWINDOWCHANGES
#define DDERR_INVALIDPARAMS
#define DDERR_ALREADYINITIALIZED
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
__WINE_SERVER_LIST_INLINE struct list * list_prev(const struct list *list, const struct list *elem)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
struct wined3d_vertex_declaration * decl
WORD wMaxSimultaneousTextures
DWORD dwMaxTextureAspectRatio
DWORD dwDeviceRenderBitDepth
DWORD dwDeviceZBufferBitDepth
D3DVALUE dvGuardBandRight
D3DVALUE dvGuardBandBottom
WORD wMaxTextureBlendStages
DWORD dwVertexProcessingCaps
WORD wMaxVertexBlendMatrices
DWORD dwDeviceZBufferBitDepth
D3DTRANSFORMCAPS dtcTransformCaps
D3DVALUE dvGuardBandRight
DWORD dwMaxTextureAspectRatio
DWORD dwDeviceRenderBitDepth
WORD wMaxTextureBlendStages
D3DCOLORMODEL dcmColorModel
D3DVALUE dvGuardBandBottom
WORD wMaxSimultaneousTextures
D3DLIGHTINGCAPS dlcLightingCaps
D3DCOLORMODEL dcmColorModel
DWORD dwTextureFilterCaps
DWORD dwTextureAddressCaps
DDPIXELFORMAT ddpfPixelFormat
IDirect3DDevice3 IDirect3DDevice3_iface
IDirect3DDevice2 IDirect3DDevice2_iface
IUnknown * ifaceToRelease
IDirectDrawSurface IDirectDrawSurface_iface
DDSURFACEDESC2 surface_desc
unsigned int sub_resource_idx
IDirectDrawSurface7 IDirectDrawSurface7_iface
struct list surface_list_entry
IUnknown * ifaceToRelease
IDirectDrawSurface4 IDirectDrawSurface4_iface
struct wined3d_texture * gdi_surface
struct wined3d_swapchain_state_parent state_parent
IDirectDraw2 IDirectDraw2_iface
IDirect3D3 IDirect3D3_iface
struct ddraw_surface * primary
struct wined3d_device * wined3d_device
IDirectDraw7 IDirectDraw7_iface
IDirect3D IDirect3D_iface
struct wined3d_device_context * immediate_context
struct wined3d_swapchain * wined3d_swapchain
struct list d3ddevice_list
IDirectDraw4 IDirectDraw4_iface
IDirect3D7 IDirect3D7_iface
struct wined3d_output * wined3d_output
struct wined3d_device_parent device_parent
IDirect3D2 IDirect3D2_iface
struct wined3d_adapter * wined3d_adapter
IDirectDraw IDirectDraw_iface
LPDDENUMMODESCALLBACK func
LPDDENUMSURFACESCALLBACK7 callback
const DDSURFACEDESC2 * desc
LPDDENUMSURFACESCALLBACK2 func
LPDDENUMSURFACESCALLBACK func
GUID guidDeviceIdentifier
char szDescription[MAX_DDDEVICEID_STRING]
char szDriver[MAX_DDDEVICEID_STRING]
unsigned int description_size
LARGE_INTEGER driver_version
DWORD MaxVertexBlendMatrices
DWORD MaxTextureBlendStages
DWORD VertexProcessingCaps
DWORD MaxTextureAspectRatio
DWORD MaxSimultaneousTextures
struct wined3d_ddraw_caps ddraw_caps
enum wined3d_format_id format_id
unsigned int backbuffer_height
struct wined3d_output * output
unsigned int backbuffer_width
unsigned int backbuffer_count
enum wined3d_format_id backbuffer_format
enum wined3d_swap_effect swap_effect
unsigned int backbuffer_bind_flags
static const VBE_MODE Modes[VBE_MODE_COUNT]
#define FIELD_OFFSET(t, f)
#define CONTAINING_RECORD(address, type, field)
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
DWORD WINAPI GetLastError(void)
ULONG CDECL wined3d_decref(struct wined3d *wined3d)
HRESULT CDECL wined3d_output_set_display_mode(struct wined3d_output *output, const struct wined3d_display_mode *mode)
HRESULT CDECL wined3d_restore_display_modes(struct wined3d *wined3d)
HRESULT CDECL wined3d_output_get_desc(const struct wined3d_output *output, struct wined3d_output_desc *desc)
HRESULT CDECL wined3d_check_device_format(const struct wined3d *wined3d, const struct wined3d_adapter *adapter, enum wined3d_device_type device_type, enum wined3d_format_id adapter_format_id, uint32_t usage, unsigned int bind_flags, enum wined3d_resource_type resource_type, enum wined3d_format_id check_format_id)
HRESULT CDECL wined3d_get_device_caps(const struct wined3d_adapter *adapter, enum wined3d_device_type device_type, struct wined3d_caps *caps)
HRESULT CDECL wined3d_device_create(struct wined3d *wined3d, struct wined3d_adapter *adapter, enum wined3d_device_type device_type, HWND focus_window, uint32_t flags, BYTE surface_alignment, const enum wined3d_feature_level *feature_levels, unsigned int feature_level_count, struct wined3d_device_parent *device_parent, struct wined3d_device **device)
HRESULT CDECL wined3d_adapter_get_identifier(const struct wined3d_adapter *adapter, uint32_t flags, struct wined3d_adapter_identifier *identifier)
HRESULT CDECL wined3d_output_get_mode(struct wined3d_output *output, enum wined3d_format_id format_id, enum wined3d_scanline_ordering scanline_ordering, unsigned int mode_idx, struct wined3d_display_mode *mode, bool cached)
struct wined3d_adapter *CDECL wined3d_get_adapter(const struct wined3d *wined3d, unsigned int idx)
unsigned int CDECL wined3d_calculate_format_pitch(const struct wined3d_adapter *adapter, enum wined3d_format_id format_id, unsigned int width)
struct wined3d_output *CDECL wined3d_adapter_get_output(const struct wined3d_adapter *adapter, unsigned int idx)
HRESULT CDECL wined3d_output_get_display_mode(const struct wined3d_output *output, struct wined3d_display_mode *mode, enum wined3d_display_rotation *rotation)
HRESULT CDECL wined3d_output_get_raster_status(const struct wined3d_output *output, struct wined3d_raster_status *raster_status)
HRESULT CDECL wined3d_stateblock_create(struct wined3d_device *device, const struct wined3d_stateblock *device_state, enum wined3d_stateblock_type type, struct wined3d_stateblock **stateblock)
ULONG CDECL wined3d_stateblock_decref(struct wined3d_stateblock *stateblock)
void CDECL wined3d_stateblock_apply(const struct wined3d_stateblock *stateblock, struct wined3d_stateblock *device_state)
HRESULT CDECL wined3d_swapchain_resize_buffers(struct wined3d_swapchain *swapchain, unsigned int buffer_count, unsigned int width, unsigned int height, enum wined3d_format_id format_id, enum wined3d_multisample_type multisample_type, unsigned int multisample_quality)
ULONG CDECL wined3d_swapchain_decref(struct wined3d_swapchain *swapchain)
HRESULT CDECL wined3d_swapchain_create(struct wined3d_device *device, const struct wined3d_swapchain_desc *desc, struct wined3d_swapchain_state_parent *state_parent, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_swapchain **swapchain)
void CDECL wined3d_swapchain_set_palette(struct wined3d_swapchain *swapchain, struct wined3d_palette *palette)
ULONG CDECL wined3d_swapchain_incref(struct wined3d_swapchain *swapchain)
ULONG CDECL wined3d_vertex_declaration_decref(struct wined3d_vertex_declaration *declaration)
HRESULT CDECL wined3d_vertex_declaration_create_from_fvf(struct wined3d_device *device, uint32_t fvf, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_vertex_declaration **declaration)
@ WINED3D_MULTISAMPLE_NONE
#define WINED3DENUM_WHQL_LEVEL
@ WINED3D_SWAP_EFFECT_DISCARD
#define WINED3DADAPTER_DEFAULT
@ WINED3D_RTYPE_TEXTURE_2D
@ WINED3DFMT_S1_UINT_D15_UNORM
@ WINED3DFMT_B8G8R8X8_UNORM
@ WINED3DFMT_B5G5R5X1_UNORM
@ WINED3DFMT_B8G8R8_UNORM
@ WINED3DFMT_B5G6R5_UNORM
@ WINED3DFMT_S4X4_UINT_D24_UNORM
@ WINED3DFMT_D24_UNORM_S8_UINT
#define WINED3D_BIND_DEPTH_STENCIL
#define WINED3DLINECAPS_ANTIALIAS
#define WINED3DPRASTERCAPS_DEPTHBIAS
@ WINED3D_SCANLINE_ORDERING_UNKNOWN
@ WINED3D_FEATURE_LEVEL_7
@ WINED3D_FEATURE_LEVEL_6
@ WINED3D_FEATURE_LEVEL_5
@ WINED3D_DEVICE_TYPE_NULLREF
@ WINED3D_DEVICE_TYPE_HAL
@ WINED3D_DEVICE_TYPE_REF
#define WINED3D_SWAPCHAIN_NO_WINDOW_CHANGES
void WINAPI wined3d_mutex_unlock(void)
void WINAPI wined3d_mutex_lock(void)
struct wined3d *CDECL wined3d_create(uint32_t flags)
#define CLASS_E_NOAGGREGATION