VBoxVideoWddm.h revision 04f964d82c1af6d3b6cb05e6abccc20a1e051966
/*
* Copyright (C) 2010 Oracle Corporation
*
* This file is part of VirtualBox Open Source Edition (OSE), as
* available from http://www.virtualbox.org. This file is free software;
* General Public License (GPL) as published by the Free Software
* Foundation, in version 2 as it comes in the "COPYING" file of the
* VirtualBox OSE distribution. VirtualBox OSE is distributed in the
* hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
*/
#ifndef ___VBoxVideoWddm_h___
#define ___VBoxVideoWddm_h___
#include "../VBoxVideo.h"
/* one page size */
#define VBOXWDDM_C_DMA_BUFFER_SIZE 0x1000
#define VBOXWDDM_C_DMA_PRIVATEDATA_SIZE 0x4000
#define VBOXWDDM_C_ALLOC_LIST_SIZE 0xc00
#define VBOXWDDM_C_PATH_LOCATION_LIST_SIZE 0xc00
#define VBOXWDDM_C_POINTER_MAX_WIDTH 64
#define VBOXWDDM_C_POINTER_MAX_HEIGHT 64
#ifdef VBOXWDDM_WITH_VBVA
# define VBOXWDDM_RENDER_FROM_SHADOW
#endif
#ifndef DEBUG_misha
# ifdef Assert
# endif
# ifdef AssertBreakpoint
# define AssertBreakpoint() do{}while(0)
# endif
# ifdef AssertFailed
# define AssertFailed() do{}while(0)
# endif
#endif
/* allocation */
//#define VBOXWDDM_ALLOCATIONINDEX_VOID (~0U)
typedef struct VBOXWDDM_ALLOCATION
{
// D3DDDI_RESOURCEFLAGS fRcFlags;
#ifdef VBOX_WITH_VIDEOHWACCEL
#endif
struct VBOXWDDM_RESOURCE *pResource;
/* to return to the Runtime on DxgkDdiCreateAllocation */
typedef struct VBOXWDDM_RESOURCE
{
{
#if 0
return NULL;
PVBOXWDDM_RESOURCE pRc = (PVBOXWDDM_RESOURCE)(((uint8_t*)pAlloc) - RT_OFFSETOF(VBOXWDDM_RESOURCE, aAllocations[pAlloc->iIndex]));
return pRc;
#else
#endif
}
typedef struct VBOXWDDM_OVERLAY
{
typedef enum
{
typedef struct VBOXWDDM_DEVICE
{
VBOXWDDM_DEVICE_TYPE enmType; /* device creation flags passed to DxgkDdiCreateDevice, not sure we need it */
typedef enum
{
typedef struct VBOXWDDM_CONTEXT
{
struct VBOXWDDM_DEVICE * pDevice;
#define VBOXWDDMENTRY_2_CONTEXT(_pE) ((PVBOXWDDM_CONTEXT)((uint8_t*)(_pE) - RT_OFFSETOF(VBOXWDDM_CONTEXT, ListEntry)))
typedef struct VBOXWDDM_DMA_ALLOCINFO
{
typedef struct VBOXWDDM_DMA_PRIVATEDATA_FLAFS
{
union
{
struct
{
};
};
typedef struct VBOXWDDM_DMA_PRIVATEDATA_HDR
{
#ifdef VBOXWDDM_RENDER_FROM_SHADOW
typedef struct VBOXWDDM_DMA_PRESENT_RENDER_FROM_SHADOW
{
#endif
typedef struct VBOXWDDM_DMA_PRESENT_BLT
{
typedef struct VBOXWDDM_OPENALLOCATION
{
#ifdef VBOXWDDM_RENDER_FROM_SHADOW
#else
#endif
//DECLINLINE(VBOXVIDEOOFFSET) vboxWddmOffsetFromPhAddress(PHYSICAL_ADDRESS phAddr)
//{
// return (VBOXVIDEOOFFSET)(phAddr.QuadPart ? phAddr.QuadPart - VBE_DISPI_LFB_PHYSICAL_ADDRESS : VBOXVIDEOOFFSET_VOID);
//}
#endif /* #ifndef ___VBoxVideoWddm_h___ */