overlay.h
上传用户:wstnjxml
上传日期:2014-04-03
资源大小:7248k
文件大小:5k
源码类别:

Windows CE

开发平台:

C/C++

  1. /*****************************************************************************
  2.  *
  3.  * This program is free software ; you can redistribute it and/or modify
  4.  * it under the terms of the GNU General Public License as published by
  5.  * the Free Software Foundation; either version 2 of the License, or
  6.  * (at your option) any later version.
  7.  *
  8.  * This program is distributed in the hope that it will be useful,
  9.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11.  * GNU General Public License for more details.
  12.  *
  13.  * You should have received a copy of the GNU General Public License
  14.  * along with this program; if not, write to the Free Software
  15.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  16.  *
  17.  * $Id: overlay.h 615 2006-01-26 16:57:51Z picard $
  18.  *
  19.  * The Core Pocket Media Player
  20.  * Copyright (c) 2004-2005 Gabor Kovacs
  21.  *
  22.  ****************************************************************************/
  23. #ifndef __OVERLAY_H
  24. #define __OVERLAY_H
  25. // default colorkey to use
  26. #define COLORKEY CRGB(32,0,32)
  27. #define OVERLAY_CLASS FOURCC('O','V','L','A')
  28. #define DDRAW_ID FOURCC('D','R','A','W')
  29. #define DIRECT_ID FOURCC('D','I','R','C')
  30. #define FLYTV_ID FOURCC('F','L','Y','T')
  31. #define GAPI_ID FOURCC('G','A','P','I')
  32. #define GDI_ID FOURCC('G','D','I','_')
  33. #define RAW_ID FOURCC('R','A','W','D')
  34. #define XSCALE_ID FOURCC('X','S','C','2')
  35. #define XSCALE_LOW_ID FOURCC('X','S','L','2')
  36. #define HIRES_ID FOURCC('H','I','R','S')
  37. #define S1D13806_ID FOURCC('S','1','D','1')
  38. #define CONSOLE_ID FOURCC('O','C','O','N')
  39. #define OVERLAY_SYMBIAN_ID FOURCC('O','S','Y','M')
  40. #define DDRAW_COLORKEY 0x100
  41. #define DDRAW_BLIT 0x101
  42. #define DDRAW_BLITSTRETCH 0x102
  43. #define DDRAW_FORMAT 0x103
  44. #define DDRAWFORMAT_ENUM FOURCC('D','R','A','F')
  45. #define DDRAWFORMAT_AUTO 0x100
  46. #define DDRAWFORMAT_YV12 0x101
  47. #define DDRAWFORMAT_YUY2 0x102
  48. #define DDRAWFORMAT_RGB 0x103
  49. #define RAW_WIDTH 0x100
  50. #define RAW_HEIGHT 0x101
  51. #define RAW_PITCHX 0x102
  52. #define RAW_PITCHY 0x103
  53. #define RAW_BPP 0x104
  54. #define RAW_FORMAT 0x105
  55. #define RAW_POINTER 0x106
  56. #define GAPI_WIDTH 0x100
  57. #define GAPI_HEIGHT 0x101
  58. #define GAPI_PITCHX 0x102
  59. #define GAPI_PITCHY 0x103
  60. #define GAPI_BPP 0x104
  61. #define GAPI_FORMAT 0x105
  62. #define GAPI_POINTER 0x106
  63. #define GAPI_DRAM 0x107
  64. #define GAPI_OPEN_ERROR 0x200
  65. #define HIRES_TRIPLEBUFFER 0x100
  66. #define HIRES_USEBORDER 0x101
  67. #define HIRES_USEBORDER_INFO 0x102
  68. #define XSCALEDRIVER_ID FOURCC('X','S','C','D')
  69. #define XSCALEDRIVER_STRETCH 0x100
  70. #define XSCALEDRIVER_FLIP 0x101
  71. #define XSCALEDRIVER_ALLOC_AT_START 0x102
  72. #define XSCALEDRIVER_DETECTED 0x103
  73. typedef int (*ovlfunc)(void* This);
  74. typedef void (*ovldone)(void* This);
  75. typedef int (*ovlblit)(void* This,const constplanes Data,const constplanes LastData);
  76. typedef int (*ovllock)(void* This,planes Planes, bool_t OnlyAligned);
  77. typedef struct overlay
  78. {
  79. node Node;
  80. ovlfunc Init;
  81. ovldone Done;
  82. ovlblit Blit;
  83. ovlfunc Update;
  84. ovlfunc UpdateShow;
  85. ovlfunc Reset;
  86. ovllock Lock;
  87. ovlfunc Unlock;
  88. idct* AccelIDCT;
  89. int SetFX;
  90. int ClearFX;
  91. int Caps;
  92. packetformat Output;
  93. // these are handled by overlay
  94. bool_t DoPowerOff; // use backup/restore in background
  95. bool_t Primary;
  96. bool_t Overlay;
  97. bool_t Disabled; // created with width=0 or height=0
  98. bool_t Inited;
  99. bool_t Background;
  100. bool_t Updating;
  101. bool_t ForceUpdate; 
  102. bool_t FullScreenViewport;
  103. bool_t Dirty;
  104. bool_t Visible;
  105. bool_t Clipping;
  106. bool_t AutoPrerotate;
  107. bool_t Show;
  108. bool_t InputHintDir;
  109. bool_t Play;
  110. bool_t TurningOff;
  111. tick_t LastTime;
  112. tick_t CurrTime;
  113. int Total;
  114. int Dropped;
  115. rgbval_t ColorKey;
  116. void* Soft;
  117. rect Viewport;
  118. rect SrcAlignedRect;
  119. rect GUIAlignedRect;
  120. rect DstAlignedRect;
  121. blitfx FX;
  122. blitfx OrigFX;
  123. fraction Aspect;
  124. bool_t PreRotate;
  125. int InputDirection;
  126. int PrefDirection;
  127. bool_t UpdateInputFormat;
  128. void* Module;
  129. pin Pin;
  130. packetformat Input;
  131. idctbackup Backup;
  132. int ErrorTime;
  133. int Reserved[10];
  134. } overlay;
  135. DLL int OverlayEnum(overlay* p,int* No,datadef* DataType);
  136. DLL int OverlayGet(overlay* p,int No,void* Data,int Size);
  137. DLL int OverlaySet(overlay* p,int No,const void* Data,int Size);
  138. DLL int OverlayUpdateAlign(overlay* p);
  139. DLL int OverlayUpdateShow(overlay* p, bool_t Temp);
  140. DLL int OverlayBlitImage(overlay* p, const planes Data, const planes DataLast);
  141. DLL int OverlayUpdateFX(overlay* p, bool_t ForceUpdate);
  142. DLL void OverlayClearBorder(overlay* p);
  143. DLL int OverlayDefaultBlit(overlay* p, const constplanes Data, const constplanes DataLast);
  144. void Overlay_Init();
  145. void Overlay_Done();
  146. #define GETRAWFRAMEBUFFER   0x00020001
  147. #define FORMAT_565 1
  148. #define FORMAT_555 2
  149. #define FORMAT_OTHER 3
  150. typedef struct RawFrameBufferInfo
  151. {
  152. uint16_t wFormat;
  153. uint16_t wBPP;
  154. char *pFramePointer;
  155. int cxStride;
  156. int cyStride;
  157. int cxPixels;
  158. int cyPixels;
  159. } RawFrameBufferInfo;
  160. #define ESC_QUERYESCSUPPORT 8
  161. #define GETGXINFO 0x00020000
  162. #define kfDirect 0x20
  163. #define kfDirect555 0x40
  164. #define kfDirect565 0x80
  165. #define kfLandscape 0x08
  166. typedef struct GXDeviceInfo 
  167. {
  168. long Version;           //00
  169. void * pvFrameBuffer;   //04
  170. unsigned long cbStride; //08
  171. unsigned long cxWidth;  //0c
  172. unsigned long cyHeight; //10
  173. unsigned long cBPP;     //14
  174. unsigned long ffFormat; //18
  175. char Unused[0x84-7*4];
  176. } GXDeviceInfo;
  177. #endif