Partager via


DDGPE Class Definition (Compact 2013)

3/26/2014

The DDGPE class extends the GPE class, and serves as the base from which a concrete display driver can be created. A DDGPE object represents a single display device.

// Surface memory allocation
virtual SCODE AllocSurface (
DDGPESurf **ppSurf,
int width,
int height,
EGPEFormat format,
EDDGPEPixelFormat pixelFormat,
int surfaceFlags
);
virtual SCODE AllocSurface (
DDGPESurf **ppSurf,
DDGPEAllocSurfaceData*pddgpeAllocSurfaceData
);

virtual SCODE AllocVideoSurface (
DDGPESurf **ppSurf,
int width,
int height,
EGPEFormat format,
EDDGPEPixelFormat pixelFormat,
unsigned long *pOffsetInVideoMemory
);
virtual SCODE AllocVideoSurface (
LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface,
int width,
int height,
EGPEFormat format,
EDDGPEPixelFormat pixelFormat,
unsigned long *pOffsetInVideoMemory
);
virtual SCODE AllocVideoSurface (
DDGPESurf **ppSurf,
DDGPEAllocSurfaceData*pddgpeAllocSurfaceData,
unsigned long *pOffsetInVideoMemory
);
virtual SCODE AllocVideoSurface (
LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface,
DDGPEAllocSurfaceData*pddgpeAllocSurfaceData,
unsigned long *pOffsetInVideoMemory
);

// Surface creation
virtual SCODE WrapSurface (
LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface,
int width,
int height,
EGPEFormat format,
EDDGPEPixelFormat pixelFormat,
int stride,
int surfaceFlags
);
virtual SCODE WrapSurface (
DDGPESurf **ppSurf,
int width,
int height,
EGPEFormat format,
EDDGPEPixelFormat pixelFormat,
unsigned char *pBits,
int stride
);
virtual SCODE WrapSurface (
LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface,
int width,
int height,
EGPEFormat format,
EDDGPEPixelFormat pixelFormat,
unsigned char *pBits,
int stride
);
virtual SCODE WrapSurface (
DDGPESurf **ppSurf,
DDGPEAllocSurfaceData*pddgpeAllocSurfaceData
);
virtual SCODE WrapSurface (
LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface,
DDGPEAllocSurfaceData*pddgpeAllocSurfaceData
);

// Blit operations
virtual SCODE BltPrepare (
DDGPEBltParms *pddgpeBltParms
);
virtual SCODE PerformBlt (
DDGPEBltParms *pddgpeBltParms
);
virtual SCODE BltExpanded (
DDGPESurf *pDst,
DDGPESurf *pSrc,
DDGPESurf *pPattern,
DDGPESurf *pMask,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
CONST RECT *prclDst,
CONST RECT *prclSrc,
ULONG solidColor,
ULONG bltFlags,
ULONG rop4
);
virtual SCODE BltExpanded (
DDGPESurf *pDst,
DDGPESurf *pSrc,
DDGPESurf *pPattern,
CONST RECT *prclDst,
CONST RECT *prclSrc,
ULONG solidColor,
ULONG bltFlags,
ULONG rop4
);

// Surface flipping
virtual void SetVisibleSurface (
GPESurf *pSurf,
BOOL bWaitForVBlank = FALSE
);
virtual void SetVisibleSurface (
GPESurf *pSurf,
DWORD dwData,
BOOL bWaitForVBlank = FALSE
);

// Display modes
virtual SCODE DetectMode (
DWORD*dwModeID,
DWORD dwWidth,
DWORD dwHeight,
EGPEFormat format,
EDDGPEPixelFormat pixelFormat,
DDPIXELFORMAT*pDDPF = NULL  
);

virtual DWORD GetPhysicalModeId (
void
);

virtual SCODE GetModeInfoEx (
GPEModeEx *pModeEx,
int modeNo
);
virtual SCODE SetMode (
int modeNo,
HPALETTE *pPalette,
BOOL bChangeGDISurfaceMode
);

// Pixel format
virtual SCODE DetectPixelFormat (
DWORD dwCaps,
DDPIXELFORMAT *pDDPF,
EGPEFormat *pFormat,
EDDGPEPixelFormat *pPixelFormat
);

// whether the scanline is in display
virtual int InDisplay (
void
);

// Custom driver data
virtual DDGPEDriverData*
 GetDriverData (
void
);

virtual void SetDriverData (
DDGPEDriverData*pDriverData
);

// Custom driver identifier
virtual GUID GetDriverGUID (
void
);
virtual void SetDriverGUID (
GUID guidDriverGUID
);

// member variables
protected:
GPEModeEx *m_pModeEx;
DWORD m_dwPhysicalModeID

public:
DDGPEDriverData *m_pDriverData;
GUID m_guidDriverGUID;

See Also

Reference

DDGPE Class