DisplayConfig.h
上传用户:fjqzjn
上传日期:2008-01-21
资源大小:2764k
文件大小:4k
源码类别:

Windows CE

开发平台:

Visual C++

  1. /******************************************************************************
  2. ** Copyright (C) 2004. Intel Corporation. All Rights Reserved. 
  3. **
  4. ** The source code contained or described herein and all documents related to the
  5. ** source code ("Material") are owned by Intel Corporation or its suppliers or 
  6. ** licensors. Title to the Material remains with Intel Corporation or its suppliers
  7. ** and licensors. The Material contains trade secrets and proprietary and 
  8. ** confidential information of Intel or its suppliers and licensors. The Material 
  9. ** is protected by worldwide copyright and trade secret laws and treaty provisions.
  10. ** No part of the Material may be used, copied, reproduced, modified, published, 
  11. ** uploaded, posted, transmitted, distributed, or disclosed in any way without 
  12. ** Intel抯 prior express written permission.
  13. ** 
  14. ** No license under any patent, copyright, trade secret or other intellectual 
  15. ** property right is granted to or conferred upon you by disclosure or delivery 
  16. ** of the Materials, either expressly, by implication, inducement, estoppel or 
  17. ** otherwise. Any license under such intellectual property rights must be express 
  18. ** and approved by Intel in writing.
  19. ******************************************************************************/
  20. // DisplayConfig.h: interface for the CDisplayConfig class.
  21. //
  22. //////////////////////////////////////////////////////////////////////
  23. #if !defined(AFX_DISPLAYCONFIG_H__4668C769_6235_49DF_BE29_BDED75CC40ED__INCLUDED_)
  24. #define AFX_DISPLAYCONFIG_H__4668C769_6235_49DF_BE29_BDED75CC40ED__INCLUDED_
  25. #if _MSC_VER > 1000
  26. #pragma once
  27. #endif // _MSC_VER > 1000
  28. #include <gx.h> // RawFrameBufferInfo is defined in new MS GAPI header
  29. // remove this if using new/updated gx.h
  30. #ifndef GETRAWFRAMEBUFFER
  31.     #define GETRAWFRAMEBUFFER   0x00020001
  32.     typedef struct _RawFrameBufferInfo
  33.     {
  34.     WORD wFormat;
  35.     WORD wBPP;
  36.     VOID *pFramePointer;
  37.     int cxStride;
  38.     int cyStride;
  39.         int cxPixels;
  40.         int cyPixels;
  41.     } RawFrameBufferInfo;
  42.     #define FORMAT_565 1
  43.     #define FORMAT_555 2
  44.     #define FORMAT_OTHER 3
  45. #endif
  46. #include "dispconfig.h"
  47. class CDisplayConfig  
  48. {
  49. public:
  50. HDC CreateSecondMarathonHDC(WORD wWidth, WORD wHeight);
  51. void FreeMarathonFrameBufferResources();
  52. CDisplayConfig();
  53. virtual ~CDisplayConfig();
  54. void CopyDesktopToXScale();
  55. RawFrameBufferInfo* CreateMarathonFrameBuffer(WORD wWidth, WORD wHeight);
  56. RawFrameBufferInfo* GetDesktopFrameBuffer();
  57. RawFrameBufferInfo* GetXScaleFrameBuffer();
  58. void SetExternalSource(DCFG_LCD_SOURCE eSource);
  59. void SetInternalSource(DCFG_LCD_SOURCE eSource);
  60. private:
  61. void AcquireLock(BOOL bAcquire);
  62. PWORD ConvertSurfaceInfoToRawFrameBuffer(const DISPCFG_GET_SURFACE_INFO &surfinfo, RawFrameBufferInfo &raw);
  63. DWORD GetCurrentOSOrientation();
  64. RawFrameBufferInfo m_RFBDesktop; // marathon frame buffer Windows draws to
  65. PWORD m_pBufDesktop; // ptr to marathon frame memory
  66. RawFrameBufferInfo m_RFBXScale; // SDRAM frame buffer displayed by XScale
  67. PWORD m_pBufXScale; // ptr to SDRAM frame buffer memory
  68. RawFrameBufferInfo m_RFBSecondary; // marathon frame buffer other than desktop
  69. PWORD m_pBufSecondary; // ptr to marathon frame secondary memory
  70. DWORD m_dwOrigPhysRotation;
  71. HBITMAP m_hbmSecondary;
  72. HBITMAP m_hbmOldBitmap;
  73. HDC m_hdcMarathon; // This HDC is also the "desktop"
  74. HDC m_hdcXScale;
  75. HDC m_hdcSecondaryMem;
  76. };
  77. #endif // !defined(AFX_DISPLAYCONFIG_H__4668C769_6235_49DF_BE29_BDED75CC40ED__INCLUDED_)