• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2016 The SwiftShader Authors. All Rights Reserved.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //    http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #include "Direct3DDevice9Ex.hpp"
16 
17 #include "Direct3D9Ex.hpp"
18 #include "Direct3DSurface9.hpp"
19 #include "Direct3DIndexBuffer9.hpp"
20 #include "Direct3DVertexBuffer9.hpp"
21 #include "Direct3DTexture9.hpp"
22 #include "Direct3DVolumeTexture9.hpp"
23 #include "Direct3DCubeTexture9.hpp"
24 #include "Direct3DVertexDeclaration9.hpp"
25 #include "Direct3DSwapChain9.hpp"
26 #include "Direct3DPixelShader9.hpp"
27 #include "Direct3DVertexShader9.hpp"
28 #include "Direct3DStateBlock9.hpp"
29 #include "Direct3DQuery9.hpp"
30 #include "Direct3DVolume9.hpp"
31 
32 #include "Debug.hpp"
33 #include "Renderer.hpp"
34 #include "FrameBuffer.hpp"
35 #include "Clipper.hpp"
36 #include "Configurator.hpp"
37 #include "Timer.hpp"
38 
39 #include <assert.h>
40 
41 namespace D3D9
42 {
FtoDW(float f)43 	inline unsigned long FtoDW(float f)
44 	{
45 		return (unsigned long&)f;
46 	}
47 
DWtoF(unsigned long dw)48 	inline float DWtoF(unsigned long dw)
49 	{
50 		return (float&)dw;
51 	}
52 
Direct3DDevice9Ex(const HINSTANCE instance,Direct3D9Ex * d3d9ex,unsigned int adapter,D3DDEVTYPE deviceType,HWND focusWindow,unsigned long behaviourFlags,D3DPRESENT_PARAMETERS * presentParameters)53 	Direct3DDevice9Ex::Direct3DDevice9Ex(const HINSTANCE instance, Direct3D9Ex *d3d9ex, unsigned int adapter, D3DDEVTYPE deviceType, HWND focusWindow, unsigned long behaviourFlags, D3DPRESENT_PARAMETERS *presentParameters) : Direct3DDevice9(instance, d3d9ex, adapter, deviceType, focusWindow, behaviourFlags, presentParameters), d3d9ex(d3d9ex)
54 	{
55 	}
56 
~Direct3DDevice9Ex()57 	Direct3DDevice9Ex::~Direct3DDevice9Ex()
58 	{
59 	}
60 
QueryInterface(const IID & iid,void ** object)61 	long Direct3DDevice9Ex::QueryInterface(const IID &iid, void **object)
62 	{
63 		CriticalSection cs(this);
64 
65 		TRACE("const IID &iid = 0x%0.8p, void **object = 0x%0.8p", iid, object);
66 
67 		if(iid == IID_IDirect3DDevice9Ex ||
68 		   iid == IID_IDirect3DDevice9 ||
69 		   iid == IID_IUnknown)
70 		{
71 			AddRef();
72 			*object = this;
73 
74 			return S_OK;
75 		}
76 
77 		*object = 0;
78 
79 		return NOINTERFACE(iid);
80 	}
81 
AddRef()82 	unsigned long Direct3DDevice9Ex::AddRef()
83 	{
84 		TRACE("void");
85 
86 		return Direct3DDevice9::AddRef();
87 	}
88 
Release()89 	unsigned long Direct3DDevice9Ex::Release()
90 	{
91 		TRACE("void");
92 
93 		return Direct3DDevice9::Release();
94 	}
95 
BeginScene()96 	long Direct3DDevice9Ex::BeginScene()
97 	{
98 		TRACE("void");
99 
100 		return Direct3DDevice9::BeginScene();
101 	}
102 
BeginStateBlock()103 	long Direct3DDevice9Ex::BeginStateBlock()
104 	{
105 		TRACE("void");
106 
107 		return Direct3DDevice9::BeginStateBlock();
108 	}
109 
Clear(unsigned long count,const D3DRECT * rects,unsigned long flags,unsigned long color,float z,unsigned long stencil)110 	long Direct3DDevice9Ex::Clear(unsigned long count, const D3DRECT *rects, unsigned long flags, unsigned long color, float z, unsigned long stencil)
111 	{
112 		TRACE("unsigned long count = %d, const D3DRECT *rects = 0x%0.8p, unsigned long flags = 0x%0.8X, unsigned long color = 0x%0.8X, float z = %f, unsigned long stencil = %d", count, rects, flags, color, z, stencil);
113 
114 		return Direct3DDevice9::Clear(count, rects, flags, color, z, stencil);
115 	}
116 
ColorFill(IDirect3DSurface9 * surface,const RECT * rect,D3DCOLOR color)117 	long Direct3DDevice9Ex::ColorFill(IDirect3DSurface9 *surface, const RECT *rect, D3DCOLOR color)
118 	{
119 		TRACE("IDirect3DSurface9 *surface = 0x%0.8p, const RECT *rect = 0x%0.8p, D3DCOLOR color = 0x%0.8X", surface, rect, color);
120 
121 		return Direct3DDevice9::ColorFill(surface, rect, color);
122 	}
123 
CreateAdditionalSwapChain(D3DPRESENT_PARAMETERS * presentParameters,IDirect3DSwapChain9 ** swapChain)124 	long Direct3DDevice9Ex::CreateAdditionalSwapChain(D3DPRESENT_PARAMETERS *presentParameters, IDirect3DSwapChain9 **swapChain)
125 	{
126 		TRACE("D3DPRESENT_PARAMETERS *presentParameters = 0x%0.8p, IDirect3DSwapChain9 **swapChain = 0x%0.8p", presentParameters, swapChain);
127 
128 		return Direct3DDevice9::CreateAdditionalSwapChain(presentParameters, swapChain);
129 	}
130 
CreateCubeTexture(unsigned int edgeLength,unsigned int levels,unsigned long usage,D3DFORMAT format,D3DPOOL pool,IDirect3DCubeTexture9 ** cubeTexture,void ** sharedHandle)131 	long Direct3DDevice9Ex::CreateCubeTexture(unsigned int edgeLength, unsigned int levels, unsigned long usage, D3DFORMAT format, D3DPOOL pool, IDirect3DCubeTexture9 **cubeTexture, void **sharedHandle)
132 	{
133 		TRACE("unsigned int edgeLength = %d, unsigned int levels = %d, unsigned long usage = %d, D3DFORMAT format = %d, D3DPOOL pool = %d, IDirect3DCubeTexture9 **cubeTexture = 0x%0.8p, void **sharedHandle = 0x%0.8p", edgeLength, levels, usage, format, pool, cubeTexture, sharedHandle);
134 
135 		return Direct3DDevice9::CreateCubeTexture(edgeLength, levels, usage, format, pool, cubeTexture, sharedHandle);
136 	}
137 
CreateDepthStencilSurface(unsigned int width,unsigned int height,D3DFORMAT format,D3DMULTISAMPLE_TYPE multiSample,unsigned long multiSampleQuality,int discard,IDirect3DSurface9 ** surface,void ** sharedHandle)138 	long Direct3DDevice9Ex::CreateDepthStencilSurface(unsigned int width, unsigned int height, D3DFORMAT format, D3DMULTISAMPLE_TYPE multiSample, unsigned long multiSampleQuality, int discard, IDirect3DSurface9 **surface, void **sharedHandle)
139 	{
140 		TRACE("unsigned int width = %d, unsigned int height = %d, D3DFORMAT format = %d, D3DMULTISAMPLE_TYPE multiSample = %d, unsigned long multiSampleQuality = %d, int discard = %d, IDirect3DSurface9 **surface = 0x%0.8p, void **sharedHandle = 0x%0.8p", width, height, format, multiSample, multiSampleQuality, discard, surface, sharedHandle);
141 
142 		return Direct3DDevice9::CreateDepthStencilSurface(width, height, format, multiSample, multiSampleQuality, discard, surface, sharedHandle);
143 	}
144 
CreateIndexBuffer(unsigned int length,unsigned long usage,D3DFORMAT format,D3DPOOL pool,IDirect3DIndexBuffer9 ** indexBuffer,void ** sharedHandle)145 	long Direct3DDevice9Ex::CreateIndexBuffer(unsigned int length, unsigned long usage, D3DFORMAT format, D3DPOOL pool, IDirect3DIndexBuffer9 **indexBuffer, void **sharedHandle)
146 	{
147 		TRACE("unsigned int length = %d, unsigned long usage = %d, D3DFORMAT format = %d, D3DPOOL pool = %d, IDirect3DIndexBuffer9 **indexBuffer = 0x%0.8p, void **sharedHandle = 0x%0.8p", length, usage, format, pool, indexBuffer, sharedHandle);
148 
149 		return Direct3DDevice9::CreateIndexBuffer(length, usage, format, pool, indexBuffer, sharedHandle);
150 	}
151 
CreateOffscreenPlainSurface(unsigned int width,unsigned int height,D3DFORMAT format,D3DPOOL pool,IDirect3DSurface9 ** surface,void ** sharedHandle)152 	long Direct3DDevice9Ex::CreateOffscreenPlainSurface(unsigned int width, unsigned int height, D3DFORMAT format, D3DPOOL pool, IDirect3DSurface9 **surface, void **sharedHandle)
153 	{
154 		TRACE("unsigned int width = %d, unsigned int height = %d, D3DFORMAT format = %d, D3DPOOL pool = %d, IDirect3DSurface9 **surface = 0x%0.8p, void **sharedHandle = 0x%0.8p", width, height, format, pool, surface, sharedHandle);
155 
156 		return Direct3DDevice9::CreateOffscreenPlainSurface(width, height, format, pool, surface, sharedHandle);
157 	}
158 
CreatePixelShader(const unsigned long * function,IDirect3DPixelShader9 ** shader)159 	long Direct3DDevice9Ex::CreatePixelShader(const unsigned long *function, IDirect3DPixelShader9 **shader)
160 	{
161 		TRACE("const unsigned long *function = 0x%0.8p, IDirect3DPixelShader9 **shader = 0x%0.8p", function, shader);
162 
163 		return Direct3DDevice9::CreatePixelShader(function, shader);
164 	}
165 
CreateQuery(D3DQUERYTYPE type,IDirect3DQuery9 ** query)166 	long Direct3DDevice9Ex::CreateQuery(D3DQUERYTYPE type, IDirect3DQuery9 **query)
167 	{
168 		TRACE("D3DQUERYTYPE type = %d, IDirect3DQuery9 **query = 0x%0.8p", type, query);
169 
170 		return Direct3DDevice9::CreateQuery(type, query);
171 	}
172 
CreateRenderTarget(unsigned int width,unsigned int height,D3DFORMAT format,D3DMULTISAMPLE_TYPE multiSample,unsigned long multiSampleQuality,int lockable,IDirect3DSurface9 ** surface,void ** sharedHandle)173 	long Direct3DDevice9Ex::CreateRenderTarget(unsigned int width, unsigned int height, D3DFORMAT format, D3DMULTISAMPLE_TYPE multiSample, unsigned long multiSampleQuality, int lockable, IDirect3DSurface9 **surface, void **sharedHandle)
174 	{
175 		TRACE("unsigned int width = %d, unsigned int height = %d, D3DFORMAT format = %d, D3DMULTISAMPLE_TYPE multiSample = %d, unsigned long multiSampleQuality = %d, int lockable = %d, IDirect3DSurface9 **surface = 0x%0.8p, void **sharedHandle = 0x%0.8p", width, height, format, multiSample, multiSampleQuality, lockable, surface, sharedHandle);
176 
177 		return Direct3DDevice9::CreateRenderTarget(width, height, format, multiSample, multiSampleQuality, lockable, surface, sharedHandle);
178 	}
179 
CreateStateBlock(D3DSTATEBLOCKTYPE type,IDirect3DStateBlock9 ** stateBlock)180 	long Direct3DDevice9Ex::CreateStateBlock(D3DSTATEBLOCKTYPE type, IDirect3DStateBlock9 **stateBlock)
181 	{
182 		TRACE("D3DSTATEBLOCKTYPE type = %d, IDirect3DStateBlock9 **stateBlock = 0x%0.8p", type, stateBlock);
183 
184 		return Direct3DDevice9::CreateStateBlock(type, stateBlock);
185 	}
186 
CreateTexture(unsigned int width,unsigned int height,unsigned int levels,unsigned long usage,D3DFORMAT format,D3DPOOL pool,IDirect3DTexture9 ** texture,void ** sharedHandle)187 	long Direct3DDevice9Ex::CreateTexture(unsigned int width, unsigned int height, unsigned int levels, unsigned long usage, D3DFORMAT format, D3DPOOL pool, IDirect3DTexture9 **texture, void **sharedHandle)
188 	{
189 		TRACE("unsigned int width = %d, unsigned int height = %d, unsigned int levels = %d, unsigned long usage = %d, D3DFORMAT format = %d, D3DPOOL pool = %d, IDirect3DTexture9 **texture = 0x%0.8p, void **sharedHandle = 0x%0.8p", width, height, levels, usage, format, pool, texture, sharedHandle);
190 
191 		return Direct3DDevice9::CreateTexture(width, height, levels, usage, format, pool, texture, sharedHandle);
192 	}
193 
CreateVertexBuffer(unsigned int length,unsigned long usage,unsigned long FVF,D3DPOOL pool,IDirect3DVertexBuffer9 ** vertexBuffer,void ** sharedHandle)194 	long Direct3DDevice9Ex::CreateVertexBuffer(unsigned int length, unsigned long usage, unsigned long FVF, D3DPOOL pool, IDirect3DVertexBuffer9 **vertexBuffer, void **sharedHandle)
195 	{
196 		TRACE("unsigned int length = %d, unsigned long usage = %d, unsigned long FVF = 0x%0.8X, D3DPOOL pool = %d, IDirect3DVertexBuffer9 **vertexBuffer = 0x%0.8p, void **sharedHandle = 0x%0.8p", length, usage, FVF, pool, vertexBuffer, sharedHandle);
197 
198 		return Direct3DDevice9::CreateVertexBuffer(length, usage, FVF, pool, vertexBuffer, sharedHandle);
199 	}
200 
CreateVertexDeclaration(const D3DVERTEXELEMENT9 * vertexElements,IDirect3DVertexDeclaration9 ** declaration)201 	long Direct3DDevice9Ex::CreateVertexDeclaration(const D3DVERTEXELEMENT9 *vertexElements, IDirect3DVertexDeclaration9 **declaration)
202 	{
203 		TRACE("const D3DVERTEXELEMENT9 *vertexElements = 0x%0.8p, IDirect3DVertexDeclaration9 **declaration = 0x%0.8p", vertexElements, declaration);
204 
205 		return Direct3DDevice9::CreateVertexDeclaration(vertexElements, declaration);
206 	}
207 
CreateVertexShader(const unsigned long * function,IDirect3DVertexShader9 ** shader)208 	long Direct3DDevice9Ex::CreateVertexShader(const unsigned long *function, IDirect3DVertexShader9 **shader)
209 	{
210 		TRACE("const unsigned long *function = 0x%0.8p, IDirect3DVertexShader9 **shader = 0x%0.8p", function, shader);
211 
212 		return Direct3DDevice9::CreateVertexShader(function, shader);
213 	}
214 
CreateVolumeTexture(unsigned int width,unsigned int height,unsigned int depth,unsigned int levels,unsigned long usage,D3DFORMAT format,D3DPOOL pool,IDirect3DVolumeTexture9 ** volumeTexture,void ** sharedHandle)215 	long Direct3DDevice9Ex::CreateVolumeTexture(unsigned int width, unsigned int height, unsigned int depth, unsigned int levels, unsigned long usage, D3DFORMAT format, D3DPOOL pool, IDirect3DVolumeTexture9 **volumeTexture, void **sharedHandle)
216 	{
217 		TRACE("unsigned int width = %d, unsigned int height = %d, unsigned int depth = %d, unsigned int levels = %d, unsigned long usage = %d, D3DFORMAT format = %d, D3DPOOL pool = %d, IDirect3DVolumeTexture9 **volumeTexture = 0x%0.8p, void **sharedHandle = 0x%0.8p", width, height, depth, levels, usage, format, pool, volumeTexture, sharedHandle);
218 
219 		return Direct3DDevice9::CreateVolumeTexture(width, height, depth, levels, usage, format, pool, volumeTexture, sharedHandle);
220 	}
221 
DeletePatch(unsigned int handle)222 	long Direct3DDevice9Ex::DeletePatch(unsigned int handle)
223 	{
224 		TRACE("unsigned int handle = %d", handle);
225 
226 		return Direct3DDevice9::DeletePatch(handle);
227 	}
228 
DrawIndexedPrimitive(D3DPRIMITIVETYPE type,int baseVertexIndex,unsigned int minIndex,unsigned int numVertices,unsigned int startIndex,unsigned int primitiveCount)229 	long Direct3DDevice9Ex::DrawIndexedPrimitive(D3DPRIMITIVETYPE type, int baseVertexIndex, unsigned int minIndex, unsigned int numVertices, unsigned int startIndex, unsigned int primitiveCount)
230 	{
231 		TRACE("D3DPRIMITIVETYPE type = %d, int baseVertexIndex = %d, unsigned int minIndex = %d, unsigned int numVertices = %d, unsigned int startIndex = %d, unsigned int primitiveCount = %d", type, baseVertexIndex, minIndex, numVertices, startIndex, primitiveCount);
232 
233 		return Direct3DDevice9::DrawIndexedPrimitive(type, baseVertexIndex, minIndex, numVertices, startIndex, primitiveCount);
234 	}
235 
DrawIndexedPrimitiveUP(D3DPRIMITIVETYPE type,unsigned int minIndex,unsigned int numVertices,unsigned int primitiveCount,const void * indexData,D3DFORMAT indexDataFormat,const void * vertexStreamZeroData,unsigned int vertexStreamZeroStride)236 	long Direct3DDevice9Ex::DrawIndexedPrimitiveUP(D3DPRIMITIVETYPE type, unsigned int minIndex, unsigned int numVertices, unsigned int primitiveCount, const void *indexData, D3DFORMAT indexDataFormat, const void *vertexStreamZeroData, unsigned int vertexStreamZeroStride)
237 	{
238 		TRACE("D3DPRIMITIVETYPE type = %d, unsigned int minIndex = %d, unsigned int numVertices = %d, unsigned int primitiveCount = %d, const void *indexData = 0x%0.8p, D3DFORMAT indexDataFormat = %d, const void *vertexStreamZeroData = 0x%0.8p, unsigned int vertexStreamZeroStride = %d", type, minIndex, numVertices, primitiveCount, indexData, indexDataFormat, vertexStreamZeroData, vertexStreamZeroStride);
239 
240 		return Direct3DDevice9::DrawIndexedPrimitiveUP(type, minIndex, numVertices, primitiveCount, indexData, indexDataFormat, vertexStreamZeroData, vertexStreamZeroStride);
241 	}
242 
DrawPrimitive(D3DPRIMITIVETYPE primitiveType,unsigned int startVertex,unsigned int primitiveCount)243 	long Direct3DDevice9Ex::DrawPrimitive(D3DPRIMITIVETYPE primitiveType, unsigned int startVertex, unsigned int primitiveCount)
244 	{
245 		TRACE("D3DPRIMITIVETYPE primitiveType = %d, unsigned int startVertex = %d, unsigned int primitiveCount = %d", primitiveType, startVertex, primitiveCount);
246 
247 		return Direct3DDevice9::DrawPrimitive(primitiveType, startVertex, primitiveCount);
248 	}
249 
DrawPrimitiveUP(D3DPRIMITIVETYPE primitiveType,unsigned int primitiveCount,const void * vertexStreamZeroData,unsigned int vertexStreamZeroStride)250 	long Direct3DDevice9Ex::DrawPrimitiveUP(D3DPRIMITIVETYPE primitiveType, unsigned int primitiveCount, const void *vertexStreamZeroData, unsigned int vertexStreamZeroStride)
251 	{
252 		TRACE("D3DPRIMITIVETYPE primitiveType = %d, unsigned int primitiveCount = %d, const void *vertexStreamZeroData = 0x%0.8p, unsigned int vertexStreamZeroStride = %d", primitiveType, primitiveCount, vertexStreamZeroData, vertexStreamZeroStride);
253 
254 		return Direct3DDevice9::DrawPrimitiveUP(primitiveType, primitiveCount, vertexStreamZeroData, vertexStreamZeroStride);
255 	}
256 
DrawRectPatch(unsigned int handle,const float * numSegs,const D3DRECTPATCH_INFO * rectPatchInfo)257 	long Direct3DDevice9Ex::DrawRectPatch(unsigned int handle, const float *numSegs, const D3DRECTPATCH_INFO *rectPatchInfo)
258 	{
259 		TRACE("unsigned int handle = %d, const float *numSegs = 0x%0.8p, const D3DRECTPATCH_INFO *rectPatchInfo = 0x%0.8p", handle, numSegs, rectPatchInfo);
260 
261 		return Direct3DDevice9::DrawRectPatch(handle, numSegs, rectPatchInfo);
262 	}
263 
DrawTriPatch(unsigned int handle,const float * numSegs,const D3DTRIPATCH_INFO * triPatchInfo)264 	long Direct3DDevice9Ex::DrawTriPatch(unsigned int handle, const float *numSegs, const D3DTRIPATCH_INFO *triPatchInfo)
265 	{
266 		TRACE("unsigned int handle = %d, const float *numSegs = 0x%0.8p, const D3DTRIPATCH_INFO *triPatchInfo = 0x%0.8p", handle, numSegs, triPatchInfo);
267 
268 		return Direct3DDevice9::DrawTriPatch(handle, numSegs, triPatchInfo);
269 	}
270 
EndScene()271 	long Direct3DDevice9Ex::EndScene()
272 	{
273 		TRACE("void");
274 
275 		return Direct3DDevice9::EndScene();
276 	}
277 
EndStateBlock(IDirect3DStateBlock9 ** stateBlock)278 	long Direct3DDevice9Ex::EndStateBlock(IDirect3DStateBlock9 **stateBlock)
279 	{
280 		TRACE("IDirect3DStateBlock9 **stateBlock = 0x%0.8p", stateBlock);
281 
282 		return Direct3DDevice9::EndStateBlock(stateBlock);
283 	}
284 
EvictManagedResources()285 	long Direct3DDevice9Ex::EvictManagedResources()
286 	{
287 		TRACE("void");
288 
289 		return Direct3DDevice9::EvictManagedResources();
290 	}
291 
GetAvailableTextureMem()292 	unsigned int Direct3DDevice9Ex::GetAvailableTextureMem()
293 	{
294 		TRACE("void");
295 
296 		return Direct3DDevice9::GetAvailableTextureMem();
297 	}
298 
GetBackBuffer(unsigned int swapChainIndex,unsigned int backBufferIndex,D3DBACKBUFFER_TYPE type,IDirect3DSurface9 ** backBuffer)299 	long Direct3DDevice9Ex::GetBackBuffer(unsigned int swapChainIndex, unsigned int backBufferIndex, D3DBACKBUFFER_TYPE type, IDirect3DSurface9 **backBuffer)
300 	{
301 		TRACE("unsigned int swapChainIndex = %d, unsigned int backBufferIndex = %d, D3DBACKBUFFER_TYPE type = %d, IDirect3DSurface9 **backBuffer = 0x%0.8p", swapChainIndex, backBufferIndex, type, backBuffer);
302 
303 		return Direct3DDevice9::GetBackBuffer(swapChainIndex, backBufferIndex, type, backBuffer);
304 	}
305 
GetClipPlane(unsigned long index,float * plane)306 	long Direct3DDevice9Ex::GetClipPlane(unsigned long index, float *plane)
307 	{
308 		TRACE("unsigned long index = %d, float *plane = 0x%0.8p", index, plane);
309 
310 		return Direct3DDevice9::GetClipPlane(index, plane);
311 	}
312 
GetClipStatus(D3DCLIPSTATUS9 * clipStatus)313 	long Direct3DDevice9Ex::GetClipStatus(D3DCLIPSTATUS9 *clipStatus)
314 	{
315 		TRACE("D3DCLIPSTATUS9 *clipStatus = 0x%0.8p", clipStatus);
316 
317 		return Direct3DDevice9::GetClipStatus(clipStatus);
318 	}
319 
GetCreationParameters(D3DDEVICE_CREATION_PARAMETERS * parameters)320 	long Direct3DDevice9Ex::GetCreationParameters(D3DDEVICE_CREATION_PARAMETERS *parameters)
321 	{
322 		TRACE("D3DDEVICE_CREATION_PARAMETERS *parameters = 0x%0.8p", parameters);
323 
324 		return Direct3DDevice9::GetCreationParameters(parameters);
325 	}
326 
GetCurrentTexturePalette(unsigned int * paletteNumber)327 	long Direct3DDevice9Ex::GetCurrentTexturePalette(unsigned int *paletteNumber)
328 	{
329 		TRACE("unsigned int *paletteNumber = 0x%0.8p", paletteNumber);
330 
331 		return Direct3DDevice9::GetCurrentTexturePalette(paletteNumber);
332 	}
333 
GetDepthStencilSurface(IDirect3DSurface9 ** depthStencilSurface)334 	long Direct3DDevice9Ex::GetDepthStencilSurface(IDirect3DSurface9 **depthStencilSurface)
335 	{
336 		TRACE("IDirect3DSurface9 **depthStencilSurface = 0x%0.8p", depthStencilSurface);
337 
338 		return Direct3DDevice9::GetDepthStencilSurface(depthStencilSurface);
339 	}
340 
GetDeviceCaps(D3DCAPS9 * caps)341 	long Direct3DDevice9Ex::GetDeviceCaps(D3DCAPS9 *caps)
342 	{
343 		TRACE("D3DCAPS9 *caps = 0x%0.8p", caps);
344 
345 		return d3d9ex->GetDeviceCaps(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, caps);
346 	}
347 
GetDirect3D(IDirect3D9 ** d3d9)348 	long Direct3DDevice9Ex::GetDirect3D(IDirect3D9 **d3d9)
349 	{
350 		TRACE("IDirect3D9 **d3d9 = 0x%0.8p", d3d9);
351 
352 		return Direct3DDevice9::GetDirect3D(d3d9);
353 	}
354 
GetDisplayMode(unsigned int index,D3DDISPLAYMODE * mode)355 	long Direct3DDevice9Ex::GetDisplayMode(unsigned int index, D3DDISPLAYMODE *mode)
356 	{
357 		TRACE("unsigned int index = %d, D3DDISPLAYMODE *mode = 0x%0.8p", index, mode);
358 
359 		return Direct3DDevice9::GetDisplayMode(index, mode);
360 	}
361 
GetFrontBufferData(unsigned int index,IDirect3DSurface9 * destSurface)362 	long Direct3DDevice9Ex::GetFrontBufferData(unsigned int index, IDirect3DSurface9 *destSurface)
363 	{
364 		TRACE("unsigned int index = %d, IDirect3DSurface9 *destSurface = %p", index, destSurface);
365 
366 		return Direct3DDevice9::GetFrontBufferData(index, destSurface);
367 	}
368 
GetFVF(unsigned long * FVF)369 	long Direct3DDevice9Ex::GetFVF(unsigned long *FVF)
370 	{
371 		TRACE("unsigned long *FVF = 0x%0.8p", FVF);
372 
373 		return Direct3DDevice9::GetFVF(FVF);
374 	}
375 
GetGammaRamp(unsigned int index,D3DGAMMARAMP * ramp)376 	void Direct3DDevice9Ex::GetGammaRamp(unsigned int index, D3DGAMMARAMP *ramp)
377 	{
378 		TRACE("unsigned int index = %d, D3DGAMMARAMP *ramp = 0x%0.8p", index, ramp);
379 
380 		return Direct3DDevice9::GetGammaRamp(index, ramp);
381 	}
382 
GetIndices(IDirect3DIndexBuffer9 ** indexData)383 	long Direct3DDevice9Ex::GetIndices(IDirect3DIndexBuffer9 **indexData)
384 	{
385 		TRACE("IDirect3DIndexBuffer9 **indexData = 0x%0.8p", indexData);
386 
387 		return Direct3DDevice9::GetIndices(indexData);
388 	}
389 
GetLight(unsigned long index,D3DLIGHT9 * light)390 	long Direct3DDevice9Ex::GetLight(unsigned long index, D3DLIGHT9 *light)
391 	{
392 		TRACE("unsigned long index = %d, D3DLIGHT9 *light = 0x%0.8p", index, light);
393 
394 		return Direct3DDevice9::GetLight(index, light);
395 	}
396 
GetLightEnable(unsigned long index,int * enable)397 	long Direct3DDevice9Ex::GetLightEnable(unsigned long index, int *enable)
398 	{
399 		TRACE("unsigned long index = %d, int *enable = 0x%0.8p", index, enable);
400 
401 		return Direct3DDevice9::GetLightEnable(index, enable);
402 	}
403 
GetMaterial(D3DMATERIAL9 * material)404 	long Direct3DDevice9Ex::GetMaterial(D3DMATERIAL9 *material)
405 	{
406 		TRACE("D3DMATERIAL9 *material = 0x%0.8p", material);
407 
408 		return Direct3DDevice9::GetMaterial(material);
409 	}
410 
GetNPatchMode()411 	float Direct3DDevice9Ex::GetNPatchMode()
412 	{
413 		TRACE("void");
414 
415 		return Direct3DDevice9::GetNPatchMode();
416 	}
417 
GetNumberOfSwapChains()418 	unsigned int Direct3DDevice9Ex::GetNumberOfSwapChains()
419 	{
420 		TRACE("void");
421 
422 		return Direct3DDevice9::GetNumberOfSwapChains();
423 	}
424 
GetPaletteEntries(unsigned int paletteNumber,PALETTEENTRY * entries)425 	long Direct3DDevice9Ex::GetPaletteEntries(unsigned int paletteNumber, PALETTEENTRY *entries)
426 	{
427 		TRACE("unsigned int paletteNumber = %d, PALETTEENTRY *entries = 0x%0.8p", paletteNumber, entries);
428 
429 		return Direct3DDevice9::GetPaletteEntries(paletteNumber, entries);
430 	}
431 
GetPixelShader(IDirect3DPixelShader9 ** shader)432 	long Direct3DDevice9Ex::GetPixelShader(IDirect3DPixelShader9 **shader)
433 	{
434 		TRACE("IDirect3DPixelShader9 **shader = 0x%0.8p", shader);
435 
436 		return Direct3DDevice9::GetPixelShader(shader);
437 	}
438 
GetPixelShaderConstantB(unsigned int startRegister,int * constantData,unsigned int count)439 	long Direct3DDevice9Ex::GetPixelShaderConstantB(unsigned int startRegister, int *constantData, unsigned int count)
440 	{
441 		TRACE("unsigned int startRegister = %d, int *constantData = 0x%0.8p, unsigned int count = %d", startRegister, constantData, count);
442 
443 		return Direct3DDevice9::GetPixelShaderConstantB(startRegister, constantData, count);
444 	}
445 
GetPixelShaderConstantF(unsigned int startRegister,float * constantData,unsigned int count)446 	long Direct3DDevice9Ex::GetPixelShaderConstantF(unsigned int startRegister, float *constantData, unsigned int count)
447 	{
448 		TRACE("unsigned int startRegister = %d, int *constantData = 0x%0.8p, unsigned int count = %d", startRegister, constantData, count);
449 
450 		return Direct3DDevice9::GetPixelShaderConstantF(startRegister, constantData, count);
451 	}
452 
GetPixelShaderConstantI(unsigned int startRegister,int * constantData,unsigned int count)453 	long Direct3DDevice9Ex::GetPixelShaderConstantI(unsigned int startRegister, int *constantData, unsigned int count)
454 	{
455 		TRACE("unsigned int startRegister = %d, int *constantData = 0x%0.8p, unsigned int count = %d", startRegister, constantData, count);
456 
457 		return Direct3DDevice9::GetPixelShaderConstantI(startRegister, constantData, count);
458 	}
459 
GetRasterStatus(unsigned int swapChain,D3DRASTER_STATUS * rasterStatus)460 	long Direct3DDevice9Ex::GetRasterStatus(unsigned int swapChain, D3DRASTER_STATUS *rasterStatus)
461 	{
462 		TRACE("unsigned int swapChain = %d, D3DRASTER_STATUS *rasterStatus = 0x%0.8p", swapChain, rasterStatus);
463 
464 		return Direct3DDevice9::GetRasterStatus(swapChain, rasterStatus);
465 	}
466 
GetRenderState(D3DRENDERSTATETYPE state,unsigned long * value)467 	long Direct3DDevice9Ex::GetRenderState(D3DRENDERSTATETYPE state, unsigned long *value)
468 	{
469 		TRACE("D3DRENDERSTATETYPE state = %d, unsigned long *value = 0x%0.8p", state, value);
470 
471 		return Direct3DDevice9::GetRenderState(state, value);
472 	}
473 
GetRenderTarget(unsigned long index,IDirect3DSurface9 ** renderTarget)474 	long Direct3DDevice9Ex::GetRenderTarget(unsigned long index, IDirect3DSurface9 **renderTarget)
475 	{
476 		TRACE("unsigned long index = %d, IDirect3DSurface9 **renderTarget = 0x%0.8p", index, renderTarget);
477 
478 		return Direct3DDevice9::GetRenderTarget(index, renderTarget);
479 	}
480 
GetRenderTargetData(IDirect3DSurface9 * renderTarget,IDirect3DSurface9 * destSurface)481 	long Direct3DDevice9Ex::GetRenderTargetData(IDirect3DSurface9 *renderTarget, IDirect3DSurface9 *destSurface)
482 	{
483 		TRACE("IDirect3DSurface9 *renderTarget = 0x%0.8p, IDirect3DSurface9 *destSurface = 0x%0.8p", renderTarget, destSurface);
484 
485 		return Direct3DDevice9::GetRenderTargetData(renderTarget, destSurface);
486 	}
487 
GetSamplerState(unsigned long sampler,D3DSAMPLERSTATETYPE state,unsigned long * value)488 	long Direct3DDevice9Ex::GetSamplerState(unsigned long sampler, D3DSAMPLERSTATETYPE state, unsigned long *value)
489 	{
490 		TRACE("unsigned long sampler = %d, D3DSAMPLERSTATETYPE type = %d, unsigned long *value = 0x%0.8p", sampler, state, value);
491 
492 		return Direct3DDevice9::GetSamplerState(sampler, state, value);
493 	}
494 
GetScissorRect(RECT * rect)495 	long Direct3DDevice9Ex::GetScissorRect(RECT *rect)
496 	{
497 		TRACE("RECT *rect = 0x%0.8p", rect);
498 
499 		return Direct3DDevice9::GetScissorRect(rect);
500 	}
501 
GetSoftwareVertexProcessing()502 	int Direct3DDevice9Ex::GetSoftwareVertexProcessing()
503 	{
504 		TRACE("void");
505 
506 		return Direct3DDevice9::GetSoftwareVertexProcessing();
507 	}
508 
GetStreamSource(unsigned int streamNumber,IDirect3DVertexBuffer9 ** streamData,unsigned int * offset,unsigned int * stride)509 	long Direct3DDevice9Ex::GetStreamSource(unsigned int streamNumber, IDirect3DVertexBuffer9 **streamData, unsigned int *offset, unsigned int *stride)
510 	{
511 		TRACE("unsigned int streamNumber = %d, IDirect3DVertexBuffer9 **streamData = 0x%0.8p, unsigned int *offset = 0x%0.8p, unsigned int *stride = 0x%0.8p", streamNumber, streamData, offset, stride);
512 
513 		return Direct3DDevice9::GetStreamSource(streamNumber, streamData, offset, stride);
514 	}
515 
GetStreamSourceFreq(unsigned int streamNumber,unsigned int * divider)516 	long Direct3DDevice9Ex::GetStreamSourceFreq(unsigned int streamNumber, unsigned int *divider)
517 	{
518 		TRACE("unsigned int streamNumber = %d, unsigned int *divider = 0x%0.8p", streamNumber, divider);
519 
520 		return Direct3DDevice9::GetStreamSourceFreq(streamNumber, divider);
521 	}
522 
GetSwapChain(unsigned int index,IDirect3DSwapChain9 ** swapChain)523 	long Direct3DDevice9Ex::GetSwapChain(unsigned int index, IDirect3DSwapChain9 **swapChain)
524 	{
525 		TRACE("unsigned int index = %d, IDirect3DSwapChain9 **swapChain = 0x%0.8p", index, swapChain);
526 
527 		return Direct3DDevice9::GetSwapChain(index, swapChain);
528 	}
529 
GetTexture(unsigned long sampler,IDirect3DBaseTexture9 ** texture)530 	long Direct3DDevice9Ex::GetTexture(unsigned long sampler, IDirect3DBaseTexture9 **texture)
531 	{
532 		TRACE("unsigned long sampler = %d, IDirect3DBaseTexture9 **texture = 0x%0.8p", sampler, texture);
533 
534 		return Direct3DDevice9::GetTexture(sampler, texture);
535 	}
536 
GetTextureStageState(unsigned long stage,D3DTEXTURESTAGESTATETYPE type,unsigned long * value)537 	long Direct3DDevice9Ex::GetTextureStageState(unsigned long stage, D3DTEXTURESTAGESTATETYPE type, unsigned long *value)
538 	{
539 		TRACE("unsigned long stage = %d, D3DTEXTURESTAGESTATETYPE type = %d, unsigned long *value = 0x%0.8p", stage, type, value);
540 
541 		return Direct3DDevice9::GetTextureStageState(stage, type, value);
542 	}
543 
GetTransform(D3DTRANSFORMSTATETYPE state,D3DMATRIX * matrix)544 	long Direct3DDevice9Ex::GetTransform(D3DTRANSFORMSTATETYPE state, D3DMATRIX *matrix)
545 	{
546 		TRACE("D3DTRANSFORMSTATETYPE state = %d, D3DMATRIX *matrix = 0x%0.8p", state, matrix);
547 
548 		return Direct3DDevice9::GetTransform(state, matrix);
549 	}
550 
GetVertexDeclaration(IDirect3DVertexDeclaration9 ** declaration)551 	long Direct3DDevice9Ex::GetVertexDeclaration(IDirect3DVertexDeclaration9 **declaration)
552 	{
553 		TRACE("IDirect3DVertexDeclaration9 **declaration = 0x%0.8p", declaration);
554 
555 		return Direct3DDevice9::GetVertexDeclaration(declaration);
556 	}
557 
GetVertexShader(IDirect3DVertexShader9 ** shader)558 	long Direct3DDevice9Ex::GetVertexShader(IDirect3DVertexShader9 **shader)
559 	{
560 		TRACE("IDirect3DVertexShader9 **shader = 0x%0.8p", shader);
561 
562 		return Direct3DDevice9::GetVertexShader(shader);
563 	}
564 
GetVertexShaderConstantB(unsigned int startRegister,int * constantData,unsigned int count)565 	long Direct3DDevice9Ex::GetVertexShaderConstantB(unsigned int startRegister, int *constantData, unsigned int count)
566 	{
567 		TRACE("unsigned int startRegister = %d, int *constantData = 0x%0.8p, unsigned int count = %d", startRegister, constantData, count);
568 
569 		return Direct3DDevice9::GetVertexShaderConstantB(startRegister, constantData, count);
570 	}
571 
GetVertexShaderConstantF(unsigned int startRegister,float * constantData,unsigned int count)572 	long Direct3DDevice9Ex::GetVertexShaderConstantF(unsigned int startRegister, float *constantData, unsigned int count)
573 	{
574 		TRACE("unsigned int startRegister = %d, int *constantData = 0x%0.8p, unsigned int count = %d", startRegister, constantData, count);
575 
576 		return Direct3DDevice9::GetVertexShaderConstantF(startRegister, constantData, count);
577 	}
578 
GetVertexShaderConstantI(unsigned int startRegister,int * constantData,unsigned int count)579 	long Direct3DDevice9Ex::GetVertexShaderConstantI(unsigned int startRegister, int *constantData, unsigned int count)
580 	{
581 		TRACE("unsigned int startRegister = %d, int *constantData = 0x%0.8p, unsigned int count = %d", startRegister, constantData, count);
582 
583 		return Direct3DDevice9::GetVertexShaderConstantI(startRegister, constantData, count);
584 	}
585 
GetViewport(D3DVIEWPORT9 * viewport)586 	long Direct3DDevice9Ex::GetViewport(D3DVIEWPORT9 *viewport)
587 	{
588 		TRACE("D3DVIEWPORT9 *viewport = 0x%0.8p", viewport);
589 
590 		return Direct3DDevice9::GetViewport(viewport);
591 	}
592 
LightEnable(unsigned long index,int enable)593 	long Direct3DDevice9Ex::LightEnable(unsigned long index, int enable)
594 	{
595 		TRACE("unsigned long index = %d, int enable = %d", index, enable);
596 
597 		return Direct3DDevice9::LightEnable(index, enable);
598 	}
599 
MultiplyTransform(D3DTRANSFORMSTATETYPE state,const D3DMATRIX * matrix)600 	long Direct3DDevice9Ex::MultiplyTransform(D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix)
601 	{
602 		TRACE("D3DTRANSFORMSTATETYPE state = %d, const D3DMATRIX *matrix = 0x%0.8p", state, matrix);
603 
604 		return Direct3DDevice9::MultiplyTransform(state, matrix);
605 	}
606 
Present(const RECT * sourceRect,const RECT * destRect,HWND destWindowOverride,const RGNDATA * dirtyRegion)607 	long Direct3DDevice9Ex::Present(const RECT *sourceRect, const RECT *destRect, HWND destWindowOverride, const RGNDATA *dirtyRegion)
608 	{
609 		TRACE("const RECT *sourceRect = 0x%0.8p, const RECT *destRect = 0x%0.8p, HWND destWindowOverride = %d, const RGNDATA *dirtyRegion = 0x%0.8p", sourceRect, destRect, destWindowOverride, dirtyRegion);
610 
611 		return Direct3DDevice9::Present(sourceRect, destRect, destWindowOverride, dirtyRegion);
612 	}
613 
ProcessVertices(unsigned int srcStartIndex,unsigned int destIndex,unsigned int vertexCount,IDirect3DVertexBuffer9 * destBuffer,IDirect3DVertexDeclaration9 * vertexDeclaration,unsigned long flags)614 	long Direct3DDevice9Ex::ProcessVertices(unsigned int srcStartIndex, unsigned int destIndex, unsigned int vertexCount, IDirect3DVertexBuffer9 *destBuffer, IDirect3DVertexDeclaration9 *vertexDeclaration, unsigned long flags)
615 	{
616 		TRACE("unsigned int srcStartIndex = %d, unsigned int destIndex = %d, unsigned int vertexCount = %d, IDirect3DVertexBuffer9 *destBuffer = 0x%0.8p, IDirect3DVertexDeclaration9 *vertexDeclaration = 0x%0.8p, unsigned long flags = %d", srcStartIndex, destIndex, vertexCount, destBuffer, vertexDeclaration, flags);
617 
618 		return Direct3DDevice9::ProcessVertices(srcStartIndex, destIndex, vertexCount, destBuffer, vertexDeclaration, flags);
619 	}
620 
Reset(D3DPRESENT_PARAMETERS * presentParameters)621 	long Direct3DDevice9Ex::Reset(D3DPRESENT_PARAMETERS *presentParameters)
622 	{
623 		TRACE("D3DPRESENT_PARAMETERS *presentParameters = 0x%0.8p", presentParameters);
624 
625 		return Direct3DDevice9::Reset(presentParameters);
626 	}
627 
SetClipPlane(unsigned long index,const float * plane)628 	long Direct3DDevice9Ex::SetClipPlane(unsigned long index, const float *plane)
629 	{
630 		TRACE("unsigned long index = %d, const float *plane = 0x%0.8p", index, plane);
631 
632 		return Direct3DDevice9::SetClipPlane(index, plane);
633 	}
634 
SetClipStatus(const D3DCLIPSTATUS9 * clipStatus)635 	long Direct3DDevice9Ex::SetClipStatus(const D3DCLIPSTATUS9 *clipStatus)
636 	{
637 		TRACE("const D3DCLIPSTATUS9 *clipStatus = 0x%0.8p", clipStatus);
638 
639 		return Direct3DDevice9::SetClipStatus(clipStatus);
640 	}
641 
SetCurrentTexturePalette(unsigned int paletteNumber)642 	long Direct3DDevice9Ex::SetCurrentTexturePalette(unsigned int paletteNumber)
643 	{
644 		TRACE("unsigned int paletteNumber = %d", paletteNumber);
645 
646 		return Direct3DDevice9::SetCurrentTexturePalette(paletteNumber);
647 	}
648 
SetCursorPosition(int x,int y,unsigned long flags)649 	void Direct3DDevice9Ex::SetCursorPosition(int x, int y, unsigned long flags)
650 	{
651 		TRACE("int x = %d, int y = %d, unsigned long flags = 0x%0.8X", x, y, flags);
652 
653 		return Direct3DDevice9::SetCursorPosition(x, y, flags);
654 	}
655 
SetCursorProperties(unsigned int x,unsigned int y,IDirect3DSurface9 * cursorBitmap)656 	long Direct3DDevice9Ex::SetCursorProperties(unsigned int x, unsigned int y, IDirect3DSurface9 *cursorBitmap)
657 	{
658 		TRACE("unsigned int x = %d, unsigned int y = %d, IDirect3DSurface9 *cursorBitmap = 0x%0.8p", x, y, cursorBitmap);
659 
660 		return Direct3DDevice9::SetCursorProperties(x, y, cursorBitmap);
661 	}
662 
SetDepthStencilSurface(IDirect3DSurface9 * iDepthStencil)663 	long Direct3DDevice9Ex::SetDepthStencilSurface(IDirect3DSurface9 *iDepthStencil)
664 	{
665 		TRACE("IDirect3DSurface9 *newDepthStencil = 0x%0.8p", iDepthStencil);
666 
667 		return Direct3DDevice9::SetDepthStencilSurface(iDepthStencil);
668 	}
669 
SetDialogBoxMode(int enableDialogs)670 	long Direct3DDevice9Ex::SetDialogBoxMode(int enableDialogs)
671 	{
672 		TRACE("int enableDialogs = %d", enableDialogs);
673 
674 		return Direct3DDevice9::SetDialogBoxMode(enableDialogs);
675 	}
676 
SetFVF(unsigned long FVF)677 	long Direct3DDevice9Ex::SetFVF(unsigned long FVF)
678 	{
679 		TRACE("unsigned long FVF = 0x%0.8X", FVF);
680 
681 		return Direct3DDevice9::SetFVF(FVF);
682 	}
683 
SetGammaRamp(unsigned int index,unsigned long flags,const D3DGAMMARAMP * ramp)684 	void Direct3DDevice9Ex::SetGammaRamp(unsigned int index, unsigned long flags, const D3DGAMMARAMP *ramp)
685 	{
686 		TRACE("unsigned int index = %d, unsigned long flags = 0x%0.8X, const D3DGAMMARAMP *ramp = 0x%0.8p", index, flags, ramp);
687 
688 		return Direct3DDevice9::SetGammaRamp(index, flags, ramp);
689 	}
690 
SetIndices(IDirect3DIndexBuffer9 * iIndexBuffer)691 	long Direct3DDevice9Ex::SetIndices(IDirect3DIndexBuffer9* iIndexBuffer)
692 	{
693 		TRACE("IDirect3DIndexBuffer9* indexData = 0x%0.8p", iIndexBuffer);
694 
695 		return Direct3DDevice9::SetIndices(iIndexBuffer);
696 	}
697 
SetLight(unsigned long index,const D3DLIGHT9 * light)698 	long Direct3DDevice9Ex::SetLight(unsigned long index, const D3DLIGHT9 *light)
699 	{
700 		TRACE("unsigned long index = %d, const D3DLIGHT9 *light = 0x%0.8p", index, light);
701 
702 		return Direct3DDevice9::SetLight(index, light);
703 	}
704 
SetMaterial(const D3DMATERIAL9 * material)705 	long Direct3DDevice9Ex::SetMaterial(const D3DMATERIAL9 *material)
706 	{
707 		TRACE("const D3DMATERIAL9 *material = 0x%0.8p", material);
708 
709 		return Direct3DDevice9::SetMaterial(material);
710 	}
711 
SetNPatchMode(float segments)712 	long Direct3DDevice9Ex::SetNPatchMode(float segments)
713 	{
714 		TRACE("float segments = %f", segments);
715 
716 		return Direct3DDevice9::SetNPatchMode(segments);
717 	}
718 
SetPaletteEntries(unsigned int paletteNumber,const PALETTEENTRY * entries)719 	long Direct3DDevice9Ex::SetPaletteEntries(unsigned int paletteNumber, const PALETTEENTRY *entries)
720 	{
721 		TRACE("unsigned int paletteNumber = %d, const PALETTEENTRY *entries = 0x%0.8p", paletteNumber, entries);
722 
723 		return Direct3DDevice9::SetPaletteEntries(paletteNumber, entries);
724 	}
725 
SetPixelShader(IDirect3DPixelShader9 * iPixelShader)726 	long Direct3DDevice9Ex::SetPixelShader(IDirect3DPixelShader9 *iPixelShader)
727 	{
728 		TRACE("IDirect3DPixelShader9 *shader = 0x%0.8p", iPixelShader);
729 
730 		return Direct3DDevice9::SetPixelShader(iPixelShader);
731 	}
732 
SetPixelShaderConstantB(unsigned int startRegister,const int * constantData,unsigned int count)733 	long Direct3DDevice9Ex::SetPixelShaderConstantB(unsigned int startRegister, const int *constantData, unsigned int count)
734 	{
735 		TRACE("unsigned int startRegister = %d, const int *constantData = 0x%0.8p, unsigned int count = %d", startRegister, constantData, count);
736 
737 		return Direct3DDevice9::SetPixelShaderConstantB(startRegister, constantData, count);
738 	}
739 
SetPixelShaderConstantF(unsigned int startRegister,const float * constantData,unsigned int count)740 	long Direct3DDevice9Ex::SetPixelShaderConstantF(unsigned int startRegister, const float *constantData, unsigned int count)
741 	{
742 		TRACE("unsigned int startRegister = %d, const int *constantData = 0x%0.8p, unsigned int count = %d", startRegister, constantData, count);
743 
744 		return Direct3DDevice9::SetPixelShaderConstantF(startRegister, constantData, count);
745 	}
746 
SetPixelShaderConstantI(unsigned int startRegister,const int * constantData,unsigned int count)747 	long Direct3DDevice9Ex::SetPixelShaderConstantI(unsigned int startRegister, const int *constantData, unsigned int count)
748 	{
749 		TRACE("unsigned int startRegister = %d, const int *constantData = 0x%0.8p, unsigned int count = %d", startRegister, constantData, count);
750 
751 		return Direct3DDevice9::SetPixelShaderConstantI(startRegister, constantData, count);
752 	}
753 
SetRenderState(D3DRENDERSTATETYPE state,unsigned long value)754 	long Direct3DDevice9Ex::SetRenderState(D3DRENDERSTATETYPE state, unsigned long value)
755 	{
756 		TRACE("D3DRENDERSTATETYPE state = %d, unsigned long value = %d", state, value);
757 
758 		return Direct3DDevice9::SetRenderState(state, value);
759 	}
760 
SetRenderTarget(unsigned long index,IDirect3DSurface9 * iRenderTarget)761 	long Direct3DDevice9Ex::SetRenderTarget(unsigned long index, IDirect3DSurface9 *iRenderTarget)
762 	{
763 		TRACE("unsigned long index = %d, IDirect3DSurface9 *newRenderTarget = 0x%0.8p", index, iRenderTarget);
764 
765 		return Direct3DDevice9::SetRenderTarget(index, iRenderTarget);
766 	}
767 
SetSamplerState(unsigned long sampler,D3DSAMPLERSTATETYPE state,unsigned long value)768 	long Direct3DDevice9Ex::SetSamplerState(unsigned long sampler, D3DSAMPLERSTATETYPE state, unsigned long value)
769 	{
770 		TRACE("unsigned long sampler = %d, D3DSAMPLERSTATETYPE state = %d, unsigned long value = %d", sampler, state, value);
771 
772 		return Direct3DDevice9::SetSamplerState(sampler, state, value);
773 	}
774 
SetScissorRect(const RECT * rect)775 	long Direct3DDevice9Ex::SetScissorRect(const RECT *rect)
776 	{
777 		TRACE("const RECT *rect = 0x%0.8p", rect);
778 
779 		return Direct3DDevice9::SetScissorRect(rect);
780 	}
781 
SetSoftwareVertexProcessing(int software)782 	long Direct3DDevice9Ex::SetSoftwareVertexProcessing(int software)
783 	{
784 		TRACE("int software = %d", software);
785 
786 		return Direct3DDevice9::SetSoftwareVertexProcessing(software);
787 	}
788 
SetStreamSource(unsigned int stream,IDirect3DVertexBuffer9 * iVertexBuffer,unsigned int offset,unsigned int stride)789 	long Direct3DDevice9Ex::SetStreamSource(unsigned int stream, IDirect3DVertexBuffer9 *iVertexBuffer, unsigned int offset, unsigned int stride)
790 	{
791 		TRACE("unsigned int stream = %d, IDirect3DVertexBuffer9 *data = 0x%0.8p, unsigned int offset = %d, unsigned int stride = %d", stream, iVertexBuffer, offset, stride);
792 
793 		return Direct3DDevice9::SetStreamSource(stream, iVertexBuffer, offset, stride);
794 	}
795 
SetStreamSourceFreq(unsigned int streamNumber,unsigned int divider)796 	long Direct3DDevice9Ex::SetStreamSourceFreq(unsigned int streamNumber, unsigned int divider)
797 	{
798 		TRACE("unsigned int streamNumber = %d, unsigned int divider = %d", streamNumber, divider);
799 
800 		return Direct3DDevice9::SetStreamSourceFreq(streamNumber, divider);
801 	}
802 
SetTexture(unsigned long sampler,IDirect3DBaseTexture9 * iBaseTexture)803 	long Direct3DDevice9Ex::SetTexture(unsigned long sampler, IDirect3DBaseTexture9 *iBaseTexture)
804 	{
805 		TRACE("unsigned long sampler = %d, IDirect3DBaseTexture9 *texture = 0x%0.8p", sampler, iBaseTexture);
806 
807 		return Direct3DDevice9::SetTexture(sampler, iBaseTexture);
808 	}
809 
SetTextureStageState(unsigned long stage,D3DTEXTURESTAGESTATETYPE type,unsigned long value)810 	long Direct3DDevice9Ex::SetTextureStageState(unsigned long stage, D3DTEXTURESTAGESTATETYPE type, unsigned long value)
811 	{
812 		TRACE("unsigned long stage = %d, D3DTEXTURESTAGESTATETYPE type = %d, unsigned long value = %d", stage, type, value);
813 
814 		return Direct3DDevice9::SetTextureStageState(stage, type, value);
815 	}
816 
SetTransform(D3DTRANSFORMSTATETYPE state,const D3DMATRIX * matrix)817 	long Direct3DDevice9Ex::SetTransform(D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix)
818 	{
819 		TRACE("D3DTRANSFORMSTATETYPE state = %d, const D3DMATRIX *matrix = 0x%0.8p", state, matrix);
820 
821 		return Direct3DDevice9::SetTransform(state, matrix);
822 	}
823 
SetVertexDeclaration(IDirect3DVertexDeclaration9 * iVertexDeclaration)824 	long Direct3DDevice9Ex::SetVertexDeclaration(IDirect3DVertexDeclaration9 *iVertexDeclaration)
825 	{
826 		TRACE("IDirect3DVertexDeclaration9 *declaration = 0x%0.8p", iVertexDeclaration);
827 
828 		return Direct3DDevice9::SetVertexDeclaration(iVertexDeclaration);
829 	}
830 
SetVertexShader(IDirect3DVertexShader9 * iVertexShader)831 	long Direct3DDevice9Ex::SetVertexShader(IDirect3DVertexShader9 *iVertexShader)
832 	{
833 		TRACE("IDirect3DVertexShader9 *shader = 0x%0.8p", iVertexShader);
834 
835 		return Direct3DDevice9::SetVertexShader(iVertexShader);
836 	}
837 
SetVertexShaderConstantB(unsigned int startRegister,const int * constantData,unsigned int count)838 	long Direct3DDevice9Ex::SetVertexShaderConstantB(unsigned int startRegister, const int *constantData, unsigned int count)
839 	{
840 		TRACE("unsigned int startRegister = %d, const int *constantData = 0x%0.8p, unsigned int count = %d", startRegister, constantData, count);
841 
842 		return Direct3DDevice9::SetVertexShaderConstantB(startRegister, constantData, count);
843 	}
844 
SetVertexShaderConstantF(unsigned int startRegister,const float * constantData,unsigned int count)845 	long Direct3DDevice9Ex::SetVertexShaderConstantF(unsigned int startRegister, const float *constantData, unsigned int count)
846 	{
847 		TRACE("unsigned int startRegister = %d, const int *constantData = 0x%0.8p, unsigned int count = %d", startRegister, constantData, count);
848 
849 		return Direct3DDevice9::SetVertexShaderConstantF(startRegister, constantData, count);
850 	}
851 
SetVertexShaderConstantI(unsigned int startRegister,const int * constantData,unsigned int count)852 	long Direct3DDevice9Ex::SetVertexShaderConstantI(unsigned int startRegister, const int *constantData, unsigned int count)
853 	{
854 		TRACE("unsigned int startRegister = %d, const int *constantData = 0x%0.8p, unsigned int count = %d", startRegister, constantData, count);
855 
856 		return Direct3DDevice9::SetVertexShaderConstantI(startRegister, constantData, count);
857 	}
858 
SetViewport(const D3DVIEWPORT9 * viewport)859 	long Direct3DDevice9Ex::SetViewport(const D3DVIEWPORT9 *viewport)
860 	{
861 		TRACE("const D3DVIEWPORT9 *viewport = 0x%0.8p", viewport);
862 
863 		return Direct3DDevice9::SetViewport(viewport);
864 	}
865 
ShowCursor(int show)866 	int Direct3DDevice9Ex::ShowCursor(int show)
867 	{
868 		TRACE("int show = %d", show);
869 
870 		return Direct3DDevice9::ShowCursor(show);
871 	}
872 
StretchRect(IDirect3DSurface9 * sourceSurface,const RECT * sourceRect,IDirect3DSurface9 * destSurface,const RECT * destRect,D3DTEXTUREFILTERTYPE filter)873 	long Direct3DDevice9Ex::StretchRect(IDirect3DSurface9 *sourceSurface, const RECT *sourceRect, IDirect3DSurface9 *destSurface, const RECT *destRect, D3DTEXTUREFILTERTYPE filter)
874 	{
875 		TRACE("IDirect3DSurface9 *sourceSurface = 0x%0.8p, const RECT *sourceRect = 0x%0.8p, IDirect3DSurface9 *destSurface = 0x%0.8p, const RECT *destRect = 0x%0.8p, D3DTEXTUREFILTERTYPE filter = %d", sourceSurface, sourceRect, destSurface, destRect, filter);
876 
877 		return Direct3DDevice9::StretchRect(sourceSurface, sourceRect, destSurface, destRect, filter);
878 	}
879 
TestCooperativeLevel()880 	long Direct3DDevice9Ex::TestCooperativeLevel()
881 	{
882 		TRACE("void");
883 
884 		return Direct3DDevice9::TestCooperativeLevel();
885 	}
886 
UpdateSurface(IDirect3DSurface9 * sourceSurface,const RECT * sourceRect,IDirect3DSurface9 * destinationSurface,const POINT * destPoint)887 	long Direct3DDevice9Ex::UpdateSurface(IDirect3DSurface9 *sourceSurface, const RECT *sourceRect, IDirect3DSurface9 *destinationSurface, const POINT *destPoint)
888 	{
889 		TRACE("IDirect3DSurface9 *sourceSurface = 0x%0.8p, const RECT *sourceRect = 0x%0.8p, IDirect3DSurface9 *destinationSurface = 0x%0.8p, const POINT *destPoint = 0x%0.8p", sourceSurface, sourceRect, destinationSurface, destPoint);
890 
891 		return Direct3DDevice9::UpdateSurface(sourceSurface, sourceRect, destinationSurface, destPoint);
892 	}
893 
UpdateTexture(IDirect3DBaseTexture9 * sourceTexture,IDirect3DBaseTexture9 * destinationTexture)894 	long Direct3DDevice9Ex::UpdateTexture(IDirect3DBaseTexture9 *sourceTexture, IDirect3DBaseTexture9 *destinationTexture)
895 	{
896 		TRACE("IDirect3DBaseTexture9 *sourceTexture = 0x%0.8p, IDirect3DBaseTexture9 *destinationTexture = 0x%0.8p", sourceTexture, destinationTexture);
897 
898 		return Direct3DDevice9::UpdateTexture(sourceTexture, destinationTexture);
899 	}
900 
ValidateDevice(unsigned long * numPasses)901 	long Direct3DDevice9Ex::ValidateDevice(unsigned long *numPasses)
902 	{
903 		TRACE("unsigned long *numPasses = 0x%0.8p", numPasses);
904 
905 		return Direct3DDevice9::ValidateDevice(numPasses);
906 	}
907 
SetConvolutionMonoKernel(UINT,UINT,float *,float *)908 	HRESULT Direct3DDevice9Ex::SetConvolutionMonoKernel(UINT,UINT,float *,float *)
909 	{
910 		CriticalSection cs(this);
911 
912 		UNIMPLEMENTED();
913 
914 		return D3D_OK;
915 	}
916 
ComposeRects(IDirect3DSurface9 *,IDirect3DSurface9 *,IDirect3DVertexBuffer9 *,UINT,IDirect3DVertexBuffer9 *,D3DCOMPOSERECTSOP,int,int)917 	HRESULT Direct3DDevice9Ex::ComposeRects(IDirect3DSurface9 *,IDirect3DSurface9 *,IDirect3DVertexBuffer9 *,UINT,IDirect3DVertexBuffer9 *,D3DCOMPOSERECTSOP,int,int)
918 	{
919 		CriticalSection cs(this);
920 
921 		UNIMPLEMENTED();
922 
923 		return D3D_OK;
924 	}
925 
PresentEx(const RECT *,const RECT *,HWND,const RGNDATA *,DWORD)926 	HRESULT Direct3DDevice9Ex::PresentEx(const RECT *,const RECT *,HWND,const RGNDATA *,DWORD)
927 	{
928 		CriticalSection cs(this);
929 
930 		UNIMPLEMENTED();
931 
932 		return D3D_OK;
933 	}
934 
GetGPUThreadPriority(INT *)935 	HRESULT Direct3DDevice9Ex::GetGPUThreadPriority(INT *)
936 	{
937 		CriticalSection cs(this);
938 
939 		UNIMPLEMENTED();
940 
941 		return D3D_OK;
942 	}
943 
SetGPUThreadPriority(INT)944 	HRESULT Direct3DDevice9Ex::SetGPUThreadPriority(INT)
945 	{
946 		CriticalSection cs(this);
947 
948 		UNIMPLEMENTED();
949 
950 		return D3D_OK;
951 	}
952 
WaitForVBlank(UINT)953 	HRESULT Direct3DDevice9Ex::WaitForVBlank(UINT)
954 	{
955 		CriticalSection cs(this);
956 
957 		UNIMPLEMENTED();
958 
959 		return D3D_OK;
960 	}
961 
CheckResourceResidency(IDirect3DResource9 **,UINT32)962 	HRESULT Direct3DDevice9Ex::CheckResourceResidency(IDirect3DResource9 **,UINT32)
963 	{
964 		CriticalSection cs(this);
965 
966 		UNIMPLEMENTED();
967 
968 		return D3D_OK;
969 	}
970 
SetMaximumFrameLatency(UINT)971 	HRESULT Direct3DDevice9Ex::SetMaximumFrameLatency(UINT)
972 	{
973 		CriticalSection cs(this);
974 
975 		UNIMPLEMENTED();
976 
977 		return D3D_OK;
978 	}
979 
GetMaximumFrameLatency(UINT *)980 	HRESULT Direct3DDevice9Ex::GetMaximumFrameLatency(UINT *)
981 	{
982 		CriticalSection cs(this);
983 
984 		UNIMPLEMENTED();
985 
986 		return D3D_OK;
987 	}
988 
CheckDeviceState(HWND destinationWindow)989 	HRESULT Direct3DDevice9Ex::CheckDeviceState(HWND destinationWindow)
990 	{
991 		CriticalSection cs(this);
992 
993 	//	UNIMPLEMENTED();
994 
995 		return D3D_OK;
996 	}
997 
CreateRenderTargetEx(UINT,UINT,D3DFORMAT,D3DMULTISAMPLE_TYPE,DWORD,BOOL,IDirect3DSurface9 **,HANDLE *,DWORD)998 	HRESULT Direct3DDevice9Ex::CreateRenderTargetEx(UINT,UINT,D3DFORMAT,D3DMULTISAMPLE_TYPE,DWORD,BOOL,IDirect3DSurface9 **,HANDLE *,DWORD)
999 	{
1000 		CriticalSection cs(this);
1001 
1002 		UNIMPLEMENTED();
1003 
1004 		return D3D_OK;
1005 	}
1006 
CreateOffscreenPlainSurfaceEx(UINT,UINT,D3DFORMAT,D3DPOOL,IDirect3DSurface9 **,HANDLE *,DWORD)1007 	HRESULT Direct3DDevice9Ex::CreateOffscreenPlainSurfaceEx(UINT,UINT,D3DFORMAT,D3DPOOL,IDirect3DSurface9 **,HANDLE *,DWORD)
1008 	{
1009 		CriticalSection cs(this);
1010 
1011 		UNIMPLEMENTED();
1012 
1013 		return D3D_OK;
1014 	}
1015 
CreateDepthStencilSurfaceEx(UINT,UINT,D3DFORMAT,D3DMULTISAMPLE_TYPE,DWORD,BOOL,IDirect3DSurface9 **,HANDLE *,DWORD)1016 	HRESULT Direct3DDevice9Ex::CreateDepthStencilSurfaceEx(UINT,UINT,D3DFORMAT,D3DMULTISAMPLE_TYPE,DWORD,BOOL,IDirect3DSurface9 **,HANDLE *,DWORD)
1017 	{
1018 		CriticalSection cs(this);
1019 
1020 		UNIMPLEMENTED();
1021 
1022 		return D3D_OK;
1023 	}
1024 
ResetEx(D3DPRESENT_PARAMETERS *,D3DDISPLAYMODEEX *)1025 	HRESULT Direct3DDevice9Ex::ResetEx(D3DPRESENT_PARAMETERS *,D3DDISPLAYMODEEX *)
1026 	{
1027 		CriticalSection cs(this);
1028 
1029 		UNIMPLEMENTED();
1030 
1031 		return D3D_OK;
1032 	}
1033 
GetDisplayModeEx(UINT,D3DDISPLAYMODEEX *,D3DDISPLAYROTATION *)1034 	HRESULT Direct3DDevice9Ex::GetDisplayModeEx(UINT,D3DDISPLAYMODEEX *,D3DDISPLAYROTATION *)
1035 	{
1036 		CriticalSection cs(this);
1037 
1038 		UNIMPLEMENTED();
1039 
1040 		return D3D_OK;
1041 	}
1042 }
1043