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

📄 ipu_adc.h

📁 Freescale ARM11系列CPU MX31的WINCE 5.0下的BSP
💻 H
字号:
//------------------------------------------------------------------------------
//
//  Copyright (C) 2004-2006, Freescale Semiconductor, Inc. All Rights Reserved.
//  THIS SOURCE CODE, AND ITS USE AND DISTRIBUTION, IS SUBJECT TO THE TERMS
//  AND CONDITIONS OF THE APPLICABLE LICENSE AGREEMENT
//
//------------------------------------------------------------------------------
//
// File:        ipu_adc.h
//
// Description: This header file defines class IPU_ADC.
//              The IPU ADC display driver is GPE based.  IPU_ADC is a subclass
//              of GPE.
//
//------------------------------------------------------------------------------

#ifndef __IPU_ADC_H__
#define __IPU_ADC_H__

#include <dispdrvr.h>

//------------------------------------------------------------------------------
// Defines


//------------------------------------------------------------------------------
// Class

class IPU_ADC : public GPE
{
private:

    GPEMode         m_ModeInfo;
    void            *m_pVirtualFrameBuffer;
    int             m_nVideoMemorySize;     // Size in bytes of video RAM total
    DWORD           m_PowerState;
    Node2D          *m_p2DVideoMemory;

public:
                    IPU_ADC();

    virtual int     NumModes();
    virtual SCODE   SetMode(int modeId, HPALETTE *pPalette);
    virtual int     InVBlank();
    virtual SCODE   SetPalette(const PALETTEENTRY *src,
                               unsigned short firstEntry,
                               unsigned short numEntries);
    virtual SCODE   GetModeInfo(GPEMode *pMode, int modeNo);
    virtual SCODE   SetPointerShape(GPESurf *pMask,
                                    GPESurf *pColorSurf,
                                    int xHot,
                                    int yHot,
                                    int cx,
                                    int cy);
    virtual SCODE   MovePointer(int x, int y);
    virtual void    WaitForNotBusy();
    virtual int     IsBusy();
    virtual void    GetPhysicalVideoMemory(unsigned long *physicalMemoryBase,
                                           unsigned long *videoMemorySize);
    virtual SCODE   AllocSurface(GPESurf **ppSurf,
                                 int width,
                                 int height,
                                 EGPEFormat format,
                                 int surfaceFlags);
    virtual SCODE   Line(GPELineParms *pLineParms, EGPEPhase phase);
    virtual SCODE   BltPrepare(GPEBltParms *pBltParms);
    virtual SCODE   BltComplete(GPEBltParms *pBltParms);
    virtual BOOL    ContrastControl(ULONG cmd, ULONG *pValue);
    void            PowerHandler(BOOL bOff);
    ULONG           DrvEscape(SURFOBJ *pso,
                              ULONG    iEsc,
                              ULONG    cjIn,
                              PVOID    pvIn,
                              ULONG    cjOut,
                              PVOID    pvOut);
    int             GetRotateModeFromReg();
    void            SetRotateParams();
    LONG            DynRotate(int angle);

private:
    SCODE           AcceleratedFillRect(GPEBltParms *pBltParms);
    SCODE           AcceleratedSrcCopyBlt(GPEBltParms *pBltParms);
};


class IPU_ADCSurf : public GPESurf
{
private:
    Node2D          *m_pNode2D;

public:
                    IPU_ADCSurf(int width,
                                int height,
                                ULONG offset,
                                PVOID pBits,
                                int stride,
                                EGPEFormat format,
                                Node2D *pNode);
                    ~IPU_ADCSurf(void);
    int             Top(void) { return m_pNode2D->Top(); }
    int             Left(void) { return m_pNode2D->Left(); }
};

#endif // __IPU_ADC_H__

⌨️ 快捷键说明

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