xref: /aosp_15_r20/external/mesa3d/src/gallium/frontends/nine/resource9.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1 /*
2  * Copyright 2011 Joakim Sindholt <[email protected]>
3  * SPDX-License-Identifier: MIT
4  */
5 
6 #ifndef _NINE_RESOURCE9_H_
7 #define _NINE_RESOURCE9_H_
8 
9 #include "iunknown.h"
10 #include "pipe/p_state.h"
11 
12 struct pipe_screen;
13 struct hash_table;
14 struct NineDevice9;
15 
16 struct NineResource9
17 {
18     struct NineUnknown base;
19 
20     struct pipe_resource *resource; /* device resource */
21 
22     D3DRESOURCETYPE type;
23     D3DPOOL pool;
24     DWORD priority;
25     DWORD usage;
26 
27     struct pipe_resource info; /* resource configuration */
28 
29     long long size;
30 };
31 static inline struct NineResource9 *
NineResource9(void * data)32 NineResource9( void *data )
33 {
34     return (struct NineResource9 *)data;
35 }
36 
37 HRESULT
38 NineResource9_ctor( struct NineResource9 *This,
39                     struct NineUnknownParams *pParams,
40                     struct pipe_resource *initResource,
41                     BOOL Allocate,
42                     D3DRESOURCETYPE Type,
43                     D3DPOOL Pool,
44                     DWORD Usage);
45 
46 void
47 NineResource9_dtor( struct NineResource9 *This );
48 
49 /*** Nine private methods ***/
50 
51 struct pipe_resource *
52 NineResource9_GetResource( struct NineResource9 *This );
53 
54 D3DPOOL
55 NineResource9_GetPool( struct NineResource9 *This );
56 
57 /*** Direct3D public methods ***/
58 
59 DWORD NINE_WINAPI
60 NineResource9_SetPriority( struct NineResource9 *This,
61                            DWORD PriorityNew );
62 
63 DWORD NINE_WINAPI
64 NineResource9_GetPriority( struct NineResource9 *This );
65 
66 void NINE_WINAPI
67 NineResource9_PreLoad( struct NineResource9 *This );
68 
69 D3DRESOURCETYPE NINE_WINAPI
70 NineResource9_GetType( struct NineResource9 *This );
71 
72 #endif /* _NINE_RESOURCE9_H_ */
73