ReactOS 0.4.17-dev-934-g091855f
ddraw.c File Reference
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
#include "ddraw.h"
#include "d3d.h"
#include "ddrawex_private.h"
#include "wine/debug.h"
Include dependency graph for ddraw.c:

Go to the source code of this file.

Classes

struct  enummodes_ctx
 
struct  enumsurfaces4_ctx
 
struct  enumsurfaces_ctx
 

Macros

#define COBJMACROS
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (ddrawex)
 
static struct ddrawex * impl_from_IDirectDraw (IDirectDraw *iface)
 
static struct ddrawex * impl_from_IDirectDraw2 (IDirectDraw2 *iface)
 
static struct ddrawex * impl_from_IDirectDraw3 (IDirectDraw3 *iface)
 
static struct ddrawex * impl_from_IDirectDraw4 (IDirectDraw4 *iface)
 
static HRESULT WINAPI ddrawex4_QueryInterface (IDirectDraw4 *iface, REFIID riid, void **out)
 
static HRESULT WINAPI ddrawex3_QueryInterface (IDirectDraw3 *iface, REFIID riid, void **out)
 
static HRESULT WINAPI ddrawex2_QueryInterface (IDirectDraw2 *iface, REFIID riid, void **out)
 
static HRESULT WINAPI ddrawex1_QueryInterface (IDirectDraw *iface, REFIID riid, void **out)
 
static ULONG WINAPI ddrawex4_AddRef (IDirectDraw4 *iface)
 
static ULONG WINAPI ddrawex3_AddRef (IDirectDraw3 *iface)
 
static ULONG WINAPI ddrawex2_AddRef (IDirectDraw2 *iface)
 
static ULONG WINAPI ddrawex1_AddRef (IDirectDraw *iface)
 
static ULONG WINAPI ddrawex4_Release (IDirectDraw4 *iface)
 
static ULONG WINAPI ddrawex3_Release (IDirectDraw3 *iface)
 
static ULONG WINAPI ddrawex2_Release (IDirectDraw2 *iface)
 
static ULONG WINAPI ddrawex1_Release (IDirectDraw *iface)
 
static HRESULT WINAPI ddrawex4_Compact (IDirectDraw4 *iface)
 
static HRESULT WINAPI ddrawex3_Compact (IDirectDraw3 *iface)
 
static HRESULT WINAPI ddrawex2_Compact (IDirectDraw2 *iface)
 
static HRESULT WINAPI ddrawex1_Compact (IDirectDraw *iface)
 
static HRESULT WINAPI ddrawex4_CreateClipper (IDirectDraw4 *iface, DWORD flags, IDirectDrawClipper **clipper, IUnknown *outer_unknown)
 
static HRESULT WINAPI ddrawex3_CreateClipper (IDirectDraw3 *iface, DWORD flags, IDirectDrawClipper **clipper, IUnknown *outer_unknown)
 
static HRESULT WINAPI ddrawex2_CreateClipper (IDirectDraw2 *iface, DWORD flags, IDirectDrawClipper **clipper, IUnknown *outer_unknown)
 
static HRESULT WINAPI ddrawex1_CreateClipper (IDirectDraw *iface, DWORD flags, IDirectDrawClipper **clipper, IUnknown *outer_unknown)
 
static HRESULT WINAPI ddrawex4_CreatePalette (IDirectDraw4 *iface, DWORD flags, PALETTEENTRY *entries, IDirectDrawPalette **palette, IUnknown *outer_unknown)
 
static HRESULT WINAPI ddrawex3_CreatePalette (IDirectDraw3 *iface, DWORD flags, PALETTEENTRY *entries, IDirectDrawPalette **palette, IUnknown *outer_unknown)
 
static HRESULT WINAPI ddrawex2_CreatePalette (IDirectDraw2 *iface, DWORD flags, PALETTEENTRY *entries, IDirectDrawPalette **palette, IUnknown *outer_unknown)
 
static HRESULT WINAPI ddrawex1_CreatePalette (IDirectDraw *iface, DWORD flags, PALETTEENTRY *entries, IDirectDrawPalette **palette, IUnknown *outer_unknown)
 
static HRESULT WINAPI ddrawex4_CreateSurface (IDirectDraw4 *iface, DDSURFACEDESC2 *desc, IDirectDrawSurface4 **surface, IUnknown *outer_unknown)
 
void DDSD_to_DDSD2 (const DDSURFACEDESC *in, DDSURFACEDESC2 *out)
 
void DDSD2_to_DDSD (const DDSURFACEDESC2 *in, DDSURFACEDESC *out)
 
static HRESULT WINAPI ddrawex3_CreateSurface (IDirectDraw3 *iface, DDSURFACEDESC *desc, IDirectDrawSurface **surface, IUnknown *outer_unknown)
 
static HRESULT WINAPI ddrawex2_CreateSurface (IDirectDraw2 *iface, DDSURFACEDESC *desc, IDirectDrawSurface **surface, IUnknown *outer_unknown)
 
static HRESULT WINAPI ddrawex1_CreateSurface (IDirectDraw *iface, DDSURFACEDESC *desc, IDirectDrawSurface **surface, IUnknown *outer_unknown)
 
static HRESULT WINAPI ddrawex4_DuplicateSurface (IDirectDraw4 *iface, IDirectDrawSurface4 *src, IDirectDrawSurface4 **dst)
 
static HRESULT WINAPI ddrawex3_DuplicateSurface (IDirectDraw3 *iface, IDirectDrawSurface *src, IDirectDrawSurface **dst)
 
static HRESULT WINAPI ddrawex2_DuplicateSurface (IDirectDraw2 *iface, IDirectDrawSurface *src, IDirectDrawSurface **dst)
 
static HRESULT WINAPI ddrawex1_DuplicateSurface (IDirectDraw *iface, IDirectDrawSurface *src, IDirectDrawSurface **dst)
 
static HRESULT WINAPI ddrawex4_EnumDisplayModes (IDirectDraw4 *iface, DWORD flags, DDSURFACEDESC2 *desc, void *ctx, LPDDENUMMODESCALLBACK2 cb)
 
static HRESULT WINAPI enum_modes_cb2 (DDSURFACEDESC2 *ddsd2, void *vctx)
 
static HRESULT WINAPI ddrawex3_EnumDisplayModes (IDirectDraw3 *iface, DWORD flags, DDSURFACEDESC *desc, void *ctx, LPDDENUMMODESCALLBACK cb)
 
static HRESULT WINAPI ddrawex2_EnumDisplayModes (IDirectDraw2 *iface, DWORD flags, DDSURFACEDESC *desc, void *ctx, LPDDENUMMODESCALLBACK cb)
 
static HRESULT WINAPI ddrawex1_EnumDisplayModes (IDirectDraw *iface, DWORD flags, DDSURFACEDESC *desc, void *ctx, LPDDENUMMODESCALLBACK cb)
 
static HRESULT WINAPI enum_surfaces_wrapper (IDirectDrawSurface4 *surf4, DDSURFACEDESC2 *ddsd2, void *vctx)
 
static HRESULT WINAPI ddrawex4_EnumSurfaces (IDirectDraw4 *iface, DWORD flags, DDSURFACEDESC2 *desc, void *ctx, LPDDENUMSURFACESCALLBACK2 cb)
 
static HRESULT WINAPI enum_surfaces_cb2 (IDirectDrawSurface4 *surf4, DDSURFACEDESC2 *ddsd2, void *vctx)
 
static HRESULT WINAPI ddrawex3_EnumSurfaces (IDirectDraw3 *iface, DWORD flags, DDSURFACEDESC *desc, void *ctx, LPDDENUMSURFACESCALLBACK cb)
 
static HRESULT WINAPI ddrawex2_EnumSurfaces (IDirectDraw2 *iface, DWORD flags, DDSURFACEDESC *desc, void *ctx, LPDDENUMSURFACESCALLBACK cb)
 
static HRESULT WINAPI ddrawex1_EnumSurfaces (IDirectDraw *iface, DWORD flags, DDSURFACEDESC *desc, void *ctx, LPDDENUMSURFACESCALLBACK cb)
 
static HRESULT WINAPI ddrawex4_FlipToGDISurface (IDirectDraw4 *iface)
 
static HRESULT WINAPI ddrawex3_FlipToGDISurface (IDirectDraw3 *iface)
 
static HRESULT WINAPI ddrawex2_FlipToGDISurface (IDirectDraw2 *iface)
 
static HRESULT WINAPI ddrawex1_FlipToGDISurface (IDirectDraw *iface)
 
static HRESULT WINAPI ddrawex4_GetCaps (IDirectDraw4 *iface, DDCAPS *driver_caps, DDCAPS *hel_caps)
 
static HRESULT WINAPI ddrawex3_GetCaps (IDirectDraw3 *iface, DDCAPS *driver_caps, DDCAPS *hel_caps)
 
static HRESULT WINAPI ddrawex2_GetCaps (IDirectDraw2 *iface, DDCAPS *driver_caps, DDCAPS *hel_caps)
 
static HRESULT WINAPI ddrawex1_GetCaps (IDirectDraw *iface, DDCAPS *driver_caps, DDCAPS *hel_caps)
 
static HRESULT WINAPI ddrawex4_GetDisplayMode (IDirectDraw4 *iface, DDSURFACEDESC2 *desc)
 
static HRESULT WINAPI ddrawex3_GetDisplayMode (IDirectDraw3 *iface, DDSURFACEDESC *desc)
 
static HRESULT WINAPI ddrawex2_GetDisplayMode (IDirectDraw2 *iface, DDSURFACEDESC *desc)
 
static HRESULT WINAPI ddrawex1_GetDisplayMode (IDirectDraw *iface, DDSURFACEDESC *desc)
 
static HRESULT WINAPI ddrawex4_GetFourCCCodes (IDirectDraw4 *iface, DWORD *code_count, DWORD *codes)
 
static HRESULT WINAPI ddrawex3_GetFourCCCodes (IDirectDraw3 *iface, DWORD *code_count, DWORD *codes)
 
static HRESULT WINAPI ddrawex2_GetFourCCCodes (IDirectDraw2 *iface, DWORD *code_count, DWORD *codes)
 
static HRESULT WINAPI ddrawex1_GetFourCCCodes (IDirectDraw *iface, DWORD *code_count, DWORD *codes)
 
static HRESULT WINAPI ddrawex4_GetGDISurface (IDirectDraw4 *iface, IDirectDrawSurface4 **gdi_surface)
 
static HRESULT WINAPI ddrawex3_GetGDISurface (IDirectDraw3 *iface, IDirectDrawSurface **gdi_surface)
 
static HRESULT WINAPI ddrawex2_GetGDISurface (IDirectDraw2 *iface, IDirectDrawSurface **gdi_surface)
 
static HRESULT WINAPI ddrawex1_GetGDISurface (IDirectDraw *iface, IDirectDrawSurface **gdi_surface)
 
static HRESULT WINAPI ddrawex4_GetMonitorFrequency (IDirectDraw4 *iface, DWORD *frequency)
 
static HRESULT WINAPI ddrawex3_GetMonitorFrequency (IDirectDraw3 *iface, DWORD *frequency)
 
static HRESULT WINAPI ddrawex2_GetMonitorFrequency (IDirectDraw2 *iface, DWORD *frequency)
 
static HRESULT WINAPI ddrawex1_GetMonitorFrequency (IDirectDraw *iface, DWORD *frequency)
 
static HRESULT WINAPI ddrawex4_GetScanLine (IDirectDraw4 *iface, DWORD *line)
 
static HRESULT WINAPI ddrawex3_GetScanLine (IDirectDraw3 *iface, DWORD *line)
 
static HRESULT WINAPI ddrawex2_GetScanLine (IDirectDraw2 *iface, DWORD *line)
 
static HRESULT WINAPI ddrawex1_GetScanLine (IDirectDraw *iface, DWORD *line)
 
static HRESULT WINAPI ddrawex4_GetVerticalBlankStatus (IDirectDraw4 *iface, BOOL *status)
 
static HRESULT WINAPI ddrawex3_GetVerticalBlankStatus (IDirectDraw3 *iface, BOOL *status)
 
static HRESULT WINAPI ddrawex2_GetVerticalBlankStatus (IDirectDraw2 *iface, BOOL *status)
 
static HRESULT WINAPI ddrawex1_GetVerticalBlankStatus (IDirectDraw *iface, BOOL *status)
 
static HRESULT WINAPI ddrawex4_Initialize (IDirectDraw4 *iface, GUID *guid)
 
static HRESULT WINAPI ddrawex3_Initialize (IDirectDraw3 *iface, GUID *guid)
 
static HRESULT WINAPI ddrawex2_Initialize (IDirectDraw2 *iface, GUID *guid)
 
static HRESULT WINAPI ddrawex1_Initialize (IDirectDraw *iface, GUID *guid)
 
static HRESULT WINAPI ddrawex4_RestoreDisplayMode (IDirectDraw4 *iface)
 
static HRESULT WINAPI ddrawex3_RestoreDisplayMode (IDirectDraw3 *iface)
 
static HRESULT WINAPI ddrawex2_RestoreDisplayMode (IDirectDraw2 *iface)
 
static HRESULT WINAPI ddrawex1_RestoreDisplayMode (IDirectDraw *iface)
 
static HRESULT WINAPI ddrawex4_SetCooperativeLevel (IDirectDraw4 *iface, HWND window, DWORD flags)
 
static HRESULT WINAPI ddrawex3_SetCooperativeLevel (IDirectDraw3 *iface, HWND window, DWORD flags)
 
static HRESULT WINAPI ddrawex2_SetCooperativeLevel (IDirectDraw2 *iface, HWND window, DWORD flags)
 
static HRESULT WINAPI ddrawex1_SetCooperativeLevel (IDirectDraw *iface, HWND window, DWORD flags)
 
static HRESULT WINAPI ddrawex4_SetDisplayMode (IDirectDraw4 *iface, DWORD width, DWORD height, DWORD bpp, DWORD refresh_rate, DWORD flags)
 
static HRESULT WINAPI ddrawex3_SetDisplayMode (IDirectDraw3 *iface, DWORD width, DWORD height, DWORD bpp, DWORD refresh_rate, DWORD flags)
 
static HRESULT WINAPI ddrawex2_SetDisplayMode (IDirectDraw2 *iface, DWORD width, DWORD height, DWORD bpp, DWORD refresh_rate, DWORD flags)
 
static HRESULT WINAPI ddrawex1_SetDisplayMode (IDirectDraw *iface, DWORD width, DWORD height, DWORD bpp)
 
static HRESULT WINAPI ddrawex4_WaitForVerticalBlank (IDirectDraw4 *iface, DWORD flags, HANDLE event)
 
static HRESULT WINAPI ddrawex3_WaitForVerticalBlank (IDirectDraw3 *iface, DWORD flags, HANDLE event)
 
static HRESULT WINAPI ddrawex2_WaitForVerticalBlank (IDirectDraw2 *iface, DWORD flags, HANDLE event)
 
static HRESULT WINAPI ddrawex1_WaitForVerticalBlank (IDirectDraw *iface, DWORD flags, HANDLE event)
 
static HRESULT WINAPI ddrawex4_GetAvailableVidMem (IDirectDraw4 *iface, DDSCAPS2 *caps, DWORD *total, DWORD *free)
 
static HRESULT WINAPI ddrawex3_GetAvailableVidMem (IDirectDraw3 *iface, DDSCAPS *caps, DWORD *total, DWORD *free)
 
static HRESULT WINAPI ddrawex2_GetAvailableVidMem (IDirectDraw2 *iface, DDSCAPS *caps, DWORD *total, DWORD *free)
 
static HRESULT WINAPI ddrawex4_GetSurfaceFromDC (IDirectDraw4 *iface, HDC dc, IDirectDrawSurface4 **surface)
 
static HRESULT WINAPI ddrawex3_GetSurfaceFromDC (IDirectDraw3 *iface, HDC dc, IDirectDrawSurface **surface)
 
static HRESULT WINAPI ddrawex4_RestoreAllSurfaces (IDirectDraw4 *iface)
 
static HRESULT WINAPI ddrawex4_TestCooperativeLevel (IDirectDraw4 *iface)
 
static HRESULT WINAPI ddrawex4_GetDeviceIdentifier (IDirectDraw4 *iface, DDDEVICEIDENTIFIER *identifier, DWORD flags)
 
HRESULT WINAPI ddrawex_factory_CreateDirectDraw (IDirectDrawFactory *iface, GUID *guid, HWND window, DWORD coop_level, DWORD reserved, IUnknown *outer_unknown, IDirectDraw **ddraw)
 
IDirectDraw4 * dd_get_inner (IDirectDraw4 *outer)
 

Variables

static const IDirectDraw4Vtbl ddrawex4_vtbl
 
static const IDirectDraw3Vtbl ddrawex3_vtbl
 
static const IDirectDraw2Vtbl ddrawex2_vtbl
 
static const IDirectDrawVtbl ddrawex1_vtbl
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 19 of file ddraw.c.

Function Documentation

◆ dd_get_inner()

IDirectDraw4 * dd_get_inner ( IDirectDraw4 *  outer)

Definition at line 1458 of file ddraw.c.

1459{
1461
1462 if (outer->lpVtbl != &ddrawex4_vtbl)
1463 return NULL;
1464 return ddrawex->parent;
1465}
#define NULL
Definition: types.h:112
static struct ddraw * impl_from_IDirectDraw4(IDirectDraw4 *iface)
Definition: ddraw.c:108
static const IDirectDraw4Vtbl ddrawex4_vtbl
Definition: ddraw.c:1299
static IUnknown * outer
Definition: compobj.c:82
IDirectDraw4 * parent

Referenced by ddrawex_surface4_Initialize().

◆ ddrawex1_AddRef()

static ULONG WINAPI ddrawex1_AddRef ( IDirectDraw *  iface)
static

Definition at line 149 of file ddraw.c.

150{
151 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
152
153 TRACE("iface %p.\n", iface);
154
156}
static struct ddraw * impl_from_IDirectDraw(IDirectDraw *iface)
Definition: ddraw.c:98
static ULONG WINAPI ddrawex4_AddRef(IDirectDraw4 *iface)
Definition: ddraw.c:121
#define TRACE(s)
Definition: solgame.cpp:4
IDirectDraw4 IDirectDraw4_iface

◆ ddrawex1_Compact()

static HRESULT WINAPI ddrawex1_Compact ( IDirectDraw *  iface)
static

Definition at line 228 of file ddraw.c.

229{
230 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
231
232 TRACE("iface %p.\n", iface);
233
235}
static HRESULT WINAPI ddrawex4_Compact(IDirectDraw4 *iface)
Definition: ddraw.c:201

◆ ddrawex1_CreateClipper()

static HRESULT WINAPI ddrawex1_CreateClipper ( IDirectDraw *  iface,
DWORD  flags,
IDirectDrawClipper **  clipper,
IUnknown *  outer_unknown 
)
static

Definition at line 274 of file ddraw.c.

276{
277 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
278
279 TRACE("iface %p, flags %#lx, clipper %p, outer_unknown %p.\n",
280 iface, flags, clipper, outer_unknown);
281
282 return ddrawex4_CreateClipper(&ddrawex->IDirectDraw4_iface, flags, clipper, outer_unknown);
283}
static HRESULT WINAPI ddrawex4_CreateClipper(IDirectDraw4 *iface, DWORD flags, IDirectDrawClipper **clipper, IUnknown *outer_unknown)
Definition: ddraw.c:237
GLbitfield flags
Definition: glext.h:7161

◆ ddrawex1_CreatePalette()

static HRESULT WINAPI ddrawex1_CreatePalette ( IDirectDraw *  iface,
DWORD  flags,
PALETTEENTRY *  entries,
IDirectDrawPalette **  palette,
IUnknown *  outer_unknown 
)
static

Definition at line 322 of file ddraw.c.

324{
325 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
326
327 TRACE("iface %p, flags %#lx, entries %p, palette %p, outer_unknown %p.\n",
328 iface, flags, entries, palette, outer_unknown);
329
330 return ddrawex4_CreatePalette(&ddrawex->IDirectDraw4_iface, flags, entries, palette, outer_unknown);
331}
static HRESULT WINAPI ddrawex4_CreatePalette(IDirectDraw4 *iface, DWORD flags, PALETTEENTRY *entries, IDirectDrawPalette **palette, IUnknown *outer_unknown)
Definition: ddraw.c:285
static HPALETTE palette
Definition: clipboard.c:1457

◆ ddrawex1_CreateSurface()

static HRESULT WINAPI ddrawex1_CreateSurface ( IDirectDraw *  iface,
DDSURFACEDESC *  desc,
IDirectDrawSurface **  surface,
IUnknown *  outer_unknown 
)
static

Definition at line 475 of file ddraw.c.

477{
478 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
479
480 TRACE("iface %p, desc %p, surface %p, outer_unknown %p.\n",
481 iface, desc, surface, outer_unknown);
482
483 return ddrawex3_CreateSurface(&ddrawex->IDirectDraw3_iface, desc, surface, outer_unknown);
484}
static HRESULT WINAPI ddrawex3_CreateSurface(IDirectDraw3 *iface, DDSURFACEDESC *desc, IDirectDrawSurface **surface, IUnknown *outer_unknown)
Definition: ddraw.c:440
D3D11_SHADER_VARIABLE_DESC desc
Definition: reflection.c:1683
IDirectDraw3 IDirectDraw3_iface

◆ ddrawex1_DuplicateSurface()

static HRESULT WINAPI ddrawex1_DuplicateSurface ( IDirectDraw *  iface,
IDirectDrawSurface *  src,
IDirectDrawSurface **  dst 
)
static

Definition at line 533 of file ddraw.c.

535{
536 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
537
538 TRACE("iface %p, src %p, dst %p.\n", iface, src, dst);
539
541}
static HRESULT WINAPI ddrawex3_DuplicateSurface(IDirectDraw3 *iface, IDirectDrawSurface *src, IDirectDrawSurface **dst)
Definition: ddraw.c:498
GLenum src
Definition: glext.h:6340
GLenum GLenum dst
Definition: glext.h:6340

◆ ddrawex1_EnumDisplayModes()

static HRESULT WINAPI ddrawex1_EnumDisplayModes ( IDirectDraw *  iface,
DWORD  flags,
DDSURFACEDESC *  desc,
void *  ctx,
LPDDENUMMODESCALLBACK  cb 
)
static

Definition at line 594 of file ddraw.c.

596{
597 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
598
599 TRACE("iface %p, flags %#lx, desc %p, ctx %p, cb %p.\n", iface, flags, desc, ctx, cb);
600
602}
static HRESULT WINAPI ddrawex3_EnumDisplayModes(IDirectDraw3 *iface, DWORD flags, DDSURFACEDESC *desc, void *ctx, LPDDENUMMODESCALLBACK cb)
Definition: ddraw.c:569
static MonoProfilerRuntimeShutdownBeginCallback cb
Definition: metahost.c:118

◆ ddrawex1_EnumSurfaces()

static HRESULT WINAPI ddrawex1_EnumSurfaces ( IDirectDraw *  iface,
DWORD  flags,
DDSURFACEDESC *  desc,
void *  ctx,
LPDDENUMSURFACESCALLBACK  cb 
)
static

Definition at line 681 of file ddraw.c.

683{
684 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
685
686 TRACE("iface %p, flags %#lx, desc %p, ctx %p, cb %p.\n", iface, flags, desc, ctx, cb);
687
689}
static HRESULT WINAPI ddrawex3_EnumSurfaces(IDirectDraw3 *iface, DWORD flags, DDSURFACEDESC *desc, void *ctx, LPDDENUMSURFACESCALLBACK cb)
Definition: ddraw.c:656

◆ ddrawex1_FlipToGDISurface()

static HRESULT WINAPI ddrawex1_FlipToGDISurface ( IDirectDraw *  iface)
static

Definition at line 718 of file ddraw.c.

719{
720 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
721
722 TRACE("iface %p.\n", iface);
723
725}
static HRESULT WINAPI ddrawex4_FlipToGDISurface(IDirectDraw4 *iface)
Definition: ddraw.c:691

◆ ddrawex1_GetCaps()

static HRESULT WINAPI ddrawex1_GetCaps ( IDirectDraw *  iface,
DDCAPS *  driver_caps,
DDCAPS *  hel_caps 
)
static

Definition at line 754 of file ddraw.c.

755{
756 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
757
758 TRACE("iface %p, driver_caps %p, hel_caps %p.\n", iface, driver_caps, hel_caps);
759
760 return ddrawex4_GetCaps(&ddrawex->IDirectDraw4_iface, driver_caps, hel_caps);
761}
static HRESULT WINAPI ddrawex4_GetCaps(IDirectDraw4 *iface, DDCAPS *driver_caps, DDCAPS *hel_caps)
Definition: ddraw.c:727

◆ ddrawex1_GetDisplayMode()

static HRESULT WINAPI ddrawex1_GetDisplayMode ( IDirectDraw *  iface,
DDSURFACEDESC *  desc 
)
static

Definition at line 795 of file ddraw.c.

796{
797 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
798
799 TRACE("iface %p, desc %p.\n", iface, desc);
800
802}
static HRESULT WINAPI ddrawex3_GetDisplayMode(IDirectDraw3 *iface, DDSURFACEDESC *desc)
Definition: ddraw.c:772

◆ ddrawex1_GetFourCCCodes()

static HRESULT WINAPI ddrawex1_GetFourCCCodes ( IDirectDraw *  iface,
DWORD *  code_count,
DWORD *  codes 
)
static

Definition at line 831 of file ddraw.c.

832{
833 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
834
835 TRACE("iface %p, code_count %p, codes %p.\n", iface, code_count, codes);
836
837 return ddrawex4_GetFourCCCodes(&ddrawex->IDirectDraw4_iface, code_count, codes);
838}
static HRESULT WINAPI ddrawex4_GetFourCCCodes(IDirectDraw4 *iface, DWORD *code_count, DWORD *codes)
Definition: ddraw.c:804

◆ ddrawex1_GetGDISurface()

static HRESULT WINAPI ddrawex1_GetGDISurface ( IDirectDraw *  iface,
IDirectDrawSurface **  gdi_surface 
)
static

Definition at line 888 of file ddraw.c.

889{
890 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
891
892 TRACE("iface %p, gdi_surface %p.\n", iface, gdi_surface);
893
895}
static HRESULT WINAPI ddrawex3_GetGDISurface(IDirectDraw3 *iface, IDirectDrawSurface **gdi_surface)
Definition: ddraw.c:860

◆ ddrawex1_GetMonitorFrequency()

static HRESULT WINAPI ddrawex1_GetMonitorFrequency ( IDirectDraw *  iface,
DWORD *  frequency 
)
static

Definition at line 924 of file ddraw.c.

925{
926 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
927
928 TRACE("iface %p, frequency %p.\n", iface, frequency);
929
931}
static HRESULT WINAPI ddrawex4_GetMonitorFrequency(IDirectDraw4 *iface, DWORD *frequency)
Definition: ddraw.c:897
static LARGE_INTEGER * frequency
Definition: time.c:38

◆ ddrawex1_GetScanLine()

static HRESULT WINAPI ddrawex1_GetScanLine ( IDirectDraw *  iface,
DWORD *  line 
)
static

Definition at line 960 of file ddraw.c.

961{
962 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
963
964 TRACE("iface %p, line %p.\n", iface, line);
965
967}
static HRESULT WINAPI ddrawex4_GetScanLine(IDirectDraw4 *iface, DWORD *line)
Definition: ddraw.c:933
Definition: parser.c:49

◆ ddrawex1_GetVerticalBlankStatus()

static HRESULT WINAPI ddrawex1_GetVerticalBlankStatus ( IDirectDraw *  iface,
BOOL *  status 
)
static

Definition at line 996 of file ddraw.c.

997{
998 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
999
1000 TRACE("iface %p, status %p.\n", iface, status);
1001
1003}
static HRESULT WINAPI ddrawex4_GetVerticalBlankStatus(IDirectDraw4 *iface, BOOL *status)
Definition: ddraw.c:969
Definition: ps.c:97

◆ ddrawex1_Initialize()

static HRESULT WINAPI ddrawex1_Initialize ( IDirectDraw *  iface,
GUID *  guid 
)
static

Definition at line 1032 of file ddraw.c.

1033{
1034 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
1035
1036 TRACE("iface %p, guid %s.\n", iface, debugstr_guid(guid));
1037
1039}
static HRESULT WINAPI ddrawex4_Initialize(IDirectDraw4 *iface, GUID *guid)
Definition: ddraw.c:1005
GUID guid
Definition: version.c:147
#define debugstr_guid
Definition: kernel32.h:35

◆ ddrawex1_QueryInterface()

static HRESULT WINAPI ddrawex1_QueryInterface ( IDirectDraw *  iface,
REFIID  riid,
void **  out 
)
static

Definition at line 112 of file ddraw.c.

113{
114 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
115
116 TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
117
119}
static HRESULT WINAPI ddrawex4_QueryInterface(IDirectDraw4 *iface, REFIID riid, void **out)
Definition: ddraw.c:54
REFIID riid
Definition: atlbase.h:39
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383

◆ ddrawex1_Release()

static ULONG WINAPI ddrawex1_Release ( IDirectDraw *  iface)
static

Definition at line 192 of file ddraw.c.

193{
194 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
195
196 TRACE("iface %p.\n", iface);
197
199}
static ULONG WINAPI ddrawex4_Release(IDirectDraw4 *iface)
Definition: ddraw.c:158

◆ ddrawex1_RestoreDisplayMode()

static HRESULT WINAPI ddrawex1_RestoreDisplayMode ( IDirectDraw *  iface)
static

Definition at line 1068 of file ddraw.c.

1069{
1070 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
1071
1072 TRACE("iface %p.\n", iface);
1073
1075}
static HRESULT WINAPI ddrawex4_RestoreDisplayMode(IDirectDraw4 *iface)
Definition: ddraw.c:1041

◆ ddrawex1_SetCooperativeLevel()

static HRESULT WINAPI ddrawex1_SetCooperativeLevel ( IDirectDraw *  iface,
HWND  window,
DWORD  flags 
)
static

Definition at line 1104 of file ddraw.c.

1105{
1106 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
1107
1108 TRACE("iface %p, window %p, flags %#lx.\n", iface, window, flags);
1109
1111}
static HRESULT WINAPI ddrawex4_SetCooperativeLevel(IDirectDraw4 *iface, HWND window, DWORD flags)
Definition: ddraw.c:1077
static IHTMLWindow2 * window
Definition: events.c:77

◆ ddrawex1_SetDisplayMode()

static HRESULT WINAPI ddrawex1_SetDisplayMode ( IDirectDraw *  iface,
DWORD  width,
DWORD  height,
DWORD  bpp 
)
static

Definition at line 1146 of file ddraw.c.

1148{
1149 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
1150
1151 TRACE("iface %p, width %lu, height %lu, bpp %lu.\n", iface, width, height, bpp);
1152
1154}
static HRESULT WINAPI ddrawex4_SetDisplayMode(IDirectDraw4 *iface, DWORD width, DWORD height, DWORD bpp, DWORD refresh_rate, DWORD flags)
Definition: ddraw.c:1113
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
GLint GLint GLsizei width
Definition: gl.h:1546
ULONG bpp[]
Definition: xlate.c:19

◆ ddrawex1_WaitForVerticalBlank()

static HRESULT WINAPI ddrawex1_WaitForVerticalBlank ( IDirectDraw *  iface,
DWORD  flags,
HANDLE  event 
)
static

Definition at line 1183 of file ddraw.c.

1184{
1185 struct ddrawex *ddrawex = impl_from_IDirectDraw(iface);
1186
1187 TRACE("iface %p, flags %#lx, event %p.\n", iface, flags, event);
1188
1190}
static HRESULT WINAPI ddrawex4_WaitForVerticalBlank(IDirectDraw4 *iface, DWORD flags, HANDLE event)
Definition: ddraw.c:1156
Definition: filter.c:185

◆ ddrawex2_AddRef()

static ULONG WINAPI ddrawex2_AddRef ( IDirectDraw2 *  iface)
static

Definition at line 140 of file ddraw.c.

141{
142 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
143
144 TRACE("iface %p.\n", iface);
145
147}
static struct ddraw * impl_from_IDirectDraw2(IDirectDraw2 *iface)
Definition: ddraw.c:103

◆ ddrawex2_Compact()

static HRESULT WINAPI ddrawex2_Compact ( IDirectDraw2 *  iface)
static

Definition at line 219 of file ddraw.c.

220{
221 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
222
223 TRACE("iface %p.\n", iface);
224
226}

◆ ddrawex2_CreateClipper()

static HRESULT WINAPI ddrawex2_CreateClipper ( IDirectDraw2 *  iface,
DWORD  flags,
IDirectDrawClipper **  clipper,
IUnknown *  outer_unknown 
)
static

Definition at line 263 of file ddraw.c.

265{
266 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
267
268 TRACE("iface %p, flags %#lx, clipper %p, outer_unknown %p.\n",
269 iface, flags, clipper, outer_unknown);
270
271 return ddrawex4_CreateClipper(&ddrawex->IDirectDraw4_iface, flags, clipper, outer_unknown);
272}

◆ ddrawex2_CreatePalette()

static HRESULT WINAPI ddrawex2_CreatePalette ( IDirectDraw2 *  iface,
DWORD  flags,
PALETTEENTRY *  entries,
IDirectDrawPalette **  palette,
IUnknown *  outer_unknown 
)
static

Definition at line 311 of file ddraw.c.

313{
314 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
315
316 TRACE("iface %p, flags %#lx, entries %p, palette %p, outer_unknown %p.\n",
317 iface, flags, entries, palette, outer_unknown);
318
319 return ddrawex4_CreatePalette(&ddrawex->IDirectDraw4_iface, flags, entries, palette, outer_unknown);
320}

◆ ddrawex2_CreateSurface()

static HRESULT WINAPI ddrawex2_CreateSurface ( IDirectDraw2 *  iface,
DDSURFACEDESC *  desc,
IDirectDrawSurface **  surface,
IUnknown *  outer_unknown 
)
static

Definition at line 464 of file ddraw.c.

466{
467 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
468
469 TRACE("iface %p, desc %p, surface %p, outer_unknown %p.\n",
470 iface, desc, surface, outer_unknown);
471
472 return ddrawex3_CreateSurface(&ddrawex->IDirectDraw3_iface, desc, surface, outer_unknown);
473}

◆ ddrawex2_DuplicateSurface()

static HRESULT WINAPI ddrawex2_DuplicateSurface ( IDirectDraw2 *  iface,
IDirectDrawSurface *  src,
IDirectDrawSurface **  dst 
)
static

Definition at line 523 of file ddraw.c.

525{
526 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
527
528 TRACE("iface %p, src %p, dst %p.\n", iface, src, dst);
529
531}

◆ ddrawex2_EnumDisplayModes()

static HRESULT WINAPI ddrawex2_EnumDisplayModes ( IDirectDraw2 *  iface,
DWORD  flags,
DDSURFACEDESC *  desc,
void *  ctx,
LPDDENUMMODESCALLBACK  cb 
)
static

Definition at line 584 of file ddraw.c.

586{
587 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
588
589 TRACE("iface %p, flags %#lx, desc %p, ctx %p, cb %p.\n", iface, flags, desc, ctx, cb);
590
592}

◆ ddrawex2_EnumSurfaces()

static HRESULT WINAPI ddrawex2_EnumSurfaces ( IDirectDraw2 *  iface,
DWORD  flags,
DDSURFACEDESC *  desc,
void *  ctx,
LPDDENUMSURFACESCALLBACK  cb 
)
static

Definition at line 671 of file ddraw.c.

673{
674 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
675
676 TRACE("iface %p, flags %#lx, desc %p, ctx %p, cb %p.\n", iface, flags, desc, ctx, cb);
677
679}

◆ ddrawex2_FlipToGDISurface()

static HRESULT WINAPI ddrawex2_FlipToGDISurface ( IDirectDraw2 *  iface)
static

Definition at line 709 of file ddraw.c.

710{
711 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
712
713 TRACE("iface %p.\n", iface);
714
716}

◆ ddrawex2_GetAvailableVidMem()

static HRESULT WINAPI ddrawex2_GetAvailableVidMem ( IDirectDraw2 *  iface,
DDSCAPS *  caps,
DWORD *  total,
DWORD *  free 
)
static

Definition at line 1215 of file ddraw.c.

1217{
1218 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
1219 DDSCAPS2 caps2;
1220
1221 TRACE("iface %p, caps %p, total %p, free %p.\n", iface, caps, total, free);
1222
1223 memset(&caps2, 0, sizeof(caps2));
1224 caps2.dwCaps = caps->dwCaps;
1226}
#define free
Definition: debug_ros.c:5
static HRESULT WINAPI ddrawex4_GetAvailableVidMem(IDirectDraw4 *iface, DDSCAPS2 *caps, DWORD *total, DWORD *free)
Definition: ddraw.c:1192
size_t total
#define memset(x, y, z)
Definition: compat.h:39
DWORD dwCaps
Definition: ddraw.h:734
DWORD dwCaps
Definition: ddraw.h:729

◆ ddrawex2_GetCaps()

static HRESULT WINAPI ddrawex2_GetCaps ( IDirectDraw2 *  iface,
DDCAPS *  driver_caps,
DDCAPS *  hel_caps 
)
static

Definition at line 745 of file ddraw.c.

746{
747 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
748
749 TRACE("iface %p, driver_caps %p, hel_caps %p.\n", iface, driver_caps, hel_caps);
750
751 return ddrawex4_GetCaps(&ddrawex->IDirectDraw4_iface, driver_caps, hel_caps);
752}

◆ ddrawex2_GetDisplayMode()

static HRESULT WINAPI ddrawex2_GetDisplayMode ( IDirectDraw2 *  iface,
DDSURFACEDESC *  desc 
)
static

Definition at line 786 of file ddraw.c.

787{
788 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
789
790 TRACE("iface %p, desc %p.\n", iface, desc);
791
793}

◆ ddrawex2_GetFourCCCodes()

static HRESULT WINAPI ddrawex2_GetFourCCCodes ( IDirectDraw2 *  iface,
DWORD *  code_count,
DWORD *  codes 
)
static

Definition at line 822 of file ddraw.c.

823{
824 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
825
826 TRACE("iface %p, code_count %p, codes %p.\n", iface, code_count, codes);
827
828 return ddrawex4_GetFourCCCodes(&ddrawex->IDirectDraw4_iface, code_count, codes);
829}

◆ ddrawex2_GetGDISurface()

static HRESULT WINAPI ddrawex2_GetGDISurface ( IDirectDraw2 *  iface,
IDirectDrawSurface **  gdi_surface 
)
static

Definition at line 879 of file ddraw.c.

880{
881 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
882
883 TRACE("iface %p, gdi_surface %p.\n", iface, gdi_surface);
884
886}

◆ ddrawex2_GetMonitorFrequency()

static HRESULT WINAPI ddrawex2_GetMonitorFrequency ( IDirectDraw2 *  iface,
DWORD *  frequency 
)
static

Definition at line 915 of file ddraw.c.

916{
917 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
918
919 TRACE("iface %p, frequency %p.\n", iface, frequency);
920
922}

◆ ddrawex2_GetScanLine()

static HRESULT WINAPI ddrawex2_GetScanLine ( IDirectDraw2 *  iface,
DWORD *  line 
)
static

Definition at line 951 of file ddraw.c.

952{
953 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
954
955 TRACE("iface %p, line %p.\n", iface, line);
956
958}

◆ ddrawex2_GetVerticalBlankStatus()

static HRESULT WINAPI ddrawex2_GetVerticalBlankStatus ( IDirectDraw2 *  iface,
BOOL *  status 
)
static

Definition at line 987 of file ddraw.c.

988{
989 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
990
991 TRACE("iface %p, status %p.\n", iface, status);
992
994}

◆ ddrawex2_Initialize()

static HRESULT WINAPI ddrawex2_Initialize ( IDirectDraw2 *  iface,
GUID *  guid 
)
static

Definition at line 1023 of file ddraw.c.

1024{
1025 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
1026
1027 TRACE("iface %p, guid %s.\n", iface, debugstr_guid(guid));
1028
1030}

◆ ddrawex2_QueryInterface()

static HRESULT WINAPI ddrawex2_QueryInterface ( IDirectDraw2 *  iface,
REFIID  riid,
void **  out 
)
static

Definition at line 103 of file ddraw.c.

104{
105 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
106
107 TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
108
110}

◆ ddrawex2_Release()

static ULONG WINAPI ddrawex2_Release ( IDirectDraw2 *  iface)
static

Definition at line 183 of file ddraw.c.

184{
185 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
186
187 TRACE("iface %p.\n", iface);
188
190}

◆ ddrawex2_RestoreDisplayMode()

static HRESULT WINAPI ddrawex2_RestoreDisplayMode ( IDirectDraw2 *  iface)
static

Definition at line 1059 of file ddraw.c.

1060{
1061 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
1062
1063 TRACE("iface %p.\n", iface);
1064
1066}

◆ ddrawex2_SetCooperativeLevel()

static HRESULT WINAPI ddrawex2_SetCooperativeLevel ( IDirectDraw2 *  iface,
HWND  window,
DWORD  flags 
)
static

Definition at line 1095 of file ddraw.c.

1096{
1097 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
1098
1099 TRACE("iface %p, window %p, flags %#lx.\n", iface, window, flags);
1100
1102}

◆ ddrawex2_SetDisplayMode()

static HRESULT WINAPI ddrawex2_SetDisplayMode ( IDirectDraw2 *  iface,
DWORD  width,
DWORD  height,
DWORD  bpp,
DWORD  refresh_rate,
DWORD  flags 
)
static

Definition at line 1135 of file ddraw.c.

1137{
1138 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
1139
1140 TRACE("iface %p, width %lu, height %lu, bpp %lu, refresh_rate %lu, flags %#lx.\n",
1141 iface, width, height, bpp, refresh_rate, flags);
1142
1144}

◆ ddrawex2_WaitForVerticalBlank()

static HRESULT WINAPI ddrawex2_WaitForVerticalBlank ( IDirectDraw2 *  iface,
DWORD  flags,
HANDLE  event 
)
static

Definition at line 1174 of file ddraw.c.

1175{
1176 struct ddrawex *ddrawex = impl_from_IDirectDraw2(iface);
1177
1178 TRACE("iface %p, flags %#lx, event %p.\n", iface, flags, event);
1179
1181}

◆ ddrawex3_AddRef()

static ULONG WINAPI ddrawex3_AddRef ( IDirectDraw3 *  iface)
static

Definition at line 131 of file ddraw.c.

132{
133 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
134
135 TRACE("iface %p.\n", iface);
136
138}
static struct ddrawex * impl_from_IDirectDraw3(IDirectDraw3 *iface)
Definition: ddraw.c:44

◆ ddrawex3_Compact()

static HRESULT WINAPI ddrawex3_Compact ( IDirectDraw3 *  iface)
static

Definition at line 210 of file ddraw.c.

211{
212 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
213
214 TRACE("iface %p.\n", iface);
215
217}

◆ ddrawex3_CreateClipper()

static HRESULT WINAPI ddrawex3_CreateClipper ( IDirectDraw3 *  iface,
DWORD  flags,
IDirectDrawClipper **  clipper,
IUnknown *  outer_unknown 
)
static

Definition at line 252 of file ddraw.c.

254{
255 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
256
257 TRACE("iface %p, flags %#lx, clipper %p, outer_unknown %p.\n",
258 iface, flags, clipper, outer_unknown);
259
260 return ddrawex4_CreateClipper(&ddrawex->IDirectDraw4_iface, flags, clipper, outer_unknown);
261}

◆ ddrawex3_CreatePalette()

static HRESULT WINAPI ddrawex3_CreatePalette ( IDirectDraw3 *  iface,
DWORD  flags,
PALETTEENTRY *  entries,
IDirectDrawPalette **  palette,
IUnknown *  outer_unknown 
)
static

Definition at line 300 of file ddraw.c.

302{
303 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
304
305 TRACE("iface %p, flags %#lx, entries %p, palette %p, outer_unknown %p.\n",
306 iface, flags, entries, palette, outer_unknown);
307
308 return ddrawex4_CreatePalette(&ddrawex->IDirectDraw4_iface, flags, entries, palette, outer_unknown);
309}

◆ ddrawex3_CreateSurface()

static HRESULT WINAPI ddrawex3_CreateSurface ( IDirectDraw3 *  iface,
DDSURFACEDESC *  desc,
IDirectDrawSurface **  surface,
IUnknown *  outer_unknown 
)
static

Definition at line 440 of file ddraw.c.

442{
443 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
444 DDSURFACEDESC2 ddsd2;
445 IDirectDrawSurface4 *surf4 = NULL;
446 HRESULT hr;
447
448 TRACE("iface %p, desc %p, surface %p, outer_unknown %p.\n",
449 iface, desc, surface, outer_unknown);
450
451 DDSD_to_DDSD2(desc, &ddsd2);
452 if (FAILED(hr = ddrawex4_CreateSurface(&ddrawex->IDirectDraw4_iface, &ddsd2, &surf4, outer_unknown)))
453 {
454 *surface = NULL;
455 return hr;
456 }
457
458 TRACE("Got surface %p\n", surf4);
459 IDirectDrawSurface4_QueryInterface(surf4, &IID_IDirectDrawSurface, (void **)surface);
460 IDirectDrawSurface4_Release(surf4);
461 return hr;
462}
void DDSD_to_DDSD2(const DDSURFACEDESC *in, DDSURFACEDESC2 *out)
Definition: utils.c:1198
HRESULT hr
Definition: delayimp.cpp:582
static HRESULT WINAPI ddrawex4_CreateSurface(IDirectDraw4 *iface, DDSURFACEDESC2 *desc, IDirectDrawSurface4 **surface, IUnknown *outer_unknown)
Definition: ddraw.c:333
#define FAILED(hr)
Definition: intsafe.h:51

Referenced by ddrawex1_CreateSurface(), and ddrawex2_CreateSurface().

◆ ddrawex3_DuplicateSurface()

static HRESULT WINAPI ddrawex3_DuplicateSurface ( IDirectDraw3 *  iface,
IDirectDrawSurface *  src,
IDirectDrawSurface **  dst 
)
static

Definition at line 498 of file ddraw.c.

500{
501 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
502 IDirectDrawSurface4 *src_4;
503 IDirectDrawSurface4 *dst_4;
504 HRESULT hr;
505
506 TRACE("iface %p, src %p, dst %p.\n", iface, src, dst);
507
508 IDirectDrawSurface_QueryInterface(src, &IID_IDirectDrawSurface4, (void **)&src_4);
510 IDirectDrawSurface4_Release(src_4);
511 if (FAILED(hr))
512 {
513 *dst = NULL;
514 return hr;
515 }
516
517 IDirectDrawSurface4_QueryInterface(dst_4, &IID_IDirectDrawSurface, (void **)dst);
518 IDirectDrawSurface4_Release(dst_4);
519
520 return hr;
521}
static HRESULT WINAPI ddrawex4_DuplicateSurface(IDirectDraw4 *iface, IDirectDrawSurface4 *src, IDirectDrawSurface4 **dst)
Definition: ddraw.c:486

Referenced by ddrawex1_DuplicateSurface(), and ddrawex2_DuplicateSurface().

◆ ddrawex3_EnumDisplayModes()

static HRESULT WINAPI ddrawex3_EnumDisplayModes ( IDirectDraw3 *  iface,
DWORD  flags,
DDSURFACEDESC *  desc,
void *  ctx,
LPDDENUMMODESCALLBACK  cb 
)
static

Definition at line 569 of file ddraw.c.

571{
572 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
573 struct enummodes_ctx cb_ctx;
574 DDSURFACEDESC2 ddsd2;
575
576 TRACE("iface %p, flags %#lx, desc %p, ctx %p, cb %p.\n", iface, flags, desc, ctx, cb);
577
578 DDSD_to_DDSD2(desc, &ddsd2);
579 cb_ctx.orig_cb = cb;
580 cb_ctx.orig_ctx = ctx;
582}
static HRESULT WINAPI enum_modes_cb2(DDSURFACEDESC2 *ddsd2, void *vctx)
Definition: ddraw.c:560
static HRESULT WINAPI ddrawex4_EnumDisplayModes(IDirectDraw4 *iface, DWORD flags, DDSURFACEDESC2 *desc, void *ctx, LPDDENUMMODESCALLBACK2 cb)
Definition: ddraw.c:543

Referenced by ddrawex1_EnumDisplayModes(), and ddrawex2_EnumDisplayModes().

◆ ddrawex3_EnumSurfaces()

static HRESULT WINAPI ddrawex3_EnumSurfaces ( IDirectDraw3 *  iface,
DWORD  flags,
DDSURFACEDESC *  desc,
void *  ctx,
LPDDENUMSURFACESCALLBACK  cb 
)
static

Definition at line 656 of file ddraw.c.

658{
659 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
660 DDSURFACEDESC2 ddsd2;
661 struct enumsurfaces_ctx cb_ctx;
662
663 TRACE("iface %p, flags %#lx, desc %p, ctx %p, cb %p.\n", iface, flags, desc, ctx, cb);
664
665 DDSD_to_DDSD2(desc, &ddsd2);
666 cb_ctx.orig_cb = cb;
667 cb_ctx.orig_ctx = ctx;
669}
static HRESULT WINAPI ddrawex4_EnumSurfaces(IDirectDraw4 *iface, DWORD flags, DDSURFACEDESC2 *desc, void *ctx, LPDDENUMSURFACESCALLBACK2 cb)
Definition: ddraw.c:621
static HRESULT WINAPI enum_surfaces_cb2(IDirectDrawSurface4 *surf4, DDSURFACEDESC2 *ddsd2, void *vctx)
Definition: ddraw.c:641

Referenced by ddrawex1_EnumSurfaces(), and ddrawex2_EnumSurfaces().

◆ ddrawex3_FlipToGDISurface()

static HRESULT WINAPI ddrawex3_FlipToGDISurface ( IDirectDraw3 *  iface)
static

Definition at line 700 of file ddraw.c.

701{
702 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
703
704 TRACE("iface %p.\n", iface);
705
707}

◆ ddrawex3_GetAvailableVidMem()

static HRESULT WINAPI ddrawex3_GetAvailableVidMem ( IDirectDraw3 *  iface,
DDSCAPS *  caps,
DWORD *  total,
DWORD *  free 
)
static

Definition at line 1202 of file ddraw.c.

1204{
1205 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
1206 DDSCAPS2 caps2;
1207
1208 TRACE("iface %p, caps %p, total %p, free %p.\n", iface, caps, total, free);
1209
1210 memset(&caps2, 0, sizeof(caps2));
1211 caps2.dwCaps = caps->dwCaps;
1213}

◆ ddrawex3_GetCaps()

static HRESULT WINAPI ddrawex3_GetCaps ( IDirectDraw3 *  iface,
DDCAPS *  driver_caps,
DDCAPS *  hel_caps 
)
static

Definition at line 736 of file ddraw.c.

737{
738 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
739
740 TRACE("iface %p, driver_caps %p, hel_caps %p.\n", iface, driver_caps, hel_caps);
741
742 return ddrawex4_GetCaps(&ddrawex->IDirectDraw4_iface, driver_caps, hel_caps);
743}

◆ ddrawex3_GetDisplayMode()

static HRESULT WINAPI ddrawex3_GetDisplayMode ( IDirectDraw3 *  iface,
DDSURFACEDESC *  desc 
)
static

Definition at line 772 of file ddraw.c.

773{
774 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
775 DDSURFACEDESC2 ddsd2;
776 HRESULT hr;
777
778 TRACE("iface %p, desc %p.\n", iface, desc);
779
781 DDSD2_to_DDSD(&ddsd2, desc);
782
783 return hr;
784}
void DDSD2_to_DDSD(const DDSURFACEDESC2 *in, DDSURFACEDESC *out)
Definition: utils.c:1242
static HRESULT WINAPI ddrawex4_GetDisplayMode(IDirectDraw4 *iface, DDSURFACEDESC2 *desc)
Definition: ddraw.c:763

Referenced by ddrawex1_GetDisplayMode(), and ddrawex2_GetDisplayMode().

◆ ddrawex3_GetFourCCCodes()

static HRESULT WINAPI ddrawex3_GetFourCCCodes ( IDirectDraw3 *  iface,
DWORD *  code_count,
DWORD *  codes 
)
static

Definition at line 813 of file ddraw.c.

814{
815 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
816
817 TRACE("iface %p, code_count %p, codes %p.\n", iface, code_count, codes);
818
819 return ddrawex4_GetFourCCCodes(&ddrawex->IDirectDraw4_iface, code_count, codes);
820}

◆ ddrawex3_GetGDISurface()

static HRESULT WINAPI ddrawex3_GetGDISurface ( IDirectDraw3 *  iface,
IDirectDrawSurface **  gdi_surface 
)
static

Definition at line 860 of file ddraw.c.

861{
862 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
863 IDirectDrawSurface4 *surf4;
864 HRESULT hr;
865
866 TRACE("iface %p, gdi_surface %p.\n", iface, gdi_surface);
867
869 {
870 *gdi_surface = NULL;
871 return hr;
872 }
873
874 IDirectDrawSurface4_QueryInterface(surf4, &IID_IDirectDrawSurface, (void **)gdi_surface);
875 IDirectDrawSurface4_Release(surf4);
876 return hr;
877}
static HRESULT WINAPI ddrawex4_GetGDISurface(IDirectDraw4 *iface, IDirectDrawSurface4 **gdi_surface)
Definition: ddraw.c:840

Referenced by ddrawex1_GetGDISurface(), and ddrawex2_GetGDISurface().

◆ ddrawex3_GetMonitorFrequency()

static HRESULT WINAPI ddrawex3_GetMonitorFrequency ( IDirectDraw3 *  iface,
DWORD *  frequency 
)
static

Definition at line 906 of file ddraw.c.

907{
908 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
909
910 TRACE("iface %p, frequency %p.\n", iface, frequency);
911
913}

◆ ddrawex3_GetScanLine()

static HRESULT WINAPI ddrawex3_GetScanLine ( IDirectDraw3 *  iface,
DWORD *  line 
)
static

Definition at line 942 of file ddraw.c.

943{
944 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
945
946 TRACE("iface %p, line %p.\n", iface, line);
947
949}

◆ ddrawex3_GetSurfaceFromDC()

static HRESULT WINAPI ddrawex3_GetSurfaceFromDC ( IDirectDraw3 *  iface,
HDC  dc,
IDirectDrawSurface **  surface 
)
static

Definition at line 1238 of file ddraw.c.

1240{
1241 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
1242 IDirectDrawSurface4 *surf4, *outer;
1243 IDirectDrawSurface *inner;
1244 HRESULT hr;
1245
1246 TRACE("iface %p, dc %p, surface %p.\n", iface, dc, surface);
1247
1248 if (!surface)
1249 return E_POINTER;
1250
1251 if (FAILED(hr = IDirectDraw4_GetSurfaceFromDC(ddrawex->parent, dc, (IDirectDrawSurface4 **)&inner)))
1252 {
1253 *surface = NULL;
1254 return hr;
1255 }
1256
1257 hr = IDirectDrawSurface_QueryInterface(inner, &IID_IDirectDrawSurface4, (void **)&surf4);
1258 IDirectDrawSurface_Release(inner);
1259 if (FAILED(hr))
1260 {
1261 *surface = NULL;
1262 return hr;
1263 }
1264
1265 outer = dds_get_outer(surf4);
1266 hr = IDirectDrawSurface4_QueryInterface(outer, &IID_IDirectDrawSurface, (void **)surface);
1267 IDirectDrawSurface4_Release(surf4);
1268 return hr;
1269}
HDC dc
Definition: cylfrac.c:34
IDirectDrawSurface4 * dds_get_outer(IDirectDrawSurface4 *inner)
Definition: surface.c:1195
#define E_POINTER
Definition: winerror.h:3480

◆ ddrawex3_GetVerticalBlankStatus()

static HRESULT WINAPI ddrawex3_GetVerticalBlankStatus ( IDirectDraw3 *  iface,
BOOL *  status 
)
static

Definition at line 978 of file ddraw.c.

979{
980 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
981
982 TRACE("iface %p, status %p.\n", iface, status);
983
985}

◆ ddrawex3_Initialize()

static HRESULT WINAPI ddrawex3_Initialize ( IDirectDraw3 *  iface,
GUID *  guid 
)
static

Definition at line 1014 of file ddraw.c.

1015{
1016 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
1017
1018 TRACE("iface %p, guid %s.\n", iface, debugstr_guid(guid));
1019
1021}

◆ ddrawex3_QueryInterface()

static HRESULT WINAPI ddrawex3_QueryInterface ( IDirectDraw3 *  iface,
REFIID  riid,
void **  out 
)
static

Definition at line 94 of file ddraw.c.

95{
96 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
97
98 TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
99
101}

◆ ddrawex3_Release()

static ULONG WINAPI ddrawex3_Release ( IDirectDraw3 *  iface)
static

Definition at line 174 of file ddraw.c.

175{
176 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
177
178 TRACE("iface %p.\n", iface);
179
181}

◆ ddrawex3_RestoreDisplayMode()

static HRESULT WINAPI ddrawex3_RestoreDisplayMode ( IDirectDraw3 *  iface)
static

Definition at line 1050 of file ddraw.c.

1051{
1052 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
1053
1054 TRACE("iface %p.\n", iface);
1055
1057}

◆ ddrawex3_SetCooperativeLevel()

static HRESULT WINAPI ddrawex3_SetCooperativeLevel ( IDirectDraw3 *  iface,
HWND  window,
DWORD  flags 
)
static

Definition at line 1086 of file ddraw.c.

1087{
1088 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
1089
1090 TRACE("iface %p, window %p, flags %#lx.\n", iface, window, flags);
1091
1093}

◆ ddrawex3_SetDisplayMode()

static HRESULT WINAPI ddrawex3_SetDisplayMode ( IDirectDraw3 *  iface,
DWORD  width,
DWORD  height,
DWORD  bpp,
DWORD  refresh_rate,
DWORD  flags 
)
static

Definition at line 1124 of file ddraw.c.

1126{
1127 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
1128
1129 TRACE("iface %p, width %lu, height %lu, bpp %lu, refresh_rate %lu, flags %#lx.\n",
1130 iface, width, height, bpp, refresh_rate, flags);
1131
1133}

◆ ddrawex3_WaitForVerticalBlank()

static HRESULT WINAPI ddrawex3_WaitForVerticalBlank ( IDirectDraw3 *  iface,
DWORD  flags,
HANDLE  event 
)
static

Definition at line 1165 of file ddraw.c.

1166{
1167 struct ddrawex *ddrawex = impl_from_IDirectDraw3(iface);
1168
1169 TRACE("iface %p, flags %#lx, event %p.\n", iface, flags, event);
1170
1172}

◆ ddrawex4_AddRef()

static ULONG WINAPI ddrawex4_AddRef ( IDirectDraw4 *  iface)
static

Definition at line 121 of file ddraw.c.

122{
123 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
125
126 TRACE("%p increasing refcount to %lu.\n", iface, refcount);
127
128 return refcount;
129}
#define InterlockedIncrement
Definition: armddk.h:53
uint32_t ULONG
Definition: typedefs.h:59

Referenced by ddrawex1_AddRef(), ddrawex2_AddRef(), and ddrawex3_AddRef().

◆ ddrawex4_Compact()

static HRESULT WINAPI ddrawex4_Compact ( IDirectDraw4 *  iface)
static

Definition at line 201 of file ddraw.c.

202{
203 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
204
205 TRACE("iface %p.\n", iface);
206
207 return IDirectDraw4_Compact(ddrawex->parent);
208}

Referenced by ddrawex1_Compact(), ddrawex2_Compact(), and ddrawex3_Compact().

◆ ddrawex4_CreateClipper()

static HRESULT WINAPI ddrawex4_CreateClipper ( IDirectDraw4 *  iface,
DWORD  flags,
IDirectDrawClipper **  clipper,
IUnknown *  outer_unknown 
)
static

Definition at line 237 of file ddraw.c.

239{
240 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
241
242 TRACE("iface %p, flags %#lx, clipper %p, outer_unknown %p.\n",
243 iface, flags, clipper, outer_unknown);
244
245 /* This may require a wrapper interface for clippers too which handles this. */
246 if (outer_unknown)
247 FIXME("Test and implement aggregation for ddrawex clippers.\n");
248
249 return IDirectDraw4_CreateClipper(ddrawex->parent, flags, clipper, outer_unknown);
250}
#define FIXME(fmt,...)
Definition: precomp.h:53

Referenced by ddrawex1_CreateClipper(), ddrawex2_CreateClipper(), and ddrawex3_CreateClipper().

◆ ddrawex4_CreatePalette()

static HRESULT WINAPI ddrawex4_CreatePalette ( IDirectDraw4 *  iface,
DWORD  flags,
PALETTEENTRY *  entries,
IDirectDrawPalette **  palette,
IUnknown *  outer_unknown 
)
static

Definition at line 285 of file ddraw.c.

287{
288 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
289
290 TRACE("iface %p, flags %#lx, entries %p, palette %p, outer_unknown %p.\n",
291 iface, flags, entries, palette, outer_unknown);
292
293 /* This may require a wrapper interface for palettes too which handles this. */
294 if (outer_unknown)
295 FIXME("Test and implement aggregation for ddrawex palettes.\n");
296
297 return IDirectDraw4_CreatePalette(ddrawex->parent, flags, entries, palette, outer_unknown);
298}

Referenced by ddrawex1_CreatePalette(), ddrawex2_CreatePalette(), and ddrawex3_CreatePalette().

◆ ddrawex4_CreateSurface()

static HRESULT WINAPI ddrawex4_CreateSurface ( IDirectDraw4 *  iface,
DDSURFACEDESC2 *  desc,
IDirectDrawSurface4 **  surface,
IUnknown *  outer_unknown 
)
static

Definition at line 333 of file ddraw.c.

335{
336 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
337 HRESULT hr;
338 const DWORD perm_dc_flags = DDSCAPS_VIDEOMEMORY | DDSCAPS_SYSTEMMEMORY;
339 BOOL permanent_dc;
340 IDirectDrawSurface4 *inner_surface;
341
342 TRACE("iface %p, desc %p, surface %p, outer_unknown %p.\n",
343 iface, desc, surface, outer_unknown);
344
345 /* Handle this in this dll. Don't forward the outer_unknown to ddraw.dll. */
346 if (outer_unknown)
347 FIXME("Implement aggregation for ddrawex surfaces.\n");
348
349 /* Plain ddraw.dll refuses to create a surface that has both VIDMEM and
350 * SYSMEM flags set. In ddrawex this succeeds, and the GetDC() call
351 * changes the behavior. The DC is permanently valid, and the surface can
352 * be locked between GetDC() and ReleaseDC() calls. GetDC() can be called
353 * more than once too. */
354 if ((desc->ddsCaps.dwCaps & perm_dc_flags) == perm_dc_flags)
355 {
356 permanent_dc = TRUE;
357 desc->ddsCaps.dwCaps &= ~DDSCAPS_VIDEOMEMORY;
358 desc->ddsCaps.dwCaps |= DDSCAPS_OWNDC;
359 }
360 else
361 {
362 permanent_dc = FALSE;
363 }
364
365 hr = IDirectDraw4_CreateSurface(ddrawex->parent, desc, &inner_surface, outer_unknown);
366 if (FAILED(hr))
367 {
368 *surface = NULL;
369 return hr;
370 }
371
372 *surface = dds_get_outer(inner_surface);
373 /* The wrapper created by dds_get_outer holds a reference to its inner surface. */
374 IDirectDrawSurface4_Release(inner_surface);
375
376 if (permanent_dc)
377 prepare_permanent_dc(*surface);
378
379 return hr;
380}
HRESULT prepare_permanent_dc(IDirectDrawSurface4 *iface)
Definition: surface.c:1234
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
#define DDSCAPS_VIDEOMEMORY
Definition: ddraw.h:266
#define DDSCAPS_OWNDC
Definition: ddraw.h:270
#define DDSCAPS_SYSTEMMEMORY
Definition: ddraw.h:263

Referenced by ddrawex3_CreateSurface().

◆ ddrawex4_DuplicateSurface()

static HRESULT WINAPI ddrawex4_DuplicateSurface ( IDirectDraw4 *  iface,
IDirectDrawSurface4 *  src,
IDirectDrawSurface4 **  dst 
)
static

Definition at line 486 of file ddraw.c.

488{
489 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
491
492 TRACE("iface %p, src %p, dst %p.\n", iface, src, dst);
493 FIXME("Create a wrapper surface.\n");
494
495 return IDirectDraw4_DuplicateSurface(ddrawex->parent, src_impl ? src_impl->parent : NULL, dst);
496}
struct ddraw_surface * unsafe_impl_from_IDirectDrawSurface4(IDirectDrawSurface4 *iface)
Definition: surface.c:5966
IDirectDrawSurface4 * parent

Referenced by ddrawex3_DuplicateSurface().

◆ ddrawex4_EnumDisplayModes()

static HRESULT WINAPI ddrawex4_EnumDisplayModes ( IDirectDraw4 *  iface,
DWORD  flags,
DDSURFACEDESC2 *  desc,
void *  ctx,
LPDDENUMMODESCALLBACK2  cb 
)
static

Definition at line 543 of file ddraw.c.

545{
546 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
547
548 TRACE("iface %p, flags %#lx, desc %p, ctx %p, cb %p.\n", iface, flags, desc, ctx, cb);
549
550 return IDirectDraw4_EnumDisplayModes(ddrawex->parent, flags, desc, ctx, cb);
551}

Referenced by ddrawex3_EnumDisplayModes().

◆ ddrawex4_EnumSurfaces()

static HRESULT WINAPI ddrawex4_EnumSurfaces ( IDirectDraw4 *  iface,
DWORD  flags,
DDSURFACEDESC2 *  desc,
void *  ctx,
LPDDENUMSURFACESCALLBACK2  cb 
)
static

Definition at line 621 of file ddraw.c.

623{
624 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
625 struct enumsurfaces4_ctx cb_ctx;
626
627 TRACE("iface %p, flags %#lx, desc %p, ctx %p, cb %p.\n", iface, flags, desc, ctx, cb);
628
629 cb_ctx.orig_cb = cb;
630 cb_ctx.orig_ctx = ctx;
631 return IDirectDraw4_EnumSurfaces(ddrawex->parent, flags, desc, &cb_ctx, enum_surfaces_wrapper);
632}
static HRESULT WINAPI enum_surfaces_wrapper(IDirectDrawSurface4 *surf4, DDSURFACEDESC2 *ddsd2, void *vctx)
Definition: ddraw.c:611

Referenced by ddrawex3_EnumSurfaces().

◆ ddrawex4_FlipToGDISurface()

static HRESULT WINAPI ddrawex4_FlipToGDISurface ( IDirectDraw4 *  iface)
static

Definition at line 691 of file ddraw.c.

692{
693 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
694
695 TRACE("iface %p.\n", iface);
696
697 return IDirectDraw4_FlipToGDISurface(ddrawex->parent);
698}

Referenced by ddrawex1_FlipToGDISurface(), ddrawex2_FlipToGDISurface(), and ddrawex3_FlipToGDISurface().

◆ ddrawex4_GetAvailableVidMem()

static HRESULT WINAPI ddrawex4_GetAvailableVidMem ( IDirectDraw4 *  iface,
DDSCAPS2 *  caps,
DWORD *  total,
DWORD *  free 
)
static

Definition at line 1192 of file ddraw.c.

1194{
1195 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
1196
1197 TRACE("iface %p, caps %p, total %p, free %p.\n", iface, caps, total, free);
1198
1199 return IDirectDraw4_GetAvailableVidMem(ddrawex->parent, caps, total, free);
1200}

Referenced by ddrawex2_GetAvailableVidMem(), and ddrawex3_GetAvailableVidMem().

◆ ddrawex4_GetCaps()

static HRESULT WINAPI ddrawex4_GetCaps ( IDirectDraw4 *  iface,
DDCAPS *  driver_caps,
DDCAPS *  hel_caps 
)
static

Definition at line 727 of file ddraw.c.

728{
729 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
730
731 TRACE("iface %p, driver_caps %p, hel_caps %p.\n", iface, driver_caps, hel_caps);
732
733 return IDirectDraw4_GetCaps(ddrawex->parent, driver_caps, hel_caps);
734}

Referenced by ddrawex1_GetCaps(), ddrawex2_GetCaps(), and ddrawex3_GetCaps().

◆ ddrawex4_GetDeviceIdentifier()

static HRESULT WINAPI ddrawex4_GetDeviceIdentifier ( IDirectDraw4 *  iface,
DDDEVICEIDENTIFIER *  identifier,
DWORD  flags 
)
static

Definition at line 1289 of file ddraw.c.

1291{
1292 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
1293
1294 TRACE("iface %p, identifier %p, flags %#lx.\n", iface, identifier, flags);
1295
1296 return IDirectDraw4_GetDeviceIdentifier(ddrawex->parent, identifier, flags);
1297}

◆ ddrawex4_GetDisplayMode()

static HRESULT WINAPI ddrawex4_GetDisplayMode ( IDirectDraw4 *  iface,
DDSURFACEDESC2 *  desc 
)
static

Definition at line 763 of file ddraw.c.

764{
765 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
766
767 TRACE("iface %p, desc %p.\n", iface, desc);
768
769 return IDirectDraw4_GetDisplayMode(ddrawex->parent, desc);
770}

Referenced by ddrawex3_GetDisplayMode().

◆ ddrawex4_GetFourCCCodes()

static HRESULT WINAPI ddrawex4_GetFourCCCodes ( IDirectDraw4 *  iface,
DWORD *  code_count,
DWORD *  codes 
)
static

Definition at line 804 of file ddraw.c.

805{
806 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
807
808 TRACE("iface %p, code_count %p, codes %p.\n", iface, code_count, codes);
809
810 return IDirectDraw4_GetFourCCCodes(ddrawex->parent, code_count, codes);
811}

Referenced by ddrawex1_GetFourCCCodes(), ddrawex2_GetFourCCCodes(), and ddrawex3_GetFourCCCodes().

◆ ddrawex4_GetGDISurface()

static HRESULT WINAPI ddrawex4_GetGDISurface ( IDirectDraw4 *  iface,
IDirectDrawSurface4 **  gdi_surface 
)
static

Definition at line 840 of file ddraw.c.

841{
842 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
843 IDirectDrawSurface4 *inner = NULL;
844 HRESULT hr;
845
846 TRACE("iface %p, gdi_surface %p.\n", iface, gdi_surface);
847
848 if (FAILED(hr = IDirectDraw4_GetGDISurface(ddrawex->parent, &inner)))
849 {
850 *gdi_surface = NULL;
851 return hr;
852 }
853
854 *gdi_surface = dds_get_outer(inner);
855 IDirectDrawSurface4_AddRef(*gdi_surface);
856 IDirectDrawSurface4_Release(inner);
857 return hr;
858}

Referenced by ddrawex3_GetGDISurface().

◆ ddrawex4_GetMonitorFrequency()

static HRESULT WINAPI ddrawex4_GetMonitorFrequency ( IDirectDraw4 *  iface,
DWORD *  frequency 
)
static

Definition at line 897 of file ddraw.c.

898{
899 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
900
901 TRACE("iface %p, frequency %p.\n", iface, frequency);
902
903 return IDirectDraw4_GetMonitorFrequency(ddrawex->parent, frequency);
904}

Referenced by ddrawex1_GetMonitorFrequency(), ddrawex2_GetMonitorFrequency(), and ddrawex3_GetMonitorFrequency().

◆ ddrawex4_GetScanLine()

static HRESULT WINAPI ddrawex4_GetScanLine ( IDirectDraw4 *  iface,
DWORD *  line 
)
static

Definition at line 933 of file ddraw.c.

934{
935 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
936
937 TRACE("iface %p, line %p.\n", iface, line);
938
939 return IDirectDraw4_GetScanLine(ddrawex->parent, line);
940}

Referenced by ddrawex1_GetScanLine(), ddrawex2_GetScanLine(), and ddrawex3_GetScanLine().

◆ ddrawex4_GetSurfaceFromDC()

static HRESULT WINAPI ddrawex4_GetSurfaceFromDC ( IDirectDraw4 *  iface,
HDC  dc,
IDirectDrawSurface4 **  surface 
)
static

Definition at line 1228 of file ddraw.c.

1230{
1231 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
1232
1233 TRACE("iface %p, dc %p, surface %p.\n", iface, dc, surface);
1234
1235 return IDirectDraw4_GetSurfaceFromDC(ddrawex->parent, dc, surface);
1236}

◆ ddrawex4_GetVerticalBlankStatus()

static HRESULT WINAPI ddrawex4_GetVerticalBlankStatus ( IDirectDraw4 *  iface,
BOOL *  status 
)
static

Definition at line 969 of file ddraw.c.

970{
971 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
972
973 TRACE("iface %p, status %p.\n", iface, status);
974
975 return IDirectDraw4_GetVerticalBlankStatus(ddrawex->parent, status);
976}

Referenced by ddrawex1_GetVerticalBlankStatus(), ddrawex2_GetVerticalBlankStatus(), and ddrawex3_GetVerticalBlankStatus().

◆ ddrawex4_Initialize()

static HRESULT WINAPI ddrawex4_Initialize ( IDirectDraw4 *  iface,
GUID *  guid 
)
static

Definition at line 1005 of file ddraw.c.

1006{
1007 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
1008
1009 TRACE("iface %p, guid %s.\n", iface, debugstr_guid(guid));
1010
1011 return IDirectDraw4_Initialize(ddrawex->parent, guid);
1012}

Referenced by ddrawex1_Initialize(), ddrawex2_Initialize(), and ddrawex3_Initialize().

◆ ddrawex4_QueryInterface()

static HRESULT WINAPI ddrawex4_QueryInterface ( IDirectDraw4 *  iface,
REFIID  riid,
void **  out 
)
static

Definition at line 54 of file ddraw.c.

55{
56 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
57
58 TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
59
60 if (!riid)
61 {
62 *out = NULL;
64 }
65
66 if (IsEqualGUID(&IID_IDirectDraw4, riid)
68 {
70 }
71 else if (IsEqualGUID(&IID_IDirectDraw3, riid))
72 {
74 }
75 else if (IsEqualGUID(&IID_IDirectDraw2, riid))
76 {
78 }
79 else if (IsEqualGUID(&IID_IDirectDraw, riid))
80 {
82 }
83 else
84 {
85 *out = NULL;
86 WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid));
87 return E_NOINTERFACE;
88 }
89
90 IUnknown_AddRef((IUnknown *)*out);
91 return S_OK;
92}
#define WARN(fmt,...)
Definition: precomp.h:61
const GUID IID_IUnknown
#define S_OK
Definition: intsafe.h:52
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define DDERR_INVALIDPARAMS
Definition: ddraw.h:81
IDirectDraw IDirectDraw_iface
IDirectDraw2 IDirectDraw2_iface
#define E_NOINTERFACE
Definition: winerror.h:3479

Referenced by ddrawex1_QueryInterface(), ddrawex2_QueryInterface(), and ddrawex3_QueryInterface().

◆ ddrawex4_Release()

static ULONG WINAPI ddrawex4_Release ( IDirectDraw4 *  iface)
static

Definition at line 158 of file ddraw.c.

159{
160 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
162
163 TRACE("%p decreasing refcount to %lu.\n", iface, refcount);
164
165 if (!refcount)
166 {
167 IDirectDraw4_Release(ddrawex->parent);
168 free(ddrawex);
169 }
170
171 return refcount;
172}
#define InterlockedDecrement
Definition: armddk.h:52

Referenced by ddrawex1_Release(), ddrawex2_Release(), and ddrawex3_Release().

◆ ddrawex4_RestoreAllSurfaces()

static HRESULT WINAPI ddrawex4_RestoreAllSurfaces ( IDirectDraw4 *  iface)
static

Definition at line 1271 of file ddraw.c.

1272{
1273 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
1274
1275 TRACE("iface %p.\n", iface);
1276
1277 return IDirectDraw4_RestoreAllSurfaces(ddrawex->parent);
1278}

◆ ddrawex4_RestoreDisplayMode()

static HRESULT WINAPI ddrawex4_RestoreDisplayMode ( IDirectDraw4 *  iface)
static

Definition at line 1041 of file ddraw.c.

1042{
1043 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
1044
1045 TRACE("iface %p.\n", iface);
1046
1047 return IDirectDraw4_RestoreDisplayMode(ddrawex->parent);
1048}

Referenced by ddrawex1_RestoreDisplayMode(), ddrawex2_RestoreDisplayMode(), and ddrawex3_RestoreDisplayMode().

◆ ddrawex4_SetCooperativeLevel()

static HRESULT WINAPI ddrawex4_SetCooperativeLevel ( IDirectDraw4 *  iface,
HWND  window,
DWORD  flags 
)
static

Definition at line 1077 of file ddraw.c.

1078{
1079 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
1080
1081 TRACE("iface %p, window %p, flags %#lx.\n", iface, window, flags);
1082
1083 return IDirectDraw4_SetCooperativeLevel(ddrawex->parent, window, flags);
1084}

Referenced by ddrawex1_SetCooperativeLevel(), ddrawex2_SetCooperativeLevel(), and ddrawex3_SetCooperativeLevel().

◆ ddrawex4_SetDisplayMode()

static HRESULT WINAPI ddrawex4_SetDisplayMode ( IDirectDraw4 *  iface,
DWORD  width,
DWORD  height,
DWORD  bpp,
DWORD  refresh_rate,
DWORD  flags 
)
static

Definition at line 1113 of file ddraw.c.

1115{
1116 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
1117
1118 TRACE("iface %p, width %lu, height %lu, bpp %lu, refresh_rate %lu, flags %#lx.\n",
1119 iface, width, height, bpp, refresh_rate, flags);
1120
1121 return IDirectDraw4_SetDisplayMode(ddrawex->parent, width, height, bpp, refresh_rate, flags);
1122}

Referenced by ddrawex1_SetDisplayMode(), ddrawex2_SetDisplayMode(), and ddrawex3_SetDisplayMode().

◆ ddrawex4_TestCooperativeLevel()

static HRESULT WINAPI ddrawex4_TestCooperativeLevel ( IDirectDraw4 *  iface)
static

Definition at line 1280 of file ddraw.c.

1281{
1282 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
1283
1284 TRACE("iface %p.\n", iface);
1285
1286 return IDirectDraw4_TestCooperativeLevel(ddrawex->parent);
1287}

◆ ddrawex4_WaitForVerticalBlank()

static HRESULT WINAPI ddrawex4_WaitForVerticalBlank ( IDirectDraw4 *  iface,
DWORD  flags,
HANDLE  event 
)
static

Definition at line 1156 of file ddraw.c.

1157{
1158 struct ddrawex *ddrawex = impl_from_IDirectDraw4(iface);
1159
1160 TRACE("iface %p, flags %#lx, event %p.\n", iface, flags, event);
1161
1162 return IDirectDraw4_WaitForVerticalBlank(ddrawex->parent, flags, event);
1163}

Referenced by ddrawex1_WaitForVerticalBlank(), ddrawex2_WaitForVerticalBlank(), and ddrawex3_WaitForVerticalBlank().

◆ ddrawex_factory_CreateDirectDraw()

HRESULT WINAPI ddrawex_factory_CreateDirectDraw ( IDirectDrawFactory *  iface,
GUID *  guid,
HWND  window,
DWORD  coop_level,
DWORD  reserved,
IUnknown *  outer_unknown,
IDirectDraw **  ddraw 
)

Definition at line 1415 of file ddraw.c.

1417{
1418 IDirectDraw *parent = NULL;
1419 struct ddrawex *object;
1420 HRESULT hr;
1421
1422 TRACE("iface %p, guid %s, window %p, coop_level %#lx, reserved %#lx, outer_unknown %p, ddraw %p.\n",
1423 iface, debugstr_guid(guid), window, coop_level, reserved, outer_unknown, ddraw);
1424
1425 if (outer_unknown)
1426 FIXME("Implement aggregation in ddrawex's IDirectDraw interface.\n");
1427
1428 if (!(object = calloc(1, sizeof(*object))))
1429 return E_OUTOFMEMORY;
1430
1431 object->ref = 1;
1432 object->IDirectDraw_iface.lpVtbl = &ddrawex1_vtbl;
1433 object->IDirectDraw2_iface.lpVtbl = &ddrawex2_vtbl;
1434 object->IDirectDraw3_iface.lpVtbl = &ddrawex3_vtbl;
1435 object->IDirectDraw4_iface.lpVtbl = &ddrawex4_vtbl;
1436
1438 goto err;
1439 if (FAILED(hr = IDirectDraw_QueryInterface(parent, &IID_IDirectDraw4, (void **)&object->parent)))
1440 goto err;
1441 if (FAILED(hr = IDirectDraw_SetCooperativeLevel(&object->IDirectDraw_iface, window, coop_level)))
1442 goto err;
1443
1444 *ddraw = &object->IDirectDraw_iface;
1445 IDirectDraw_Release(parent);
1446 return DD_OK;
1447
1448err:
1449 if (object && object->parent)
1450 IDirectDraw4_Release(object->parent);
1451 if (parent)
1452 IDirectDraw_Release(parent);
1453 free(object);
1454 *ddraw = NULL;
1455 return hr;
1456}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
HRESULT WINAPI DirectDrawCreate(LPGUID lpGUID, LPDIRECTDRAW *lplpDD, LPUNKNOWN pUnkOuter)
Definition: main.c:86
static const IDirectDrawVtbl ddrawex1_vtbl
Definition: ddraw.c:1388
static const IDirectDraw3Vtbl ddrawex3_vtbl
Definition: ddraw.c:1331
static const IDirectDraw2Vtbl ddrawex2_vtbl
Definition: ddraw.c:1360
r parent
Definition: btrfs.c:3010
r reserved
Definition: btrfs.c:3006
#define err(...)
#define calloc
Definition: rosglue.h:14
#define DD_OK
Definition: ddraw.h:188
IDirectDraw IDirectDraw_iface
Definition: ddraw_private.h:86

◆ DDSD2_to_DDSD()

void DDSD2_to_DDSD ( const DDSURFACEDESC2 *  in,
DDSURFACEDESC *  out 
)

Definition at line 409 of file ddraw.c.

410{
411 memset(out, 0, sizeof(*out));
412 out->dwSize = sizeof(*out);
413 out->dwFlags = in->dwFlags;
414 if(in->dwFlags & DDSD_WIDTH) out->dwWidth = in->dwWidth;
415 if(in->dwFlags & DDSD_HEIGHT) out->dwHeight = in->dwHeight;
416 if(in->dwFlags & DDSD_PIXELFORMAT) out->ddpfPixelFormat = in->ddpfPixelFormat;
417 if(in->dwFlags & DDSD_CAPS) out->ddsCaps.dwCaps = in->ddsCaps.dwCaps;
418 if(in->dwFlags & DDSD_PITCH) out->lPitch = in->lPitch;
419 if(in->dwFlags & DDSD_BACKBUFFERCOUNT) out->dwBackBufferCount = in->dwBackBufferCount;
420 if(in->dwFlags & DDSD_ZBUFFERBITDEPTH) out->dwZBufferBitDepth = in->dwMipMapCount; /* same union */
421 if(in->dwFlags & DDSD_ALPHABITDEPTH) out->dwAlphaBitDepth = in->dwAlphaBitDepth;
422 /* DDraw(native, and wine) does not set the DDSD_LPSURFACE, so always copy */
423 out->lpSurface = in->lpSurface;
424 if(in->dwFlags & DDSD_CKDESTOVERLAY) out->ddckCKDestOverlay = in->ddckCKDestOverlay;
425 if(in->dwFlags & DDSD_CKDESTBLT) out->ddckCKDestBlt = in->ddckCKDestBlt;
426 if(in->dwFlags & DDSD_CKSRCOVERLAY) out->ddckCKSrcOverlay = in->ddckCKSrcOverlay;
427 if(in->dwFlags & DDSD_CKSRCBLT) out->ddckCKSrcBlt = in->ddckCKSrcBlt;
428 if(in->dwFlags & DDSD_MIPMAPCOUNT) out->dwMipMapCount = in->dwMipMapCount;
429 if(in->dwFlags & DDSD_REFRESHRATE) out->dwRefreshRate = in->dwRefreshRate;
430 if(in->dwFlags & DDSD_LINEARSIZE) out->dwLinearSize = in->dwLinearSize;
431 /* Does not exist in DDSURFACEDESC:
432 * DDSD_TEXTURESTAGE, DDSD_FVF, DDSD_SRCVBHANDLE,
433 */
434 if(in->dwFlags & DDSD_TEXTURESTAGE) WARN("Does not exist in DDSURFACEDESC: DDSD_TEXTURESTAGE\n");
435 if(in->dwFlags & DDSD_FVF) WARN("Does not exist in DDSURFACEDESC: DDSD_FVF\n");
436 if(in->dwFlags & DDSD_SRCVBHANDLE) WARN("Does not exist in DDSURFACEDESC: DDSD_SRCVBHANDLE\n");
438}
GLuint in
Definition: glext.h:9616
#define DDSD_WIDTH
Definition: ddraw.h:212
#define DDSD_PIXELFORMAT
Definition: ddraw.h:218
#define DDSD_PITCH
Definition: ddraw.h:213
#define DDSD_REFRESHRATE
Definition: ddraw.h:224
#define DDSD_MIPMAPCOUNT
Definition: ddraw.h:223
#define DDSD_ALPHABITDEPTH
Definition: ddraw.h:216
#define DDSD_TEXTURESTAGE
Definition: ddraw.h:226
#define DDSD_HEIGHT
Definition: ddraw.h:211
#define DDSD_ZBUFFERBITDEPTH
Definition: ddraw.h:215
#define DDSD_CKDESTOVERLAY
Definition: ddraw.h:219
#define DDSD_CKSRCBLT
Definition: ddraw.h:222
#define DDSD_LINEARSIZE
Definition: ddraw.h:225
#define DDSD_SRCVBHANDLE
Definition: ddraw.h:228
#define DDSD_CAPS
Definition: ddraw.h:210
#define DDSD_CKDESTBLT
Definition: ddraw.h:220
#define DDSD_FVF
Definition: ddraw.h:227
#define DDSD_BACKBUFFERCOUNT
Definition: ddraw.h:214
#define DDSD_CKSRCOVERLAY
Definition: ddraw.h:221

Referenced by ddraw_surface3_GetSurfaceDesc(), ddraw_surface_lock_ddsd(), ddrawex3_GetDisplayMode(), ddrawex_surface3_GetSurfaceDesc(), ddrawex_surface3_Lock(), enum_modes_cb2(), enum_surfaces_cb2(), EnumDisplayModesCallbackThunk(), and enumsurfaces_thunk_cb().

◆ DDSD_to_DDSD2()

void DDSD_to_DDSD2 ( const DDSURFACEDESC *  in,
DDSURFACEDESC2 *  out 
)

Definition at line 382 of file ddraw.c.

383{
384 memset(out, 0, sizeof(*out));
385 out->dwSize = sizeof(*out);
386 out->dwFlags = in->dwFlags;
387 if(in->dwFlags & DDSD_WIDTH) out->dwWidth = in->dwWidth;
388 if(in->dwFlags & DDSD_HEIGHT) out->dwHeight = in->dwHeight;
389 if(in->dwFlags & DDSD_PIXELFORMAT) out->ddpfPixelFormat = in->ddpfPixelFormat;
390 if(in->dwFlags & DDSD_CAPS) out->ddsCaps.dwCaps = in->ddsCaps.dwCaps;
391 if(in->dwFlags & DDSD_PITCH) out->lPitch = in->lPitch;
392 if(in->dwFlags & DDSD_BACKBUFFERCOUNT) out->dwBackBufferCount = in->dwBackBufferCount;
393 if(in->dwFlags & DDSD_ZBUFFERBITDEPTH) out->dwMipMapCount = in->dwZBufferBitDepth; /* same union */
394 if(in->dwFlags & DDSD_ALPHABITDEPTH) out->dwAlphaBitDepth = in->dwAlphaBitDepth;
395 /* DDraw(native, and wine) does not set the DDSD_LPSURFACE, so always copy */
396 out->lpSurface = in->lpSurface;
397 if(in->dwFlags & DDSD_CKDESTOVERLAY) out->ddckCKDestOverlay = in->ddckCKDestOverlay;
398 if(in->dwFlags & DDSD_CKDESTBLT) out->ddckCKDestBlt = in->ddckCKDestBlt;
399 if(in->dwFlags & DDSD_CKSRCOVERLAY) out->ddckCKSrcOverlay = in->ddckCKSrcOverlay;
400 if(in->dwFlags & DDSD_CKSRCBLT) out->ddckCKSrcBlt = in->ddckCKSrcBlt;
401 if(in->dwFlags & DDSD_MIPMAPCOUNT) out->dwMipMapCount = in->dwMipMapCount;
402 if(in->dwFlags & DDSD_REFRESHRATE) out->dwRefreshRate = in->dwRefreshRate;
403 if(in->dwFlags & DDSD_LINEARSIZE) out->dwLinearSize = in->dwLinearSize;
404 /* Does not exist in DDSURFACEDESC:
405 * DDSD_TEXTURESTAGE, DDSD_FVF, DDSD_SRCVBHANDLE,
406 */
407}

Referenced by ddraw1_CreateSurface(), ddraw1_EnumDisplayModes(), ddraw1_EnumSurfaces(), ddraw2_CreateSurface(), ddraw2_EnumDisplayModes(), ddraw2_EnumSurfaces(), ddraw_surface1_Initialize(), ddraw_surface2_Initialize(), ddraw_surface3_Initialize(), ddraw_surface3_SetSurfaceDesc(), ddrawex3_CreateSurface(), ddrawex3_EnumDisplayModes(), ddrawex3_EnumSurfaces(), ddrawex_surface3_Initialize(), and ddrawex_surface3_SetSurfaceDesc().

◆ enum_modes_cb2()

static HRESULT WINAPI enum_modes_cb2 ( DDSURFACEDESC2 *  ddsd2,
void *  vctx 
)
static

Definition at line 560 of file ddraw.c.

561{
562 struct enummodes_ctx *ctx = vctx;
563 DDSURFACEDESC ddsd;
564
565 DDSD2_to_DDSD(ddsd2, &ddsd);
566 return ctx->orig_cb(&ddsd, ctx->orig_ctx);
567}

Referenced by ddrawex3_EnumDisplayModes().

◆ enum_surfaces_cb2()

static HRESULT WINAPI enum_surfaces_cb2 ( IDirectDrawSurface4 *  surf4,
DDSURFACEDESC2 *  ddsd2,
void *  vctx 
)
static

Definition at line 641 of file ddraw.c.

642{
643 struct enumsurfaces_ctx *ctx = vctx;
644 IDirectDrawSurface *surf1;
645 DDSURFACEDESC ddsd;
646
647 /* Keep the reference, it goes to the application */
648 IDirectDrawSurface4_QueryInterface(surf4, &IID_IDirectDrawSurface, (void **) &surf1);
649 /* Release the reference this function got */
650 IDirectDrawSurface4_Release(surf4);
651
652 DDSD2_to_DDSD(ddsd2, &ddsd);
653 return ctx->orig_cb(surf1, &ddsd, ctx->orig_ctx);
654}

Referenced by ddrawex3_EnumSurfaces().

◆ enum_surfaces_wrapper()

static HRESULT WINAPI enum_surfaces_wrapper ( IDirectDrawSurface4 *  surf4,
DDSURFACEDESC2 *  ddsd2,
void *  vctx 
)
static

Definition at line 611 of file ddraw.c.

612{
613 struct enumsurfaces4_ctx *ctx = vctx;
614 IDirectDrawSurface4 *outer = dds_get_outer(surf4);
615 IDirectDrawSurface4_AddRef(outer);
616 IDirectDrawSurface4_Release(surf4);
617 TRACE("Returning wrapper surface %p for enumerated inner surface %p\n", outer, surf4);
618 return ctx->orig_cb(outer, ddsd2, ctx->orig_ctx);
619}

Referenced by ddrawex4_EnumSurfaces().

◆ impl_from_IDirectDraw()

static struct ddrawex * impl_from_IDirectDraw ( IDirectDraw *  iface)
static

Definition at line 34 of file ddraw.c.

35{
36 return CONTAINING_RECORD(iface, struct ddrawex, IDirectDraw_iface);
37}
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260

◆ impl_from_IDirectDraw2()

static struct ddrawex * impl_from_IDirectDraw2 ( IDirectDraw2 *  iface)
static

Definition at line 39 of file ddraw.c.

40{
41 return CONTAINING_RECORD(iface, struct ddrawex, IDirectDraw2_iface);
42}

◆ impl_from_IDirectDraw3()

◆ impl_from_IDirectDraw4()

static struct ddrawex * impl_from_IDirectDraw4 ( IDirectDraw4 *  iface)
static

Definition at line 49 of file ddraw.c.

50{
51 return CONTAINING_RECORD(iface, struct ddrawex, IDirectDraw4_iface);
52}

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( ddrawex  )

Variable Documentation

◆ ddrawex1_vtbl

const IDirectDrawVtbl ddrawex1_vtbl
static
Initial value:
=
{
}
static HRESULT WINAPI ddrawex1_SetCooperativeLevel(IDirectDraw *iface, HWND window, DWORD flags)
Definition: ddraw.c:1104
static ULONG WINAPI ddrawex1_AddRef(IDirectDraw *iface)
Definition: ddraw.c:149
static HRESULT WINAPI ddrawex1_RestoreDisplayMode(IDirectDraw *iface)
Definition: ddraw.c:1068
static HRESULT WINAPI ddrawex1_CreatePalette(IDirectDraw *iface, DWORD flags, PALETTEENTRY *entries, IDirectDrawPalette **palette, IUnknown *outer_unknown)
Definition: ddraw.c:322
static HRESULT WINAPI ddrawex1_EnumSurfaces(IDirectDraw *iface, DWORD flags, DDSURFACEDESC *desc, void *ctx, LPDDENUMSURFACESCALLBACK cb)
Definition: ddraw.c:681
static HRESULT WINAPI ddrawex1_WaitForVerticalBlank(IDirectDraw *iface, DWORD flags, HANDLE event)
Definition: ddraw.c:1183
static HRESULT WINAPI ddrawex1_GetFourCCCodes(IDirectDraw *iface, DWORD *code_count, DWORD *codes)
Definition: ddraw.c:831
static HRESULT WINAPI ddrawex1_GetDisplayMode(IDirectDraw *iface, DDSURFACEDESC *desc)
Definition: ddraw.c:795
static HRESULT WINAPI ddrawex1_GetMonitorFrequency(IDirectDraw *iface, DWORD *frequency)
Definition: ddraw.c:924
static HRESULT WINAPI ddrawex1_EnumDisplayModes(IDirectDraw *iface, DWORD flags, DDSURFACEDESC *desc, void *ctx, LPDDENUMMODESCALLBACK cb)
Definition: ddraw.c:594
static HRESULT WINAPI ddrawex1_QueryInterface(IDirectDraw *iface, REFIID riid, void **out)
Definition: ddraw.c:112
static HRESULT WINAPI ddrawex1_Initialize(IDirectDraw *iface, GUID *guid)
Definition: ddraw.c:1032
static HRESULT WINAPI ddrawex1_Compact(IDirectDraw *iface)
Definition: ddraw.c:228
static HRESULT WINAPI ddrawex1_SetDisplayMode(IDirectDraw *iface, DWORD width, DWORD height, DWORD bpp)
Definition: ddraw.c:1146
static HRESULT WINAPI ddrawex1_FlipToGDISurface(IDirectDraw *iface)
Definition: ddraw.c:718
static HRESULT WINAPI ddrawex1_DuplicateSurface(IDirectDraw *iface, IDirectDrawSurface *src, IDirectDrawSurface **dst)
Definition: ddraw.c:533
static HRESULT WINAPI ddrawex1_CreateSurface(IDirectDraw *iface, DDSURFACEDESC *desc, IDirectDrawSurface **surface, IUnknown *outer_unknown)
Definition: ddraw.c:475
static HRESULT WINAPI ddrawex1_GetGDISurface(IDirectDraw *iface, IDirectDrawSurface **gdi_surface)
Definition: ddraw.c:888
static HRESULT WINAPI ddrawex1_GetCaps(IDirectDraw *iface, DDCAPS *driver_caps, DDCAPS *hel_caps)
Definition: ddraw.c:754
static HRESULT WINAPI ddrawex1_GetScanLine(IDirectDraw *iface, DWORD *line)
Definition: ddraw.c:960
static ULONG WINAPI ddrawex1_Release(IDirectDraw *iface)
Definition: ddraw.c:192
static HRESULT WINAPI ddrawex1_CreateClipper(IDirectDraw *iface, DWORD flags, IDirectDrawClipper **clipper, IUnknown *outer_unknown)
Definition: ddraw.c:274
static HRESULT WINAPI ddrawex1_GetVerticalBlankStatus(IDirectDraw *iface, BOOL *status)
Definition: ddraw.c:996

Definition at line 1388 of file ddraw.c.

Referenced by ddrawex_factory_CreateDirectDraw().

◆ ddrawex2_vtbl

const IDirectDraw2Vtbl ddrawex2_vtbl
static
Initial value:
=
{
}
static HRESULT WINAPI ddrawex2_Initialize(IDirectDraw2 *iface, GUID *guid)
Definition: ddraw.c:1023
static HRESULT WINAPI ddrawex2_DuplicateSurface(IDirectDraw2 *iface, IDirectDrawSurface *src, IDirectDrawSurface **dst)
Definition: ddraw.c:523
static HRESULT WINAPI ddrawex2_RestoreDisplayMode(IDirectDraw2 *iface)
Definition: ddraw.c:1059
static HRESULT WINAPI ddrawex2_GetVerticalBlankStatus(IDirectDraw2 *iface, BOOL *status)
Definition: ddraw.c:987
static HRESULT WINAPI ddrawex2_CreateClipper(IDirectDraw2 *iface, DWORD flags, IDirectDrawClipper **clipper, IUnknown *outer_unknown)
Definition: ddraw.c:263
static HRESULT WINAPI ddrawex2_GetDisplayMode(IDirectDraw2 *iface, DDSURFACEDESC *desc)
Definition: ddraw.c:786
static HRESULT WINAPI ddrawex2_GetCaps(IDirectDraw2 *iface, DDCAPS *driver_caps, DDCAPS *hel_caps)
Definition: ddraw.c:745
static HRESULT WINAPI ddrawex2_GetMonitorFrequency(IDirectDraw2 *iface, DWORD *frequency)
Definition: ddraw.c:915
static HRESULT WINAPI ddrawex2_GetGDISurface(IDirectDraw2 *iface, IDirectDrawSurface **gdi_surface)
Definition: ddraw.c:879
static HRESULT WINAPI ddrawex2_CreateSurface(IDirectDraw2 *iface, DDSURFACEDESC *desc, IDirectDrawSurface **surface, IUnknown *outer_unknown)
Definition: ddraw.c:464
static HRESULT WINAPI ddrawex2_SetCooperativeLevel(IDirectDraw2 *iface, HWND window, DWORD flags)
Definition: ddraw.c:1095
static HRESULT WINAPI ddrawex2_SetDisplayMode(IDirectDraw2 *iface, DWORD width, DWORD height, DWORD bpp, DWORD refresh_rate, DWORD flags)
Definition: ddraw.c:1135
static HRESULT WINAPI ddrawex2_GetFourCCCodes(IDirectDraw2 *iface, DWORD *code_count, DWORD *codes)
Definition: ddraw.c:822
static HRESULT WINAPI ddrawex2_EnumDisplayModes(IDirectDraw2 *iface, DWORD flags, DDSURFACEDESC *desc, void *ctx, LPDDENUMMODESCALLBACK cb)
Definition: ddraw.c:584
static HRESULT WINAPI ddrawex2_Compact(IDirectDraw2 *iface)
Definition: ddraw.c:219
static HRESULT WINAPI ddrawex2_FlipToGDISurface(IDirectDraw2 *iface)
Definition: ddraw.c:709
static HRESULT WINAPI ddrawex2_WaitForVerticalBlank(IDirectDraw2 *iface, DWORD flags, HANDLE event)
Definition: ddraw.c:1174
static ULONG WINAPI ddrawex2_AddRef(IDirectDraw2 *iface)
Definition: ddraw.c:140
static HRESULT WINAPI ddrawex2_QueryInterface(IDirectDraw2 *iface, REFIID riid, void **out)
Definition: ddraw.c:103
static HRESULT WINAPI ddrawex2_GetAvailableVidMem(IDirectDraw2 *iface, DDSCAPS *caps, DWORD *total, DWORD *free)
Definition: ddraw.c:1215
static HRESULT WINAPI ddrawex2_CreatePalette(IDirectDraw2 *iface, DWORD flags, PALETTEENTRY *entries, IDirectDrawPalette **palette, IUnknown *outer_unknown)
Definition: ddraw.c:311
static HRESULT WINAPI ddrawex2_GetScanLine(IDirectDraw2 *iface, DWORD *line)
Definition: ddraw.c:951
static HRESULT WINAPI ddrawex2_EnumSurfaces(IDirectDraw2 *iface, DWORD flags, DDSURFACEDESC *desc, void *ctx, LPDDENUMSURFACESCALLBACK cb)
Definition: ddraw.c:671
static ULONG WINAPI ddrawex2_Release(IDirectDraw2 *iface)
Definition: ddraw.c:183

Definition at line 1360 of file ddraw.c.

Referenced by ddrawex_factory_CreateDirectDraw().

◆ ddrawex3_vtbl

const IDirectDraw3Vtbl ddrawex3_vtbl
static
Initial value:
=
{
}
static HRESULT WINAPI ddrawex3_QueryInterface(IDirectDraw3 *iface, REFIID riid, void **out)
Definition: ddraw.c:94
static HRESULT WINAPI ddrawex3_Compact(IDirectDraw3 *iface)
Definition: ddraw.c:210
static HRESULT WINAPI ddrawex3_RestoreDisplayMode(IDirectDraw3 *iface)
Definition: ddraw.c:1050
static HRESULT WINAPI ddrawex3_CreateClipper(IDirectDraw3 *iface, DWORD flags, IDirectDrawClipper **clipper, IUnknown *outer_unknown)
Definition: ddraw.c:252
static HRESULT WINAPI ddrawex3_GetSurfaceFromDC(IDirectDraw3 *iface, HDC dc, IDirectDrawSurface **surface)
Definition: ddraw.c:1238
static ULONG WINAPI ddrawex3_Release(IDirectDraw3 *iface)
Definition: ddraw.c:174
static ULONG WINAPI ddrawex3_AddRef(IDirectDraw3 *iface)
Definition: ddraw.c:131
static HRESULT WINAPI ddrawex3_CreatePalette(IDirectDraw3 *iface, DWORD flags, PALETTEENTRY *entries, IDirectDrawPalette **palette, IUnknown *outer_unknown)
Definition: ddraw.c:300
static HRESULT WINAPI ddrawex3_SetDisplayMode(IDirectDraw3 *iface, DWORD width, DWORD height, DWORD bpp, DWORD refresh_rate, DWORD flags)
Definition: ddraw.c:1124
static HRESULT WINAPI ddrawex3_GetCaps(IDirectDraw3 *iface, DDCAPS *driver_caps, DDCAPS *hel_caps)
Definition: ddraw.c:736
static HRESULT WINAPI ddrawex3_GetVerticalBlankStatus(IDirectDraw3 *iface, BOOL *status)
Definition: ddraw.c:978
static HRESULT WINAPI ddrawex3_Initialize(IDirectDraw3 *iface, GUID *guid)
Definition: ddraw.c:1014
static HRESULT WINAPI ddrawex3_GetScanLine(IDirectDraw3 *iface, DWORD *line)
Definition: ddraw.c:942
static HRESULT WINAPI ddrawex3_WaitForVerticalBlank(IDirectDraw3 *iface, DWORD flags, HANDLE event)
Definition: ddraw.c:1165
static HRESULT WINAPI ddrawex3_GetMonitorFrequency(IDirectDraw3 *iface, DWORD *frequency)
Definition: ddraw.c:906
static HRESULT WINAPI ddrawex3_SetCooperativeLevel(IDirectDraw3 *iface, HWND window, DWORD flags)
Definition: ddraw.c:1086
static HRESULT WINAPI ddrawex3_GetFourCCCodes(IDirectDraw3 *iface, DWORD *code_count, DWORD *codes)
Definition: ddraw.c:813
static HRESULT WINAPI ddrawex3_GetAvailableVidMem(IDirectDraw3 *iface, DDSCAPS *caps, DWORD *total, DWORD *free)
Definition: ddraw.c:1202
static HRESULT WINAPI ddrawex3_FlipToGDISurface(IDirectDraw3 *iface)
Definition: ddraw.c:700

Definition at line 1331 of file ddraw.c.

Referenced by ddrawex_factory_CreateDirectDraw().

◆ ddrawex4_vtbl

const IDirectDraw4Vtbl ddrawex4_vtbl
static

Definition at line 1299 of file ddraw.c.

Referenced by dd_get_inner(), and ddrawex_factory_CreateDirectDraw().