/
Direct3DExecuteBuffer.h
44 lines (26 loc) · 984 Bytes
/
Direct3DExecuteBuffer.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// Copyright (c) 2014 Jérémy Ansel
// Licensed under the MIT license. See LICENSE.txt
#pragma once
class Direct3DExecuteBuffer : public IDirect3DExecuteBuffer
{
public:
Direct3DExecuteBuffer(DeviceResources* deviceResources, DWORD bufferSize);
virtual ~Direct3DExecuteBuffer();
/*** IUnknown methods ***/
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj);
STDMETHOD_(ULONG, AddRef)(THIS);
STDMETHOD_(ULONG, Release)(THIS);
/*** IDirect3DExecuteBuffer methods ***/
STDMETHOD(Initialize)(THIS_ LPDIRECT3DDEVICE, LPD3DEXECUTEBUFFERDESC);
STDMETHOD(Lock)(THIS_ LPD3DEXECUTEBUFFERDESC);
STDMETHOD(Unlock)(THIS);
STDMETHOD(SetExecuteData)(THIS_ LPD3DEXECUTEDATA);
STDMETHOD(GetExecuteData)(THIS_ LPD3DEXECUTEDATA);
STDMETHOD(Validate)(THIS_ LPDWORD, LPD3DVALIDATECALLBACK, LPVOID, DWORD);
STDMETHOD(Optimize)(THIS_ DWORD);
ULONG _refCount;
DeviceResources* _deviceResources;
DWORD _bufferSize;
char* _buffer;
D3DEXECUTEDATA _executeData;
};