41 { { 0x00010001, 0x00010001 } },
44 {0xa8373c10,0x7ac4,0x4deb, {0x84,0x9a,0x00,0x98,0x44,0xd0,0x8b,0x2d}},
58 "WINE Direct3D7 Hardware Transform and Lighting acceleration using WineD3D",
60 &IID_IDirect3DTnLHalDevice,
66 "WINE Direct3D7 Hardware acceleration using WineD3D",
68 &IID_IDirect3DHALDevice,
74 "WINE Direct3D7 RGB Software Emulation using WineD3D",
76 &IID_IDirect3DRGBDevice,
150 TRACE(
"Returning IDirectDraw7 interface %p.\n", *
out);
155 TRACE(
"Returning IDirectDraw4 interface %p.\n", *
out);
160 TRACE(
"Returning IDirectDraw2 interface %p.\n", *
out);
165 TRACE(
"Returning IDirectDraw interface %p.\n", *
out);
171 TRACE(
"Returning Direct3D7 interface %p.\n", *
out);
177 TRACE(
"Returning Direct3D3 interface %p.\n", *
out);
183 TRACE(
"Returning Direct3D2 interface %p.\n", *
out);
189 TRACE(
"Returning Direct3D interface %p.\n", *
out);
336 TRACE(
"iface %p.\n", iface);
345 TRACE(
"iface %p.\n", iface);
354 TRACE(
"iface %p.\n", iface);
363 TRACE(
"iface %p.\n", iface);
370 TRACE(
"Destroying the swapchain.\n");
388 ERR(
"Failed to uninit 3D.\n");
410 TRACE(
"Swapchain destroyed.\n");
426 IDirectDraw7_RestoreDisplayMode(&
This->IDirectDraw7_iface);
429 if(
This->devicewindow != 0)
431 TRACE(
" (%p) Destroying the device window %p\n",
This,
This->devicewindow);
433 This->devicewindow = 0;
440 if (
This->wined3d_swapchain)
515 TRACE(
"iface %p.\n", iface);
524 TRACE(
"iface %p.\n", iface);
533 TRACE(
"iface %p.\n", iface);
542 TRACE(
"iface %p.\n", iface);
557 TRACE(
"Setting DDSCL_SETFOCUSWINDOW with an already set window, returning DDERR_HWNDALREADYSET.\n");
586 WARN(
"No window for the Direct3DDevice, created hidden window %p.\n",
window);
592 TRACE(
"Using existing window %p for Direct3D rendering.\n",
window);
609 ERR(
"Error allocating an array for the converted vertex decls.\n");
615 TRACE(
"Successfully initialized 3D.\n");
628 ERR(
"Failed to get display mode.\n");
632 memset(&swapchain_desc, 0,
sizeof(swapchain_desc));
649 ERR(
"Failed to create swapchain, hr %#x.\n",
hr);
655 ERR(
"Failed to get swapchain.\n");
683 TRACE(
"iface %p.\n", iface);
713 TRACE(
"iface %p.\n", iface);
722 TRACE(
"iface %p.\n", iface);
731 TRACE(
"iface %p.\n", iface);
779 DWORD cooplevel,
BOOL restore_mode_on_normal)
786 TRACE(
"ddraw %p, window %p, flags %#x, restore_mode_on_normal %x.\n",
ddraw,
window, cooplevel,
787 restore_mode_on_normal);
794 WARN(
"Recursive call, returning DD_OK.\n");
805 TRACE(
"Incorrect cooplevel flags, returning DDERR_INVALIDPARAMS\n");
812 WARN(
"DDSCL_CREATEDEVICEWINDOW requires DDSCL_EXCLUSIVE.\n");
831 WARN(
"Called with incompatible flags, returning DDERR_INVALIDPARAMS.\n");
844 WARN(
"DDSCL_EXCLUSIVE requires DDSCL_FULLSCREEN and a window.\n");
855 WARN(
"No focus window set.\n");
871 TRACE(
"Created a device window %p.\n", device_window);
929 restore_state =
TRUE;
933 ERR(
"Failed to create stateblock, hr %#x.\n",
hr);
953 ERR(
"Failed to create swapchain, hr %#x.\n",
hr);
974 && restore_mode_on_normal)
978 ERR(
"RestoreDisplayMode failed\n");
991 ERR(
"Failed to acquire focus window, hr %#x.\n",
hr);
998 WARN(
"Unhandled flag DDSCL_ALLOWREBOOT, harmless\n");
1000 WARN(
"Unhandled flag DDSCL_ALLOWMODEX, harmless\n");
1002 WARN(
"Unhandled flag DDSCL_FPUSETUP, harmless\n");
1013 TRACE(
"SetCooperativeLevel returning DD_OK\n");
1092 TRACE(
"iface %p, width %u, height %u, bpp %u, refresh_rate %u, flags %#x.\n",
1097 TRACE(
"ForceRefreshRate overriding passed-in refresh rate (%u Hz) to %u Hz\n",
1143 ERR(
"Failed to resize buffers, hr %#x.\n",
hr);
1166 TRACE(
"iface %p, width %u, height %u, bpp %u, refresh_rate %u, flags %#x.\n",
1177 TRACE(
"iface %p, width %u, height %u, bpp %u, refresh_rate %u, flags %#x.\n",
1194 memset(caps1, 0,
sizeof(*caps1));
1195 caps1->
dwSize =
sizeof(*caps1);
1255 memset(&wined3d_caps, 0,
sizeof(wined3d_caps));
1262 WARN(
"Failed to get device caps, hr %#x.\n",
hr);
1432 caps->
deviceGUID = IID_IDirect3DTnLHalDevice;
1446 switch (
format->u1.dwZBufferBitDepth)
1449 caps->dwZBufferBitDepths |=
DDBD_8;
1452 caps->dwZBufferBitDepths |=
DDBD_16;
1455 caps->dwZBufferBitDepths |=
DDBD_24;
1458 caps->dwZBufferBitDepths |=
DDBD_32;
1487 TRACE(
"iface %p, driver_caps %p, hel_caps %p.\n", iface, DriverCaps, HELCaps);
1490 if (!DriverCaps && !HELCaps)
1492 WARN(
"Invalid parameters.\n");
1496 memset(&caps, 0,
sizeof(caps));
1497 memset(&winecaps, 0,
sizeof(winecaps));
1498 caps.dwSize =
sizeof(caps);
1504 WARN(
"Failed to get device caps, %#x.\n",
hr);
1509 hr = IDirectDraw7_GetAvailableVidMem(iface, &ddscaps, &caps.dwVidMemTotal, &caps.dwVidMemFree);
1512 WARN(
"IDirectDraw7::GetAvailableVidMem failed\n");
1517 hr = IDirectDraw7_GetFourCCCodes(iface, &caps.dwNumFourCCCodes,
NULL);
1521 WARN(
"IDirectDraw7::GetFourCCCodes failed\n");
1527 caps.dwCKeyCaps = winecaps.
ddraw_caps.color_key_caps;
1530 caps.ddsCaps.dwCaps = winecaps.
ddraw_caps.dds_caps;
1531 caps.dwSVBCaps = winecaps.
ddraw_caps.svb_caps;
1532 caps.dwSVBCKeyCaps = winecaps.
ddraw_caps.svb_color_key_caps;
1533 caps.dwSVBFXCaps = winecaps.
ddraw_caps.svb_fx_caps;
1534 caps.dwVSBCaps = winecaps.
ddraw_caps.vsb_caps;
1535 caps.dwVSBCKeyCaps = winecaps.
ddraw_caps.vsb_color_key_caps;
1536 caps.dwVSBFXCaps = winecaps.
ddraw_caps.vsb_fx_caps;
1537 caps.dwSSBCaps = winecaps.
ddraw_caps.ssb_caps;
1538 caps.dwSSBCKeyCaps = winecaps.
ddraw_caps.ssb_color_key_caps;
1539 caps.dwSSBFXCaps = winecaps.
ddraw_caps.ssb_fx_caps;
1544 caps.ddsOldCaps.dwCaps = caps.ddsCaps.dwCaps;
1553 TRACE(
"Driver Caps :\n");
1563 TRACE(
"HEL Caps :\n");
1575 TRACE(
"iface %p, driver_caps %p, hel_caps %p.\n", iface, driver_caps, hel_caps);
1584 TRACE(
"iface %p, driver_caps %p, hel_caps %p.\n", iface, driver_caps, hel_caps);
1593 TRACE(
"iface %p, driver_caps %p, hel_caps %p.\n", iface, driver_caps, hel_caps);
1609 TRACE(
"iface %p.\n", iface);
1618 TRACE(
"iface %p.\n", iface);
1627 TRACE(
"iface %p.\n", iface);
1636 TRACE(
"iface %p.\n", iface);
1661 TRACE(
"iface %p, surface_desc %p.\n", iface, DDSD);
1671 ERR(
"Failed to get display mode, hr %#x.\n",
hr);
1677 DDSD->
dwSize =
sizeof(*DDSD);
1689 TRACE(
"Returning surface desc :\n");
1702 TRACE(
"iface %p, surface_desc %p.\n", iface, surface_desc);
1712 TRACE(
"iface %p, surface_desc %p.\n", iface, surface_desc);
1715 if (
SUCCEEDED(
hr)) surface_desc->dwSize =
sizeof(*surface_desc);
1724 TRACE(
"iface %p, surface_desc %p.\n", iface, surface_desc);
1727 if (
SUCCEEDED(
hr)) surface_desc->dwSize =
sizeof(*surface_desc);
1761 TRACE(
"iface %p, codes_count %p, codes %p.\n", iface, NumCodes, Codes);
1765 ERR(
"Failed to get display mode, hr %#x.\n",
hr);
1769 outsize = NumCodes && Codes ? *NumCodes : 0;
1793 TRACE(
"iface %p, codes_count %p, codes %p.\n", iface, codes_count, codes);
1802 TRACE(
"iface %p, codes_count %p, codes %p.\n", iface, codes_count, codes);
1811 TRACE(
"iface %p, codes_count %p, codes %p.\n", iface, codes_count, codes);
1829 WARN(
"Failed to get display mode, hr %#x.\n",
hr);
1881 WARN(
"Failed to get raster status, hr %#x.\n",
hr);
1935 unsigned int framebuffer_size, total_vidmem, free_vidmem;
1940 TRACE(
"iface %p, caps %p, total %p, free %p.\n", iface, caps,
total,
free);
1947 TRACE(
"Asked for memory with description: ");
1962 WARN(
"Failed to get display mode, hr %#x.\n",
hr);
1968 framebuffer_size *=
mode.height;
1973 *
free = framebuffer_size > free_vidmem ? 0 : free_vidmem - framebuffer_size;
1974 TRACE(
"Free video memory %#x.\n", *
free);
1983 *
total = framebuffer_size > total_vidmem ? 0 : total_vidmem - framebuffer_size;
1997 TRACE(
"iface %p, caps %p, total %p, free %p.\n", iface, caps,
total,
free);
2008 TRACE(
"iface %p, caps %p, total %p, free %p.\n", iface, caps,
total,
free);
2100 TRACE(
"iface %p.\n", iface);
2104 if (
FAILED(
hr = IDirectDraw7_GetGDISurface(iface, &gdi_surface)))
2106 WARN(
"Failed to retrieve GDI surface, hr %#x.\n",
hr);
2116 IDirectDrawSurface7_Release(gdi_surface);
2127 TRACE(
"iface %p.\n", iface);
2136 TRACE(
"iface %p.\n", iface);
2145 TRACE(
"iface %p.\n", iface);
2220 TRACE(
"iface %p, line %p.\n", iface, Scanline);
2227 WARN(
"Failed to get raster status, hr %#x.\n",
hr);
2243 TRACE(
"iface %p, line %p.\n", iface,
line);
2252 TRACE(
"iface %p, line %p.\n", iface,
line);
2261 TRACE(
"iface %p, line %p.\n", iface,
line);
2270 TRACE(
"iface %p.\n", iface);
2279 TRACE(
"iface %p.\n", iface);
2302 TRACE(
"iface %p, surface %p.\n", iface, GDISurface);
2306 if (!(*GDISurface = &
ddraw->
primary->IDirectDrawSurface7_iface))
2308 WARN(
"Primary not created yet.\n");
2312 IDirectDrawSurface7_AddRef(*GDISurface);
2326 TRACE(
"iface %p, surface %p.\n", iface, surface);
2336 IDirectDrawSurface4_AddRef(*surface);
2337 IDirectDrawSurface7_Release(surface7);
2349 TRACE(
"iface %p, surface %p.\n", iface, surface);
2359 IDirectDrawSurface_AddRef(*surface);
2360 IDirectDrawSurface7_Release(surface7);
2372 TRACE(
"iface %p, surface %p.\n", iface, surface);
2382 IDirectDrawSurface_AddRef(*surface);
2383 IDirectDrawSurface7_Release(surface7);
2427 unsigned int modenum,
fmt;
2429 unsigned enum_mode_count = 0, enum_mode_array_size = 16;
2439 TRACE(
"iface %p, flags %#x, surface_desc %p, context %p, callback %p.\n",
2445 if (!(enum_modes =
heap_alloc(enum_mode_array_size *
sizeof(*enum_modes))))
2475 for (
i = 0;
i < enum_mode_count;
i++)
2487 memset(&callback_sd, 0,
sizeof(callback_sd));
2488 callback_sd.
dwSize =
sizeof(callback_sd);
2502 callback_sd.u1.
lPitch = (callback_sd.u1.
lPitch + 3) & ~3;
2509 TRACE(
"Application asked to terminate the enumeration\n");
2515 if (enum_mode_count == enum_mode_array_size)
2519 enum_mode_array_size *= 2;
2520 if (!(new_enum_modes =
heap_realloc(enum_modes, enum_mode_array_size *
sizeof(*new_enum_modes))))
2527 enum_modes = new_enum_modes;
2529 enum_modes[enum_mode_count++] =
mode;
2533 TRACE(
"End of enumeration\n");
2545 TRACE(
"iface %p, flags %#x, surface_desc %p, context %p, callback %p.\n",
2558 TRACE(
"iface %p, flags %#x, surface_desc %p, context %p, callback %p.\n",
2564 if (surface_desc)
DDSD_to_DDSD2(surface_desc, &surface_desc2);
2576 TRACE(
"iface %p, flags %#x, surface_desc %p, context %p, callback %p.\n",
2582 if (surface_desc)
DDSD_to_DDSD2(surface_desc, &surface_desc2);
2634 TRACE(
"iface %p, device_identifier %p, flags %#x.\n", iface, DDDI,
Flags);
2680 TRACE(
"iface %p, identifier %p, flags %#x.\n", iface, identifier,
flags);
2708 TRACE(
"iface %p, dc %p, surface %p.\n", iface,
dc, surface);
2719 if (surface_impl->
dc !=
dc)
2722 TRACE(
"Found surface %p for dc %p.\n", surface_impl,
dc);
2724 IDirectDrawSurface7_AddRef(*surface);
2731 TRACE(
"No surface found for dc %p.\n",
dc);
2737 IDirectDrawSurface4 **surface)
2744 TRACE(
"iface %p, dc %p, surface %p.\n", iface,
dc, surface);
2758 IDirectDrawSurface7_Release(surface7);
2765 IDirectDrawSurface_Restore(surface);
2766 IDirectDrawSurface_Release(surface);
2773 TRACE(
"iface %p.\n", iface);
2783 TRACE(
"iface %p.\n", iface);
2812 FIXME(
"iface %p, modes %p, mode_count %u, flags %#x partial stub!\n",
2836 TRACE(
"iface %p, surface_desc %p, surface %p, outer_unknown %p.\n",
2843 WARN(
"Cooperative level not set.\n");
2850 WARN(
"Application supplied invalid surface descriptor\n");
2861 WARN(
"Surface pointer %p is invalid.\n", surface);
2871 TRACE(
" (%p) Requesting surface desc :\n", iface);
2875 WARN(
"Application tried to create an explicit front or back buffer\n");
2886 IDirectDraw7_AddRef(iface);
2899 TRACE(
"iface %p, surface_desc %p, surface %p, outer_unknown %p.\n",
2906 WARN(
"Cooperative level not set.\n");
2913 WARN(
"Application supplied invalid surface descriptor\n");
2924 WARN(
"Surface pointer %p is invalid.\n", surface);
2934 TRACE(
" (%p) Requesting surface desc :\n", iface);
2938 WARN(
"Application tried to create an explicit front or back buffer\n");
2949 IDirectDraw4_AddRef(iface);
2963 TRACE(
"iface %p, surface_desc %p, surface %p, outer_unknown %p.\n",
2970 WARN(
"Cooperative level not set.\n");
2977 WARN(
"Application supplied invalid surface descriptor\n");
2988 WARN(
"Surface pointer %p is invalid.\n", surface);
2999 TRACE(
" (%p) Requesting surface desc :\n", iface);
3003 WARN(
"Application tried to create an explicit front or back buffer\n");
3027 TRACE(
"iface %p, surface_desc %p, surface %p, outer_unknown %p.\n",
3034 WARN(
"Cooperative level not set.\n");
3041 WARN(
"Application supplied invalid surface descriptor\n");
3052 WARN(
"Surface pointer %p is invalid.\n", surface);
3063 WARN(
"Application tried to create an explicit front or back buffer.\n");
3092 if ((requested->
dwFlags & must_match) != (provided->
dwFlags & must_match))
3135#define CMP(FLAG, FIELD) \
3136 { DDSD_##FLAG, offsetof(DDSURFACEDESC2, FIELD), \
3137 sizeof(((DDSURFACEDESC2 *)(NULL))->FIELD) }
3142 CMP(BACKBUFFERCOUNT,
u5.dwBackBufferCount),
3144 CMP(CKDESTBLT, ddckCKDestBlt),
3145 CMP(CKDESTOVERLAY,
u3 ),
3146 CMP(CKSRCBLT, ddckCKSrcBlt),
3147 CMP(CKSRCOVERLAY, ddckCKSrcOverlay),
3149 CMP(LINEARSIZE,
u1 ),
3150 CMP(LPSURFACE, lpSurface),
3151 CMP(MIPMAPCOUNT,
u2 ),
3154 CMP(REFRESHRATE,
u2 ),
3155 CMP(TEXTURESTAGE, dwTextureStage),
3205 IDirectDrawSurface7_Release(surface);
3208 surface_desc, cbcontext->
context);
3218 IDirectDrawSurface7_Release(surface);
3250 TRACE(
"iface %p, flags %#x, surface_desc %p, context %p, callback %p.\n",
3268 memcpy(&testdesc, DDSD,
sizeof(testdesc));
3280 hr = IDirectDraw7_CreateSurface(iface, &testdesc, &surface,
NULL);
3285 IDirectDrawSurface7_Release(surface);
3288 ERR(
"Failed to create surface, hr %#x.\n",
hr);
3297 if (match_flags != 0 &&
3318 WARN(
"Not enumerating surface %p because it doesn't have any references.\n", surf);
3324 TRACE(
"Enumerating surface %p.\n", surf);
3349 TRACE(
"iface %p, flags %#x, surface_desc %p, context %p, callback %p.\n",
3366 TRACE(
"iface %p, flags %#x, surface_desc %p, context %p, callback %p.\n",
3372 if (surface_desc)
DDSD_to_DDSD2(surface_desc, &surface_desc2);
3384 TRACE(
"iface %p, flags %#x, surface_desc %p, context %p, callback %p.\n",
3390 if (surface_desc)
DDSD_to_DDSD2(surface_desc, &surface_desc2);
3415 TRACE(
"flags %#x, clipper %p, outer_unknown %p.\n",
3416 flags, clipper, outer_unknown);
3423 if (!(
object = heap_alloc_zero(
sizeof(*
object))))
3432 WARN(
"Failed to initialize clipper, hr %#x.\n",
hr);
3438 TRACE(
"Created clipper %p.\n",
object);
3439 *clipper = &
object->IDirectDrawClipper_iface;
3452 IDirectDrawClipper **Clipper,
IUnknown *UnkOuter)
3454 TRACE(
"iface %p, flags %#x, clipper %p, outer_unknown %p.\n",
3455 iface,
Flags, Clipper, UnkOuter);
3461 IDirectDrawClipper **clipper,
IUnknown *outer_unknown)
3465 TRACE(
"iface %p, flags %#x, clipper %p, outer_unknown %p.\n",
3466 iface,
flags, clipper, outer_unknown);
3476 TRACE(
"iface %p, flags %#x, clipper %p, outer_unknown %p.\n",
3477 iface,
flags, clipper, outer_unknown);
3487 TRACE(
"iface %p, flags %#x, clipper %p, outer_unknown %p.\n",
3488 iface,
flags, clipper, outer_unknown);
3517 TRACE(
"iface %p, flags %#x, color_table %p, palette %p, outer_unknown %p.\n",
3518 iface,
Flags, ColorTable, Palette, pUnkOuter);
3528 WARN(
"No cooperative level set, returning DDERR_NOCOOPERATIVELEVELSET\n");
3535 ERR(
"Out of memory when allocating memory for a palette implementation\n");
3543 WARN(
"Failed to initialize palette, hr %#x.\n",
hr);
3549 TRACE(
"Created palette %p.\n",
object);
3550 *Palette = &
object->IDirectDrawPalette_iface;
3562 TRACE(
"iface %p, flags %#x, entries %p, palette %p, outer_unknown %p.\n",
3570 IDirectDraw4_AddRef(iface);
3582 TRACE(
"iface %p, flags %#x, entries %p, palette %p, outer_unknown %p.\n",
3602 TRACE(
"iface %p, flags %#x, entries %p, palette %p, outer_unknown %p.\n",
3638 FIXME(
"iface %p, src %p, dst %p partial stub!\n", iface, Src, Dest);
3641 return IDirectDraw7_CreateSurface(iface, &src_surface->
surface_desc, Dest,
NULL);
3645 IDirectDrawSurface4 **
dst)
3653 TRACE(
"iface %p, src %p, dst %p.\n", iface,
src,
dst);
3664 IDirectDrawSurface4_AddRef(*
dst);
3665 IDirectDrawSurface7_Release(dst7);
3671 IDirectDrawSurface *
src, IDirectDrawSurface **
dst)
3679 TRACE(
"iface %p, src %p, dst %p.\n", iface,
src,
dst);
3687 IDirectDrawSurface_AddRef(*
dst);
3688 IDirectDrawSurface7_Release(dst7);
3694 IDirectDrawSurface **
dst)
3702 TRACE(
"iface %p, src %p, dst %p.\n", iface,
src,
dst);
3710 IDirectDrawSurface_AddRef(*
dst);
3711 IDirectDrawSurface7_Release(dst7);
3758 device_desc7.
dwDevCaps = dev_caps & ~device_list7[
i].remove_caps;
3763 TRACE(
"Application cancelled the enumeration.\n");
3769 TRACE(
"End of enumeration.\n");
3795 static CHAR wined3d_description[] =
"Wine D3DDevice using WineD3D and OpenGL";
3843 static CHAR reference_description[] =
"RGB Direct3D emulation";
3845 TRACE(
"Enumerating WineD3D D3DDevice interface.\n");
3846 hal_desc = device_desc1;
3847 hel_desc = device_desc1;
3858 hr =
callback((
GUID *)&IID_IDirect3DRGBDevice, reference_description,
3862 TRACE(
"Application cancelled the enumeration.\n");
3870 TRACE(
"Enumerating HAL Direct3D device.\n");
3871 hal_desc = device_desc1;
3872 hel_desc = device_desc1;
3882 hr =
callback((
GUID *)&IID_IDirect3DHALDevice, wined3d_description,
3886 TRACE(
"Application cancelled the enumeration.\n");
3891 TRACE(
"End of enumeration.\n");
3943 TRACE(
"iface %p, light %p, outer_unknown %p.\n", iface,
light, outer_unknown);
3948 if (!(
object = heap_alloc_zero(
sizeof(*
object))))
3950 ERR(
"Failed to allocate light memory.\n");
3956 TRACE(
"Created light %p.\n",
object);
3957 *
light = &
object->IDirect3DLight_iface;
3966 TRACE(
"iface %p, light %p, outer_unknown %p.\n", iface,
light, outer_unknown);
3975 TRACE(
"iface %p, light %p, outer_unknown %p.\n", iface,
light, outer_unknown);
4006 TRACE(
"iface %p, material %p, outer_unknown %p.\n", iface, material, outer_unknown);
4013 ERR(
"Failed to allocate material memory.\n");
4017 TRACE(
"Created material %p.\n",
object);
4018 *material = &
object->IDirect3DMaterial3_iface;
4029 TRACE(
"iface %p, material %p, outer_unknown %p.\n", iface, material, outer_unknown);
4034 ERR(
"Failed to allocate material memory.\n");
4038 TRACE(
"Created material %p.\n",
object);
4039 *material = &
object->IDirect3DMaterial2_iface;
4050 TRACE(
"iface %p, material %p, outer_unknown %p.\n", iface, material, outer_unknown);
4055 ERR(
"Failed to allocate material memory.\n");
4059 TRACE(
"Created material %p.\n",
object);
4060 *material = &
object->IDirect3DMaterial_iface;
4091 TRACE(
"iface %p, viewport %p, outer_unknown %p.\n", iface, viewport, outer_unknown);
4095 if (!(
object = heap_alloc_zero(
sizeof(*
object))))
4097 ERR(
"Failed to allocate viewport memory.\n");
4103 TRACE(
"Created viewport %p.\n",
object);
4104 *viewport = &
object->IDirect3DViewport3_iface;
4113 TRACE(
"iface %p, viewport %p, outer_unknown %p.\n", iface, viewport, outer_unknown);
4123 TRACE(
"iface %p, viewport %p, outer_unknown %p.\n", iface, viewport, outer_unknown);
4152 TRACE(
"iface %p, fds %p, fdr %p.\n", iface, fds, fdr);
4163 WARN(
"Trying to request a non-RGB D3D color model. Not supported.\n");
4174 WARN(
"No match for this GUID.\n");
4205 TRACE(
"Returning Wine's wined3d device with (undumped) capabilities.\n");
4214 TRACE(
"iface %p, fds %p, fdr %p.\n", iface, fds, fdr);
4223 TRACE(
"iface %p, fds %p, fdr %p.\n", iface, fds, fdr);
4262 *
device = &
object->IDirect3DDevice7_iface;
4266 WARN(
"Failed to create device, hr %#x.\n",
hr);
4282 TRACE(
"iface %p, riid %s, surface %p, device %p, outer_unknown %p.\n",
4295 WARN(
"Failed to create device, hr %#x.\n",
hr);
4304 IDirectDrawSurface *surface, IDirect3DDevice2 **
device)
4311 TRACE(
"iface %p, riid %s, surface %p, device %p.\n",
4321 WARN(
"Failed to create device, hr %#x.\n",
hr);
4355 TRACE(
"iface %p, desc %p, vertex_buffer %p, flags %#x.\n",
4363 TRACE(
"Created vertex buffer %p.\n",
object);
4367 WARN(
"Failed to create vertex buffer, hr %#x.\n",
hr);
4379 TRACE(
"iface %p, desc %p, vertex_buffer %p, flags %#x, outer_unknown %p.\n",
4390 TRACE(
"Created vertex buffer %p.\n",
object);
4394 WARN(
"Failed to create vertex buffer, hr %#x.\n",
hr);
4437 TRACE(
"iface %p, device_iid %s, callback %p, context %p.\n",
4442 if (
IsEqualGUID(device_iid, &IID_IDirect3DHALDevice)
4443 ||
IsEqualGUID(device_iid, &IID_IDirect3DTnLHalDevice)
4446 TRACE(
"Asked for HAL device.\n");
4449 else if (
IsEqualGUID(device_iid, &IID_IDirect3DRGBDevice)
4450 ||
IsEqualGUID(device_iid, &IID_IDirect3DMMXDevice))
4452 TRACE(
"Asked for SW device.\n");
4455 else if (
IsEqualGUID(device_iid, &IID_IDirect3DRefDevice))
4457 TRACE(
"Asked for REF device.\n");
4460 else if (
IsEqualGUID(device_iid, &IID_IDirect3DNullDevice))
4462 TRACE(
"Asked for NULLREF device.\n");
4480 ERR(
"Failed to get display mode, hr %#x.\n",
hr);
4492 memset(&pformat, 0,
sizeof(pformat));
4493 pformat.
dwSize =
sizeof(pformat);
4500 TRACE(
"Format enumeration cancelled by application.\n");
4517 {24}, {0x00000000}, {0x00ffffff}, {0x00000000}
4519 TRACE(
"Enumerating WINED3DFMT_X8D24_UNORM, dwZBufferBitDepth=24 version\n");
4523 TRACE(
"End of enumeration.\n");
4535 TRACE(
"iface %p, device_iid %s, callback %p, context %p.\n",
4557 TRACE(
"iface %p!\n", iface);
4571 TRACE(
"iface %p.\n", iface);
4804 TRACE(
"Searching for declaration for fvf %08x... ",
fvf);
4807 high =
This->numConvertedDecls - 1;
4808 while(low <= high) {
4809 p = (low + high) >> 1;
4811 if(convertedDecls[
p].
fvf ==
fvf) {
4813 return convertedDecls[
p].
decl;
4814 }
else if(convertedDecls[
p].
fvf <
fvf) {
4820 TRACE(
"not found. Creating and inserting at position %d.\n", low);
4826 if (
This->declArraySize ==
This->numConvertedDecls)
4828 unsigned int grow =
max(
This->declArraySize / 2, 8);
4831 (
This->numConvertedDecls + grow) *
sizeof(*convertedDecls))))
4836 This->decls = convertedDecls;
4837 This->declArraySize += grow;
4840 memmove(convertedDecls + low + 1, convertedDecls + low,
sizeof(convertedDecls[0]) * (
This->numConvertedDecls - low));
4841 convertedDecls[low].
decl = pDecl;
4842 convertedDecls[low].
fvf =
fvf;
4843 This->numConvertedDecls++;
4845 TRACE(
"Returning %p. %d decls in array\n", pDecl,
This->numConvertedDecls);
4875 TRACE(
"Nothing to resize.\n");
4880 monitor_info.
cbSize =
sizeof(monitor_info);
4883 ERR(
"Failed to get monitor info.\n");
4892 ERR(
"Failed to resize window.\n");
4935 TRACE(
"device_parent %p, wined3d_texture %p, sub_resource_idx %u, parent %p, parent_ops %p.\n",
4949 ERR(
"Failed to allocate surface memory.\n");
4968 TRACE(
"device_parent %p, texture %p, sub_resource_idx %u, parent %p, parent_ops %p.\n",
4995 TRACE(
"device_parent %p, container_parent %p, desc %p, texture flags %#x, texture %p.\n",
5000 ERR(
"Frontbuffer already created.\n");
5007 WARN(
"Failed to create texture, hr %#x.\n",
hr);
5026 ERR(
"Swapchain already created.\n");
5032 WARN(
"Failed to create swapchain, hr %#x.\n",
hr);
5071 WARN(
"Failed to create a wined3d object.\n");
5078 ERR(
"Failed to get device caps, hr %#x.\n",
hr);
5085 WARN(
"Created a wined3d object without 3D support.\n");
5092 WARN(
"Failed to create a wined3d device, hr %#x.\n",
hr);
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
char * strcpy(char *DstString, const char *SrcString)
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
static void * heap_realloc(void *mem, size_t len)
#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_add_head(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
#define STDMETHODCALLTYPE
#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 D3DMAXUSERCLIPPLANES
#define IDirect3D7_EnumZBufferFormats(p, a, b, c)
#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
HRESULT(CALLBACK * LPD3DENUMPIXELFORMATSCALLBACK)(DDPIXELFORMAT *format, void *ctx)
void DDSD_to_DDSD2(const DDSURFACEDESC *in, DDSURFACEDESC2 *out) DECLSPEC_HIDDEN
void DDRAW_dump_surface_desc(const DDSURFACEDESC2 *lpddsd) DECLSPEC_HIDDEN
void DDRAW_dump_DDCAPS(const DDCAPS *lpcaps) DECLSPEC_HIDDEN
void DDRAW_Convert_DDSCAPS_1_To_2(const DDSCAPS *pIn, DDSCAPS2 *pOut) DECLSPEC_HIDDEN
struct ddraw_surface * unsafe_impl_from_IDirectDrawSurface7(IDirectDrawSurface7 *iface) DECLSPEC_HIDDEN
#define DDRAW_SCL_RECURSIVE
@ DDRAW_DEVICE_STATE_LOST
@ DDRAW_DEVICE_STATE_NOT_RESTORED
#define DDRAW_RESTORE_MODE
struct ddraw_surface * unsafe_impl_from_IDirectDrawSurface4(IDirectDrawSurface4 *iface) DECLSPEC_HIDDEN
static struct ddraw_palette * impl_from_IDirectDrawPalette(IDirectDrawPalette *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
#define DDRAW_INITIALIZED
#define DDRAW_STRIDE_ALIGNMENT
void DDRAW_Convert_DDDEVICEIDENTIFIER_2_To_1(const DDDEVICEIDENTIFIER2 *pIn, DDDEVICEIDENTIFIER *pOut) DECLSPEC_HIDDEN
void d3d_light_init(struct d3d_light *light, struct ddraw *ddraw) DECLSPEC_HIDDEN
void ddrawformat_from_wined3dformat(DDPIXELFORMAT *ddraw_format, enum wined3d_format_id wined3d_format) DECLSPEC_HIDDEN
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
#define DDRAW_WINDOW_CLASS_NAME
void d3d_viewport_init(struct d3d_viewport *viewport, struct ddraw *ddraw) DECLSPEC_HIDDEN
void DDSD2_to_DDSD(const DDSURFACEDESC2 *in, DDSURFACEDESC *out) DECLSPEC_HIDDEN
#define DDRAW_D3D_INITIALIZED
struct d3d_material * d3d_material_create(struct ddraw *ddraw) DECLSPEC_HIDDEN
static void ddraw_set_swapchain_window(struct ddraw *ddraw, HWND window)
HRESULT ddraw_palette_init(struct ddraw_palette *palette, struct ddraw *ddraw, DWORD flags, PALETTEENTRY *entries) DECLSPEC_HIDDEN
struct ddraw_surface * unsafe_impl_from_IDirectDrawSurface(IDirectDrawSurface *iface) DECLSPEC_HIDDEN
#define DD_STRUCT_COPY_BYSIZE(to, from)
HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_desc, struct ddraw_surface **surface, IUnknown *outer_unknown, unsigned int version) DECLSPEC_HIDDEN
void DDRAW_dump_DDSCAPS2(const DDSCAPS2 *in) DECLSPEC_HIDDEN
void DDRAW_dump_cooperativelevel(DWORD cooplevel) DECLSPEC_HIDDEN
HRESULT d3d_vertex_buffer_create(struct d3d_vertex_buffer **buffer, struct ddraw *ddraw, D3DVERTEXBUFFERDESC *desc) DECLSPEC_HIDDEN
static struct ddraw_surface * impl_from_IDirectDrawSurface7(IDirectDrawSurface7 *iface)
#define DDRAW_WINED3D_FLAGS
HRESULT ddraw_clipper_init(struct ddraw_clipper *clipper)
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 void STDMETHODCALLTYPE ddraw_frontbuffer_destroyed(void *parent)
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 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 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 HRESULT WINAPI ddraw7_GetGDISurface(IDirectDraw7 *iface, IDirectDrawSurface7 **GDISurface)
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 HRESULT ddraw_create_swapchain(struct ddraw *ddraw, HWND window, BOOL windowed)
static ULONG WINAPI ddraw2_AddRef(IDirectDraw2 *iface)
static HRESULT WINAPI ddraw4_CreateClipper(IDirectDraw4 *iface, DWORD flags, IDirectDrawClipper **clipper, IUnknown *outer_unknown)
HRESULT CALLBACK enum_zbuffer(DDPIXELFORMAT *format, void *ctx)
static const struct IDirect3D2Vtbl d3d2_vtbl
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 ddraw7_EnumSurfaces(IDirectDraw7 *iface, DWORD Flags, DDSURFACEDESC2 *DDSD, void *Context, LPDDENUMSURFACESCALLBACK7 Callback)
static const struct wined3d_parent_ops ddraw_frontbuffer_parent_ops
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 WINAPI ddraw4_GetDisplayMode(IDirectDraw4 *iface, DDSURFACEDESC2 *surface_desc)
static HRESULT WINAPI d3d1_CreateMaterial(IDirect3D *iface, IDirect3DMaterial **material, IUnknown *outer_unknown)
static HRESULT ddraw_attach_d3d_device(struct ddraw *ddraw, struct wined3d_swapchain_desc *swapchain_desc)
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 HRESULT CDECL device_parent_surface_created(struct wined3d_device_parent *device_parent, struct wined3d_texture *wined3d_texture, unsigned int sub_resource_idx, void **parent, const struct wined3d_parent_ops **parent_ops)
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_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 WINAPI ddraw2_RestoreDisplayMode(IDirectDraw2 *iface)
static HRESULT WINAPI ddraw7_GetVerticalBlankStatus(IDirectDraw7 *iface, BOOL *status)
static HRESULT WINAPI ddraw7_TestCooperativeLevel(IDirectDraw7 *iface)
static HRESULT CDECL device_parent_volume_created(struct wined3d_device_parent *device_parent, struct wined3d_texture *wined3d_texture, unsigned int sub_resource_idx, void **parent, const struct wined3d_parent_ops **parent_ops)
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 CDECL device_parent_create_swapchain(struct wined3d_device_parent *device_parent, struct wined3d_swapchain_desc *desc, struct wined3d_swapchain **swapchain)
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 CDECL device_parent_create_swapchain_texture(struct wined3d_device_parent *device_parent, void *container_parent, const struct wined3d_resource_desc *desc, DWORD texture_flags, struct wined3d_texture **texture)
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 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 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)
const GUID IID_D3DDEVICE_WineD3D
static const WCHAR dwWidth[]
static const WCHAR dwHeight[]
static const WCHAR dwWHQLLevel[]
HRESULT CDECL wined3d_device_set_rendertarget_view(struct wined3d_device *device, unsigned int view_idx, struct wined3d_rendertarget_view *view, BOOL set_viewport)
struct wined3d_rendertarget_view *CDECL wined3d_device_get_rendertarget_view(const struct wined3d_device *device, unsigned int view_idx)
void CDECL wined3d_device_setup_fullscreen_window(struct wined3d_device *device, HWND window, UINT w, UINT h)
HRESULT CDECL wined3d_device_acquire_focus_window(struct wined3d_device *device, HWND window)
void CDECL wined3d_device_evict_managed_resources(struct wined3d_device *device)
HRESULT CDECL wined3d_device_uninit_3d(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_restore_fullscreen_window(struct wined3d_device *device, HWND window, const RECT *window_rect)
void CDECL wined3d_device_set_multithreaded(struct wined3d_device *device)
void CDECL wined3d_device_set_depth_stencil_view(struct wined3d_device *device, struct wined3d_rendertarget_view *view)
void CDECL wined3d_device_release_focus_window(struct wined3d_device *device)
struct wined3d_rendertarget_view *CDECL wined3d_device_get_depth_stencil_view(const struct wined3d_device *device)
struct wined3d_swapchain *CDECL wined3d_device_get_swapchain(const struct wined3d_device *device, UINT swapchain_idx)
HRESULT CDECL wined3d_device_init_gdi(struct wined3d_device *device, struct wined3d_swapchain_desc *swapchain_desc)
HRESULT CDECL wined3d_device_uninit_gdi(struct wined3d_device *device)
HRESULT CDECL wined3d_device_init_3d(struct wined3d_device *device, struct wined3d_swapchain_desc *swapchain_desc)
HRESULT CDECL wined3d_device_get_device_caps(const struct wined3d_device *device, WINED3DCAPS *caps)
void *CDECL wined3d_texture_get_parent(const struct wined3d_texture *texture)
HRESULT CDECL wined3d_texture_create(struct wined3d_device *device, const struct wined3d_resource_desc *desc, UINT layer_count, UINT level_count, DWORD flags, const struct wined3d_sub_resource_data *data, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_texture **texture)
ULONG CDECL wined3d_rendertarget_view_incref(struct wined3d_rendertarget_view *view)
void *CDECL wined3d_rendertarget_view_get_sub_resource_parent(const struct wined3d_rendertarget_view *view)
ULONG CDECL wined3d_rendertarget_view_decref(struct wined3d_rendertarget_view *view)
#define __EXCEPT_PAGE_FAULT
static const WCHAR device_name[]
__kernel_ptrdiff_t ptrdiff_t
GLuint GLuint GLsizei GLenum type
GLuint GLuint GLsizei count
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
GLint GLint GLsizei GLsizei height
GLdouble GLdouble GLdouble r
GLint GLint GLsizei width
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
#define InterlockedCompareExchange
unsigned char size_t * outsize
#define memcpy(s1, s2, n)
#define memmove(s1, s2, n)
#define D3DLIGHTCAPS_PARALLELPOINT
static IPrintDialogCallback callback
static const WCHAR desc[]
static HMODULE MODULEINFO DWORD cb
static IHTMLWindow2 * window
static LARGE_INTEGER * frequency
HMONITOR WINAPI MonitorFromWindow(HWND, DWORD)
#define IsEqualGUID(rguid1, rguid2)
DWORD IDirectDrawSurface7
#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
#define DDGDI_GETHOSTIDENTIFIER
struct _DDPIXELFORMAT DDPIXELFORMAT
HRESULT(WINAPI * LPDDENUMSURFACESCALLBACK)(LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID)
#define DDPF_STENCILBUFFER
#define DDENUMSURFACES_ALL
#define DDSCL_ALLOWREBOOT
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_OUTOFVIDEOMEMORY
#define DDERR_NOCOOPERATIVELEVELSET
#define DDPF_PALETTEINDEXED1
#define DDENUMSURFACES_DOESEXIST
#define DDERR_NOFOCUSWINDOW
#define DDPF_PALETTEINDEXED8
#define DDCAPS_ALIGNSTRIDE
#define DDSCAPS_BACKBUFFER
#define DDSCL_CREATEDEVICEWINDOW
#define DDERR_UNSUPPORTED
HRESULT(WINAPI * LPDDENUMSURFACESCALLBACK7)(LPDIRECTDRAWSURFACE7, LPDDSURFACEDESC2, LPVOID)
#define DDERR_INVALIDPARAMS
#define DDERR_ALREADYINITIALIZED
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_SAFE(cursor, cursor2, list)
static int compare_info(LCID lcid, DWORD flags, char *buff, const char *cmp, BOOL exact)
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 dwTextureAddressCaps
DWORD dwTextureFilterCaps
DDPIXELFORMAT ddpfPixelFormat
DWORD MaxTextureAspectRatio
struct wined3d_ddraw_caps ddraw_caps
DWORD VertexProcessingCaps
DWORD MaxTextureBlendStages
DWORD MaxVertexBlendMatrices
DWORD MaxSimultaneousTextures
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
IDirectDraw2 IDirectDraw2_iface
IDirect3D3 IDirect3D3_iface
struct ddraw_surface * primary
struct wined3d_device * wined3d_device
IDirectDraw7 IDirectDraw7_iface
IDirect3D IDirect3D_iface
struct wined3d_texture * wined3d_frontbuffer
struct wined3d_swapchain * wined3d_swapchain
IDirectDraw4 IDirectDraw4_iface
IDirect3D7 IDirect3D7_iface
struct wined3d_device_parent device_parent
IDirect3D2 IDirect3D2_iface
IDirectDraw IDirectDraw_iface
LPDDENUMMODESCALLBACK func
LPDDENUMSURFACESCALLBACK2 func
LPDDENUMSURFACESCALLBACK func
GUID guidDeviceIdentifier
char szDescription[MAX_DDDEVICEID_STRING]
char szDriver[MAX_DDDEVICEID_STRING]
LARGE_INTEGER driver_version
enum wined3d_format_id format_id
enum wined3d_format_id backbuffer_format
enum wined3d_swap_effect swap_effect
static const VBE_MODE Modes[VBE_MODE_COUNT]
#define FIELD_OFFSET(t, f)
#define CONTAINING_RECORD(address, type, field)
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
DWORD WINAPI GetLastError(void)
ULONG CDECL wined3d_decref(struct wined3d *wined3d)
UINT CDECL wined3d_calculate_format_pitch(const struct wined3d *wined3d, UINT adapter_idx, enum wined3d_format_id format_id, UINT width)
HRESULT CDECL wined3d_check_device_format(const struct wined3d *wined3d, UINT adapter_idx, enum wined3d_device_type device_type, enum wined3d_format_id adapter_format_id, DWORD usage, enum wined3d_resource_type resource_type, enum wined3d_format_id check_format_id)
HRESULT CDECL wined3d_device_create(struct wined3d *wined3d, UINT adapter_idx, enum wined3d_device_type device_type, HWND focus_window, DWORD flags, BYTE surface_alignment, struct wined3d_device_parent *device_parent, struct wined3d_device **device)
HRESULT CDECL wined3d_get_adapter_identifier(const struct wined3d *wined3d, UINT adapter_idx, DWORD flags, struct wined3d_adapter_identifier *identifier)
HRESULT CDECL wined3d_enum_adapter_modes(const struct wined3d *wined3d, UINT adapter_idx, enum wined3d_format_id format_id, enum wined3d_scanline_ordering scanline_ordering, UINT mode_idx, struct wined3d_display_mode *mode)
HRESULT CDECL wined3d_set_adapter_display_mode(struct wined3d *wined3d, UINT adapter_idx, const struct wined3d_display_mode *mode)
HRESULT CDECL wined3d_get_adapter_raster_status(const struct wined3d *wined3d, UINT adapter_idx, struct wined3d_raster_status *raster_status)
HRESULT CDECL wined3d_get_adapter_display_mode(const struct wined3d *wined3d, UINT adapter_idx, struct wined3d_display_mode *mode, enum wined3d_display_rotation *rotation)
HRESULT CDECL wined3d_get_device_caps(const struct wined3d *wined3d, UINT adapter_idx, enum wined3d_device_type device_type, WINED3DCAPS *caps)
ULONG CDECL wined3d_stateblock_decref(struct wined3d_stateblock *stateblock)
void CDECL wined3d_stateblock_capture(struct wined3d_stateblock *stateblock)
HRESULT CDECL wined3d_stateblock_create(struct wined3d_device *device, enum wined3d_stateblock_type type, struct wined3d_stateblock **stateblock)
void CDECL wined3d_stateblock_apply(const struct wined3d_stateblock *stateblock)
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)
void CDECL wined3d_swapchain_set_palette(struct wined3d_swapchain *swapchain, struct wined3d_palette *palette)
ULONG CDECL wined3d_swapchain_incref(struct wined3d_swapchain *swapchain)
HRESULT CDECL wined3d_swapchain_create(struct wined3d_device *device, struct wined3d_swapchain_desc *desc, void *parent, const struct wined3d_parent_ops *parent_ops, 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, DWORD fvf, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_vertex_declaration **declaration)
@ WINED3D_MULTISAMPLE_NONE
#define WINED3D_SWAPCHAIN_ALLOW_MODE_SWITCH
@ WINED3D_SWAP_EFFECT_COPY
#define WINED3DADAPTER_DEFAULT
@ WINED3D_RTYPE_TEXTURE_2D
#define WINED3DERR_NOTAVAILABLE
@ 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_TEXTURE_CREATE_MAPPABLE
@ WINED3D_SCANLINE_ORDERING_UNKNOWN
#define WINED3DUSAGE_RENDERTARGET
@ WINED3D_DEVICE_TYPE_NULLREF
@ WINED3D_DEVICE_TYPE_HAL
@ WINED3D_DEVICE_TYPE_REF
#define WINED3DUSAGE_DEPTHSTENCIL
void WINAPI wined3d_mutex_unlock(void)
struct wined3d *CDECL wined3d_create(DWORD flags)
void WINAPI wined3d_mutex_lock(void)
#define CLASS_E_NOAGGREGATION
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)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
HWND WINAPI GetDesktopWindow(void)
BOOL WINAPI GetMonitorInfoW(_In_ HMONITOR, _Inout_ LPMONITORINFO)
BOOL WINAPI DestroyWindow(_In_ HWND)
int WINAPI GetSystemMetrics(_In_ int)
_Must_inspect_result_ _In_ ULONG Flags