Changeset 26630 in vbox for trunk/include
- Timestamp:
- Feb 18, 2010 3:47:33 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 57835
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/VBoxVideo.h
r26556 r26630 1060 1060 } VBOXVDMA_RECTL, *PVBOXVDMA_RECTL; 1061 1061 1062 typedef enum 1063 { 1064 VBOXVDMA_PIXEL_FORMAT_UNKNOWN = 0, 1065 VBOXVDMA_PIXEL_FORMAT_R8G8B8 = 20, 1066 VBOXVDMA_PIXEL_FORMAT_A8R8G8B8 = 21, 1067 VBOXVDMA_PIXEL_FORMAT_X8R8G8B8 = 22, 1068 VBOXVDMA_PIXEL_FORMAT_R5G6B5 = 23, 1069 VBOXVDMA_PIXEL_FORMAT_X1R5G5B5 = 24, 1070 VBOXVDMA_PIXEL_FORMAT_A1R5G5B5 = 25, 1071 VBOXVDMA_PIXEL_FORMAT_A4R4G4B4 = 26, 1072 VBOXVDMA_PIXEL_FORMAT_R3G3B2 = 27, 1073 VBOXVDMA_PIXEL_FORMAT_A8 = 28, 1074 VBOXVDMA_PIXEL_FORMAT_A8R3G3B2 = 29, 1075 VBOXVDMA_PIXEL_FORMAT_X4R4G4B4 = 30, 1076 VBOXVDMA_PIXEL_FORMAT_A2B10G10R10 = 31, 1077 VBOXVDMA_PIXEL_FORMAT_A8B8G8R8 = 32, 1078 VBOXVDMA_PIXEL_FORMAT_X8B8G8R8 = 33, 1079 VBOXVDMA_PIXEL_FORMAT_G16R16 = 34, 1080 VBOXVDMA_PIXEL_FORMAT_A2R10G10B10 = 35, 1081 VBOXVDMA_PIXEL_FORMAT_A16B16G16R16 = 36, 1082 VBOXVDMA_PIXEL_FORMAT_A8P8 = 40, 1083 VBOXVDMA_PIXEL_FORMAT_P8 = 41, 1084 VBOXVDMA_PIXEL_FORMAT_L8 = 50, 1085 VBOXVDMA_PIXEL_FORMAT_A8L8 = 51, 1086 VBOXVDMA_PIXEL_FORMAT_A4L4 = 52, 1087 VBOXVDMA_PIXEL_FORMAT_V8U8 = 60, 1088 VBOXVDMA_PIXEL_FORMAT_L6V5U5 = 61, 1089 VBOXVDMA_PIXEL_FORMAT_X8L8V8U8 = 62, 1090 VBOXVDMA_PIXEL_FORMAT_Q8W8V8U8 = 63, 1091 VBOXVDMA_PIXEL_FORMAT_V16U16 = 64, 1092 VBOXVDMA_PIXEL_FORMAT_W11V11U10 = 65, 1093 VBOXVDMA_PIXEL_FORMAT_A2W10V10U10 = 67 1094 } VBOXVDMA_PIXEL_FORMAT; 1095 1096 typedef struct VBOXVDMA_SURF_DESC 1097 { 1098 uint32_t width; 1099 uint32_t height; 1100 VBOXVDMA_PIXEL_FORMAT format; 1101 uint32_t bpp; 1102 uint32_t pitch; 1103 uint32_t fFlags; 1104 } VBOXVDMA_SURF_DESC, *PVBOXVDMA_SURF_DESC; 1105 1062 1106 //typedef uint64_t VBOXVDMAPHADDRESS; 1063 1107 typedef uint64_t VBOXVDMASURFHANDLE; 1064 1108 1109 typedef uint32_t VBOXVIDEOOFFSET; 1110 1111 #define VBOXVIDEOOFFSET_VOID ((VBOXVIDEOOFFSET)~0) 1112 1065 1113 typedef enum 1066 1114 { 1067 1115 VBOXVDMACMD_TYPE_UNDEFINED = 0, 1068 VBOXVDMACMD_TYPE_DMA TRANSFER= 11116 VBOXVDMACMD_TYPE_DMA_PRESENT_BLT = 1 1069 1117 } VBOXVDMACMD_TYPE; 1070 1118 … … 1076 1124 #define VBOXVDMAOPERAND_FLAGS_VRAMOFFSET 0x4 1077 1125 1078 typedef struct VBOXVDMA_RANGE_RECTL1079 {1080 VBOXVDMA_RECTL RangeRectl;1081 VBOXVDMA_RECTL SurfSize;1082 }VBOXVDMA_RANGE_RECTL, *PVBOXVDMA_RANGE_RECTL;1083 1084 typedef struct VBOXVDMA_RANGE_SIZE1085 {1086 uint32_t cbSize;1087 uint32_t u32Reserved;1088 }VBOXVDMA_RANGE_SIZE, *PVBOXVDMA_RANGE_SIZE;1089 1090 typedef struct VBOXVDMAOPERAND1091 {1092 uint32_t fFlags;1093 union1094 {1095 /* for Src specifies num of Dsts */1096 uint32_t cDsts;1097 /* for Dst specifies Screen ID in case VBOXVDMAOPERAND_FLAGS_PRIMARY flag is present in fFlags */1098 uint32_t iScreen;1099 } Info;1100 RTGCPHYS phAddress;1101 union1102 {1103 VBOXVDMA_RANGE_RECTL Rectl;1104 VBOXVDMA_RANGE_SIZE Size;1105 } Range;1106 } VBOXVDMAOPERAND, *PVBOXVDMAOPERAND;1107 1126 1108 1127 /* VBOXVDMACBUF_DR::phBuf specifies offset in VRAM */ … … 1137 1156 { 1138 1157 VBOXVDMACMD_TYPE enmType; 1139 uint32_t cbCmd;1158 uint32_t u32CmdSpecific; 1140 1159 } VBOXVDMACMD, *PVBOXVDMACMD; 1141 1160 1142 1161 #define VBOXVDMACMD_HEADER_SIZE() sizeof (VBOXVDMACMD) 1143 #define VBOXVDMACMD_BODY_SIZE(_pCmd) ((_pCmd)->cbBody) 1144 #define VBOXVDMACMD_SIZE(_pCmd) (VBOXVDMACMD_HEADER_SIZE() + VBOXVDMACMD_BODY_SIZE(_pCmd)) 1145 #define VBOXVDMACMD_BODY(_pCmd, _t) ( (_t)(((uint8_t*)(_pCmd)) + VBOXVDMACMD_HEADER_SIZE()) ) 1146 1147 typedef struct VBOXVDMACMD_DMATRANSFER 1148 { 1149 VBOXVDMAOPERAND Src; 1150 /* the size of aDst is specified in Src::u32CmdSpecific*/ 1151 VBOXVDMAOPERAND aDst[1]; 1152 } VBOXVDMACMD_DMATRANSFER, *PVBOXVDMACMD_DMATRANSFER; 1162 #define VBOXVDMACMD_SIZE_FROMBODYSIZE(_s) (VBOXVDMACMD_HEADER_SIZE() + (_s)) 1163 #define VBOXVDMACMD_SIZE(_t) (VBOXVDMACMD_SIZE_FROMBODYSIZE(sizeof (_t))) 1164 #define VBOXVDMACMD_BODY(_pCmd, _t) ( (_t*)(((uint8_t*)(_pCmd)) + VBOXVDMACMD_HEADER_SIZE()) ) 1165 #define VBOXVDMACMD_BODY_FIELD_OFFSET(_ot, _t, _f) ( (_ot)( VBOXVDMACMD_BODY(0, uint8_t) + RT_OFFSETOF(_t, _f) ) ) 1166 1167 typedef struct VBOXVDMACMD_DMA_PRESENT_BLT 1168 { 1169 VBOXVIDEOOFFSET offSrc; 1170 VBOXVIDEOOFFSET offDst; 1171 VBOXVDMA_SURF_DESC srcDesc; 1172 VBOXVDMA_SURF_DESC dstDesc; 1173 VBOXVDMA_RECTL srcRectl; 1174 VBOXVDMA_RECTL dstRectl; 1175 uint32_t u32Reserved; 1176 uint32_t cDstSubRects; 1177 VBOXVDMA_RECTL aDstSubRects[1]; 1178 } VBOXVDMACMD_DMA_PRESENT_BLT, *PVBOXVDMACMD_DMA_PRESENT_BLT; 1179 1153 1180 # pragma pack() 1154 1181 #endif /* #ifdef VBOXVDMA */
Note:
See TracChangeset
for help on using the changeset viewer.