~mmach/netext73/mesa-haswell

« back to all changes in this revision

Viewing changes to src/gallium/frontends/nine/adapter9.h

  • Committer: mmach
  • Date: 2022-09-22 19:56:13 UTC
  • Revision ID: netbit73@gmail.com-20220922195613-wtik9mmy20tmor0i
2022-09-22 21:17:09

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright 2011 Joakim Sindholt <opensource@zhasha.com>
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_ */