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.