Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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
Send Feedback on this topic to the authors