xref: /aosp_15_r20/external/mesa3d/src/gallium/frontends/nine/stateblock9.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1 /*
2  * Copyright 2011 Joakim Sindholt <[email protected]>
3  * SPDX-License-Identifier: MIT
4  */
5 
6 #ifndef _NINE_STATEBLOCK9_H_
7 #define _NINE_STATEBLOCK9_H_
8 
9 #include "iunknown.h"
10 
11 #include "nine_state.h"
12 
13 enum nine_stateblock_type
14 {
15    NINESBT_ALL,
16    NINESBT_VERTEXSTATE,
17    NINESBT_PIXELSTATE,
18    NINESBT_CUSTOM
19 };
20 
21 struct NineStateBlock9
22 {
23     struct NineUnknown base;
24 
25     struct nine_state state;
26 
27     enum nine_stateblock_type type;
28 };
29 static inline struct NineStateBlock9 *
NineStateBlock9(void * data)30 NineStateBlock9( void *data )
31 {
32     return (struct NineStateBlock9 *)data;
33 }
34 
35 HRESULT
36 NineStateBlock9_new( struct NineDevice9 *,
37                      struct NineStateBlock9 **ppOut,
38                      enum nine_stateblock_type);
39 
40 HRESULT
41 NineStateBlock9_ctor( struct NineStateBlock9 *,
42                       struct NineUnknownParams *pParams,
43                       enum nine_stateblock_type type );
44 
45 void
46 NineStateBlock9_dtor( struct NineStateBlock9 * );
47 
48 HRESULT NINE_WINAPI
49 NineStateBlock9_Capture( struct NineStateBlock9 *This );
50 
51 HRESULT NINE_WINAPI
52 NineStateBlock9_Apply( struct NineStateBlock9 *This );
53 
54 #endif /* _NINE_STATEBLOCK9_H_ */
55