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)30NineStateBlock9( 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