71 LPSTR lpCmdLine,
int nCmdShow)
97 DdQueryDirectDrawObject = (
BOOL (
APIENTRY*)(
LPDDRAWI_DIRECTDRAW_GBL,
LPDDHALINFO,
LPDDHAL_DDCALLBACKS,
LPDDHAL_DDSURFACECALLBACKS,
LPDDHAL_DDPALETTECALLBACKS,
LPD3DHAL_CALLBACKS,
LPD3DHAL_GLOBALDRIVERDATA,
LPDDHAL_DDEXEBUFCALLBACKS,
LPDDSURFACEDESC,
LPDWORD,
LPVIDMEM))
GetProcAddress(lib,
"GdiEntry2");
101 printf(
"This apps showing how to start up directx draw/d3d interface and some other as well\n");
102 printf(
"This code have been releae to some close applactons with my premtions, if any company\n");
103 printf(
"want use part or whole code, you need contact the orginal author to ask for premtions\n");
104 printf(
"This code are release under alot of diffent licen\n");
105 printf(
"All GPL and LGPL project have right use and studing this code.\n");
106 printf(
"This code maybe need more comment to known how stuff working and maybe looking bit mesy\n");
107 printf(
"Bestreagds Magnus Olsen magnus@greatlord.com or greatlord@reactos.org\n");
108 printf(
"Copyright 2006 by Magnus Olsen\n\n");
109 printf(
"This demo showing how to start dx draw hal and create a primary surface,\n");
110 printf(
"and a overlay sufrace and blt to the primary surface\n");
123 printf(
"Fail to alloc mpModeInfos\n");
143 printf(
"Fail to create HDC\n");
155 printf(
"Fail to Create Compatible Bitmap\n");
168 printf(
"Fail to Alloc pbmiData\n");
205 printf(
"Fail to Create Direct DrawObject\n");
269 printf(
"Fail to QueryDirect Draw Object frist pass\n");
295 printf(
"Fail QueryDirect Draw Object to Alloc mpTextures \n");
323 printf(
"Fail to QueryDirect Draw Object second pass\n");
380 printf(
"Fail to mDdCanCreateSurface DDHAL_DRIVER_NOTHANDLED\n");
417 mDdCreateSurface.
dwSCnt = 1 ;
421 printf(
"Fail to mDdCreateSurface DDHAL_DRIVER_NOTHANDLED \n");
429 return mDdCreateSurface.
ddRVal;
486 printf(
"Fail to mDdCanCreateSurface DDHAL_DRIVER_NOTHANDLED \n");
508 for (
i = 0;
i < cSurfaces;
i++)
530 for (
i = 0;
i < cSurfaces;
i++)
532 j = (
i + 1) % cSurfaces;
544 printf(
"Fail to DdAttachSurface (%d:%d)\n",
i,
j);
556 mDdCreateSurface.
dwSCnt = 1 ;
560 printf(
"Fail to mDdCreateSurface = DDHAL_DRIVER_HANDLED\n");
568 return mDdCreateSurface.
ddRVal;
599 printf(
"Fail to mDdBlt = DDHAL_DRIVER_HANDLED\n");
607 return mDdUpdateOverlay.
ddRVal;
642 printf(
"Fail to mDdBlt = DDHAL_DRIVER_HANDLED\n");
657 printf(
"Fail to mDdUpdateOverlay = DDERR_NOTINITIALIZED\n");
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR cmdline, int cmdshow)
D3DHAL_GLOBALDRIVERDATA * LPD3DHAL_GLOBALDRIVERDATA
struct _DDRAWI_DIRECTDRAW_GBL FAR * LPDDRAWI_DIRECTDRAW_GBL
D3DHAL_CALLBACKS * LPD3DHAL_CALLBACKS
struct _DDRAWI_DDRAWSURFACE_LCL FAR * LPDDRAWI_DDRAWSURFACE_LCL
#define DdCreateDirectDrawObject
#define DdQueryDirectDrawObject
#define DDHAL_DRIVER_HANDLED
struct _DDHALMODEINFO DDHALMODEINFO
#define DDRAWICLIP_ISINITIALIZED
struct _DDHALINFO * LPDDHALINFO
#define DDRAWISURF_IMPLICITROOT
struct _DDHAL_DDEXEBUFCALLBACKS * LPDDHAL_DDEXEBUFCALLBACKS
#define DDRAWISURF_ATTACHED_FROM
struct _DDHAL_DDCALLBACKS * LPDDHAL_DDCALLBACKS
#define DDRAWISURF_BACKBUFFER
#define DDRAWISURFGBL_ISGDISURFACE
#define DDRAWISURF_IMPLICITCREATE
struct _DDHAL_DDPALETTECALLBACKS * LPDDHAL_DDPALETTECALLBACKS
#define DDRAWISURF_PARTOFPRIMARYCHAIN
#define DDRAWISURF_ATTACHED
#define DDRAWISURF_HASOVERLAYDATA
struct _DDHAL_DDSURFACECALLBACKS * LPDDHAL_DDSURFACECALLBACKS
#define DDRAWISURF_HASPIXELFORMAT
#define DDRAWISURF_FRONTBUFFER
struct _DDRAWI_DDRAWSURFACE_MORE DDRAWI_DDRAWSURFACE_MORE
#define DDHAL_DRIVER_NOTHANDLED
const CHAR * DDErrorString(HRESULT hResult)
static const WCHAR dwWidth[]
static const WCHAR dwHeight[]
#define GetProcAddress(x, y)
#define HeapFree(x, y, z)
struct _VIDMEM * LPVIDMEM
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 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 GLint GLint j
#define memcpy(s1, s2, n)
DDRAWI_DIRECTDRAW_GBL mDDrawGlobal
DDHAL_CALLBACKS mCallbacks
DDSURFACEDESC * mpTextures
DDRAWI_DDRAWSURFACE_MORE mPrimaryMore
struct _DD_GETDRIVERINFODATA DD_GETDRIVERINFODATA
struct _DD_MISCELLANEOUSCALLBACKS DD_MISCELLANEOUSCALLBACKS
DDRAWI_DDRAWCLIPPER_LCL mPrimaryClipperLocal
DDSURFACEDESC mddsdOverlay
struct _DD_GETDRIVERINFODATA * PDD_GETDRIVERINFODATA
DDRAWI_DDRAWSURFACE_LCL * mpPrimaryLocals[1]
DDHALMODEINFO * mpModeInfos
DDRAWI_DDRAWSURFACE_LCL * mpOverlayLocals[6]
DDRAWI_DDRAWSURFACE_LCL mOverlayLocal[6]
DDRAWI_DDRAWSURFACE_GBL mPrimaryGlobal
DDHAL_DDEXEBUFCALLBACKS mD3dBufferCallbacks
DDSURFACEDESC mddsdPrimary
DDRAWI_DDRAWSURFACE_GBL mOverlayGlobal
DDRAWI_DDRAWSURFACE_MORE mOverlayMore[6]
DDRAWI_DIRECTDRAW_LCL mDDrawLocal
D3DHAL_CALLBACKS mD3dCallbacks
D3DHAL_GLOBALDRIVERDATA mD3dDriverData
DDRAWI_DDRAWCLIPPER_GBL mPrimaryClipperGlobal
DDRAWI_DDRAWSURFACE_LCL mPrimaryLocal
_In_ HBITMAP _In_ UINT _In_ UINT _Inout_ LPBITMAPINFO pbmi
#define DDSCAPS_PRIMARYSURFACE
struct _DDPIXELFORMAT DDPIXELFORMAT
#define DDERR_NOTINITIALIZED
#define DDERR_UNSUPPORTED
#define DDSCAPS_VIDEOMEMORY
#define DDSCAPS_LOCALVIDMEM
#define DDSD_BACKBUFFERCOUNT
LPDDSURFACEDESC lpTextureFormats
DWORD dwNumTextureFormats
LPDDHALMODEINFO lpModeInfo
LPDDHAL_DDCALLBACKS lpDDCallbacks
LPDDRAWI_DDRAWSURFACE_LCL lpDDSrcSurface
LPDDRAWI_DIRECTDRAW_GBL lpDD
LPDDRAWI_DDRAWSURFACE_LCL lpDDDestSurface
DDHAL_DDEXEBUFCALLBACKS HALDDExeBuf
DDHAL_DDSURFACECALLBACKS HALDDSurface
DDHAL_DDPALETTECALLBACKS HALDDPalette
LPDDRAWI_DIRECTDRAW_GBL lpDD
LPDDSURFACEDESC lpDDSurfaceDesc
LPDDHAL_CANCREATESURFACE CanCreateSurface
DWORD bIsDifferentPixelFormat
LPDDSURFACEDESC lpDDSurfaceDesc
LPDDRAWI_DIRECTDRAW_GBL lpDD
LPDDRAWI_DDRAWSURFACE_LCL * lplpSList
LPDDHAL_CREATESURFACE CreateSurface
LPDDHAL_CREATESURFACE CreateSurface
LPDDHAL_CANCREATESURFACE CanCreateSurface
LPDDHALSURFCB_UPDATEOVERLAY UpdateOverlay
LPDDRAWI_DIRECTDRAW_GBL lpDD
LPDDHALSURFCB_UPDATEOVERLAY UpdateOverlay
LPDDRAWI_DDRAWSURFACE_LCL lpDDDestSurface
LPDDRAWI_DDRAWSURFACE_LCL lpDDSrcSurface
LPDDRAWI_DIRECTDRAW_GBL lpDD
LPRGNDATA lpStaticClipList
LPDDRAWI_DDRAWCLIPPER_GBL lpGbl
DDPIXELFORMAT ddpfSurface
LPDDRAWI_DIRECTDRAW_GBL lpDD
LPDDRAWI_DDRAWCLIPPER_LCL lpDDClipper
LPDDRAWI_DDRAWSURFACE_GBL lpGbl
LPDDRAWI_DDRAWSURFACE_MORE lpSurfMore
LPDDHALMODEINFO lpModeInfo
LPDDRAWI_DIRECTDRAW_LCL lpExclusiveOwner
LPDDRAWI_DIRECTDRAW_GBL lp16DD
LPDDHAL_CALLBACKS lpDDCBtmp
LPDDRAWI_DIRECTDRAW_GBL lpGbl
PVOID GetAvailDriverMemory
BITMAPINFOHEADER bmiHeader
DWORD WINAPI GetCurrentProcessId(void)
int WINAPI GetDIBits(_In_ HDC hdc, _In_ HBITMAP hbm, _In_ UINT start, _In_ UINT cLines, _Out_opt_ LPVOID lpvBits, _At_((LPBITMAPINFOHEADER) lpbmi, _Inout_) LPBITMAPINFO lpbmi, _In_ UINT usage)
HBITMAP WINAPI CreateCompatibleBitmap(_In_ HDC hdc, _In_ INT cx, _In_ INT cy)
BOOL WINAPI DeleteDC(_In_ HDC)
HDC WINAPI CreateDCW(_In_opt_ LPCWSTR pszDriver, _In_opt_ LPCWSTR pszDevice, _In_opt_ LPCWSTR psz, _In_opt_ const DEVMODEW *pdmInit)
HWND WINAPI GetDesktopWindow(void)
#define ENUM_CURRENT_SETTINGS
HDC WINAPI GetDC(_In_opt_ HWND)