VBoxDispD3D.h revision 849f53103d5c003d006576c8731bc7bb22d0b63d
/** @file
*
* VBoxVideo Display D3D User mode dll
*
* 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 ___VBoxDispD3D_h___
#define ___VBoxDispD3D_h___
#include "VBoxDispD3DIf.h"
#include "../../Miniport/wddm/VBoxVideoIf.h"
#ifdef VBOX_WITH_CRHGSMI
#include "VBoxUhgsmiDisp.h"
#endif
#define VBOXWDDMDISP_MAX_VERTEX_STREAMS 16
#define VBOXWDDMDISP_MAX_SWAPCHAIN_SIZE 16
#ifdef VBOX_WITH_VIDEOHWACCEL
typedef struct VBOXDISPVHWA_INFO
{
/* represents settings secific to
* display device (head) on the multiple-head graphics card
* currently used for 2D (overlay) only since in theory its settings
* can differ per each frontend's framebuffer. */
typedef struct VBOXWDDMDISP_HEAD
{
#endif
typedef struct VBOXWDDMDISP_ADAPTER
{
#ifdef VBOX_WITH_VIDEOHWACCEL
#endif
typedef struct VBOXWDDMDISP_CONTEXT
{
struct VBOXWDDMDISP_DEVICE *pDevice;
typedef struct VBOXWDDMDISP_STREAMSOURCEUM
{
typedef struct VBOXWDDMDISP_INDICIESUM
{
struct VBOXWDDMDISP_ALLOCATION;
typedef struct VBOXWDDMDISP_STREAM_SOURCE_INFO
{
typedef struct VBOXWDDMDISP_INDICES_INFO
{
typedef struct VBOXWDDMDISP_RENDERTGT_FLAGS
{
union
{
struct
{
};
};
typedef struct VBOXWDDMDISP_RENDERTGT
{
struct VBOXWDDMDISP_ALLOCATION *pAlloc;
#define VBOXWDDMDISP_INDEX_UNDEFINED (~0)
typedef struct VBOXWDDMDISP_SWAPCHAIN_FLAGS
{
union
{
struct
{
};
};
typedef struct VBOXWDDMDISP_SWAPCHAIN
{
#ifndef VBOXWDDM_WITH_VISIBLE_FB
#endif
//typedef struct VBOXWDDMDISP_SCREEN
//{
// RTLISTNODE SwapchainList;
// IDirect3DDevice9 *pDevice9If;
//// struct VBOXWDDMDISP_RESOURCE *pDstSharedRc;
// uint32_t iRenderTargetFrontBuf;
// HWND hWnd;
//} VBOXWDDMDISP_SCREEN, *PVBOXWDDMDISP_SCREEN;
typedef struct VBOXWDDMDISP_DEVICE
{
/* number of StreamSources set */
struct VBOXWDDMDISP_ALLOCATION *pIndicesAlloc;
/* need to cache the ViewPort data because IDirect3DDevice9::SetViewport
* is split into two calls : SetViewport & SetZRange */
#ifdef VBOX_WITH_CRHGSMI
#endif
typedef struct VBOXWDDMDISP_LOCKINFO
{
union {
};
typedef enum
{
typedef struct VBOXWDDMDISP_ALLOCATION
{
struct VBOXWDDMDISP_RESOURCE *pRc;
void* pvMem;
/* object type is defined by enmD3DIfType enum */
typedef struct VBOXWDDMDISP_RESOURCE
{
typedef struct VBOXWDDMDISP_QUERY
{
union
{
} data ;
typedef struct VBOXWDDMDISP_TSS_LOOKUP
{
typedef struct VBOXWDDMDISP_OVERLAY
{
#ifdef VBOX_WITH_CRHGSMI
#endif
#ifdef VBOXDISP_EARLYCREATEDEVICE
#else
#endif
#endif /* #ifndef ___VBoxDispD3D_h___ */