VirtualBox

Changeset 26630 in vbox for trunk/include


Ignore:
Timestamp:
Feb 18, 2010 3:47:33 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
57835
Message:

wddm: more impl

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/VBoxVideo.h

    r26556 r26630  
    10601060} VBOXVDMA_RECTL, *PVBOXVDMA_RECTL;
    10611061
     1062typedef 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
     1096typedef 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
    10621106//typedef uint64_t VBOXVDMAPHADDRESS;
    10631107typedef uint64_t VBOXVDMASURFHANDLE;
    10641108
     1109typedef uint32_t VBOXVIDEOOFFSET;
     1110
     1111#define VBOXVIDEOOFFSET_VOID ((VBOXVIDEOOFFSET)~0)
     1112
    10651113typedef enum
    10661114{
    10671115    VBOXVDMACMD_TYPE_UNDEFINED        = 0,
    1068     VBOXVDMACMD_TYPE_DMATRANSFER      = 1
     1116    VBOXVDMACMD_TYPE_DMA_PRESENT_BLT      = 1
    10691117} VBOXVDMACMD_TYPE;
    10701118
     
    10761124#define VBOXVDMAOPERAND_FLAGS_VRAMOFFSET  0x4
    10771125
    1078 typedef struct VBOXVDMA_RANGE_RECTL
    1079 {
    1080     VBOXVDMA_RECTL RangeRectl;
    1081     VBOXVDMA_RECTL SurfSize;
    1082 }VBOXVDMA_RANGE_RECTL, *PVBOXVDMA_RANGE_RECTL;
    1083 
    1084 typedef struct VBOXVDMA_RANGE_SIZE
    1085 {
    1086     uint32_t cbSize;
    1087     uint32_t u32Reserved;
    1088 }VBOXVDMA_RANGE_SIZE, *PVBOXVDMA_RANGE_SIZE;
    1089 
    1090 typedef struct VBOXVDMAOPERAND
    1091 {
    1092     uint32_t fFlags;
    1093     union
    1094     {
    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     union
    1102     {
    1103         VBOXVDMA_RANGE_RECTL Rectl;
    1104         VBOXVDMA_RANGE_SIZE  Size;
    1105     } Range;
    1106 } VBOXVDMAOPERAND, *PVBOXVDMAOPERAND;
    11071126
    11081127/* VBOXVDMACBUF_DR::phBuf specifies offset in VRAM */
     
    11371156{
    11381157    VBOXVDMACMD_TYPE enmType;
    1139     uint32_t cbCmd;
     1158    uint32_t u32CmdSpecific;
    11401159} VBOXVDMACMD, *PVBOXVDMACMD;
    11411160
    11421161#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
     1167typedef 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
    11531180# pragma pack()
    11541181#endif /* #ifdef VBOXVDMA */
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette