⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gpeflat.h

📁 EP9315开发板的Wince6.0的BSP包文件
💻 H
字号:
//**********************************************************************
//                                                                      
// Filename: gpeflat.h
//                                                                      
// Description: Header file for the GPEFlat Class.
//                                                                      
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Use of this source code is subject to the terms of the Cirrus end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to 
// use this source code. For a copy of the EULA, please see the 
// EULA.RTF on your install media.
//
// Copyright(c) Cirrus Logic Corporation 2005, All Rights Reserved                       
//                                                                      
//**********************************************************************

#ifndef __GPEFLAT_H__
#define __GPEFLAT_H__

class RGPEFlatSurf;
class GPEFlat : public GPE
{
private:

    GPEMode         m_ModeInfo;
    DWORD           m_pvFlatFrameBuffer;
    DWORD           m_cbScanLineLength;
    DWORD           m_cxPhysicalScreen;
    DWORD           m_cyPhysicalScreen;
    DWORD           m_ulColorDepth;
    DWORD           m_VirtualFrameBuffer;
    DWORD           m_RedMaskSize;
    DWORD           m_RedMaskPosition;
    DWORD           m_GreenMaskSize;
    DWORD           m_GreenMaskPosition;
    DWORD           m_BlueMaskSize;
    DWORD           m_BlueMaskPosition;
    ULONG           m_ulVideoAttrib;

    BOOL            m_CursorDisabled;
    BOOL            m_CursorVisible;
    BOOL            m_CursorForcedOff;
    RECTL           m_CursorRect;
    POINTL          m_CursorSize;
    POINTL          m_CursorHotspot;
    UCHAR           *m_CursorBackingStore;
    UCHAR           *m_CursorXorShape;
    UCHAR           *m_CursorAndShape;
    PALETTEENTRY    m_Palette[256];
    Ep931xRegistrySettings   m_Registry;
    StartStop       m_StartStop;
    

public:
                    GPEFlat(void);
    virtual INT     NumModes(void);
    virtual SCODE   SetMode(INT modeId, HPALETTE *palette);
    virtual INT     InVBlank(void);
    virtual SCODE   SetPalette(const PALETTEENTRY *source, USHORT firstEntry,
                                USHORT numEntries);
    virtual SCODE   GetModeInfo(GPEMode *pMode, INT modeNumber);
    virtual SCODE   SetPointerShape(GPESurf *mask, GPESurf *colorSurface,
                                    INT xHot, INT yHot, INT cX, INT cY);
    virtual SCODE   MovePointer(INT xPosition, INT yPosition);
    virtual void    WaitForNotBusy(void);
    virtual INT     IsBusy(void);
    virtual void    GetPhysicalVideoMemory(unsigned long *physicalMemoryBase, unsigned long *videoMemorySize);
    virtual SCODE   AllocSurface(GPESurf **surface, INT width, INT height,
                                    EGPEFormat format, INT surfaceFlags);
    virtual SCODE   Line(GPELineParms *lineParameters, EGPEPhase phase);
    virtual SCODE   BltPrepare(GPEBltParms *blitParameters);
    virtual SCODE   BltComplete(GPEBltParms *blitParameters);
    virtual ULONG   GetGraphicsCaps();

    SCODE           WrappedEmulatedLine (GPELineParms *lineParameters);
    void            CursorOn (void);
    void            CursorOff (void);
    virtual VOID    PowerHandler( BOOL bOff);

#ifdef BSP_EP93XX_DISPLAY_ROTATION

	ULONG  DrvEscape(
                        SURFOBJ *pso,
                        ULONG    iEsc,
                        ULONG    cjIn,
                        PVOID    pvIn,
                        ULONG    cjOut,
                        PVOID    pvOut);


	int GetRotateModeFromReg();
	void SetRotateParams();
	LONG DynRotate(int angle); 

#endif

	SCODE FlushPointer( INT cX, INT cY , BOOL bSizeChanged );

	Node2D			*m_p2DVideoMemory;


    DWORD           m_dwPhysCursorAddress;
    PUCHAR          m_pCursor;
    
    BOOL            m_bCursorEnabled;
    BOOL            m_bCursorHasShape;
    DWORD           m_xPosition;
    DWORD           m_yPosition;

    ULONG			m_VideoMemSize;

	PUCHAR			m_ucCusorValue;


};



class RGPEFlatSurf : public GPESurfRotate
{
private:
    Node2D          *m_pNode2D;
public:
                    RGPEFlatSurf(int width, int height, ULONG offset, PVOID pBits, int stride, EGPEFormat format, Node2D *pNode);

    virtual         ~RGPEFlatSurf(void);
    int             Top(void) { return m_pNode2D->Top(); }
    int             Left(void) { return m_pNode2D->Left(); }
};


#endif __GPEFLAT_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -