1 /*
2 * Copyright 2011 Joakim Sindholt <[email protected]>
3 * SPDX-License-Identifier: MIT
4 */
5
6 #ifndef _NINE_INDEXBUFFER9_H_
7 #define _NINE_INDEXBUFFER9_H_
8
9 #include "resource9.h"
10 #include "buffer9.h"
11 #include "pipe/p_state.h"
12
13 struct pipe_screen;
14 struct pipe_context;
15 struct pipe_transfer;
16 struct NineDevice9;
17
18 struct NineIndexBuffer9
19 {
20 struct NineBuffer9 base;
21
22 /* g3d stuff */
23 unsigned index_size;
24
25 D3DINDEXBUFFER_DESC desc;
26 };
27 static inline struct NineIndexBuffer9 *
NineIndexBuffer9(void * data)28 NineIndexBuffer9( void *data )
29 {
30 return (struct NineIndexBuffer9 *)data;
31 }
32
33 HRESULT
34 NineIndexBuffer9_new( struct NineDevice9 *pDevice,
35 D3DINDEXBUFFER_DESC *pDesc,
36 struct NineIndexBuffer9 **ppOut );
37
38 HRESULT
39 NineIndexBuffer9_ctor( struct NineIndexBuffer9 *This,
40 struct NineUnknownParams *pParams,
41 D3DINDEXBUFFER_DESC *pDesc );
42
43 void
44 NineIndexBuffer9_dtor( struct NineIndexBuffer9 *This );
45
46 /*** Nine private ***/
47
48 struct pipe_resource *
49 NineIndexBuffer9_GetBuffer( struct NineIndexBuffer9 *This,
50 unsigned *offset );
51
52 /*** Direct3D public ***/
53
54 HRESULT NINE_WINAPI
55 NineIndexBuffer9_Lock( struct NineIndexBuffer9 *This,
56 UINT OffsetToLock,
57 UINT SizeToLock,
58 void **ppbData,
59 DWORD Flags );
60
61 HRESULT NINE_WINAPI
62 NineIndexBuffer9_Unlock( struct NineIndexBuffer9 *This );
63
64 HRESULT NINE_WINAPI
65 NineIndexBuffer9_GetDesc( struct NineIndexBuffer9 *This,
66 D3DINDEXBUFFER_DESC *pDesc );
67
68 #endif /* _NINE_INDEXBUFFER9_H_ */
69