DisplayConfig.h
上传用户:fjqzjn
上传日期:2008-01-21
资源大小:2764k
文件大小:4k
- /******************************************************************************
- ** Copyright (C) 2004. Intel Corporation. All Rights Reserved.
- **
- ** The source code contained or described herein and all documents related to the
- ** source code ("Material") are owned by Intel Corporation or its suppliers or
- ** licensors. Title to the Material remains with Intel Corporation or its suppliers
- ** and licensors. The Material contains trade secrets and proprietary and
- ** confidential information of Intel or its suppliers and licensors. The Material
- ** is protected by worldwide copyright and trade secret laws and treaty provisions.
- ** No part of the Material may be used, copied, reproduced, modified, published,
- ** uploaded, posted, transmitted, distributed, or disclosed in any way without
- ** Intel抯 prior express written permission.
- **
- ** No license under any patent, copyright, trade secret or other intellectual
- ** property right is granted to or conferred upon you by disclosure or delivery
- ** of the Materials, either expressly, by implication, inducement, estoppel or
- ** otherwise. Any license under such intellectual property rights must be express
- ** and approved by Intel in writing.
- ******************************************************************************/
- // DisplayConfig.h: interface for the CDisplayConfig class.
- //
- //////////////////////////////////////////////////////////////////////
- #if !defined(AFX_DISPLAYCONFIG_H__4668C769_6235_49DF_BE29_BDED75CC40ED__INCLUDED_)
- #define AFX_DISPLAYCONFIG_H__4668C769_6235_49DF_BE29_BDED75CC40ED__INCLUDED_
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
- #include <gx.h> // RawFrameBufferInfo is defined in new MS GAPI header
- // remove this if using new/updated gx.h
- #ifndef GETRAWFRAMEBUFFER
- #define GETRAWFRAMEBUFFER 0x00020001
- typedef struct _RawFrameBufferInfo
- {
- WORD wFormat;
- WORD wBPP;
- VOID *pFramePointer;
- int cxStride;
- int cyStride;
- int cxPixels;
- int cyPixels;
- } RawFrameBufferInfo;
- #define FORMAT_565 1
- #define FORMAT_555 2
- #define FORMAT_OTHER 3
- #endif
- #include "dispconfig.h"
- class CDisplayConfig
- {
- public:
- HDC CreateSecondMarathonHDC(WORD wWidth, WORD wHeight);
- void FreeMarathonFrameBufferResources();
- CDisplayConfig();
- virtual ~CDisplayConfig();
- void CopyDesktopToXScale();
- RawFrameBufferInfo* CreateMarathonFrameBuffer(WORD wWidth, WORD wHeight);
- RawFrameBufferInfo* GetDesktopFrameBuffer();
- RawFrameBufferInfo* GetXScaleFrameBuffer();
- void SetExternalSource(DCFG_LCD_SOURCE eSource);
- void SetInternalSource(DCFG_LCD_SOURCE eSource);
- private:
- void AcquireLock(BOOL bAcquire);
- PWORD ConvertSurfaceInfoToRawFrameBuffer(const DISPCFG_GET_SURFACE_INFO &surfinfo, RawFrameBufferInfo &raw);
- DWORD GetCurrentOSOrientation();
- RawFrameBufferInfo m_RFBDesktop; // marathon frame buffer Windows draws to
- PWORD m_pBufDesktop; // ptr to marathon frame memory
- RawFrameBufferInfo m_RFBXScale; // SDRAM frame buffer displayed by XScale
- PWORD m_pBufXScale; // ptr to SDRAM frame buffer memory
- RawFrameBufferInfo m_RFBSecondary; // marathon frame buffer other than desktop
- PWORD m_pBufSecondary; // ptr to marathon frame secondary memory
- DWORD m_dwOrigPhysRotation;
- HBITMAP m_hbmSecondary;
- HBITMAP m_hbmOldBitmap;
- HDC m_hdcMarathon; // This HDC is also the "desktop"
- HDC m_hdcXScale;
- HDC m_hdcSecondaryMem;
- };
- #endif // !defined(AFX_DISPLAYCONFIG_H__4668C769_6235_49DF_BE29_BDED75CC40ED__INCLUDED_)