Files
gMod/uMod_DX10/uMod_ID3D10Device.h

252 lines
13 KiB
C++

/*
This file is part of Universal Modding Engine.
Universal Modding Engine is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Universal Modding Engine is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Universal Modding Engine. If not, see <http://www.gnu.org/licenses/>.
*/
#ifdef __CDT_PARSER__
#undef UMOD_ID3D10DEVICE_H_
#endif
#ifndef UMOD_ID3D10DEVICE_H_
#define UMOD_ID3D10DEVICE_H_
#include <d3d10_1.h>
#include <d3d10.h>
#include <D3D10Misc.h>
#include <d3dx10.h>
#include "..\uMod_DXMain\uMod_TextureServer.h"
#include "uMod_TextureClient_DX10.h"
#include "uMod_ID3D10Texture1D.h"
#include "uMod_ID3D10Texture2D.h"
#include "uMod_ID3D10Texture3D.h"
class uMod_ID3D10Device : public ID3D10Device
{
public:
uMod_ID3D10Device(ID3D10Device* pOriginal, uMod_TextureServer* server);
virtual ~uMod_ID3D10Device();
HRESULT STDMETHODCALLTYPE QueryInterface( REFIID riid, void** ppvObject);
ULONG STDMETHODCALLTYPE AddRef(void);
ULONG STDMETHODCALLTYPE Release( void);
void STDMETHODCALLTYPE VSSetConstantBuffers( UINT StartSlot, UINT NumBuffers, ID3D10Buffer *const *ppConstantBuffers);
void STDMETHODCALLTYPE PSSetShaderResources( UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView *const *ppShaderResourceViews);
void STDMETHODCALLTYPE PSSetShader( ID3D10PixelShader *pPixelShader);
void STDMETHODCALLTYPE PSSetSamplers( UINT StartSlot, UINT NumSamplers, ID3D10SamplerState *const *ppSamplers);
void STDMETHODCALLTYPE VSSetShader( ID3D10VertexShader *pVertexShader);
void STDMETHODCALLTYPE DrawIndexed( UINT IndexCount, UINT StartIndexLocation, INT BaseVertexLocation);
void STDMETHODCALLTYPE Draw( UINT VertexCount, UINT StartVertexLocation);
void STDMETHODCALLTYPE PSSetConstantBuffers( UINT StartSlot, UINT NumBuffers, ID3D10Buffer *const *ppConstantBuffers);
void STDMETHODCALLTYPE IASetInputLayout( ID3D10InputLayout *pInputLayout);
void STDMETHODCALLTYPE IASetVertexBuffers( UINT StartSlot, UINT NumBuffers, ID3D10Buffer *const *ppVertexBuffers, const UINT *pStrides, const UINT *pOffsets);
void STDMETHODCALLTYPE IASetIndexBuffer( ID3D10Buffer *pIndexBuffer, DXGI_FORMAT Format, UINT Offset);
void STDMETHODCALLTYPE DrawIndexedInstanced( UINT IndexCountPerInstance, UINT InstanceCount, UINT StartIndexLocation, INT BaseVertexLocation, UINT StartInstanceLocation);
void STDMETHODCALLTYPE DrawInstanced( UINT VertexCountPerInstance, UINT InstanceCount, UINT StartVertexLocation, UINT StartInstanceLocation);
void STDMETHODCALLTYPE GSSetConstantBuffers( UINT StartSlot, UINT NumBuffers, ID3D10Buffer *const *ppConstantBuffers);
void STDMETHODCALLTYPE GSSetShader( ID3D10GeometryShader *pShader);
void STDMETHODCALLTYPE IASetPrimitiveTopology( D3D10_PRIMITIVE_TOPOLOGY Topology);
void STDMETHODCALLTYPE VSSetShaderResources( UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView *const *ppShaderResourceViews);
void STDMETHODCALLTYPE VSSetSamplers( UINT StartSlot, UINT NumSamplers, ID3D10SamplerState *const *ppSamplers);
void STDMETHODCALLTYPE SetPredication( ID3D10Predicate *pPredicate, BOOL PredicateValue);
void STDMETHODCALLTYPE GSSetShaderResources( UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView *const *ppShaderResourceViews);
void STDMETHODCALLTYPE GSSetSamplers( UINT StartSlot, UINT NumSamplers, ID3D10SamplerState *const *ppSamplers);
void STDMETHODCALLTYPE OMSetRenderTargets( UINT NumViews, ID3D10RenderTargetView *const *ppRenderTargetViews, ID3D10DepthStencilView *pDepthStencilView);
void STDMETHODCALLTYPE OMSetBlendState( ID3D10BlendState *pBlendState, const FLOAT BlendFactor[ 4 ], UINT SampleMask);
void STDMETHODCALLTYPE OMSetDepthStencilState( ID3D10DepthStencilState *pDepthStencilState, UINT StencilRef);
void STDMETHODCALLTYPE SOSetTargets( UINT NumBuffers, ID3D10Buffer *const *ppSOTargets, const UINT *pOffsets);
void STDMETHODCALLTYPE DrawAuto(void);
void STDMETHODCALLTYPE RSSetState( ID3D10RasterizerState *pRasterizerState);
void STDMETHODCALLTYPE RSSetViewports( UINT NumViewports, const D3D10_VIEWPORT *pViewports);
void STDMETHODCALLTYPE RSSetScissorRects( UINT NumRects, const D3D10_RECT *pRects);
void STDMETHODCALLTYPE CopySubresourceRegion( ID3D10Resource *pDstResource, UINT DstSubresource, UINT DstX, UINT DstY, UINT DstZ, ID3D10Resource *pSrcResource, UINT SrcSubresource, const D3D10_BOX *pSrcBox);
void STDMETHODCALLTYPE CopyResource( ID3D10Resource *pDstResource, ID3D10Resource *pSrcResource);
void STDMETHODCALLTYPE UpdateSubresource( ID3D10Resource *pDstResource, UINT DstSubresource, const D3D10_BOX *pDstBox, const void *pSrcData, UINT SrcRowPitch, UINT SrcDepthPitch);
void STDMETHODCALLTYPE ClearRenderTargetView( ID3D10RenderTargetView *pRenderTargetView, const FLOAT ColorRGBA[ 4 ]);
void STDMETHODCALLTYPE ClearDepthStencilView( ID3D10DepthStencilView *pDepthStencilView, UINT ClearFlags, FLOAT Depth, UINT8 Stencil);
void STDMETHODCALLTYPE GenerateMips( ID3D10ShaderResourceView *pShaderResourceView);
void STDMETHODCALLTYPE ResolveSubresource( ID3D10Resource *pDstResource, UINT DstSubresource, ID3D10Resource *pSrcResource, UINT SrcSubresource, DXGI_FORMAT Format);
void STDMETHODCALLTYPE VSGetConstantBuffers( UINT StartSlot, UINT NumBuffers, ID3D10Buffer **ppConstantBuffers);
void STDMETHODCALLTYPE PSGetShaderResources( UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView **ppShaderResourceViews);
void STDMETHODCALLTYPE PSGetShader( ID3D10PixelShader **ppPixelShader);
void STDMETHODCALLTYPE PSGetSamplers( UINT StartSlot, UINT NumSamplers, ID3D10SamplerState **ppSamplers);
void STDMETHODCALLTYPE VSGetShader( ID3D10VertexShader **ppVertexShader);
void STDMETHODCALLTYPE PSGetConstantBuffers( UINT StartSlot, UINT NumBuffers, ID3D10Buffer **ppConstantBuffers);
void STDMETHODCALLTYPE IAGetInputLayout( ID3D10InputLayout **ppInputLayout);
void STDMETHODCALLTYPE IAGetVertexBuffers( UINT StartSlot, UINT NumBuffers, ID3D10Buffer **ppVertexBuffers, UINT *pStrides, UINT *pOffsets);
void STDMETHODCALLTYPE IAGetIndexBuffer( ID3D10Buffer **pIndexBuffer, DXGI_FORMAT *Format, UINT *Offset);
void STDMETHODCALLTYPE GSGetConstantBuffers( UINT StartSlot, UINT NumBuffers, ID3D10Buffer **ppConstantBuffers);
void STDMETHODCALLTYPE GSGetShader( ID3D10GeometryShader **ppGeometryShader);
void STDMETHODCALLTYPE IAGetPrimitiveTopology( D3D10_PRIMITIVE_TOPOLOGY *pTopology);
void STDMETHODCALLTYPE VSGetShaderResources( UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView **ppShaderResourceViews);
void STDMETHODCALLTYPE VSGetSamplers( UINT StartSlot, UINT NumSamplers, ID3D10SamplerState **ppSamplers);
void STDMETHODCALLTYPE GetPredication( ID3D10Predicate **ppPredicate, BOOL *pPredicateValue);
void STDMETHODCALLTYPE GSGetShaderResources( UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView **ppShaderResourceViews);
void STDMETHODCALLTYPE GSGetSamplers( UINT StartSlot, UINT NumSamplers, ID3D10SamplerState **ppSamplers);
void STDMETHODCALLTYPE OMGetRenderTargets( UINT NumViews, ID3D10RenderTargetView **ppRenderTargetViews, ID3D10DepthStencilView **ppDepthStencilView);
void STDMETHODCALLTYPE OMGetBlendState( ID3D10BlendState **ppBlendState, FLOAT BlendFactor[ 4 ], UINT *pSampleMask);
void STDMETHODCALLTYPE OMGetDepthStencilState( ID3D10DepthStencilState **ppDepthStencilState, UINT *pStencilRef);
void STDMETHODCALLTYPE SOGetTargets( UINT NumBuffers, ID3D10Buffer **ppSOTargets, UINT *pOffsets);
void STDMETHODCALLTYPE RSGetState( ID3D10RasterizerState **ppRasterizerState);
void STDMETHODCALLTYPE RSGetViewports( UINT *NumViewports, D3D10_VIEWPORT *pViewports);
void STDMETHODCALLTYPE RSGetScissorRects( UINT *NumRects, D3D10_RECT *pRects);
HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason(void);
HRESULT STDMETHODCALLTYPE SetExceptionMode( UINT RaiseFlags);
UINT STDMETHODCALLTYPE GetExceptionMode(void);
HRESULT STDMETHODCALLTYPE GetPrivateData( REFGUID guid,UINT *pDataSize, void *pData);
HRESULT STDMETHODCALLTYPE SetPrivateData( REFGUID guid, UINT DataSize, const void *pData);
HRESULT STDMETHODCALLTYPE SetPrivateDataInterface( REFGUID guid, const IUnknown *pData);
void STDMETHODCALLTYPE ClearState( void);
void STDMETHODCALLTYPE Flush( void);
HRESULT STDMETHODCALLTYPE CreateBuffer( const D3D10_BUFFER_DESC *pDesc, const D3D10_SUBRESOURCE_DATA *pInitialData, ID3D10Buffer **ppBuffer);
HRESULT STDMETHODCALLTYPE CreateTexture1D( const D3D10_TEXTURE1D_DESC *pDesc, const D3D10_SUBRESOURCE_DATA *pInitialData, ID3D10Texture1D **ppTexture1D);
HRESULT STDMETHODCALLTYPE CreateTexture2D( const D3D10_TEXTURE2D_DESC *pDesc, const D3D10_SUBRESOURCE_DATA *pInitialData, ID3D10Texture2D **ppTexture2D);
HRESULT STDMETHODCALLTYPE CreateTexture3D( const D3D10_TEXTURE3D_DESC *pDesc, const D3D10_SUBRESOURCE_DATA *pInitialData, ID3D10Texture3D **ppTexture3D);
HRESULT STDMETHODCALLTYPE CreateShaderResourceView( ID3D10Resource *pResource, const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc, ID3D10ShaderResourceView **ppSRView);
HRESULT STDMETHODCALLTYPE CreateRenderTargetView( ID3D10Resource *pResource, const D3D10_RENDER_TARGET_VIEW_DESC *pDesc, ID3D10RenderTargetView **ppRTView);
HRESULT STDMETHODCALLTYPE CreateDepthStencilView( ID3D10Resource *pResource, const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc, ID3D10DepthStencilView **ppDepthStencilView);
HRESULT STDMETHODCALLTYPE CreateInputLayout( const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs, UINT NumElements, const void *pShaderBytecodeWithInputSignature, SIZE_T BytecodeLength, ID3D10InputLayout **ppInputLayout);
HRESULT STDMETHODCALLTYPE CreateVertexShader( const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10VertexShader **ppVertexShader);
HRESULT STDMETHODCALLTYPE CreateGeometryShader( const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10GeometryShader **ppGeometryShader);
HRESULT STDMETHODCALLTYPE CreateGeometryShaderWithStreamOutput( const void *pShaderBytecode, SIZE_T BytecodeLength, const D3D10_SO_DECLARATION_ENTRY *pSODeclaration, UINT NumEntries, UINT OutputStreamStride, ID3D10GeometryShader **ppGeometryShader);
HRESULT STDMETHODCALLTYPE CreatePixelShader( const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10PixelShader **ppPixelShader);
HRESULT STDMETHODCALLTYPE CreateBlendState( const D3D10_BLEND_DESC *pBlendStateDesc, ID3D10BlendState **ppBlendState);
HRESULT STDMETHODCALLTYPE CreateDepthStencilState( const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc, ID3D10DepthStencilState **ppDepthStencilState);
HRESULT STDMETHODCALLTYPE CreateRasterizerState( const D3D10_RASTERIZER_DESC *pRasterizerDesc, ID3D10RasterizerState **ppRasterizerState);
HRESULT STDMETHODCALLTYPE CreateSamplerState( const D3D10_SAMPLER_DESC *pSamplerDesc, ID3D10SamplerState **ppSamplerState);
HRESULT STDMETHODCALLTYPE CreateQuery( const D3D10_QUERY_DESC *pQueryDesc, ID3D10Query **ppQuery);
HRESULT STDMETHODCALLTYPE CreatePredicate( const D3D10_QUERY_DESC *pPredicateDesc, ID3D10Predicate **ppPredicate);
HRESULT STDMETHODCALLTYPE CreateCounter( const D3D10_COUNTER_DESC *pCounterDesc, ID3D10Counter **ppCounter);
HRESULT STDMETHODCALLTYPE CheckFormatSupport( DXGI_FORMAT Format, UINT *pFormatSupport);
HRESULT STDMETHODCALLTYPE CheckMultisampleQualityLevels( DXGI_FORMAT Format, UINT SampleCount, UINT *pNumQualityLevels);
void STDMETHODCALLTYPE CheckCounterInfo( D3D10_COUNTER_INFO *pCounterInfo);
HRESULT STDMETHODCALLTYPE CheckCounter( const D3D10_COUNTER_DESC *pDesc, D3D10_COUNTER_TYPE *pType, UINT *pActiveCounters, LPSTR szName, UINT *pNameLength, LPSTR szUnits, UINT *pUnitsLength, LPSTR szDescription, UINT *pDescriptionLength);
UINT STDMETHODCALLTYPE GetCreationFlags( void);
HRESULT STDMETHODCALLTYPE OpenSharedResource( HANDLE hResource, REFIID ReturnedInterface, void **ppResource);
void STDMETHODCALLTYPE SetTextFilterSize( UINT Width, UINT Height);
void STDMETHODCALLTYPE GetTextFilterSize( UINT *pWidth, UINT *pHeight);
ID3D10Device* m_ID3D10Device;
uMod_TextureServer* uMod_Server;
uMod_TextureClient_DX10* uMod_Client;
private:
unsigned int RefCounter;
};
#endif /* UMOD_ID3D10DEVICE_H_ */