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