diff --git a/WickedEngine/wiCube.cpp b/WickedEngine/wiCube.cpp index c1e4a7686..7cda558d9 100644 --- a/WickedEngine/wiCube.cpp +++ b/WickedEngine/wiCube.cpp @@ -37,7 +37,7 @@ void Cube::SetUpVertices() verts[6].pos=max; verts[7].pos=XMFLOAT3(max.x,min.y,max.z); - BufferDesc bd; + GPUBufferDesc bd; ZeroMemory( &bd, sizeof(bd) ); bd.Usage = USAGE_DEFAULT; bd.ByteWidth = sizeof( Vertex ) * 8; diff --git a/WickedEngine/wiDepthTarget.cpp b/WickedEngine/wiDepthTarget.cpp index 81c9c84e0..33841fc32 100644 --- a/WickedEngine/wiDepthTarget.cpp +++ b/WickedEngine/wiDepthTarget.cpp @@ -24,23 +24,23 @@ void wiDepthTarget::Initialize(int width, int height, UINT MSAAC, UINT MSAAQ) isCube = false; - Texture2DDesc depthBufferDesc; - ZeroMemory(&depthBufferDesc, sizeof(depthBufferDesc)); + Texture2DDesc depthGPUBufferDesc; + ZeroMemory(&depthGPUBufferDesc, sizeof(depthGPUBufferDesc)); // Set up the description of the depth buffer. - depthBufferDesc.Width = width; - depthBufferDesc.Height = height; - depthBufferDesc.MipLevels = 1; - depthBufferDesc.ArraySize = 1; - depthBufferDesc.Format = FORMAT_R24G8_TYPELESS; - depthBufferDesc.SampleDesc.Count = MSAAC; - depthBufferDesc.SampleDesc.Quality = MSAAQ; - depthBufferDesc.Usage = USAGE_DEFAULT; - depthBufferDesc.BindFlags = BIND_DEPTH_STENCIL | BIND_SHADER_RESOURCE; - depthBufferDesc.CPUAccessFlags = 0; - depthBufferDesc.MiscFlags = 0; + depthGPUBufferDesc.Width = width; + depthGPUBufferDesc.Height = height; + depthGPUBufferDesc.MipLevels = 1; + depthGPUBufferDesc.ArraySize = 1; + depthGPUBufferDesc.Format = FORMAT_R24G8_TYPELESS; + depthGPUBufferDesc.SampleDesc.Count = MSAAC; + depthGPUBufferDesc.SampleDesc.Quality = MSAAQ; + depthGPUBufferDesc.Usage = USAGE_DEFAULT; + depthGPUBufferDesc.BindFlags = BIND_DEPTH_STENCIL | BIND_SHADER_RESOURCE; + depthGPUBufferDesc.CPUAccessFlags = 0; + depthGPUBufferDesc.MiscFlags = 0; - wiRenderer::GetDevice()->CreateTexture2D(&depthBufferDesc, nullptr, &texture); + wiRenderer::GetDevice()->CreateTexture2D(&depthGPUBufferDesc, nullptr, &texture); } void wiDepthTarget::InitializeCube(int size) { @@ -49,23 +49,23 @@ void wiDepthTarget::InitializeCube(int size) isCube = true; - Texture2DDesc depthBufferDesc; - ZeroMemory(&depthBufferDesc, sizeof(depthBufferDesc)); + Texture2DDesc depthGPUBufferDesc; + ZeroMemory(&depthGPUBufferDesc, sizeof(depthGPUBufferDesc)); // Set up the description of the depth buffer. - depthBufferDesc.Width = size; - depthBufferDesc.Height = size; - depthBufferDesc.MipLevels = 1; - depthBufferDesc.ArraySize = 6; - depthBufferDesc.Format = FORMAT_R32_TYPELESS; - depthBufferDesc.SampleDesc.Count = 1; - depthBufferDesc.SampleDesc.Quality = 0; - depthBufferDesc.Usage = USAGE_DEFAULT; - depthBufferDesc.BindFlags = BIND_DEPTH_STENCIL | BIND_SHADER_RESOURCE; - depthBufferDesc.CPUAccessFlags = 0; - depthBufferDesc.MiscFlags = RESOURCE_MISC_TEXTURECUBE; + depthGPUBufferDesc.Width = size; + depthGPUBufferDesc.Height = size; + depthGPUBufferDesc.MipLevels = 1; + depthGPUBufferDesc.ArraySize = 6; + depthGPUBufferDesc.Format = FORMAT_R32_TYPELESS; + depthGPUBufferDesc.SampleDesc.Count = 1; + depthGPUBufferDesc.SampleDesc.Quality = 0; + depthGPUBufferDesc.Usage = USAGE_DEFAULT; + depthGPUBufferDesc.BindFlags = BIND_DEPTH_STENCIL | BIND_SHADER_RESOURCE; + depthGPUBufferDesc.CPUAccessFlags = 0; + depthGPUBufferDesc.MiscFlags = RESOURCE_MISC_TEXTURECUBE; - wiRenderer::GetDevice()->CreateTextureCube(&depthBufferDesc, nullptr, &textureCube); + wiRenderer::GetDevice()->CreateTextureCube(&depthGPUBufferDesc, nullptr, &textureCube); } void wiDepthTarget::Clear(GRAPHICSTHREAD threadID) diff --git a/WickedEngine/wiDepthTarget.h b/WickedEngine/wiDepthTarget.h index 9371ed49b..8b95dce4c 100644 --- a/WickedEngine/wiDepthTarget.h +++ b/WickedEngine/wiDepthTarget.h @@ -25,6 +25,6 @@ public: void CopyFrom(const wiDepthTarget&, GRAPHICSTHREAD threadID); wiGraphicsTypes::Texture2D* GetTexture() const { return(isCube ? textureCube : texture); } - wiGraphicsTypes::Texture2DDesc GetDesc() const { return GetTexture()->desc; } + wiGraphicsTypes::Texture2DDesc GetDesc() const { return GetTexture()->GetDesc(); } }; diff --git a/WickedEngine/wiEmittedParticle.cpp b/WickedEngine/wiEmittedParticle.cpp index 0ed909470..a3c300b76 100644 --- a/WickedEngine/wiEmittedParticle.cpp +++ b/WickedEngine/wiEmittedParticle.cpp @@ -332,7 +332,7 @@ void wiEmittedParticle::LoadShaders() } void wiEmittedParticle::SetUpCB() { - BufferDesc bd; + GPUBufferDesc bd; ZeroMemory( &bd, sizeof(bd) ); bd.Usage = USAGE_DYNAMIC; bd.ByteWidth = sizeof(ConstantBuffer); @@ -343,7 +343,7 @@ void wiEmittedParticle::SetUpCB() } void wiEmittedParticle::SetUpStates() { - RasterizerDesc rs; + RasterizerStateDesc rs; rs.FillMode=FILL_SOLID; rs.CullMode=CULL_BACK; rs.FrontCounterClockwise=true; @@ -375,7 +375,7 @@ void wiEmittedParticle::SetUpStates() - DepthStencilDesc dsd; + DepthStencilStateDesc dsd; dsd.DepthEnable = false; dsd.DepthWriteMask = DEPTH_WRITE_MASK_ZERO; dsd.DepthFunc = COMPARISON_LESS; @@ -402,7 +402,7 @@ void wiEmittedParticle::SetUpStates() - BlendDesc bd; + BlendStateDesc bd; ZeroMemory(&bd, sizeof(bd)); bd.RenderTarget[0].BlendEnable=true; bd.RenderTarget[0].SrcBlend = BLEND_SRC_ALPHA; @@ -433,7 +433,7 @@ void wiEmittedParticle::LoadVertexBuffer() { vertexBuffer=NULL; - BufferDesc bd; + GPUBufferDesc bd; ZeroMemory( &bd, sizeof(bd) ); bd.Usage = USAGE_DYNAMIC; bd.ByteWidth = sizeof( Point ) * MAX_PARTICLES; diff --git a/WickedEngine/wiFont.cpp b/WickedEngine/wiFont.cpp index 08f418cdc..2413cf4c4 100644 --- a/WickedEngine/wiFont.cpp +++ b/WickedEngine/wiFont.cpp @@ -38,7 +38,7 @@ void wiFont::Initialize() void wiFont::SetUpStates() { - RasterizerDesc rs; + RasterizerStateDesc rs; rs.FillMode=FILL_SOLID; rs.CullMode=CULL_BACK; rs.FrontCounterClockwise=TRUE; @@ -56,7 +56,7 @@ void wiFont::SetUpStates() - DepthStencilDesc dsd; + DepthStencilStateDesc dsd; dsd.DepthEnable = false; dsd.DepthWriteMask = DEPTH_WRITE_MASK_ZERO; dsd.DepthFunc = COMPARISON_LESS; @@ -83,7 +83,7 @@ void wiFont::SetUpStates() - BlendDesc bd; + BlendStateDesc bd; ZeroMemory(&bd, sizeof(bd)); bd.RenderTarget[0].BlendEnable = TRUE; bd.RenderTarget[0].SrcBlend = BLEND_SRC_ALPHA; @@ -98,7 +98,7 @@ void wiFont::SetUpStates() } void wiFont::SetUpCB() { - BufferDesc bd; + GPUBufferDesc bd; ZeroMemory( &bd, sizeof(bd) ); bd.Usage = USAGE_DYNAMIC; bd.ByteWidth = sizeof(ConstantBuffer); @@ -210,7 +210,7 @@ void wiFont::ModifyGeo(const wstring& text, wiFontProps props, int style, GRAPHI void wiFont::LoadVertexBuffer() { - BufferDesc bd; + GPUBufferDesc bd; ZeroMemory( &bd, sizeof(bd) ); bd.Usage = USAGE_DYNAMIC; bd.ByteWidth = sizeof( Vertex ) * MAX_TEXT * 4; @@ -232,7 +232,7 @@ void wiFont::LoadIndices() indices[i/4*6+5]=i/4*4+3; } - BufferDesc bd; + GPUBufferDesc bd; ZeroMemory( &bd, sizeof(bd) ); bd.Usage = USAGE_DEFAULT; bd.ByteWidth = sizeof( unsigned long ) * MAX_TEXT * 6; diff --git a/WickedEngine/wiGraphicsAPI.h b/WickedEngine/wiGraphicsAPI.h index e52317ab4..889395da8 100644 --- a/WickedEngine/wiGraphicsAPI.h +++ b/WickedEngine/wiGraphicsAPI.h @@ -362,7 +362,7 @@ namespace wiGraphicsTypes FLOAT MinLOD; FLOAT MaxLOD; }; - struct RasterizerDesc + struct RasterizerStateDesc { FILL_MODE FillMode; CULL_MODE CullMode; @@ -382,7 +382,7 @@ namespace wiGraphicsTypes STENCIL_OP StencilPassOp; COMPARISON_FUNC StencilFunc; }; - struct DepthStencilDesc + struct DepthStencilStateDesc { BOOL DepthEnable; DEPTH_WRITE_MASK DepthWriteMask; @@ -393,7 +393,7 @@ namespace wiGraphicsTypes DepthStencilOpDesc FrontFace; DepthStencilOpDesc BackFace; }; - struct RenderTargetBlendDesc + struct RenderTargetBlendStateDesc { BOOL BlendEnable; BLEND SrcBlend; @@ -404,13 +404,13 @@ namespace wiGraphicsTypes BLEND_OP BlendOpAlpha; UINT8 RenderTargetWriteMask; }; - struct BlendDesc + struct BlendStateDesc { BOOL AlphaToCoverageEnable; BOOL IndependentBlendEnable; - RenderTargetBlendDesc RenderTarget[8]; + RenderTargetBlendStateDesc RenderTarget[8]; }; - struct BufferDesc + struct GPUBufferDesc { UINT ByteWidth; USAGE Usage; @@ -527,6 +527,7 @@ namespace wiGraphicsTypes friend class GraphicsDevice_DX11; private: ID3D11SamplerState* resource_DX11; + SamplerDesc desc; public: Sampler() :resource_DX11(nullptr) {} ~Sampler() @@ -535,21 +536,31 @@ namespace wiGraphicsTypes } bool IsValid() { return resource_DX11 != nullptr; } + SamplerDesc GetDesc() { return desc; } }; class GPUBuffer { friend class GraphicsDevice_DX11; private: - ID3D11Buffer* resource_DX11; + ID3D11Buffer* resource_DX11[2]; // double buffer + GPUBufferDesc desc; + int activeBuffer; public: - GPUBuffer() :resource_DX11(nullptr) {} + GPUBuffer() + { + activeBuffer = 0; + SAFE_INIT(resource_DX11[0]); + SAFE_INIT(resource_DX11[1]); + } ~GPUBuffer() { - SAFE_RELEASE(resource_DX11); + SAFE_RELEASE(resource_DX11[0]); + SAFE_RELEASE(resource_DX11[1]); } - bool IsValid() { return resource_DX11 != nullptr; } + bool IsValid() { return resource_DX11[activeBuffer] != nullptr; } + GPUBufferDesc GetDesc() { return desc; } }; class VertexLayout @@ -572,6 +583,7 @@ namespace wiGraphicsTypes friend class GraphicsDevice_DX11; private: ID3D11BlendState* resource_DX11; + BlendStateDesc desc; public: BlendState() :resource_DX11(nullptr) {} ~BlendState() @@ -580,6 +592,7 @@ namespace wiGraphicsTypes } bool IsValid() { return resource_DX11 != nullptr; } + BlendStateDesc GetDesc() { return desc; } }; class DepthStencilState @@ -587,6 +600,7 @@ namespace wiGraphicsTypes friend class GraphicsDevice_DX11; private: ID3D11DepthStencilState* resource_DX11; + DepthStencilStateDesc desc; public: DepthStencilState() :resource_DX11(nullptr) {} ~DepthStencilState() @@ -595,6 +609,7 @@ namespace wiGraphicsTypes } bool IsValid() { return resource_DX11 != nullptr; } + DepthStencilStateDesc GetDesc() { return desc; } }; class RasterizerState @@ -602,6 +617,7 @@ namespace wiGraphicsTypes friend class GraphicsDevice_DX11; private: ID3D11RasterizerState* resource_DX11; + RasterizerStateDesc desc; public: RasterizerState() :resource_DX11(nullptr) {} ~RasterizerState() @@ -610,6 +626,7 @@ namespace wiGraphicsTypes } bool IsValid() { return resource_DX11 != nullptr; } + RasterizerStateDesc GetDesc() { return desc; } }; class ClassLinkage @@ -664,14 +681,15 @@ namespace wiGraphicsTypes friend class GraphicsDevice_DX11; private: ID3D11Texture2D* texture2D_DX11; + Texture2DDesc desc; public: - Texture2DDesc desc; - Texture2D() :Texture(), texture2D_DX11(nullptr) {} virtual ~Texture2D() { SAFE_RELEASE(texture2D_DX11); } + + Texture2DDesc GetDesc() { return desc; } }; class TextureCube : public Texture2D { @@ -684,13 +702,13 @@ namespace wiGraphicsTypes class GraphicsDevice : public wiThreadSafeManager { protected: - bool oddFrame; + long FRAMECOUNT; bool VSYNC; int SCREENWIDTH, SCREENHEIGHT; public: - GraphicsDevice() :oddFrame(false), VSYNC(true), SCREENWIDTH(0), SCREENHEIGHT(0) {} + GraphicsDevice() :FRAMECOUNT(0), VSYNC(true), SCREENWIDTH(0), SCREENHEIGHT(0) {} - virtual HRESULT CreateBuffer(const BufferDesc *pDesc, const SubresourceData* pInitialData, GPUBuffer *ppBuffer) = 0; + virtual HRESULT CreateBuffer(const GPUBufferDesc *pDesc, const SubresourceData* pInitialData, GPUBuffer *ppBuffer) = 0; virtual HRESULT CreateTexture1D() = 0; virtual HRESULT CreateTexture2D(const Texture2DDesc* pDesc, const SubresourceData *pInitialData, Texture2D **ppTexture2D) = 0; virtual HRESULT CreateTexture3D() = 0; @@ -708,9 +726,9 @@ namespace wiGraphicsTypes virtual HRESULT CreateHullShader(const void *pShaderBytecode, SIZE_T BytecodeLength, ClassLinkage* pClassLinkage, HullShader *pHullShader) = 0; virtual HRESULT CreateDomainShader(const void *pShaderBytecode, SIZE_T BytecodeLength, ClassLinkage* pClassLinkage, DomainShader *pDomainShader) = 0; virtual HRESULT CreateComputeShader(const void *pShaderBytecode, SIZE_T BytecodeLength, ClassLinkage* pClassLinkage, ComputeShader *pComputeShader) = 0; - virtual HRESULT CreateBlendState(const BlendDesc *pBlendStateDesc, BlendState *pBlendState) = 0; - virtual HRESULT CreateDepthStencilState(const DepthStencilDesc *pDepthStencilDesc, DepthStencilState *pDepthStencilState) = 0; - virtual HRESULT CreateRasterizerState(const RasterizerDesc *pRasterizerDesc, RasterizerState *pRasterizerState) = 0; + virtual HRESULT CreateBlendState(const BlendStateDesc *pBlendStateDesc, BlendState *pBlendState) = 0; + virtual HRESULT CreateDepthStencilState(const DepthStencilStateDesc *pDepthStencilStateDesc, DepthStencilState *pDepthStencilState) = 0; + virtual HRESULT CreateRasterizerState(const RasterizerStateDesc *pRasterizerStateDesc, RasterizerState *pRasterizerState) = 0; virtual HRESULT CreateSamplerState(const SamplerDesc *pSamplerDesc, Sampler *pSamplerState) = 0; virtual void PresentBegin() = 0; @@ -723,6 +741,7 @@ namespace wiGraphicsTypes bool GetVSyncEnabled() { return VSYNC; } void SetVSyncEnabled(bool value) { VSYNC = value; } + long GetFrameCount() { return FRAMECOUNT; } int GetScreenWidth() { return SCREENWIDTH; } int GetScreenHeight() { return SCREENHEIGHT; } diff --git a/WickedEngine/wiGraphicsAPI_DX11.cpp b/WickedEngine/wiGraphicsAPI_DX11.cpp index 27a796e9f..6b7c50124 100644 --- a/WickedEngine/wiGraphicsAPI_DX11.cpp +++ b/WickedEngine/wiGraphicsAPI_DX11.cpp @@ -998,7 +998,7 @@ inline D3D11_SUBRESOURCE_DATA* _ConvertSubresourceData(const SubresourceData* pI } -HRESULT GraphicsDevice_DX11::CreateBuffer(const BufferDesc *pDesc, const SubresourceData* pInitialData, GPUBuffer *ppBuffer) +HRESULT GraphicsDevice_DX11::CreateBuffer(const GPUBufferDesc *pDesc, const SubresourceData* pInitialData, GPUBuffer *ppBuffer) { D3D11_BUFFER_DESC desc; desc.ByteWidth = pDesc->ByteWidth; @@ -1010,7 +1010,15 @@ HRESULT GraphicsDevice_DX11::CreateBuffer(const BufferDesc *pDesc, const Subreso D3D11_SUBRESOURCE_DATA* data = _ConvertSubresourceData(pInitialData); - return device->CreateBuffer(&desc, data, &ppBuffer->resource_DX11); + ppBuffer->desc = *pDesc; + HRESULT hr = device->CreateBuffer(&desc, data, &ppBuffer->resource_DX11[0]); + assert(SUCCEEDED(hr) && "GPUBuffer Creation failed!"); + if (desc.Usage != USAGE_IMMUTABLE) + { + hr = device->CreateBuffer(&desc, data, &ppBuffer->resource_DX11[1]); + assert(SUCCEEDED(hr) && "GPUBuffer Creation failed!"); + } + return hr; } HRESULT GraphicsDevice_DX11::CreateTexture1D() { @@ -1227,7 +1235,7 @@ HRESULT GraphicsDevice_DX11::CreateComputeShader(const void *pShaderBytecode, SI { return device->CreateComputeShader(pShaderBytecode, BytecodeLength, (pClassLinkage == nullptr ? nullptr : pClassLinkage->resource_DX11), &pComputeShader->resource_DX11); } -HRESULT GraphicsDevice_DX11::CreateBlendState(const BlendDesc *pBlendStateDesc, BlendState *pBlendState) +HRESULT GraphicsDevice_DX11::CreateBlendState(const BlendStateDesc *pBlendStateDesc, BlendState *pBlendState) { D3D11_BLEND_DESC desc; desc.AlphaToCoverageEnable = pBlendStateDesc->AlphaToCoverageEnable; @@ -1244,42 +1252,45 @@ HRESULT GraphicsDevice_DX11::CreateBlendState(const BlendDesc *pBlendStateDesc, desc.RenderTarget[i].RenderTargetWriteMask = pBlendStateDesc->RenderTarget[i].RenderTargetWriteMask; } + pBlendState->desc = *pBlendStateDesc; return device->CreateBlendState(&desc, &pBlendState->resource_DX11); } -HRESULT GraphicsDevice_DX11::CreateDepthStencilState(const DepthStencilDesc *pDepthStencilDesc, DepthStencilState *pDepthStencilState) +HRESULT GraphicsDevice_DX11::CreateDepthStencilState(const DepthStencilStateDesc *pDepthStencilStateDesc, DepthStencilState *pDepthStencilState) { D3D11_DEPTH_STENCIL_DESC desc; - desc.DepthEnable = pDepthStencilDesc->DepthEnable; - desc.DepthWriteMask = _ConvertDepthWriteMask(pDepthStencilDesc->DepthWriteMask); - desc.DepthFunc = _ConvertComparisonFunc(pDepthStencilDesc->DepthFunc); - desc.StencilEnable = pDepthStencilDesc->StencilEnable; - desc.StencilReadMask = pDepthStencilDesc->StencilReadMask; - desc.StencilWriteMask = pDepthStencilDesc->StencilWriteMask; - desc.FrontFace.StencilDepthFailOp = _ConvertStencilOp(pDepthStencilDesc->FrontFace.StencilDepthFailOp); - desc.FrontFace.StencilFailOp = _ConvertStencilOp(pDepthStencilDesc->FrontFace.StencilFailOp); - desc.FrontFace.StencilFunc = _ConvertComparisonFunc(pDepthStencilDesc->FrontFace.StencilFunc); - desc.FrontFace.StencilPassOp = _ConvertStencilOp(pDepthStencilDesc->FrontFace.StencilPassOp); - desc.BackFace.StencilDepthFailOp = _ConvertStencilOp(pDepthStencilDesc->BackFace.StencilDepthFailOp); - desc.BackFace.StencilFailOp = _ConvertStencilOp(pDepthStencilDesc->BackFace.StencilFailOp); - desc.BackFace.StencilFunc = _ConvertComparisonFunc(pDepthStencilDesc->BackFace.StencilFunc); - desc.BackFace.StencilPassOp = _ConvertStencilOp(pDepthStencilDesc->BackFace.StencilPassOp); + desc.DepthEnable = pDepthStencilStateDesc->DepthEnable; + desc.DepthWriteMask = _ConvertDepthWriteMask(pDepthStencilStateDesc->DepthWriteMask); + desc.DepthFunc = _ConvertComparisonFunc(pDepthStencilStateDesc->DepthFunc); + desc.StencilEnable = pDepthStencilStateDesc->StencilEnable; + desc.StencilReadMask = pDepthStencilStateDesc->StencilReadMask; + desc.StencilWriteMask = pDepthStencilStateDesc->StencilWriteMask; + desc.FrontFace.StencilDepthFailOp = _ConvertStencilOp(pDepthStencilStateDesc->FrontFace.StencilDepthFailOp); + desc.FrontFace.StencilFailOp = _ConvertStencilOp(pDepthStencilStateDesc->FrontFace.StencilFailOp); + desc.FrontFace.StencilFunc = _ConvertComparisonFunc(pDepthStencilStateDesc->FrontFace.StencilFunc); + desc.FrontFace.StencilPassOp = _ConvertStencilOp(pDepthStencilStateDesc->FrontFace.StencilPassOp); + desc.BackFace.StencilDepthFailOp = _ConvertStencilOp(pDepthStencilStateDesc->BackFace.StencilDepthFailOp); + desc.BackFace.StencilFailOp = _ConvertStencilOp(pDepthStencilStateDesc->BackFace.StencilFailOp); + desc.BackFace.StencilFunc = _ConvertComparisonFunc(pDepthStencilStateDesc->BackFace.StencilFunc); + desc.BackFace.StencilPassOp = _ConvertStencilOp(pDepthStencilStateDesc->BackFace.StencilPassOp); + pDepthStencilState->desc = *pDepthStencilStateDesc; return device->CreateDepthStencilState(&desc, &pDepthStencilState->resource_DX11); } -HRESULT GraphicsDevice_DX11::CreateRasterizerState(const RasterizerDesc *pRasterizerDesc, RasterizerState *pRasterizerState) +HRESULT GraphicsDevice_DX11::CreateRasterizerState(const RasterizerStateDesc *pRasterizerStateDesc, RasterizerState *pRasterizerState) { D3D11_RASTERIZER_DESC desc; - desc.FillMode = _ConvertFillMode(pRasterizerDesc->FillMode); - desc.CullMode = _ConvertCullMode(pRasterizerDesc->CullMode); - desc.FrontCounterClockwise = pRasterizerDesc->FrontCounterClockwise; - desc.DepthBias = pRasterizerDesc->DepthBias; - desc.DepthBiasClamp = pRasterizerDesc->DepthBiasClamp; - desc.SlopeScaledDepthBias = pRasterizerDesc->SlopeScaledDepthBias; - desc.DepthClipEnable = pRasterizerDesc->DepthClipEnable; - desc.ScissorEnable = pRasterizerDesc->ScissorEnable; - desc.MultisampleEnable = pRasterizerDesc->MultisampleEnable; - desc.AntialiasedLineEnable = pRasterizerDesc->AntialiasedLineEnable; + desc.FillMode = _ConvertFillMode(pRasterizerStateDesc->FillMode); + desc.CullMode = _ConvertCullMode(pRasterizerStateDesc->CullMode); + desc.FrontCounterClockwise = pRasterizerStateDesc->FrontCounterClockwise; + desc.DepthBias = pRasterizerStateDesc->DepthBias; + desc.DepthBiasClamp = pRasterizerStateDesc->DepthBiasClamp; + desc.SlopeScaledDepthBias = pRasterizerStateDesc->SlopeScaledDepthBias; + desc.DepthClipEnable = pRasterizerStateDesc->DepthClipEnable; + desc.ScissorEnable = pRasterizerStateDesc->ScissorEnable; + desc.MultisampleEnable = pRasterizerStateDesc->MultisampleEnable; + desc.AntialiasedLineEnable = pRasterizerStateDesc->AntialiasedLineEnable; + pRasterizerState->desc = *pRasterizerStateDesc; return device->CreateRasterizerState(&desc, &pRasterizerState->resource_DX11); } HRESULT GraphicsDevice_DX11::CreateSamplerState(const SamplerDesc *pSamplerDesc, Sampler *pSamplerState) @@ -1299,6 +1310,7 @@ HRESULT GraphicsDevice_DX11::CreateSamplerState(const SamplerDesc *pSamplerDesc, desc.MinLOD = pSamplerDesc->MinLOD; desc.MaxLOD = pSamplerDesc->MaxLOD; + pSamplerState->desc = *pSamplerDesc; return device->CreateSamplerState(&desc, &pSamplerState->resource_DX11); } @@ -1322,7 +1334,7 @@ void GraphicsDevice_DX11::PresentEnd() UnbindTextures(0, TEXSLOT_COUNT, GRAPHICSTHREAD_IMMEDIATE); - oddFrame = !oddFrame; + FRAMECOUNT++; UNLOCK(); } @@ -1357,14 +1369,14 @@ HRESULT GraphicsDevice_DX11::CreateTextureFromFile(const wstring& fileName, Text if (!fileName.substr(fileName.length() - 4).compare(wstring(L".dds"))) { // Load dds - hr = CreateDDSTextureFromFile(device, fileName.c_str(), nullptr, &(*ppTexture)->shaderResourceView_DX11); + hr = CreateDDSTextureFromFile(device, fileName.c_str(), (ID3D11Resource**)&(*ppTexture)->texture2D_DX11, &(*ppTexture)->shaderResourceView_DX11); } else { // Load WIC if (mipMaps && threadID == GRAPHICSTHREAD_IMMEDIATE) LOCK(); - hr = CreateWICTextureFromFile(mipMaps, device, deviceContexts[threadID], fileName.c_str(), nullptr, &(*ppTexture)->shaderResourceView_DX11); + hr = CreateWICTextureFromFile(mipMaps, device, deviceContexts[threadID], fileName.c_str(), (ID3D11Resource**)&(*ppTexture)->texture2D_DX11, &(*ppTexture)->shaderResourceView_DX11); if (mipMaps && threadID == GRAPHICSTHREAD_IMMEDIATE) UNLOCK(); } diff --git a/WickedEngine/wiGraphicsAPI_DX11.h b/WickedEngine/wiGraphicsAPI_DX11.h index c83d1971d..8f0973acd 100644 --- a/WickedEngine/wiGraphicsAPI_DX11.h +++ b/WickedEngine/wiGraphicsAPI_DX11.h @@ -27,7 +27,7 @@ namespace wiGraphicsTypes ~GraphicsDevice_DX11(); - virtual HRESULT CreateBuffer(const BufferDesc *pDesc, const SubresourceData* pInitialData, GPUBuffer *ppBuffer); + virtual HRESULT CreateBuffer(const GPUBufferDesc *pDesc, const SubresourceData* pInitialData, GPUBuffer *ppBuffer); virtual HRESULT CreateTexture1D(); virtual HRESULT CreateTexture2D(const Texture2DDesc* pDesc, const SubresourceData *pInitialData, Texture2D **ppTexture2D); virtual HRESULT CreateTexture3D(); @@ -45,9 +45,9 @@ namespace wiGraphicsTypes virtual HRESULT CreateHullShader(const void *pShaderBytecode, SIZE_T BytecodeLength, ClassLinkage* pClassLinkage, HullShader *pHullShader); virtual HRESULT CreateDomainShader(const void *pShaderBytecode, SIZE_T BytecodeLength, ClassLinkage* pClassLinkage, DomainShader *pDomainShader); virtual HRESULT CreateComputeShader(const void *pShaderBytecode, SIZE_T BytecodeLength, ClassLinkage* pClassLinkage, ComputeShader *pComputeShader); - virtual HRESULT CreateBlendState(const BlendDesc *pBlendStateDesc, BlendState *pBlendState); - virtual HRESULT CreateDepthStencilState(const DepthStencilDesc *pDepthStencilDesc, DepthStencilState *pDepthStencilState); - virtual HRESULT CreateRasterizerState(const RasterizerDesc *pRasterizerDesc, RasterizerState *pRasterizerState); + virtual HRESULT CreateBlendState(const BlendStateDesc *pBlendStateDesc, BlendState *pBlendState); + virtual HRESULT CreateDepthStencilState(const DepthStencilStateDesc *pDepthStencilStateDesc, DepthStencilState *pDepthStencilState); + virtual HRESULT CreateRasterizerState(const RasterizerStateDesc *pRasterizerStateDesc, RasterizerState *pRasterizerState); virtual HRESULT CreateSamplerState(const SamplerDesc *pSamplerDesc, Sampler *pSamplerState); virtual void PresentBegin(); @@ -175,45 +175,45 @@ namespace wiGraphicsTypes } virtual void BindConstantBufferPS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) { if (deviceContexts[threadID] != nullptr) { - ID3D11Buffer* res = buffer ? buffer->resource_DX11 : nullptr; + ID3D11Buffer* res = buffer ? buffer->resource_DX11[buffer->activeBuffer] : nullptr; deviceContexts[threadID]->PSSetConstantBuffers(slot, 1, &res); } } virtual void BindConstantBufferVS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) { if (deviceContexts[threadID] != nullptr) { - ID3D11Buffer* res = buffer ? buffer->resource_DX11 : nullptr; + ID3D11Buffer* res = buffer ? buffer->resource_DX11[buffer->activeBuffer] : nullptr; deviceContexts[threadID]->VSSetConstantBuffers(slot, 1, &res); } } virtual void BindConstantBufferGS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) { if (deviceContexts[threadID] != nullptr) { - ID3D11Buffer* res = buffer ? buffer->resource_DX11 : nullptr; + ID3D11Buffer* res = buffer ? buffer->resource_DX11[buffer->activeBuffer] : nullptr; deviceContexts[threadID]->GSSetConstantBuffers(slot, 1, &res); } } virtual void BindConstantBufferDS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) { if (deviceContexts[threadID] != nullptr) { - ID3D11Buffer* res = buffer ? buffer->resource_DX11 : nullptr; + ID3D11Buffer* res = buffer ? buffer->resource_DX11[buffer->activeBuffer] : nullptr; deviceContexts[threadID]->DSSetConstantBuffers(slot, 1, &res); } } virtual void BindConstantBufferHS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) { if (deviceContexts[threadID] != nullptr) { - ID3D11Buffer* res = buffer ? buffer->resource_DX11 : nullptr; + ID3D11Buffer* res = buffer ? buffer->resource_DX11[buffer->activeBuffer] : nullptr; deviceContexts[threadID]->HSSetConstantBuffers(slot, 1, &res); } } virtual void BindVertexBuffer(const GPUBuffer* vertexBuffer, int slot, UINT stride, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) { if (deviceContexts[threadID] != nullptr) { UINT offset = 0; - ID3D11Buffer* res = vertexBuffer ? vertexBuffer->resource_DX11 : nullptr; + ID3D11Buffer* res = vertexBuffer ? vertexBuffer->resource_DX11[vertexBuffer->activeBuffer] : nullptr; deviceContexts[threadID]->IASetVertexBuffers(slot, 1, &res, &stride, &offset); } } virtual void BindIndexBuffer(const GPUBuffer* indexBuffer, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) { if (deviceContexts[threadID] != nullptr) { - ID3D11Buffer* res = indexBuffer ? indexBuffer->resource_DX11 : nullptr; + ID3D11Buffer* res = indexBuffer ? indexBuffer->resource_DX11[indexBuffer->activeBuffer] : nullptr; deviceContexts[threadID]->IASetIndexBuffer(res, DXGI_FORMAT_R32_UINT, 0); } } @@ -276,7 +276,7 @@ namespace wiGraphicsTypes virtual void BindStreamOutTarget(const GPUBuffer* buffer, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) { if (deviceContexts[threadID] != nullptr) { UINT offsetSO[1] = { 0 }; - ID3D11Buffer* res = buffer ? buffer->resource_DX11 : nullptr; + ID3D11Buffer* res = buffer ? buffer->resource_DX11[buffer->activeBuffer] : nullptr; deviceContexts[threadID]->SOSetTargets(1, &res, offsetSO); } } @@ -338,62 +338,26 @@ namespace wiGraphicsTypes } virtual void UpdateBuffer(GPUBuffer* buffer, const void* data, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int dataSize = -1) { - if (buffer != nullptr && buffer->resource_DX11 != nullptr && data != nullptr && deviceContexts[threadID] != nullptr) { - static thread_local D3D11_BUFFER_DESC d3dDesc; - buffer->resource_DX11->GetDesc(&d3dDesc); + if (buffer != nullptr && buffer->resource_DX11[0] != nullptr && buffer->resource_DX11[1] != nullptr && data != nullptr + && deviceContexts[threadID] != nullptr) + { + assert(buffer->desc.Usage != USAGE_IMMUTABLE && "Cannot update IMMUTABLE GPUBuffer!"); HRESULT hr; - if (dataSize > (int)d3dDesc.ByteWidth) { //recreate the buffer if new datasize exceeds buffer size - buffer->resource_DX11->Release(); - d3dDesc.ByteWidth = dataSize * 2; - - BufferDesc desc; - desc.ByteWidth = d3dDesc.ByteWidth; - switch (d3dDesc.Usage) - { - case D3D11_USAGE_DEFAULT: - desc.Usage = USAGE_DEFAULT; - break; - case D3D11_USAGE_IMMUTABLE: - desc.Usage = USAGE_IMMUTABLE; - break; - case D3D11_USAGE_DYNAMIC: - desc.Usage = USAGE_DYNAMIC; - break; - case D3D11_USAGE_STAGING: - desc.Usage = USAGE_STAGING; - break; - }; - desc.BindFlags = 0; - { - if (d3dDesc.BindFlags & D3D11_BIND_CONSTANT_BUFFER) - desc.BindFlags |= BIND_CONSTANT_BUFFER; - if (d3dDesc.BindFlags & D3D11_BIND_VERTEX_BUFFER) - desc.BindFlags |= BIND_VERTEX_BUFFER; - if (d3dDesc.BindFlags & D3D11_BIND_INDEX_BUFFER) - desc.BindFlags |= BIND_INDEX_BUFFER; - } - desc.CPUAccessFlags = 0; - { - if (d3dDesc.CPUAccessFlags & D3D11_CPU_ACCESS_WRITE) - desc.CPUAccessFlags |= CPU_ACCESS_WRITE; - if (d3dDesc.CPUAccessFlags & D3D11_CPU_ACCESS_READ) - desc.CPUAccessFlags |= CPU_ACCESS_READ; - } - desc.MiscFlags = 0; - desc.StructureByteStride = d3dDesc.StructureByteStride; - - hr = CreateBuffer(&desc, nullptr, buffer); + if (dataSize > (int)buffer->desc.ByteWidth) { //recreate the buffer if new datasize exceeds buffer size + buffer->resource_DX11[buffer->activeBuffer]->Release(); + buffer->desc.ByteWidth = dataSize * 2; + hr = CreateBuffer(&buffer->desc, nullptr, buffer); } - if (d3dDesc.Usage == D3D11_USAGE_DYNAMIC) { + if (buffer->desc.Usage == USAGE_DYNAMIC) { static thread_local D3D11_MAPPED_SUBRESOURCE mappedResource; void* dataPtr; - deviceContexts[threadID]->Map(buffer->resource_DX11, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource); + deviceContexts[threadID]->Map(buffer->resource_DX11[buffer->activeBuffer], 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource); dataPtr = (void*)mappedResource.pData; - memcpy(dataPtr, data, (dataSize >= 0 ? dataSize : d3dDesc.ByteWidth)); - deviceContexts[threadID]->Unmap(buffer->resource_DX11, 0); + memcpy(dataPtr, data, (dataSize >= 0 ? dataSize : buffer->desc.ByteWidth)); + deviceContexts[threadID]->Unmap(buffer->resource_DX11[buffer->activeBuffer], 0); } else { - deviceContexts[threadID]->UpdateSubresource(buffer->resource_DX11, 0, nullptr, data, 0, 0); + deviceContexts[threadID]->UpdateSubresource(buffer->resource_DX11[buffer->activeBuffer], 0, nullptr, data, 0, 0); } } } diff --git a/WickedEngine/wiHairParticle.cpp b/WickedEngine/wiHairParticle.cpp index ad77a5146..fda7fd1bb 100644 --- a/WickedEngine/wiHairParticle.cpp +++ b/WickedEngine/wiHairParticle.cpp @@ -92,7 +92,7 @@ void wiHairParticle::SetUpStatic(){ LoadShaders(); - BufferDesc bd; + GPUBufferDesc bd; ZeroMemory( &bd, sizeof(bd) ); bd.Usage = USAGE_DYNAMIC; bd.ByteWidth = sizeof(ConstantBuffer); @@ -104,7 +104,7 @@ void wiHairParticle::SetUpStatic(){ - RasterizerDesc rsd; + RasterizerStateDesc rsd; rsd.FillMode=FILL_SOLID; rsd.CullMode=CULL_BACK; rsd.FrontCounterClockwise=true; @@ -132,7 +132,7 @@ void wiHairParticle::SetUpStatic(){ wiRenderer::GetDevice()->CreateRasterizerState(&rsd,ncrs); - DepthStencilDesc dsd; + DepthStencilStateDesc dsd; dsd.DepthEnable = true; dsd.DepthWriteMask = DEPTH_WRITE_MASK_ALL; dsd.DepthFunc = COMPARISON_LESS; @@ -153,7 +153,7 @@ void wiHairParticle::SetUpStatic(){ wiRenderer::GetDevice()->CreateDepthStencilState(&dsd, dss); - BlendDesc bld; + BlendStateDesc bld; ZeroMemory(&bld, sizeof(bld)); bld.RenderTarget[0].BlendEnable=false; bld.RenderTarget[0].SrcBlend = BLEND_SRC_ALPHA; @@ -183,7 +183,7 @@ struct PatchHolder:public Cullable void wiHairParticle::SetUpPatches() { - BufferDesc bd; + GPUBufferDesc bd; ZeroMemory( &bd, sizeof(bd) ); bd.Usage = USAGE_DYNAMIC; bd.ByteWidth = sizeof(Point)*MAX_PARTICLES; diff --git a/WickedEngine/wiImage.cpp b/WickedEngine/wiImage.cpp index 60dba3a44..3159658a2 100644 --- a/WickedEngine/wiImage.cpp +++ b/WickedEngine/wiImage.cpp @@ -31,7 +31,7 @@ wiImage::wiImage() void wiImage::LoadBuffers() { - BufferDesc bd; + GPUBufferDesc bd; ZeroMemory( &bd, sizeof(bd) ); bd.Usage = USAGE_DYNAMIC; bd.ByteWidth = sizeof(ImageCB); @@ -79,7 +79,7 @@ void wiImage::LoadShaders() void wiImage::SetUpStates() { - RasterizerDesc rs; + RasterizerStateDesc rs; rs.FillMode=FILL_SOLID; rs.CullMode=CULL_BACK; rs.FrontCounterClockwise=false; @@ -97,7 +97,7 @@ void wiImage::SetUpStates() - DepthStencilDesc dsd; + DepthStencilStateDesc dsd; dsd.DepthEnable = false; dsd.DepthWriteMask = DEPTH_WRITE_MASK_ZERO; dsd.DepthFunc = COMPARISON_LESS; @@ -142,7 +142,7 @@ void wiImage::SetUpStates() wiRenderer::GetDevice()->CreateDepthStencilState(&dsd, depthNoStencilState); - BlendDesc bd; + BlendStateDesc bd; ZeroMemory(&bd, sizeof(bd)); bd.RenderTarget[0].BlendEnable=true; bd.RenderTarget[0].SrcBlend = BLEND_SRC_ALPHA; diff --git a/WickedEngine/wiLensFlare.cpp b/WickedEngine/wiLensFlare.cpp index 41a072d1f..e3151b625 100644 --- a/WickedEngine/wiLensFlare.cpp +++ b/WickedEngine/wiLensFlare.cpp @@ -84,7 +84,7 @@ void wiLensFlare::LoadShaders(){ } void wiLensFlare::SetUpCB() { - BufferDesc bd; + GPUBufferDesc bd; ZeroMemory( &bd, sizeof(bd) ); bd.Usage = USAGE_DYNAMIC; bd.ByteWidth = sizeof(ConstantBuffer); @@ -96,7 +96,7 @@ void wiLensFlare::SetUpCB() } void wiLensFlare::SetUpStates() { - RasterizerDesc rs; + RasterizerStateDesc rs; rs.FillMode=FILL_SOLID; rs.CullMode=CULL_NONE; rs.FrontCounterClockwise=true; @@ -114,7 +114,7 @@ void wiLensFlare::SetUpStates() - DepthStencilDesc dsd; + DepthStencilStateDesc dsd; dsd.DepthEnable = false; dsd.DepthWriteMask = DEPTH_WRITE_MASK_ZERO; dsd.DepthFunc = COMPARISON_LESS; @@ -141,7 +141,7 @@ void wiLensFlare::SetUpStates() - BlendDesc bd; + BlendStateDesc bd; ZeroMemory(&bd, sizeof(bd)); bd.RenderTarget[0].BlendEnable=true; bd.RenderTarget[0].SrcBlend = BLEND_ONE; diff --git a/WickedEngine/wiLines.cpp b/WickedEngine/wiLines.cpp index c83ded490..61851f0ce 100644 --- a/WickedEngine/wiLines.cpp +++ b/WickedEngine/wiLines.cpp @@ -35,7 +35,7 @@ Lines::Lines(const XMFLOAT3& a, const XMFLOAT3& b, const XMFLOAT4& c) verts[0].pos = XMFLOAT3(a.x,a.y,a.z); verts[1].pos = XMFLOAT3(b.x,b.y,b.z); - BufferDesc bd; + GPUBufferDesc bd; ZeroMemory( &bd, sizeof(bd) ); bd.Usage = USAGE_DEFAULT; bd.ByteWidth = sizeof( Vertex ) * 2; @@ -68,7 +68,7 @@ void Lines::SetUpVertices() verts[0].pos = XMFLOAT3(0,0,0); verts[1].pos = XMFLOAT3(0,0,desc.length); - BufferDesc bd; + GPUBufferDesc bd; ZeroMemory( &bd, sizeof(bd) ); bd.Usage = USAGE_DEFAULT; bd.ByteWidth = sizeof( Vertex ) * 2; diff --git a/WickedEngine/wiLoader.cpp b/WickedEngine/wiLoader.cpp index a46ee804b..db8ffe498 100644 --- a/WickedEngine/wiLoader.cpp +++ b/WickedEngine/wiLoader.cpp @@ -480,7 +480,7 @@ void LoadWiObjects(const string& directory, const string& name, const string& id // if(objects[i]->mesh){ // if(objects[i]->mesh->trailInfo.base>=0 && objects[i]->mesh->trailInfo.tip>=0){ // //objects[i]->trail.resize(MAX_RIBBONTRAILS); - // BufferDesc bd; + // GPUBufferDesc bd; // ZeroMemory( &bd, sizeof(bd) ); // bd.Usage = USAGE_DYNAMIC; // bd.ByteWidth = sizeof( RibbonVertex ) * 1000; @@ -946,7 +946,7 @@ void LoadWiLights(const string& directory, const string& name, const string& ide //for(MeshCollection::iterator iter=lightGwiRenderer.begin(); iter!=lightGwiRenderer.end(); ++iter){ // Mesh* iMesh = iter->second; - // BufferDesc bd; + // GPUBufferDesc bd; // ZeroMemory( &bd, sizeof(bd) ); // bd.Usage = USAGE_DYNAMIC; // bd.ByteWidth = sizeof( Instance )*iMesh->usedBy.size(); @@ -1674,7 +1674,7 @@ void Mesh::Optimize() void Mesh::CreateBuffers(Object* object) { if (!buffersComplete) { - BufferDesc bd; + GPUBufferDesc bd; if (!meshInstanceBuffer.IsValid()) { ZeroMemory(&bd, sizeof(bd)); @@ -1926,7 +1926,7 @@ void Model::LoadFromDisk(const string& dir, const string& name, const string& id { // Ribbon trails if (x->mesh->trailInfo.base >= 0 && x->mesh->trailInfo.tip >= 0) { - BufferDesc bd; + GPUBufferDesc bd; ZeroMemory(&bd, sizeof(bd)); bd.Usage = USAGE_DYNAMIC; bd.ByteWidth = sizeof(RibbonVertex) * 1000; @@ -2162,7 +2162,7 @@ void HitSphere::SetUpStatic() verts.push_back(XMFLOAT3A(XMFLOAT3A(0,0,0))); } - BufferDesc bd; + GPUBufferDesc bd; ZeroMemory( &bd, sizeof(bd) ); bd.Usage = USAGE_IMMUTABLE; bd.ByteWidth = sizeof( XMFLOAT3A )*verts.size(); diff --git a/WickedEngine/wiRenderTarget.h b/WickedEngine/wiRenderTarget.h index 9e0d7912c..4d413679c 100644 --- a/WickedEngine/wiRenderTarget.h +++ b/WickedEngine/wiRenderTarget.h @@ -41,7 +41,7 @@ public: //void Restore(); wiGraphicsTypes::Texture2D* GetTexture(int viewID = 0) const{ return (isCube ? renderTargets_Cube[viewID] : renderTargets[viewID]); } - wiGraphicsTypes::Texture2DDesc GetDesc(int viewID = 0) const { assert(viewID < numViews); return GetTexture(viewID)->desc; } + wiGraphicsTypes::Texture2DDesc GetDesc(int viewID = 0) const { assert(viewID < numViews); return GetTexture(viewID)->GetDesc(); } UINT GetMipCount(); bool IsInitialized() { return (numViews > 0 || depth != nullptr); } }; diff --git a/WickedEngine/wiRenderer.cpp b/WickedEngine/wiRenderer.cpp index 0e9a04768..e439be373 100644 --- a/WickedEngine/wiRenderer.cpp +++ b/WickedEngine/wiRenderer.cpp @@ -494,7 +494,7 @@ void wiRenderer::LoadBuffers() constantBuffers[i] = new GPUBuffer; } - BufferDesc bd; + GPUBufferDesc bd; ZeroMemory( &bd, sizeof(bd) ); bd.Usage = USAGE_DYNAMIC; bd.BindFlags = BIND_CONSTANT_BUFFER; @@ -822,7 +822,7 @@ void wiRenderer::SetUpStates() rasterizers[i] = new RasterizerState; } - RasterizerDesc rs; + RasterizerStateDesc rs; rs.FillMode=FILL_SOLID; rs.CullMode=CULL_BACK; rs.FrontCounterClockwise=true; @@ -913,7 +913,7 @@ void wiRenderer::SetUpStates() depthStencils[i] = new DepthStencilState; } - DepthStencilDesc dsd; + DepthStencilStateDesc dsd; dsd.DepthEnable = true; dsd.DepthWriteMask = DEPTH_WRITE_MASK_ALL; dsd.DepthFunc = COMPARISON_LESS_EQUAL; @@ -981,7 +981,7 @@ void wiRenderer::SetUpStates() blendStates[i] = new BlendState; } - BlendDesc bd; + BlendStateDesc bd; ZeroMemory(&bd, sizeof(bd)); bd.RenderTarget[0].BlendEnable=false; bd.RenderTarget[0].SrcBlend = BLEND_SRC_ALPHA; diff --git a/WickedEngine/wiVersion.cpp b/WickedEngine/wiVersion.cpp index 9fe34d71d..59c373131 100644 --- a/WickedEngine/wiVersion.cpp +++ b/WickedEngine/wiVersion.cpp @@ -7,7 +7,7 @@ namespace wiVersion // minor features, major bug fixes const int minor = 7; // minor bug fixes, alterations, refactors - const int revision = 0; + const int revision = 1; long GetVersion()