s3c24a0disp.h

来自「S3C24A0的完整BSP包,对开发此芯片的开发者很有用.」· C头文件 代码 · 共 138 行

H
138
字号
/*++
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.
Copyright (c) 2003. Samsung Electronics, co. ltd  All rights reserved.

Module Name:  

Abstract:

	This file implements the S3C24A0 LCD headers

rev:
	2003.6.28	: First S3C24A0 version (jaeyong Lee, jaeyong2.lee@samsung.com)

Notes: 
--*/

#ifndef __S3C24A0DISP_H__
#define __S3C24A0DISP_H__

class S3C24A0Surf;

#ifdef	DD_ENABLE
class S3C24A0DISP : public DDGPE
#else	// DD_ENABLE
class S3C24A0DISP : public GPE
#endif	// DD_ENABLE
{
private:
	GPEMode			m_ModeInfo;
#ifdef DD_ENABLE
	GPEModeEx		m_pModeEx;
#endif
	DWORD			m_cbScanLineLength;
	DWORD			m_cxPhysicalScreen;
	DWORD			m_cyPhysicalScreen;
	DWORD			m_colorDepth;
	DWORD			m_VirtualFrameBuffer;
	DWORD			m_FrameBufferSize;

	Node2D			*m_p2DVideoMemory;

	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;
        ULONG                    m_VideoPowerState;
        DWORD                    m_dwLCDPhysicalFrameBase;
        DWORD                    m_bClearAlternateVideoBCR;

	HANDLE    m_hVFBMapping;

public:
					S3C24A0DISP(void);
					~S3C24A0DISP();
	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);
#ifdef	DD_ENABLE
    void            GetVirtualVideoMemory(unsigned long * virtualMemoryBase, unsigned long *videoMemorySize);
#endif	// DD_ENABLE
	virtual SCODE	Line(GPELineParms *lineParameters, EGPEPhase phase);
	virtual SCODE	BltPrepare(GPEBltParms *blitParameters);
	virtual SCODE	BltComplete(GPEBltParms *blitParameters);
//	virtual ULONG	GetGraphicsCaps();
	virtual ULONG   DrvEscape(
                        SURFOBJ *pso,
                        ULONG    iEsc,
                        ULONG    cjIn,
                        PVOID    pvIn,
                        ULONG    cjOut,
                        PVOID    pvOut);
	SCODE			WrappedEmulatedLine (GPELineParms *lineParameters);
	void			CursorOn (void);
	void			CursorOff (void);

	virtual SCODE	AllocSurface(GPESurf **surface, int width, int height, EGPEFormat format, int surfaceFlags);
#ifdef	DD_ENABLE
    virtual SCODE   AllocSurface(DDGPESurf **ppSurf, int width, int height, EGPEFormat format, EDDGPEPixelFormat pixelFormat, int surfaceFlags);
    virtual void	SetVisibleSurface( GPESurf *pSurf, BOOL bWaitForVBlank = FALSE);
#endif	// DD_ENABLE
	void			InitializeHardware (void);
	void			SetDisplayPower(ULONG);
#ifdef	DD_ENABLE
    friend void buildDDHALInfo( LPDDHALINFO lpddhi, DWORD modeidx );
#endif	// DD_ENABLE
};

#ifdef DD_ENABLE
class S3C24A0Surf : public DDGPESurf
#else	// DD_ENABLE
class S3c24A0Surf : public GPESurf
#endif	// DD_ENABLE
{
private:
	Node2D          *m_pNode2D;
public:
	// video memory surface
	S3C24A0Surf(int width, int height, ULONG offset, 
				PVOID pBits, int stride, EGPEFormat format, 
				Node2D *pNode);
	// video memory surface
#ifdef	DD_ENABLE
	S3C24A0Surf(int width, int height, ULONG offset,
				PVOID pBits, int stride, EGPEFormat format,
				EDDGPEPixelFormat pixelFormat, 
				Node2D *pNode);
#endif	// DD_ENABLE
	virtual         ~S3C24A0Surf();

	//Required for blt functions
	ULONG	m_ulTopLeft;
	ULONG	m_ulTop;
	ULONG	m_ulLeft;

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

#endif __S3C24A0DISP_H__

⌨️ 快捷键说明

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