xref: /aosp_15_r20/external/mesa3d/src/gallium/frontends/nine/vertexbuffer9.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1 /*
2  * Copyright 2011 Joakim Sindholt <[email protected]>
3  * SPDX-License-Identifier: MIT
4  */
5 
6 #ifndef _NINE_VERTEXBUFFER9_H_
7 #define _NINE_VERTEXBUFFER9_H_
8 #include "resource9.h"
9 #include "buffer9.h"
10 
11 struct pipe_screen;
12 struct pipe_context;
13 struct pipe_transfer;
14 
15 struct NineVertexBuffer9
16 {
17     struct NineBuffer9 base;
18 
19     /* G3D */
20     struct pipe_context *pipe;
21     D3DVERTEXBUFFER_DESC desc;
22 };
23 static inline struct NineVertexBuffer9 *
NineVertexBuffer9(void * data)24 NineVertexBuffer9( void *data )
25 {
26     return (struct NineVertexBuffer9 *)data;
27 }
28 
29 HRESULT
30 NineVertexBuffer9_new( struct NineDevice9 *pDevice,
31                        D3DVERTEXBUFFER_DESC *pDesc,
32                        struct NineVertexBuffer9 **ppOut );
33 
34 HRESULT
35 NineVertexBuffer9_ctor( struct NineVertexBuffer9 *This,
36                         struct NineUnknownParams *pParams,
37                         D3DVERTEXBUFFER_DESC *pDesc );
38 
39 void
40 NineVertexBuffer9_dtor( struct NineVertexBuffer9 *This );
41 /*** Nine private ***/
42 
43 struct pipe_resource *
44 NineVertexBuffer9_GetResource( struct NineVertexBuffer9 *This, unsigned *offset );
45 
46 /*** Direct3D public ***/
47 
48 HRESULT NINE_WINAPI
49 NineVertexBuffer9_Lock( struct NineVertexBuffer9 *This,
50                         UINT OffsetToLock,
51                         UINT SizeToLock,
52                         void **ppbData,
53                         DWORD Flags );
54 
55 HRESULT NINE_WINAPI
56 NineVertexBuffer9_Unlock( struct NineVertexBuffer9 *This );
57 
58 HRESULT NINE_WINAPI
59 NineVertexBuffer9_GetDesc( struct NineVertexBuffer9 *This,
60                            D3DVERTEXBUFFER_DESC *pDesc );
61 
62 #endif /* _NINE_VERTEXBUFFER9_H_ */
63