xref: /aosp_15_r20/external/mesa3d/src/gallium/frontends/nine/indexbuffer9.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
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