Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mesa
Path: blob/21.2-virgl/src/gallium/frontends/nine/adapter9.h
4561 views
1
/*
2
* Copyright 2011 Joakim Sindholt <[email protected]>
3
*
4
* Permission is hereby granted, free of charge, to any person obtaining a
5
* copy of this software and associated documentation files (the "Software"),
6
* to deal in the Software without restriction, including without limitation
7
* on the rights to use, copy, modify, merge, publish, distribute, sub
8
* license, and/or sell copies of the Software, and to permit persons to whom
9
* the Software is furnished to do so, subject to the following conditions:
10
*
11
* The above copyright notice and this permission notice (including the next
12
* paragraph) shall be included in all copies or substantial portions of the
13
* Software.
14
*
15
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
18
* THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
19
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
20
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
21
* USE OR OTHER DEALINGS IN THE SOFTWARE. */
22
23
#ifndef _NINE_ADAPTER9_H_
24
#define _NINE_ADAPTER9_H_
25
26
#include "iunknown.h"
27
28
#include "d3dadapter/d3dadapter9.h"
29
30
struct pipe_screen;
31
struct pipe_resource;
32
33
struct d3dadapter9_context
34
{
35
struct pipe_screen *hal, *ref;
36
D3DADAPTER_IDENTIFIER9 identifier;
37
BOOL linear_framebuffer;
38
BOOL throttling;
39
int throttling_value;
40
int vblank_mode;
41
BOOL thread_submit;
42
BOOL discard_delayed_release;
43
BOOL tearfree_discard;
44
int csmt_force;
45
BOOL dynamic_texture_workaround;
46
BOOL shader_inline_constants;
47
int memfd_virtualsizelimit;
48
int override_vram_size;
49
50
void (*destroy)( struct d3dadapter9_context *ctx );
51
};
52
53
struct NineAdapter9
54
{
55
struct NineUnknown base;
56
57
struct d3dadapter9_context *ctx;
58
};
59
static inline struct NineAdapter9 *
60
NineAdapter9( void *data )
61
{
62
return (struct NineAdapter9 *)data;
63
}
64
65
HRESULT
66
NineAdapter9_new( struct d3dadapter9_context *pCTX,
67
struct NineAdapter9 **ppOut );
68
69
HRESULT
70
NineAdapter9_ctor( struct NineAdapter9 *This,
71
struct NineUnknownParams *pParams,
72
struct d3dadapter9_context *pCTX );
73
74
void
75
NineAdapter9_dtor( struct NineAdapter9 *This );
76
77
HRESULT NINE_WINAPI
78
NineAdapter9_GetAdapterIdentifier( struct NineAdapter9 *This,
79
DWORD Flags,
80
D3DADAPTER_IDENTIFIER9 *pIdentifier );
81
82
HRESULT NINE_WINAPI
83
NineAdapter9_CheckDeviceType( struct NineAdapter9 *This,
84
D3DDEVTYPE DevType,
85
D3DFORMAT AdapterFormat,
86
D3DFORMAT BackBufferFormat,
87
BOOL bWindowed );
88
89
HRESULT NINE_WINAPI
90
NineAdapter9_CheckDeviceFormat( struct NineAdapter9 *This,
91
D3DDEVTYPE DeviceType,
92
D3DFORMAT AdapterFormat,
93
DWORD Usage,
94
D3DRESOURCETYPE RType,
95
D3DFORMAT CheckFormat );
96
97
HRESULT NINE_WINAPI
98
NineAdapter9_CheckDeviceMultiSampleType( struct NineAdapter9 *This,
99
D3DDEVTYPE DeviceType,
100
D3DFORMAT SurfaceFormat,
101
BOOL Windowed,
102
D3DMULTISAMPLE_TYPE MultiSampleType,
103
DWORD *pQualityLevels );
104
105
HRESULT NINE_WINAPI
106
NineAdapter9_CheckDepthStencilMatch( struct NineAdapter9 *This,
107
D3DDEVTYPE DeviceType,
108
D3DFORMAT AdapterFormat,
109
D3DFORMAT RenderTargetFormat,
110
D3DFORMAT DepthStencilFormat );
111
112
HRESULT NINE_WINAPI
113
NineAdapter9_CheckDeviceFormatConversion( struct NineAdapter9 *This,
114
D3DDEVTYPE DeviceType,
115
D3DFORMAT SourceFormat,
116
D3DFORMAT TargetFormat );
117
118
HRESULT NINE_WINAPI
119
NineAdapter9_GetDeviceCaps( struct NineAdapter9 *This,
120
D3DDEVTYPE DeviceType,
121
D3DCAPS9 *pCaps );
122
123
HRESULT NINE_WINAPI
124
NineAdapter9_CreateDevice( struct NineAdapter9 *This,
125
UINT RealAdapter,
126
D3DDEVTYPE DeviceType,
127
HWND hFocusWindow,
128
DWORD BehaviorFlags,
129
D3DPRESENT_PARAMETERS *pPresentationParameters,
130
IDirect3D9 *pD3D9,
131
ID3DPresentGroup *pPresentationGroup,
132
IDirect3DDevice9 **ppReturnedDeviceInterface );
133
134
HRESULT NINE_WINAPI
135
NineAdapter9_CreateDeviceEx( struct NineAdapter9 *This,
136
UINT RealAdapter,
137
D3DDEVTYPE DeviceType,
138
HWND hFocusWindow,
139
DWORD BehaviorFlags,
140
D3DPRESENT_PARAMETERS *pPresentationParameters,
141
D3DDISPLAYMODEEX *pFullscreenDisplayMode,
142
IDirect3D9Ex *pD3D9Ex,
143
ID3DPresentGroup *pPresentationGroup,
144
IDirect3DDevice9Ex **ppReturnedDeviceInterface );
145
146
#endif /* _NINE_ADAPTER9_H_ */
147
148