DDRAWI_DDRAWSURFACE_GBL
The DDRAWI_DDRAWSURFACE_GBL structure contains the global DirectDrawSurface data that can be shared between object instances.
typedef struct _DDRAWI_DDRAWSURFACE_GBL
{
DWORD dwRefCnt;
DWORD dwGlobalFlags;
union
{
LPACCESSRECTLIST lpRectList;
DWORD dwBlockSizeY;
{;
union
{
LPVMEMHEAP lpVidMemHeap;
DWORD dwBlockSizeX;
};
union
{
LPDDRAWI_DIRECTDRAW_GBL lpDD;
LPVOID lpDDHandle;
};
FLATPTR fpVidMem;
union
{
LONG lPitch;
DWORD dwLinearSize;
{;
WORD wHeight;
WORD wWidth;
DWORD dwUsageCount;
ULONG_PTR dwReserved1;
DDPIXELFORMAT ddpfSurface;
} DDRAWI_DDRAWSURFACE_GBL;
Members
dwRefCnt
This member is used by DirectDraw and should not be filled in by the driver.dwGlobalFlags
Contains the global surface flags.Flag Usage DDRAWISURFGBL_HARDWAREOPDEST This flag is used by DirectDraw and should not be set by the driver. DDRAWISURFGBL_HARDWAREOPSOURCE This flag is used by DirectDraw and should not be set by the driver. DDRAWISURFGBL_HARDWAREOPSTARTED This flag is used by DirectDraw and should not be set by the driver. DDRAWISURFGBL_IMPLICITHANDLE This flag is used by DirectDraw and should not be set by the driver. DDRAWISURFGBL_ISCLIENTMEM This flag is used by DirectDraw and should not be set by the driver. DDRAWISURFGBL_ISGDISURFACE Indicates this surface represents what GDI thinks is the front buffer. DDRAWISURFGBL_LATEALLOCATELINEAR This flag is used by DirectDraw and should not be set by the driver. DDRAWISURFGBL_LOCKBROKEN This flag is used by DirectDraw and should not be set by the driver. DDRAWISURFGBL_LOCKNOTHOLDINGWIN16LOCK This flag is used by DirectDraw and should not be set by the driver. DDRAWISURFGBL_LOCKVRAMSTYLE This flag is used by DirectDraw and should not be set by the driver. DDRAWISURFGBL_MEMFREE Indicates display memory has been freed. DDRAWISURFGBL_SOFTWAREAUTOFLIP Indicates this surface is autoflipped using software. DDRAWISURFGBL_SYSMEMEXECUTEBUFFER Indicates the surface was allocated in system memory. DDRAWISURFGBL_SYSMEMREQUESTED Indicates that the surface is in system memory at the request of the user. DDRAWISURFGBL_VPORTDATA This flag is used by DirectDraw and should not be set by the driver. DDRAWISURFGBL_VPORTINTERLEAVED This flag is used by DirectDraw and should not be set by the driver. lpRectList
This member is used by DirectDraw and should not be filled in by the driver.dwBlockSizeY
Contains the block size of the Y axis of display memory that the display driver requested.lpVidMemHeap
Pointer to a VMEMHEAP structure from which the heap display memory was allocated.dwBlockSizeX
Contains the block size of the X axis of display memory that the display driver requested.lpDD
Pointer to a DDRAWI_DIRECTDRAW_GBL structure that contains information about the DirectDraw object.lpDDHandle
Handle to the DirectDraw object. This member is used by the display driver when calling functions in Ddraw16.dll.fpVidMem
Pointer to display memory.lPitch
Indicates the distance to the start of the next line on the surface.dwLinearSize
Indicates the linear size of a non-rectangular surface.wHeight
Indicates the height of the surface.wWidth
Indicates the width of the surface.dwUsageCount
This member is used by DirectDraw and should not be filled in by the driver.dwReserved1
If using DDGPE, your surface pointer must be stored here to maintain GPE/DirectDraw compatibility. This is a change instituted in DXPAK release 1.1. Previously, this information was stored in the DDRAWI_DDRAWSURFACE_LCL structure.ddpfSurface
Pointer to a DDPIXELFORMAT structure that contains the pixel format information for this surface. This member is only allocated if the pixel format differs from that of the primary display, that is, it is not allocated unless the DDRAWISURF_HASPIXELFORMAT flag in the DDRAWI_DDRAWSURFACE_LCL structure is set.
Remarks
Driver writers should use the GET_LPDDRAWSURFACE_GBL_MORE macro to traverse from a DDRAWI_DDRAWSURFACE_GBL address to the DDRAWI_DDRAWSURFACE_GBL_MORE structure.
Last updated on Tuesday, July 13, 2004
© 1992-2000 Microsoft Corporation. All rights reserved.