Graphics API decouple part5
This commit is contained in:
@@ -7,6 +7,8 @@
|
||||
#include "wiSprite.h"
|
||||
#include "TextureMapping.h"
|
||||
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
DeferredRenderableComponent::DeferredRenderableComponent(){
|
||||
Renderable3DComponent::setProperties();
|
||||
|
||||
@@ -24,15 +26,15 @@ void DeferredRenderableComponent::Initialize()
|
||||
rtGBuffer.Initialize(
|
||||
wiRenderer::GetDevice()->GetScreenWidth(), wiRenderer::GetDevice()->GetScreenHeight()
|
||||
, 3, true, 1, 0
|
||||
, DXGI_FORMAT_R16G16B16A16_FLOAT
|
||||
, FORMAT_R16G16B16A16_FLOAT
|
||||
);
|
||||
rtDeferred.Initialize(
|
||||
wiRenderer::GetDevice()->GetScreenWidth(), wiRenderer::GetDevice()->GetScreenHeight()
|
||||
, 1, false, 1, 0, DXGI_FORMAT_R16G16B16A16_FLOAT, 0);
|
||||
, 1, false, 1, 0, FORMAT_R16G16B16A16_FLOAT, 0);
|
||||
rtLight.Initialize(
|
||||
wiRenderer::GetDevice()->GetScreenWidth(), wiRenderer::GetDevice()->GetScreenHeight()
|
||||
, 1, false, 1, 0
|
||||
, DXGI_FORMAT_R11G11B10_FLOAT
|
||||
, FORMAT_R11G11B10_FLOAT
|
||||
);
|
||||
|
||||
Renderable2DComponent::Initialize();
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
#include "wiImageEffects.h"
|
||||
#include "wiHelper.h"
|
||||
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
ForwardRenderableComponent::ForwardRenderableComponent(){
|
||||
Renderable3DComponent::setProperties();
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
#include "wiFont.h"
|
||||
#include "wiRenderer.h"
|
||||
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
Renderable2DComponent::Renderable2DComponent()
|
||||
{
|
||||
setSpriteSpeed(1.f);
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
#include "wiLoader.h"
|
||||
#include "TextureMapping.h"
|
||||
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
Renderable3DComponent::Renderable3DComponent()
|
||||
{
|
||||
_needToUpdateRenderData.store(true);
|
||||
@@ -64,30 +66,30 @@ void Renderable3DComponent::Initialize()
|
||||
|
||||
rtSSR.Initialize(
|
||||
(UINT)(wiRenderer::GetDevice()->GetScreenWidth()), (UINT)(wiRenderer::GetDevice()->GetScreenHeight())
|
||||
, 1, false, 1, 0, DXGI_FORMAT_R16G16B16A16_FLOAT);
|
||||
, 1, false, 1, 0, FORMAT_R16G16B16A16_FLOAT);
|
||||
rtMotionBlur.Initialize(
|
||||
(UINT)(wiRenderer::GetDevice()->GetScreenWidth()), (UINT)(wiRenderer::GetDevice()->GetScreenHeight())
|
||||
, 1, false, 1, 0, DXGI_FORMAT_R16G16B16A16_FLOAT);
|
||||
, 1, false, 1, 0, FORMAT_R16G16B16A16_FLOAT);
|
||||
rtLinearDepth.Initialize(
|
||||
wiRenderer::GetDevice()->GetScreenWidth(), wiRenderer::GetDevice()->GetScreenHeight()
|
||||
, 1, false, 1, 0, DXGI_FORMAT_R32_FLOAT
|
||||
, 1, false, 1, 0, FORMAT_R32_FLOAT
|
||||
);
|
||||
rtParticle.Initialize(
|
||||
(UINT)(wiRenderer::GetDevice()->GetScreenWidth()*getAlphaParticleDownSample()), (UINT)(wiRenderer::GetDevice()->GetScreenHeight()*getAlphaParticleDownSample())
|
||||
, 1, false, 1, 0, DXGI_FORMAT_R16G16B16A16_FLOAT
|
||||
, 1, false, 1, 0, FORMAT_R16G16B16A16_FLOAT
|
||||
);
|
||||
rtParticleAdditive.Initialize(
|
||||
(UINT)(wiRenderer::GetDevice()->GetScreenWidth()*getAdditiveParticleDownSample()), (UINT)(wiRenderer::GetDevice()->GetScreenHeight()*getAdditiveParticleDownSample())
|
||||
, 1, false, 1, 0, DXGI_FORMAT_R16G16B16A16_FLOAT
|
||||
, 1, false, 1, 0, FORMAT_R16G16B16A16_FLOAT
|
||||
);
|
||||
rtWaterRipple.Initialize(
|
||||
wiRenderer::GetDevice()->GetScreenWidth()
|
||||
, wiRenderer::GetDevice()->GetScreenHeight()
|
||||
, 1, false, 1, 0, DXGI_FORMAT_R8G8B8A8_SNORM
|
||||
, 1, false, 1, 0, FORMAT_R8G8B8A8_SNORM
|
||||
);
|
||||
rtTransparent.Initialize(
|
||||
wiRenderer::GetDevice()->GetScreenWidth(), wiRenderer::GetDevice()->GetScreenHeight()
|
||||
, 1, false, 1, 0, DXGI_FORMAT_R16G16B16A16_FLOAT
|
||||
, 1, false, 1, 0, FORMAT_R16G16B16A16_FLOAT
|
||||
);
|
||||
rtVolumeLight.Initialize(
|
||||
wiRenderer::GetDevice()->GetScreenWidth(), wiRenderer::GetDevice()->GetScreenHeight()
|
||||
@@ -96,11 +98,11 @@ void Renderable3DComponent::Initialize()
|
||||
rtReflection.Initialize(
|
||||
(UINT)(wiRenderer::GetDevice()->GetScreenWidth() * getReflectionQuality())
|
||||
, (UINT)(wiRenderer::GetDevice()->GetScreenHeight() * getReflectionQuality())
|
||||
, 1, true, 1, 0, DXGI_FORMAT_R16G16B16A16_FLOAT
|
||||
, 1, true, 1, 0, FORMAT_R16G16B16A16_FLOAT
|
||||
);
|
||||
rtFinal[0].Initialize(
|
||||
wiRenderer::GetDevice()->GetScreenWidth(), wiRenderer::GetDevice()->GetScreenHeight()
|
||||
, 1, false, 1, 0, DXGI_FORMAT_R16G16B16A16_FLOAT);
|
||||
, 1, false, 1, 0, FORMAT_R16G16B16A16_FLOAT);
|
||||
rtFinal[1].Initialize(
|
||||
wiRenderer::GetDevice()->GetScreenWidth(), wiRenderer::GetDevice()->GetScreenHeight()
|
||||
, 1, false);
|
||||
@@ -123,13 +125,13 @@ void Renderable3DComponent::Initialize()
|
||||
for (unsigned int i = 0; i<rtSSAO.size(); i++)
|
||||
rtSSAO[i].Initialize(
|
||||
(UINT)(wiRenderer::GetDevice()->GetScreenWidth()*getSSAOQuality()), (UINT)(wiRenderer::GetDevice()->GetScreenHeight()*getSSAOQuality())
|
||||
, 1, false, 1, 0, DXGI_FORMAT_R8_UNORM
|
||||
, 1, false, 1, 0, FORMAT_R8_UNORM
|
||||
);
|
||||
rtSSS.resize(3);
|
||||
for (int i = 0; i < 3; ++i)
|
||||
rtSSS[i].Initialize(
|
||||
(UINT)(wiRenderer::GetDevice()->GetScreenWidth()), (UINT)(wiRenderer::GetDevice()->GetScreenHeight())
|
||||
, 1, false, 1, 0, DXGI_FORMAT_R16G16B16A16_FLOAT);
|
||||
, 1, false, 1, 0, FORMAT_R16G16B16A16_FLOAT);
|
||||
|
||||
|
||||
rtSun.resize(2);
|
||||
@@ -149,7 +151,7 @@ void Renderable3DComponent::Initialize()
|
||||
rtBloom[0].Initialize(
|
||||
wiRenderer::GetDevice()->GetScreenWidth()
|
||||
, wiRenderer::GetDevice()->GetScreenHeight()
|
||||
, 1, false, 1, 0, DXGI_FORMAT_R8G8B8A8_UNORM, 0
|
||||
, 1, false, 1, 0, FORMAT_R8G8B8A8_UNORM, 0
|
||||
);
|
||||
for (unsigned int i = 1; i<rtBloom.size(); ++i)
|
||||
rtBloom[i].Initialize(
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#include "Texture_BindLua.h"
|
||||
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
const char Texture_BindLua::className[] = "Texture";
|
||||
|
||||
Luna<Texture_BindLua>::FunctionType Texture_BindLua::methods[] = {
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
class Texture_BindLua
|
||||
{
|
||||
public:
|
||||
Texture2D* texture;
|
||||
wiGraphicsTypes::Texture2D* texture;
|
||||
|
||||
static const char className[];
|
||||
static Luna<Texture_BindLua>::FunctionType methods[];
|
||||
static Luna<Texture_BindLua>::PropertyType properties[];
|
||||
|
||||
Texture_BindLua(Texture2D* texture = nullptr);
|
||||
Texture_BindLua(wiGraphicsTypes::Texture2D* texture = nullptr);
|
||||
Texture_BindLua(lua_State *L);
|
||||
~Texture_BindLua();
|
||||
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
#include "wiRenderer.h"
|
||||
#include "wiTextureHelper.h"
|
||||
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
deque<string> wiBackLog::stream;
|
||||
deque<string> wiBackLog::history;
|
||||
mutex wiBackLog::logMutex;
|
||||
|
||||
@@ -45,9 +45,9 @@ public:
|
||||
|
||||
static bool isActive(){return state==IDLE;}
|
||||
|
||||
static void setBackground(Texture2D* texture);
|
||||
static void setBackground(wiGraphicsTypes::Texture2D* texture);
|
||||
|
||||
static Texture2D* backgroundTex;
|
||||
static wiGraphicsTypes::Texture2D* backgroundTex;
|
||||
static wiFont font;
|
||||
};
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#include "wiCube.h"
|
||||
#include "wiRenderer.h"
|
||||
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
BufferResource Cube::vertexBuffer;
|
||||
BufferResource Cube::indexBuffer;
|
||||
|
||||
|
||||
@@ -41,8 +41,8 @@ public:
|
||||
|
||||
Description desc;
|
||||
|
||||
static BufferResource vertexBuffer;
|
||||
static BufferResource indexBuffer;
|
||||
static wiGraphicsTypes::BufferResource vertexBuffer;
|
||||
static wiGraphicsTypes::BufferResource indexBuffer;
|
||||
static void LoadStatic();
|
||||
static void CleanUpStatic();
|
||||
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
#include "wiDepthTarget.h"
|
||||
#include "wiRenderer.h"
|
||||
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
wiDepthTarget::wiDepthTarget()
|
||||
{
|
||||
//texture2D = NULL;
|
||||
//depthTarget = NULL;
|
||||
//shaderResource = NULL;
|
||||
texture = nullptr;
|
||||
textureCube = nullptr;
|
||||
isCube = false;
|
||||
@@ -34,7 +32,7 @@ void wiDepthTarget::Initialize(int width, int height, UINT MSAAC, UINT MSAAQ)
|
||||
depthBufferDesc.Height = height;
|
||||
depthBufferDesc.MipLevels = 1;
|
||||
depthBufferDesc.ArraySize = 1;
|
||||
depthBufferDesc.Format = DXGI_FORMAT_R24G8_TYPELESS;
|
||||
depthBufferDesc.Format = FORMAT_R24G8_TYPELESS;
|
||||
depthBufferDesc.SampleDesc.Count = MSAAC;
|
||||
depthBufferDesc.SampleDesc.Quality = MSAAQ;
|
||||
depthBufferDesc.Usage = USAGE_DEFAULT;
|
||||
@@ -43,31 +41,6 @@ void wiDepthTarget::Initialize(int width, int height, UINT MSAAC, UINT MSAAQ)
|
||||
depthBufferDesc.MiscFlags = 0;
|
||||
|
||||
wiRenderer::GetDevice()->CreateTexture2D(&depthBufferDesc, nullptr, &texture);
|
||||
|
||||
//HRESULT hr;
|
||||
//// Create the texture for the depth buffer using the filled out description.
|
||||
//hr=wiRenderer::GetDevice()->CreateTexture2D(&depthBufferDesc, nullptr, &texture2D);
|
||||
|
||||
//DepthStencilViewDesc depthStencilViewDesc;
|
||||
//ZeroMemory(&depthStencilViewDesc, sizeof(depthStencilViewDesc));
|
||||
//depthStencilViewDesc.Format = DXGI_FORMAT_D24_UNORM_S8_UINT;
|
||||
//depthStencilViewDesc.ViewDimension = (MSAAQ==0 ? RESOURCE_DIMENSION_TEXTURE2D : RESOURCE_DIMENSION_TEXTURE2DMS);
|
||||
////depthStencilViewDesc.Texture2D.MipSlice = 0;
|
||||
//depthStencilViewDesc.Flags = 0;
|
||||
|
||||
//// Create the depth stencil view.
|
||||
//hr=wiRenderer::GetDevice()->CreateDepthStencilView(texture2D, &depthStencilViewDesc, &depthTarget);
|
||||
|
||||
////Create Depth ShaderResource
|
||||
////ShaderResourceViewDesc shaderResourceViewDesc;
|
||||
//ZeroMemory(&shaderResourceViewDesc, sizeof(shaderResourceViewDesc));
|
||||
//shaderResourceViewDesc.Format = DXGI_FORMAT_R24_UNORM_X8_TYPELESS;
|
||||
//shaderResourceViewDesc.ViewDimension = (MSAAQ==0 ? RESOURCE_DIMENSION_TEXTURE2D : RESOURCE_DIMENSION_TEXTURE2DMS);
|
||||
////shaderResourceViewDesc.Texture2D.MostDetailedMip = 0;
|
||||
////shaderResourceViewDesc.Texture2D.MipLevels = 1;
|
||||
//shaderResourceViewDesc.mipLevels = 1;
|
||||
|
||||
//wiRenderer::GetDevice()->CreateShaderResourceView(texture2D, &shaderResourceViewDesc, &shaderResource);
|
||||
}
|
||||
void wiDepthTarget::InitializeCube(int size)
|
||||
{
|
||||
@@ -84,7 +57,7 @@ void wiDepthTarget::InitializeCube(int size)
|
||||
depthBufferDesc.Height = size;
|
||||
depthBufferDesc.MipLevels = 1;
|
||||
depthBufferDesc.ArraySize = 6;
|
||||
depthBufferDesc.Format = DXGI_FORMAT_R32_TYPELESS;
|
||||
depthBufferDesc.Format = FORMAT_R32_TYPELESS;
|
||||
depthBufferDesc.SampleDesc.Count = 1;
|
||||
depthBufferDesc.SampleDesc.Quality = 0;
|
||||
depthBufferDesc.Usage = USAGE_DEFAULT;
|
||||
@@ -93,34 +66,6 @@ void wiDepthTarget::InitializeCube(int size)
|
||||
depthBufferDesc.MiscFlags = RESOURCE_MISC_TEXTURECUBE;
|
||||
|
||||
wiRenderer::GetDevice()->CreateTextureCube(&depthBufferDesc, nullptr, &textureCube);
|
||||
|
||||
//HRESULT hr;
|
||||
//// Create the texture for the depth buffer using the filled out description.
|
||||
//hr=wiRenderer::GetDevice()->CreateTexture2D(&depthBufferDesc, NULL, &texture2D);
|
||||
|
||||
//DepthStencilViewDesc depthStencilViewDesc;
|
||||
//ZeroMemory(&depthStencilViewDesc, sizeof(depthStencilViewDesc));
|
||||
//depthStencilViewDesc.Format = DXGI_FORMAT_D32_FLOAT;
|
||||
//depthStencilViewDesc.ViewDimension = RESOURCE_DIMENSION_TEXTURE2DARRAY;
|
||||
//// depthStencilViewDesc.Texture2DArray.FirstArraySlice = 0;
|
||||
////depthStencilViewDesc.Texture2DArray.ArraySize = 6;
|
||||
//// depthStencilViewDesc.Texture2DArray.MipSlice = 0;
|
||||
//depthStencilViewDesc.ArraySize = 6;
|
||||
//depthStencilViewDesc.Flags = 0;
|
||||
|
||||
//// Create the depth stencil view.
|
||||
//hr=wiRenderer::GetDevice()->CreateDepthStencilView(texture2D, &depthStencilViewDesc, &depthTarget);
|
||||
|
||||
////Create Depth ShaderResource
|
||||
////ShaderResourceViewDesc shaderResourceViewDesc;
|
||||
//ZeroMemory(&shaderResourceViewDesc, sizeof(shaderResourceViewDesc));
|
||||
//shaderResourceViewDesc.Format = DXGI_FORMAT_R32_FLOAT;
|
||||
//shaderResourceViewDesc.ViewDimension = RESOURCE_DIMENSION_TEXTURECUBE;
|
||||
////shaderResourceViewDesc.Texture2D.MostDetailedMip = 0;
|
||||
////shaderResourceViewDesc.Texture2D.MipLevels = 1;
|
||||
//shaderResourceViewDesc.mipLevels = 1;
|
||||
|
||||
//wiRenderer::GetDevice()->CreateShaderResourceView(texture2D, &shaderResourceViewDesc, &shaderResource);
|
||||
}
|
||||
|
||||
void wiDepthTarget::Clear(GRAPHICSTHREAD threadID)
|
||||
@@ -129,12 +74,6 @@ void wiDepthTarget::Clear(GRAPHICSTHREAD threadID)
|
||||
}
|
||||
void wiDepthTarget::CopyFrom(const wiDepthTarget& from, GRAPHICSTHREAD threadID)
|
||||
{
|
||||
//if(shaderResource) shaderResource->Release();
|
||||
////static ShaderResourceViewDesc desc;
|
||||
////from.shaderResource->GetDesc(&desc);
|
||||
//wiRenderer::GetDevice()->CopyResource(texture2D,from.texture2D);
|
||||
//HRESULT r = wiRenderer::GetDevice()->CreateShaderResourceView(texture2D,&from.shaderResourceViewDesc,&shaderResource);
|
||||
|
||||
wiRenderer::GetDevice()->CopyTexture2D(GetTexture(), from.GetTexture(), threadID);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
class wiDepthTarget
|
||||
{
|
||||
private:
|
||||
Texture2D* texture;
|
||||
TextureCube* textureCube;
|
||||
wiGraphicsTypes::Texture2D* texture;
|
||||
wiGraphicsTypes::TextureCube* textureCube;
|
||||
bool isCube;
|
||||
public:
|
||||
//Texture2D texture2D;
|
||||
@@ -24,7 +24,7 @@ public:
|
||||
void Clear(GRAPHICSTHREAD threadID);
|
||||
void CopyFrom(const wiDepthTarget&, GRAPHICSTHREAD threadID);
|
||||
|
||||
Texture2D* GetTexture() const { return(isCube ? textureCube : texture); }
|
||||
Texture2DDesc GetDesc() const { return GetTexture()->desc; }
|
||||
wiGraphicsTypes::Texture2D* GetTexture() const { return(isCube ? textureCube : texture); }
|
||||
wiGraphicsTypes::Texture2DDesc GetDesc() const { return GetTexture()->desc; }
|
||||
};
|
||||
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
#include "wiRandom.h"
|
||||
#include "TextureMapping.h"
|
||||
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
//ID3D11Buffer *wiEmittedParticle::vertexBuffer;
|
||||
VertexLayout wiEmittedParticle::vertexLayout;
|
||||
VertexShader wiEmittedParticle::vertexShader;
|
||||
@@ -306,11 +308,11 @@ void wiEmittedParticle::LoadShaders()
|
||||
{
|
||||
VertexLayoutDesc layout[] =
|
||||
{
|
||||
{ "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "TEXCOORD", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
//{ "TEXCOORD", 2, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "ROTATION", 0, DXGI_FORMAT_R32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "VELOCITY", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "POSITION", 0, FORMAT_R32G32B32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "TEXCOORD", 0, FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
//{ "TEXCOORD", 2, FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "ROTATION", 0, FORMAT_R32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "VELOCITY", 0, FORMAT_R32G32B32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
};
|
||||
UINT numElements = ARRAYSIZE(layout);
|
||||
VertexShaderInfo* vsinfo = static_cast<VertexShaderInfo*>(wiResourceManager::GetShaderManager()->add(wiRenderer::SHADERPATH + "pointspriteVS.cso", wiResourceManager::VERTEXSHADER, layout, numElements));
|
||||
|
||||
@@ -49,15 +49,15 @@ private:
|
||||
|
||||
ALIGN_16
|
||||
};
|
||||
BufferResource vertexBuffer;
|
||||
static VertexLayout vertexLayout;
|
||||
static VertexShader vertexShader;
|
||||
static PixelShader pixelShader,simplestPS;
|
||||
static GeometryShader geometryShader;
|
||||
static BufferResource constantBuffer;
|
||||
static BlendState blendStateAlpha,blendStateAdd;
|
||||
static RasterizerState rasterizerState,wireFrameRS;
|
||||
static DepthStencilState depthStencilState;
|
||||
wiGraphicsTypes::BufferResource vertexBuffer;
|
||||
static wiGraphicsTypes::VertexLayout vertexLayout;
|
||||
static wiGraphicsTypes::VertexShader vertexShader;
|
||||
static wiGraphicsTypes::PixelShader pixelShader,simplestPS;
|
||||
static wiGraphicsTypes::GeometryShader geometryShader;
|
||||
static wiGraphicsTypes::BufferResource constantBuffer;
|
||||
static wiGraphicsTypes::BlendState blendStateAlpha,blendStateAdd;
|
||||
static wiGraphicsTypes::RasterizerState rasterizerState,wireFrameRS;
|
||||
static wiGraphicsTypes::DepthStencilState depthStencilState;
|
||||
|
||||
public:
|
||||
static void LoadShaders();
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
#include "wiLoader.h"
|
||||
#include "TextureMapping.h"
|
||||
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
|
||||
BufferResource wiFont::vertexBuffer,wiFont::indexBuffer;
|
||||
VertexLayout wiFont::vertexLayout;
|
||||
@@ -117,8 +119,8 @@ void wiFont::LoadShaders()
|
||||
|
||||
VertexLayoutDesc layout[] =
|
||||
{
|
||||
{ "POSITION", 0, DXGI_FORMAT_R32G32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "POSITION", 0, FORMAT_R32G32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "TEXCOORD", 0, FORMAT_R32G32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
};
|
||||
UINT numElements = ARRAYSIZE(layout);
|
||||
VertexShaderInfo* vsinfo = static_cast<VertexShaderInfo*>(wiResourceManager::GetShaderManager()->add(wiRenderer::SHADERPATH + "fontVS.cso", wiResourceManager::VERTEXSHADER, layout, numElements));
|
||||
|
||||
@@ -53,15 +53,15 @@ protected:
|
||||
|
||||
ALIGN_16
|
||||
};
|
||||
static BufferResource vertexBuffer,indexBuffer;
|
||||
static wiGraphicsTypes::BufferResource vertexBuffer,indexBuffer;
|
||||
|
||||
static VertexLayout vertexLayout;
|
||||
static VertexShader vertexShader;
|
||||
static PixelShader pixelShader;
|
||||
static BlendState blendState;
|
||||
static BufferResource constantBuffer;
|
||||
static RasterizerState rasterizerState;
|
||||
static DepthStencilState depthStencilState;
|
||||
static wiGraphicsTypes::VertexLayout vertexLayout;
|
||||
static wiGraphicsTypes::VertexShader vertexShader;
|
||||
static wiGraphicsTypes::PixelShader pixelShader;
|
||||
static wiGraphicsTypes::BlendState blendState;
|
||||
static wiGraphicsTypes::BufferResource constantBuffer;
|
||||
static wiGraphicsTypes::RasterizerState rasterizerState;
|
||||
static wiGraphicsTypes::DepthStencilState depthStencilState;
|
||||
|
||||
static void SetUpStates();
|
||||
static void SetUpCB();
|
||||
@@ -76,7 +76,7 @@ private:
|
||||
|
||||
struct wiFontStyle{
|
||||
string name;
|
||||
Texture2D* texture;
|
||||
wiGraphicsTypes::Texture2D* texture;
|
||||
|
||||
struct LookUp{
|
||||
int code;
|
||||
|
||||
+560
-432
File diff suppressed because it is too large
Load Diff
@@ -5,6 +5,9 @@
|
||||
#include "Utility/WicTextureLoader.h"
|
||||
#include "Utility/DDSTextureLoader.h"
|
||||
|
||||
namespace wiGraphicsTypes
|
||||
{
|
||||
|
||||
#ifndef WINSTORE_SUPPORT
|
||||
GraphicsDevice_DX11::GraphicsDevice_DX11(HWND window, int screenW, int screenH, bool windowed) : GraphicsDevice()
|
||||
#else
|
||||
@@ -603,13 +606,365 @@ inline D3D11_INPUT_CLASSIFICATION _ConvertInputClassification(INPUT_CLASSIFICATI
|
||||
}
|
||||
return D3D11_INPUT_PER_VERTEX_DATA;
|
||||
}
|
||||
inline DXGI_FORMAT _ConvertFormat(DXGI_FORMAT value)
|
||||
inline DXGI_FORMAT _ConvertFormat(FORMAT value)
|
||||
{
|
||||
return value;
|
||||
}
|
||||
inline DXGI_SAMPLE_DESC _ConvertSampleDesc(DXGI_SAMPLE_DESC value)
|
||||
{
|
||||
return value;
|
||||
switch (value)
|
||||
{
|
||||
case FORMAT_UNKNOWN:
|
||||
return DXGI_FORMAT_UNKNOWN;
|
||||
break;
|
||||
case FORMAT_R32G32B32A32_TYPELESS:
|
||||
return DXGI_FORMAT_R32G32B32A32_TYPELESS;
|
||||
break;
|
||||
case FORMAT_R32G32B32A32_FLOAT:
|
||||
return DXGI_FORMAT_R32G32B32A32_FLOAT;
|
||||
break;
|
||||
case FORMAT_R32G32B32A32_UINT:
|
||||
return DXGI_FORMAT_R32G32B32A32_UINT;
|
||||
break;
|
||||
case FORMAT_R32G32B32A32_SINT:
|
||||
return DXGI_FORMAT_R32G32B32A32_SINT;
|
||||
break;
|
||||
case FORMAT_R32G32B32_TYPELESS:
|
||||
return DXGI_FORMAT_R32G32B32_TYPELESS;
|
||||
break;
|
||||
case FORMAT_R32G32B32_FLOAT:
|
||||
return DXGI_FORMAT_R32G32B32_FLOAT;
|
||||
break;
|
||||
case FORMAT_R32G32B32_UINT:
|
||||
return DXGI_FORMAT_R32G32B32_UINT;
|
||||
break;
|
||||
case FORMAT_R32G32B32_SINT:
|
||||
return DXGI_FORMAT_R32G32B32_SINT;
|
||||
break;
|
||||
case FORMAT_R16G16B16A16_TYPELESS:
|
||||
return DXGI_FORMAT_R16G16B16A16_TYPELESS;
|
||||
break;
|
||||
case FORMAT_R16G16B16A16_FLOAT:
|
||||
return DXGI_FORMAT_R16G16B16A16_FLOAT;
|
||||
break;
|
||||
case FORMAT_R16G16B16A16_UNORM:
|
||||
return DXGI_FORMAT_R16G16B16A16_UNORM;
|
||||
break;
|
||||
case FORMAT_R16G16B16A16_UINT:
|
||||
return DXGI_FORMAT_R16G16B16A16_UINT;
|
||||
break;
|
||||
case FORMAT_R16G16B16A16_SNORM:
|
||||
return DXGI_FORMAT_R16G16B16A16_SNORM;
|
||||
break;
|
||||
case FORMAT_R16G16B16A16_SINT:
|
||||
return DXGI_FORMAT_R16G16B16A16_SINT;
|
||||
break;
|
||||
case FORMAT_R32G32_TYPELESS:
|
||||
return DXGI_FORMAT_R32G32_TYPELESS;
|
||||
break;
|
||||
case FORMAT_R32G32_FLOAT:
|
||||
return DXGI_FORMAT_R32G32_FLOAT;
|
||||
break;
|
||||
case FORMAT_R32G32_UINT:
|
||||
return DXGI_FORMAT_R32G32_UINT;
|
||||
break;
|
||||
case FORMAT_R32G32_SINT:
|
||||
return DXGI_FORMAT_R32G32_SINT;
|
||||
break;
|
||||
case FORMAT_R32G8X24_TYPELESS:
|
||||
return DXGI_FORMAT_R32G8X24_TYPELESS;
|
||||
break;
|
||||
case FORMAT_D32_FLOAT_S8X24_UINT:
|
||||
return DXGI_FORMAT_D32_FLOAT_S8X24_UINT;
|
||||
break;
|
||||
case FORMAT_R32_FLOAT_X8X24_TYPELESS:
|
||||
return DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS;
|
||||
break;
|
||||
case FORMAT_X32_TYPELESS_G8X24_UINT:
|
||||
return DXGI_FORMAT_X32_TYPELESS_G8X24_UINT;
|
||||
break;
|
||||
case FORMAT_R10G10B10A2_TYPELESS:
|
||||
return DXGI_FORMAT_R10G10B10A2_TYPELESS;
|
||||
break;
|
||||
case FORMAT_R10G10B10A2_UNORM:
|
||||
return DXGI_FORMAT_R10G10B10A2_UNORM;
|
||||
break;
|
||||
case FORMAT_R10G10B10A2_UINT:
|
||||
return DXGI_FORMAT_R10G10B10A2_UINT;
|
||||
break;
|
||||
case FORMAT_R11G11B10_FLOAT:
|
||||
return DXGI_FORMAT_R11G11B10_FLOAT;
|
||||
break;
|
||||
case FORMAT_R8G8B8A8_TYPELESS:
|
||||
return DXGI_FORMAT_R8G8B8A8_TYPELESS;
|
||||
break;
|
||||
case FORMAT_R8G8B8A8_UNORM:
|
||||
return DXGI_FORMAT_R8G8B8A8_UNORM;
|
||||
break;
|
||||
case FORMAT_R8G8B8A8_UNORM_SRGB:
|
||||
return DXGI_FORMAT_R8G8B8A8_UNORM_SRGB;
|
||||
break;
|
||||
case FORMAT_R8G8B8A8_UINT:
|
||||
return DXGI_FORMAT_R8G8B8A8_UINT;
|
||||
break;
|
||||
case FORMAT_R8G8B8A8_SNORM:
|
||||
return DXGI_FORMAT_R8G8B8A8_SNORM;
|
||||
break;
|
||||
case FORMAT_R8G8B8A8_SINT:
|
||||
return DXGI_FORMAT_R8G8B8A8_SINT;
|
||||
break;
|
||||
case FORMAT_R16G16_TYPELESS:
|
||||
return DXGI_FORMAT_R16G16_TYPELESS;
|
||||
break;
|
||||
case FORMAT_R16G16_FLOAT:
|
||||
return DXGI_FORMAT_R16G16_FLOAT;
|
||||
break;
|
||||
case FORMAT_R16G16_UNORM:
|
||||
return DXGI_FORMAT_R16G16_UNORM;
|
||||
break;
|
||||
case FORMAT_R16G16_UINT:
|
||||
return DXGI_FORMAT_R16G16_UINT;
|
||||
break;
|
||||
case FORMAT_R16G16_SNORM:
|
||||
return DXGI_FORMAT_R16G16_SNORM;
|
||||
break;
|
||||
case FORMAT_R16G16_SINT:
|
||||
return DXGI_FORMAT_R16G16_SINT;
|
||||
break;
|
||||
case FORMAT_R32_TYPELESS:
|
||||
return DXGI_FORMAT_R32_TYPELESS;
|
||||
break;
|
||||
case FORMAT_D32_FLOAT:
|
||||
return DXGI_FORMAT_D32_FLOAT;
|
||||
break;
|
||||
case FORMAT_R32_FLOAT:
|
||||
return DXGI_FORMAT_R32_FLOAT;
|
||||
break;
|
||||
case FORMAT_R32_UINT:
|
||||
return DXGI_FORMAT_R32_UINT;
|
||||
break;
|
||||
case FORMAT_R32_SINT:
|
||||
return DXGI_FORMAT_R32_SINT;
|
||||
break;
|
||||
case FORMAT_R24G8_TYPELESS:
|
||||
return DXGI_FORMAT_R24G8_TYPELESS;
|
||||
break;
|
||||
case FORMAT_D24_UNORM_S8_UINT:
|
||||
return DXGI_FORMAT_D24_UNORM_S8_UINT;
|
||||
break;
|
||||
case FORMAT_R24_UNORM_X8_TYPELESS:
|
||||
return DXGI_FORMAT_R24_UNORM_X8_TYPELESS;
|
||||
break;
|
||||
case FORMAT_X24_TYPELESS_G8_UINT:
|
||||
return DXGI_FORMAT_X24_TYPELESS_G8_UINT;
|
||||
break;
|
||||
case FORMAT_R8G8_TYPELESS:
|
||||
return DXGI_FORMAT_R8G8_TYPELESS;
|
||||
break;
|
||||
case FORMAT_R8G8_UNORM:
|
||||
return DXGI_FORMAT_R8G8_UNORM;
|
||||
break;
|
||||
case FORMAT_R8G8_UINT:
|
||||
return DXGI_FORMAT_R8G8_UINT;
|
||||
break;
|
||||
case FORMAT_R8G8_SNORM:
|
||||
return DXGI_FORMAT_R8G8_SNORM;
|
||||
break;
|
||||
case FORMAT_R8G8_SINT:
|
||||
return DXGI_FORMAT_R8G8_SINT;
|
||||
break;
|
||||
case FORMAT_R16_TYPELESS:
|
||||
return DXGI_FORMAT_R16_TYPELESS;
|
||||
break;
|
||||
case FORMAT_R16_FLOAT:
|
||||
return DXGI_FORMAT_R16_FLOAT;
|
||||
break;
|
||||
case FORMAT_D16_UNORM:
|
||||
return DXGI_FORMAT_D16_UNORM;
|
||||
break;
|
||||
case FORMAT_R16_UNORM:
|
||||
return DXGI_FORMAT_R16_UNORM;
|
||||
break;
|
||||
case FORMAT_R16_UINT:
|
||||
return DXGI_FORMAT_R16_UINT;
|
||||
break;
|
||||
case FORMAT_R16_SNORM:
|
||||
return DXGI_FORMAT_R16_SNORM;
|
||||
break;
|
||||
case FORMAT_R16_SINT:
|
||||
return DXGI_FORMAT_R16_SINT;
|
||||
break;
|
||||
case FORMAT_R8_TYPELESS:
|
||||
return DXGI_FORMAT_R8_TYPELESS;
|
||||
break;
|
||||
case FORMAT_R8_UNORM:
|
||||
return DXGI_FORMAT_R8_UNORM;
|
||||
break;
|
||||
case FORMAT_R8_UINT:
|
||||
return DXGI_FORMAT_R8_UINT;
|
||||
break;
|
||||
case FORMAT_R8_SNORM:
|
||||
return DXGI_FORMAT_R8_SNORM;
|
||||
break;
|
||||
case FORMAT_R8_SINT:
|
||||
return DXGI_FORMAT_R8_SINT;
|
||||
break;
|
||||
case FORMAT_A8_UNORM:
|
||||
return DXGI_FORMAT_A8_UNORM;
|
||||
break;
|
||||
case FORMAT_R1_UNORM:
|
||||
return DXGI_FORMAT_R1_UNORM;
|
||||
break;
|
||||
case FORMAT_R9G9B9E5_SHAREDEXP:
|
||||
return DXGI_FORMAT_R9G9B9E5_SHAREDEXP;
|
||||
break;
|
||||
case FORMAT_R8G8_B8G8_UNORM:
|
||||
return DXGI_FORMAT_R8G8_B8G8_UNORM;
|
||||
break;
|
||||
case FORMAT_G8R8_G8B8_UNORM:
|
||||
return DXGI_FORMAT_G8R8_G8B8_UNORM;
|
||||
break;
|
||||
case FORMAT_BC1_TYPELESS:
|
||||
return DXGI_FORMAT_BC1_TYPELESS;
|
||||
break;
|
||||
case FORMAT_BC1_UNORM:
|
||||
return DXGI_FORMAT_BC1_UNORM;
|
||||
break;
|
||||
case FORMAT_BC1_UNORM_SRGB:
|
||||
return DXGI_FORMAT_BC1_UNORM_SRGB;
|
||||
break;
|
||||
case FORMAT_BC2_TYPELESS:
|
||||
return DXGI_FORMAT_BC2_TYPELESS;
|
||||
break;
|
||||
case FORMAT_BC2_UNORM:
|
||||
return DXGI_FORMAT_BC2_UNORM;
|
||||
break;
|
||||
case FORMAT_BC2_UNORM_SRGB:
|
||||
return DXGI_FORMAT_BC2_UNORM_SRGB;
|
||||
break;
|
||||
case FORMAT_BC3_TYPELESS:
|
||||
return DXGI_FORMAT_BC3_TYPELESS;
|
||||
break;
|
||||
case FORMAT_BC3_UNORM:
|
||||
return DXGI_FORMAT_BC3_UNORM;
|
||||
break;
|
||||
case FORMAT_BC3_UNORM_SRGB:
|
||||
return DXGI_FORMAT_BC3_UNORM_SRGB;
|
||||
break;
|
||||
case FORMAT_BC4_TYPELESS:
|
||||
return DXGI_FORMAT_BC4_TYPELESS;
|
||||
break;
|
||||
case FORMAT_BC4_UNORM:
|
||||
return DXGI_FORMAT_BC4_UNORM;
|
||||
break;
|
||||
case FORMAT_BC4_SNORM:
|
||||
return DXGI_FORMAT_BC4_SNORM;
|
||||
break;
|
||||
case FORMAT_BC5_TYPELESS:
|
||||
return DXGI_FORMAT_BC5_TYPELESS;
|
||||
break;
|
||||
case FORMAT_BC5_UNORM:
|
||||
return DXGI_FORMAT_BC5_UNORM;
|
||||
break;
|
||||
case FORMAT_BC5_SNORM:
|
||||
return DXGI_FORMAT_BC5_SNORM;
|
||||
break;
|
||||
case FORMAT_B5G6R5_UNORM:
|
||||
return DXGI_FORMAT_B5G6R5_UNORM;
|
||||
break;
|
||||
case FORMAT_B5G5R5A1_UNORM:
|
||||
return DXGI_FORMAT_B5G5R5A1_UNORM;
|
||||
break;
|
||||
case FORMAT_B8G8R8A8_UNORM:
|
||||
return DXGI_FORMAT_B8G8R8A8_UNORM;
|
||||
break;
|
||||
case FORMAT_B8G8R8X8_UNORM:
|
||||
return DXGI_FORMAT_B8G8R8X8_UNORM;
|
||||
break;
|
||||
case FORMAT_R10G10B10_XR_BIAS_A2_UNORM:
|
||||
return DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM;
|
||||
break;
|
||||
case FORMAT_B8G8R8A8_TYPELESS:
|
||||
return DXGI_FORMAT_B8G8R8A8_TYPELESS;
|
||||
break;
|
||||
case FORMAT_B8G8R8A8_UNORM_SRGB:
|
||||
return DXGI_FORMAT_B8G8R8A8_UNORM_SRGB;
|
||||
break;
|
||||
case FORMAT_B8G8R8X8_TYPELESS:
|
||||
return DXGI_FORMAT_B8G8R8X8_TYPELESS;
|
||||
break;
|
||||
case FORMAT_B8G8R8X8_UNORM_SRGB:
|
||||
return DXGI_FORMAT_B8G8R8X8_UNORM_SRGB;
|
||||
break;
|
||||
case FORMAT_BC6H_TYPELESS:
|
||||
return DXGI_FORMAT_BC6H_TYPELESS;
|
||||
break;
|
||||
case FORMAT_BC6H_UF16:
|
||||
return DXGI_FORMAT_BC6H_UF16;
|
||||
break;
|
||||
case FORMAT_BC6H_SF16:
|
||||
return DXGI_FORMAT_BC6H_SF16;
|
||||
break;
|
||||
case FORMAT_BC7_TYPELESS:
|
||||
return DXGI_FORMAT_BC7_TYPELESS;
|
||||
break;
|
||||
case FORMAT_BC7_UNORM:
|
||||
return DXGI_FORMAT_BC7_UNORM;
|
||||
break;
|
||||
case FORMAT_BC7_UNORM_SRGB:
|
||||
return DXGI_FORMAT_BC7_UNORM_SRGB;
|
||||
break;
|
||||
case FORMAT_AYUV:
|
||||
return DXGI_FORMAT_AYUV;
|
||||
break;
|
||||
case FORMAT_Y410:
|
||||
return DXGI_FORMAT_Y410;
|
||||
break;
|
||||
case FORMAT_Y416:
|
||||
return DXGI_FORMAT_Y416;
|
||||
break;
|
||||
case FORMAT_NV12:
|
||||
return DXGI_FORMAT_NV12;
|
||||
break;
|
||||
case FORMAT_P010:
|
||||
return DXGI_FORMAT_P010;
|
||||
break;
|
||||
case FORMAT_P016:
|
||||
return DXGI_FORMAT_P016;
|
||||
break;
|
||||
case FORMAT_420_OPAQUE:
|
||||
return DXGI_FORMAT_420_OPAQUE;
|
||||
break;
|
||||
case FORMAT_YUY2:
|
||||
return DXGI_FORMAT_YUY2;
|
||||
break;
|
||||
case FORMAT_Y210:
|
||||
return DXGI_FORMAT_Y210;
|
||||
break;
|
||||
case FORMAT_Y216:
|
||||
return DXGI_FORMAT_Y216;
|
||||
break;
|
||||
case FORMAT_NV11:
|
||||
return DXGI_FORMAT_NV11;
|
||||
break;
|
||||
case FORMAT_AI44:
|
||||
return DXGI_FORMAT_AI44;
|
||||
break;
|
||||
case FORMAT_IA44:
|
||||
return DXGI_FORMAT_IA44;
|
||||
break;
|
||||
case FORMAT_P8:
|
||||
return DXGI_FORMAT_P8;
|
||||
break;
|
||||
case FORMAT_A8P8:
|
||||
return DXGI_FORMAT_A8P8;
|
||||
break;
|
||||
case FORMAT_B4G4R4A4_UNORM:
|
||||
return DXGI_FORMAT_B4G4R4A4_UNORM;
|
||||
break;
|
||||
case FORMAT_FORCE_UINT:
|
||||
return DXGI_FORMAT_FORCE_UINT;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return DXGI_FORMAT_UNKNOWN;
|
||||
}
|
||||
|
||||
inline D3D11_TEXTURE2D_DESC _ConvertTexture2DDesc(const Texture2DDesc* pDesc)
|
||||
@@ -620,7 +975,8 @@ inline D3D11_TEXTURE2D_DESC _ConvertTexture2DDesc(const Texture2DDesc* pDesc)
|
||||
desc.MipLevels = pDesc->MipLevels;
|
||||
desc.ArraySize = pDesc->ArraySize;
|
||||
desc.Format = _ConvertFormat(pDesc->Format);
|
||||
desc.SampleDesc = _ConvertSampleDesc(pDesc->SampleDesc);
|
||||
desc.SampleDesc.Count = pDesc->SampleDesc.Count;
|
||||
desc.SampleDesc.Quality = pDesc->SampleDesc.Quality;
|
||||
desc.Usage = _ConvertUsage(pDesc->Usage);
|
||||
desc.BindFlags = _ParseBindFlags(pDesc->BindFlags);
|
||||
desc.CPUAccessFlags = _ParseCPUAccessFlags(pDesc->CPUAccessFlags);
|
||||
@@ -721,7 +1077,7 @@ HRESULT GraphicsDevice_DX11::CreateShaderResourceView(Texture2D* pTexture)
|
||||
D3D11_SHADER_RESOURCE_VIEW_DESC shaderResourceViewDesc;
|
||||
if (pTexture->desc.MiscFlags & D3D11_RESOURCE_MISC_TEXTURECUBE)
|
||||
{
|
||||
shaderResourceViewDesc.Format = pTexture->desc.Format;
|
||||
shaderResourceViewDesc.Format = _ConvertFormat(pTexture->desc.Format);
|
||||
if (pTexture->desc.BindFlags & D3D11_BIND_DEPTH_STENCIL)
|
||||
{
|
||||
shaderResourceViewDesc.Format = DXGI_FORMAT_R32_FLOAT;
|
||||
@@ -732,7 +1088,7 @@ HRESULT GraphicsDevice_DX11::CreateShaderResourceView(Texture2D* pTexture)
|
||||
}
|
||||
else
|
||||
{
|
||||
shaderResourceViewDesc.Format = pTexture->desc.Format;
|
||||
shaderResourceViewDesc.Format = _ConvertFormat(pTexture->desc.Format);
|
||||
if (pTexture->desc.BindFlags & D3D11_BIND_DEPTH_STENCIL)
|
||||
{
|
||||
shaderResourceViewDesc.Format = DXGI_FORMAT_R24_UNORM_X8_TYPELESS;
|
||||
@@ -754,7 +1110,7 @@ HRESULT GraphicsDevice_DX11::CreateRenderTargetView(Texture2D* pTexture)
|
||||
D3D11_RENDER_TARGET_VIEW_DESC renderTargetViewDesc;
|
||||
if (pTexture->desc.MiscFlags & D3D11_RESOURCE_MISC_TEXTURECUBE)
|
||||
{
|
||||
renderTargetViewDesc.Format = pTexture->desc.Format;
|
||||
renderTargetViewDesc.Format = _ConvertFormat(pTexture->desc.Format);
|
||||
renderTargetViewDesc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2DARRAY;
|
||||
renderTargetViewDesc.Texture2DArray.FirstArraySlice = 0;
|
||||
renderTargetViewDesc.Texture2DArray.ArraySize = 6;
|
||||
@@ -762,7 +1118,7 @@ HRESULT GraphicsDevice_DX11::CreateRenderTargetView(Texture2D* pTexture)
|
||||
}
|
||||
else
|
||||
{
|
||||
renderTargetViewDesc.Format = pTexture->desc.Format;
|
||||
renderTargetViewDesc.Format = _ConvertFormat(pTexture->desc.Format);
|
||||
renderTargetViewDesc.ViewDimension = (pTexture->desc.SampleDesc.Quality == 0 ? D3D11_RTV_DIMENSION_TEXTURE2D : D3D11_RTV_DIMENSION_TEXTURE2DMS);
|
||||
renderTargetViewDesc.Texture2D.MipSlice = 0;
|
||||
}
|
||||
@@ -1018,3 +1374,5 @@ HRESULT GraphicsDevice_DX11::CreateTextureFromFile(const wstring& fileName, Text
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+394
-389
File diff suppressed because it is too large
Load Diff
@@ -7,6 +7,8 @@
|
||||
#include "wiRandom.h"
|
||||
#include "TextureMapping.h"
|
||||
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
VertexLayout wiHairParticle::il;
|
||||
VertexShader wiHairParticle::vs;
|
||||
PixelShader wiHairParticle::ps,wiHairParticle::qps;
|
||||
@@ -71,9 +73,9 @@ void wiHairParticle::LoadShaders()
|
||||
|
||||
VertexLayoutDesc layout[] =
|
||||
{
|
||||
{ "POSITION", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "NORMAL", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "TANGENT", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "POSITION", 0, FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "NORMAL", 0, FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "TANGENT", 0, FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
};
|
||||
UINT numElements = ARRAYSIZE(layout);
|
||||
VertexShaderInfo* vsinfo = static_cast<VertexShaderInfo*>(wiResourceManager::GetShaderManager()->add(wiRenderer::SHADERPATH + "grassVS.cso", wiResourceManager::VERTEXSHADER, layout, numElements));
|
||||
|
||||
@@ -41,14 +41,14 @@ private:
|
||||
|
||||
ALIGN_16
|
||||
};
|
||||
static VertexLayout il;
|
||||
static VertexShader vs;
|
||||
static PixelShader ps, qps;
|
||||
static GeometryShader gs[3],qgs[2];
|
||||
static BufferResource cbgs;
|
||||
static DepthStencilState dss;
|
||||
static RasterizerState rs,ncrs;
|
||||
static BlendState bs;
|
||||
static wiGraphicsTypes::VertexLayout il;
|
||||
static wiGraphicsTypes::VertexShader vs;
|
||||
static wiGraphicsTypes::PixelShader ps, qps;
|
||||
static wiGraphicsTypes::GeometryShader gs[3],qgs[2];
|
||||
static wiGraphicsTypes::BufferResource cbgs;
|
||||
static wiGraphicsTypes::DepthStencilState dss;
|
||||
static wiGraphicsTypes::RasterizerState rs,ncrs;
|
||||
static wiGraphicsTypes::BlendState bs;
|
||||
static int LOD[3];
|
||||
public:
|
||||
static void LoadShaders();
|
||||
@@ -71,6 +71,6 @@ public:
|
||||
Object* object;
|
||||
vector<Patch*> patches;
|
||||
wiSPTree* spTree;
|
||||
BufferResource vb[3];
|
||||
wiGraphicsTypes::BufferResource vb[3];
|
||||
};
|
||||
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
#include "SamplerMapping.h"
|
||||
#include "TextureMapping.h"
|
||||
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
#pragma region STATICS
|
||||
BlendState wiImage::blendState, wiImage::blendStateAdd, wiImage::blendStateNoBlend, wiImage::blendStateAvg;
|
||||
BufferResource wiImage::constantBuffer,wiImage::processCb;
|
||||
|
||||
+11
-11
@@ -43,17 +43,17 @@ protected:
|
||||
ALIGN_16
|
||||
};
|
||||
|
||||
static BlendState blendState, blendStateAdd, blendStateNoBlend, blendStateAvg;
|
||||
static BufferResource constantBuffer,processCb;
|
||||
static wiGraphicsTypes::BlendState blendState, blendStateAdd, blendStateNoBlend, blendStateAvg;
|
||||
static wiGraphicsTypes::BufferResource constantBuffer,processCb;
|
||||
|
||||
static VertexShader vertexShader,screenVS;
|
||||
static PixelShader pixelShader,blurHPS,blurVPS,shaftPS,outlinePS,dofPS,motionBlurPS,bloomSeparatePS
|
||||
static wiGraphicsTypes::VertexShader vertexShader,screenVS;
|
||||
static wiGraphicsTypes::PixelShader pixelShader,blurHPS,blurVPS,shaftPS,outlinePS,dofPS,motionBlurPS,bloomSeparatePS
|
||||
,fxaaPS,ssaoPS,ssssPS,deferredPS,linDepthPS,colorGradePS,ssrPS, screenPS, stereogramPS;
|
||||
|
||||
|
||||
|
||||
static RasterizerState rasterizerState;
|
||||
static DepthStencilState depthStencilStateGreater,depthStencilStateLess,depthNoStencilState;
|
||||
static wiGraphicsTypes::RasterizerState rasterizerState;
|
||||
static wiGraphicsTypes::DepthStencilState depthStencilStateGreater,depthStencilStateLess,depthNoStencilState;
|
||||
|
||||
public:
|
||||
static void LoadShaders();
|
||||
@@ -65,12 +65,12 @@ private:
|
||||
public:
|
||||
wiImage();
|
||||
|
||||
static void Draw(Texture2D* texture, const wiImageEffects& effects);
|
||||
static void Draw(Texture2D* texture, const wiImageEffects& effects,GRAPHICSTHREAD threadID);
|
||||
static void Draw(wiGraphicsTypes::Texture2D* texture, const wiImageEffects& effects);
|
||||
static void Draw(wiGraphicsTypes::Texture2D* texture, const wiImageEffects& effects,GRAPHICSTHREAD threadID);
|
||||
|
||||
static void DrawDeferred(Texture2D* texture
|
||||
, Texture2D* depth, Texture2D* lightmap, Texture2D* normal
|
||||
, Texture2D* ao, GRAPHICSTHREAD threadID, int stencilref = 0);
|
||||
static void DrawDeferred(wiGraphicsTypes::Texture2D* texture
|
||||
, wiGraphicsTypes::Texture2D* depth, wiGraphicsTypes::Texture2D* lightmap, wiGraphicsTypes::Texture2D* normal
|
||||
, wiGraphicsTypes::Texture2D* ao, GRAPHICSTHREAD threadID, int stencilref = 0);
|
||||
|
||||
static void Load();
|
||||
static void CleanUp();
|
||||
|
||||
@@ -94,13 +94,13 @@ public:
|
||||
};
|
||||
Processing process;
|
||||
bool deferred;
|
||||
Texture2D* maskMap, *distortionMap, *refractionSource;
|
||||
wiGraphicsTypes::Texture2D* maskMap, *distortionMap, *refractionSource;
|
||||
// Generic texture
|
||||
void setMaskMap(Texture2D* view) { maskMap = view; }
|
||||
void setMaskMap(wiGraphicsTypes::Texture2D* view) { maskMap = view; }
|
||||
// The normalmap texture which should distort the refraction source
|
||||
void setDistortionMap(Texture2D* view) { distortionMap = view; }
|
||||
void setDistortionMap(wiGraphicsTypes::Texture2D* view) { distortionMap = view; }
|
||||
// The texture which should be distorted
|
||||
void setRefractionSource(Texture2D* view) { refractionSource = view; }
|
||||
void setRefractionSource(wiGraphicsTypes::Texture2D* view) { refractionSource = view; }
|
||||
|
||||
void init() {
|
||||
pos = XMFLOAT3(0, 0, 0);
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include "wiResourceManager.h"
|
||||
#include "TextureMapping.h"
|
||||
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
BufferResource wiLensFlare::constantBuffer;
|
||||
PixelShader wiLensFlare::pixelShader;
|
||||
@@ -75,7 +76,7 @@ void wiLensFlare::LoadShaders(){
|
||||
|
||||
VertexLayoutDesc layout[] =
|
||||
{
|
||||
{ "POSITION", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "POSITION", 0, FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
};
|
||||
UINT numElements = ARRAYSIZE(layout);
|
||||
VertexShaderInfo* vsinfo = static_cast<VertexShaderInfo*>(wiResourceManager::GetShaderManager()->add(wiRenderer::SHADERPATH + "lensFlareVS.cso", wiResourceManager::VERTEXSHADER, layout, numElements));
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
class wiLensFlare
|
||||
{
|
||||
private:
|
||||
static BufferResource constantBuffer;
|
||||
static PixelShader pixelShader;
|
||||
static GeometryShader geometryShader;
|
||||
static VertexShader vertexShader;
|
||||
static VertexLayout inputLayout;
|
||||
static RasterizerState rasterizerState;
|
||||
static DepthStencilState depthStencilState;
|
||||
static BlendState blendState;
|
||||
static wiGraphicsTypes::BufferResource constantBuffer;
|
||||
static wiGraphicsTypes::PixelShader pixelShader;
|
||||
static wiGraphicsTypes::GeometryShader geometryShader;
|
||||
static wiGraphicsTypes::VertexShader vertexShader;
|
||||
static wiGraphicsTypes::VertexLayout inputLayout;
|
||||
static wiGraphicsTypes::RasterizerState rasterizerState;
|
||||
static wiGraphicsTypes::DepthStencilState depthStencilState;
|
||||
static wiGraphicsTypes::BlendState blendState;
|
||||
|
||||
GFX_STRUCT ConstantBuffer
|
||||
{
|
||||
@@ -33,7 +33,7 @@ private:
|
||||
public:
|
||||
static void Initialize();
|
||||
static void CleanUp();
|
||||
static void Draw(GRAPHICSTHREAD threadID, const XMVECTOR& lightPos, vector<Texture2D*>& rims);
|
||||
static void Draw(GRAPHICSTHREAD threadID, const XMVECTOR& lightPos, vector<wiGraphicsTypes::Texture2D*>& rims);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#include "wiLines.h"
|
||||
#include "wiRenderer.h"
|
||||
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
Lines::Lines()
|
||||
{
|
||||
desc = Description();
|
||||
|
||||
@@ -41,7 +41,7 @@ public:
|
||||
Description desc;
|
||||
int parentArmature,parentBone;
|
||||
|
||||
BufferResource vertexBuffer;
|
||||
wiGraphicsTypes::BufferResource vertexBuffer;
|
||||
|
||||
ALIGN_16
|
||||
};
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "wiTextureHelper.h"
|
||||
#include "wiPHYSICS.h"
|
||||
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
void LoadWiArmatures(const string& directory, const string& name, const string& identifier, vector<Armature*>& armatures)
|
||||
{
|
||||
|
||||
+15
-15
@@ -99,25 +99,25 @@ struct Material
|
||||
|
||||
bool hasRefMap;
|
||||
string refMapName;
|
||||
Texture2D* refMap;
|
||||
wiGraphicsTypes::Texture2D* refMap;
|
||||
|
||||
bool hasTexture;
|
||||
string textureName;
|
||||
Texture2D* texture;
|
||||
wiGraphicsTypes::Texture2D* texture;
|
||||
bool premultipliedTexture;
|
||||
BLENDMODE blendFlag;
|
||||
|
||||
bool hasNormalMap;
|
||||
string normalMapName;
|
||||
Texture2D* normalMap;
|
||||
wiGraphicsTypes::Texture2D* normalMap;
|
||||
|
||||
bool hasDisplacementMap;
|
||||
string displacementMapName;
|
||||
Texture2D* displacementMap;
|
||||
wiGraphicsTypes::Texture2D* displacementMap;
|
||||
|
||||
bool hasSpecularMap;
|
||||
string specularMapName;
|
||||
Texture2D* specularMap;
|
||||
wiGraphicsTypes::Texture2D* specularMap;
|
||||
|
||||
bool subsurface_scattering;
|
||||
bool toonshading;
|
||||
@@ -290,10 +290,10 @@ struct Mesh{
|
||||
|
||||
static thread_local vector<Instance> instances;
|
||||
|
||||
BufferResource meshVertBuff;
|
||||
static BufferResource meshInstanceBuffer;
|
||||
BufferResource meshIndexBuff;
|
||||
BufferResource sOutBuffer;
|
||||
wiGraphicsTypes::BufferResource meshVertBuff;
|
||||
static wiGraphicsTypes::BufferResource meshInstanceBuffer;
|
||||
wiGraphicsTypes::BufferResource meshIndexBuff;
|
||||
wiGraphicsTypes::BufferResource sOutBuffer;
|
||||
|
||||
vector<string> materialNames;
|
||||
vector<int> materialIndices;
|
||||
@@ -502,9 +502,9 @@ struct Object : public Streamable, public Transform
|
||||
|
||||
//RIBBON TRAIL
|
||||
deque<RibbonVertex> trail;
|
||||
BufferResource trailBuff;
|
||||
Texture2D* trailDistortTex;
|
||||
Texture2D* trailTex;
|
||||
wiGraphicsTypes::BufferResource trailBuff;
|
||||
wiGraphicsTypes::Texture2D* trailDistortTex;
|
||||
wiGraphicsTypes::Texture2D* trailTex;
|
||||
|
||||
int physicsObjectI;
|
||||
|
||||
@@ -785,7 +785,7 @@ struct Light : public Cullable , public Transform
|
||||
XMFLOAT4 enerDis;
|
||||
bool noHalo;
|
||||
bool shadow;
|
||||
vector<Texture2D*> lensFlareRimTextures;
|
||||
vector<wiGraphicsTypes::Texture2D*> lensFlareRimTextures;
|
||||
vector<string> lensFlareNames;
|
||||
|
||||
//vector<wiRenderTarget> shadowMap;
|
||||
@@ -826,7 +826,7 @@ struct Light : public Cullable , public Transform
|
||||
struct Decal : public Cullable, public Transform
|
||||
{
|
||||
string texName,norName;
|
||||
Texture2D* texture,*normal;
|
||||
wiGraphicsTypes::Texture2D* texture,*normal;
|
||||
XMFLOAT4X4 view,projection;
|
||||
XMFLOAT3 front;
|
||||
float life,fadeStart;
|
||||
@@ -979,7 +979,7 @@ struct Camera:public Transform{
|
||||
};
|
||||
struct HitSphere:public SPHERE, public Transform{
|
||||
float radius_saved, radius;
|
||||
static BufferResource vertexBuffer;
|
||||
static wiGraphicsTypes::BufferResource vertexBuffer;
|
||||
enum HitSphereType{
|
||||
HITTYPE,
|
||||
ATKTYPE,
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
#include "wiRenderer.h"
|
||||
#include "wiDepthTarget.h"
|
||||
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
|
||||
wiRenderTarget::wiRenderTarget()
|
||||
{
|
||||
@@ -10,7 +12,7 @@ wiRenderTarget::wiRenderTarget()
|
||||
isCube = false;
|
||||
}
|
||||
wiRenderTarget::wiRenderTarget(UINT width, UINT height, int numViews, bool hasDepth, UINT MSAAC, UINT MSAAQ
|
||||
, DXGI_FORMAT format, UINT mipMapLevelCount)
|
||||
, FORMAT format, UINT mipMapLevelCount)
|
||||
{
|
||||
numViews = 0;
|
||||
depth = nullptr;
|
||||
@@ -37,7 +39,7 @@ void wiRenderTarget::clear() {
|
||||
}
|
||||
|
||||
void wiRenderTarget::Initialize(UINT width, UINT height, int numViews, bool hasDepth, UINT MSAAC, UINT MSAAQ
|
||||
, DXGI_FORMAT format, UINT mipMapLevelCount)
|
||||
, FORMAT format, UINT mipMapLevelCount)
|
||||
{
|
||||
clear();
|
||||
|
||||
@@ -103,7 +105,7 @@ void wiRenderTarget::Initialize(UINT width, UINT height, int numViews, bool hasD
|
||||
depth->Initialize(width,height,MSAAC,MSAAQ);
|
||||
}
|
||||
}
|
||||
void wiRenderTarget::InitializeCube(UINT size, int numViews, bool hasDepth, DXGI_FORMAT format, UINT mipMapLevelCount)
|
||||
void wiRenderTarget::InitializeCube(UINT size, int numViews, bool hasDepth, FORMAT format, UINT mipMapLevelCount)
|
||||
{
|
||||
clear();
|
||||
|
||||
@@ -175,7 +177,7 @@ void wiRenderTarget::InitializeCube(UINT size, int numViews, bool hasDepth, DXGI
|
||||
}
|
||||
void wiRenderTarget::InitializeCube(UINT size, int numViews, bool hasDepth)
|
||||
{
|
||||
InitializeCube(size,numViews,hasDepth,DXGI_FORMAT_R8G8B8A8_UNORM);
|
||||
InitializeCube(size,numViews,hasDepth,FORMAT_R8G8B8A8_UNORM);
|
||||
}
|
||||
|
||||
void wiRenderTarget::Activate(GRAPHICSTHREAD threadID)
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#include "CommonInclude.h"
|
||||
#include "wiGraphicsAPI.h"
|
||||
|
||||
|
||||
class wiDepthTarget;
|
||||
|
||||
class wiRenderTarget
|
||||
@@ -12,22 +13,22 @@ private:
|
||||
//vector<Texture2D*> SAVEDshaderResource;
|
||||
void clear();
|
||||
//Texture2DDesc textureDesc;
|
||||
vector<Texture2D*> renderTargets;
|
||||
vector<TextureCube*> renderTargets_Cube;
|
||||
vector<wiGraphicsTypes::Texture2D*> renderTargets;
|
||||
vector<wiGraphicsTypes::TextureCube*> renderTargets_Cube;
|
||||
bool isCube;
|
||||
public:
|
||||
//vector<Texture2D> texture2D;
|
||||
//vector<RenderTargetView> renderTarget;
|
||||
//vector<Texture2D*> shaderResource;
|
||||
ViewPort viewPort;
|
||||
wiDepthTarget* depth;
|
||||
wiGraphicsTypes::ViewPort viewPort;
|
||||
wiDepthTarget* depth;
|
||||
|
||||
wiRenderTarget();
|
||||
wiRenderTarget(UINT width, UINT height, int numViews = 1, bool hasDepth = false, UINT MSAAC = 1, UINT MSAAQ = 0, DXGI_FORMAT format = DXGI_FORMAT_R8G8B8A8_UNORM, UINT mipMapLevelCount = 1);
|
||||
wiRenderTarget(UINT width, UINT height, int numViews = 1, bool hasDepth = false, UINT MSAAC = 1, UINT MSAAQ = 0, wiGraphicsTypes::FORMAT format = wiGraphicsTypes::FORMAT_R8G8B8A8_UNORM, UINT mipMapLevelCount = 1);
|
||||
~wiRenderTarget();
|
||||
|
||||
void Initialize(UINT width, UINT height, int numViews = 1, bool hasDepth = false, UINT MSAAC = 1, UINT MSAAQ = 0, DXGI_FORMAT format = DXGI_FORMAT_R8G8B8A8_UNORM, UINT mipMapLevelCount = 1);
|
||||
void InitializeCube(UINT size, int numViews, bool hasDepth, DXGI_FORMAT format, UINT mipMapLevelCount = 1);
|
||||
void Initialize(UINT width, UINT height, int numViews = 1, bool hasDepth = false, UINT MSAAC = 1, UINT MSAAQ = 0, wiGraphicsTypes::FORMAT format = wiGraphicsTypes::FORMAT_R8G8B8A8_UNORM, UINT mipMapLevelCount = 1);
|
||||
void InitializeCube(UINT size, int numViews, bool hasDepth, wiGraphicsTypes::FORMAT format, UINT mipMapLevelCount = 1);
|
||||
void InitializeCube(UINT size, int numViews, bool hasDepth);
|
||||
void Activate(GRAPHICSTHREAD threadID);
|
||||
void Activate(GRAPHICSTHREAD threadID, float r, float g, float b, float a);
|
||||
@@ -39,8 +40,8 @@ public:
|
||||
//void Retarget(Texture2D* resource);
|
||||
//void Restore();
|
||||
|
||||
Texture2D* GetTexture(int viewID = 0) const{ return (isCube ? renderTargets_Cube[viewID] : renderTargets[viewID]); }
|
||||
Texture2DDesc GetDesc(int viewID = 0) const { assert(viewID < numViews); return GetTexture(viewID)->desc; }
|
||||
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; }
|
||||
UINT GetMipCount();
|
||||
bool IsInitialized() { return (numViews > 0 || depth != nullptr); }
|
||||
};
|
||||
|
||||
+21
-19
@@ -23,6 +23,8 @@
|
||||
#include "TextureMapping.h"
|
||||
#include "wiGraphicsAPI_DX11.h"
|
||||
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
#pragma region STATICS
|
||||
GraphicsDevice* wiRenderer::graphicsDevice = nullptr;
|
||||
Sampler wiRenderer::samplers[SSLOT_COUNT];
|
||||
@@ -214,7 +216,7 @@ void wiRenderer::SetUpStaticComponents()
|
||||
normalMapRT.Initialize(
|
||||
GetDevice()->GetScreenWidth()
|
||||
,GetDevice()->GetScreenHeight()
|
||||
,1,false,1,0,DXGI_FORMAT_R8G8B8A8_SNORM
|
||||
,1,false,1,0,FORMAT_R8G8B8A8_SNORM
|
||||
);
|
||||
imagesRTAdd.Initialize(
|
||||
GetDevice()->GetScreenWidth()
|
||||
@@ -546,15 +548,15 @@ void wiRenderer::LoadBasicShaders()
|
||||
{
|
||||
VertexLayoutDesc layout[] =
|
||||
{
|
||||
{ "POSITION", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "NORMAL", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "TEXCOORD", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "TEXCOORD", 1, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "POSITION", 0, FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "NORMAL", 0, FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "TEXCOORD", 0, FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "TEXCOORD", 1, FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
|
||||
{ "MATI", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 1, APPEND_ALIGNED_ELEMENT, INPUT_PER_INSTANCE_DATA, 1 },
|
||||
{ "MATI", 1, DXGI_FORMAT_R32G32B32A32_FLOAT, 1, APPEND_ALIGNED_ELEMENT, INPUT_PER_INSTANCE_DATA, 1 },
|
||||
{ "MATI", 2, DXGI_FORMAT_R32G32B32A32_FLOAT, 1, APPEND_ALIGNED_ELEMENT, INPUT_PER_INSTANCE_DATA, 1 },
|
||||
{ "COLOR_DITHER", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 1, APPEND_ALIGNED_ELEMENT, INPUT_PER_INSTANCE_DATA, 1 },
|
||||
{ "MATI", 0, FORMAT_R32G32B32A32_FLOAT, 1, APPEND_ALIGNED_ELEMENT, INPUT_PER_INSTANCE_DATA, 1 },
|
||||
{ "MATI", 1, FORMAT_R32G32B32A32_FLOAT, 1, APPEND_ALIGNED_ELEMENT, INPUT_PER_INSTANCE_DATA, 1 },
|
||||
{ "MATI", 2, FORMAT_R32G32B32A32_FLOAT, 1, APPEND_ALIGNED_ELEMENT, INPUT_PER_INSTANCE_DATA, 1 },
|
||||
{ "COLOR_DITHER", 0, FORMAT_R32G32B32A32_FLOAT, 1, APPEND_ALIGNED_ELEMENT, INPUT_PER_INSTANCE_DATA, 1 },
|
||||
};
|
||||
UINT numElements = ARRAYSIZE(layout);
|
||||
VertexShaderInfo* vsinfo = static_cast<VertexShaderInfo*>(wiResourceManager::GetShaderManager()->add(SHADERPATH + "objectVS10.cso", wiResourceManager::VERTEXSHADER, layout, numElements));
|
||||
@@ -568,11 +570,11 @@ void wiRenderer::LoadBasicShaders()
|
||||
|
||||
VertexLayoutDesc oslayout[] =
|
||||
{
|
||||
{ "POSITION", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "NORMAL", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "TEXCOORD", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "TEXCOORD", 1, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "TEXCOORD", 2, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "POSITION", 0, FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "NORMAL", 0, FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "TEXCOORD", 0, FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "TEXCOORD", 1, FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "TEXCOORD", 2, FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
};
|
||||
UINT numElements = ARRAYSIZE(oslayout);
|
||||
|
||||
@@ -632,7 +634,7 @@ void wiRenderer::LoadLineShaders()
|
||||
{
|
||||
VertexLayoutDesc layout[] =
|
||||
{
|
||||
{ "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "POSITION", 0, FORMAT_R32G32B32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
};
|
||||
UINT numElements = ARRAYSIZE(layout);
|
||||
|
||||
@@ -682,9 +684,9 @@ void wiRenderer::LoadWaterShaders()
|
||||
void wiRenderer::LoadTrailShaders(){
|
||||
VertexLayoutDesc layout[] =
|
||||
{
|
||||
{ "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "TEXCOORD", 1, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "POSITION", 0, FORMAT_R32G32B32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "TEXCOORD", 0, FORMAT_R32G32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
{ "TEXCOORD", 1, FORMAT_R32G32B32A32_FLOAT, 0, APPEND_ALIGNED_ELEMENT, INPUT_PER_VERTEX_DATA, 0 },
|
||||
};
|
||||
UINT numElements = ARRAYSIZE(layout);
|
||||
|
||||
@@ -3179,7 +3181,7 @@ void wiRenderer::PutEnvProbe(const XMFLOAT3& position, int resolution)
|
||||
{
|
||||
EnvironmentProbe* probe = new EnvironmentProbe;
|
||||
probe->transform(position);
|
||||
probe->cubeMap.InitializeCube(resolution, 1, true, DXGI_FORMAT_R16G16B16A16_FLOAT, 0);
|
||||
probe->cubeMap.InitializeCube(resolution, 1, true, FORMAT_R16G16B16A16_FLOAT, 0);
|
||||
|
||||
GetDevice()->LOCK();
|
||||
|
||||
|
||||
+27
-27
@@ -48,8 +48,8 @@ typedef map<string, Material*> MaterialCollection;
|
||||
class wiRenderer
|
||||
{
|
||||
public:
|
||||
static GraphicsDevice* graphicsDevice;
|
||||
static GraphicsDevice* GetDevice() { return graphicsDevice; }
|
||||
static wiGraphicsTypes::GraphicsDevice* graphicsDevice;
|
||||
static wiGraphicsTypes::GraphicsDevice* GetDevice() { return graphicsDevice; }
|
||||
|
||||
#ifndef WINSTORE_SUPPORT
|
||||
static void InitDevice(HWND window, int screenW, int screenH, bool windowed);
|
||||
@@ -59,7 +59,7 @@ public:
|
||||
static void Present(function<void()> drawToScreen1=nullptr,function<void()> drawToScreen2=nullptr,function<void()> drawToScreen3=nullptr);
|
||||
|
||||
|
||||
static Sampler samplers[SSLOT_COUNT];
|
||||
static wiGraphicsTypes::Sampler samplers[SSLOT_COUNT];
|
||||
|
||||
|
||||
static int SHADOWMAPRES,SOFTSHADOW,POINTLIGHTSHADOW,POINTLIGHTSHADOWRES,SPOTLIGHTSHADOW,SPOTLIGHTSHADOWRES;
|
||||
@@ -248,16 +248,16 @@ protected:
|
||||
};
|
||||
|
||||
|
||||
static BufferResource constantBuffers[CBTYPE_LAST];
|
||||
static VertexShader vertexShaders[VSTYPE_LAST];
|
||||
static PixelShader pixelShaders[PSTYPE_LAST];
|
||||
static GeometryShader geometryShaders[GSTYPE_LAST];
|
||||
static HullShader hullShaders[HSTYPE_LAST];
|
||||
static DomainShader domainShaders[DSTYPE_LAST];
|
||||
static RasterizerState rasterizers[RSTYPE_LAST];
|
||||
static DepthStencilState depthStencils[DSSTYPE_LAST];
|
||||
static VertexLayout vertexLayouts[VLTYPE_LAST];
|
||||
static BlendState blendStates[BSTYPE_LAST];
|
||||
static wiGraphicsTypes::BufferResource constantBuffers[CBTYPE_LAST];
|
||||
static wiGraphicsTypes::VertexShader vertexShaders[VSTYPE_LAST];
|
||||
static wiGraphicsTypes::PixelShader pixelShaders[PSTYPE_LAST];
|
||||
static wiGraphicsTypes::GeometryShader geometryShaders[GSTYPE_LAST];
|
||||
static wiGraphicsTypes::HullShader hullShaders[HSTYPE_LAST];
|
||||
static wiGraphicsTypes::DomainShader domainShaders[DSTYPE_LAST];
|
||||
static wiGraphicsTypes::RasterizerState rasterizers[RSTYPE_LAST];
|
||||
static wiGraphicsTypes::DepthStencilState depthStencils[DSSTYPE_LAST];
|
||||
static wiGraphicsTypes::VertexLayout vertexLayouts[VLTYPE_LAST];
|
||||
static wiGraphicsTypes::BlendState blendStates[BSTYPE_LAST];
|
||||
|
||||
|
||||
void UpdateSpheres();
|
||||
@@ -271,7 +271,7 @@ protected:
|
||||
static bool wireRender, debugSpheres, debugBoneLines, debugBoxes;
|
||||
|
||||
|
||||
static Texture2D* enviroMap,*colorGrading;
|
||||
static wiGraphicsTypes::Texture2D* enviroMap,*colorGrading;
|
||||
static void LoadBuffers();
|
||||
static void LoadBasicShaders();
|
||||
static void LoadLineShaders();
|
||||
@@ -322,10 +322,10 @@ public:
|
||||
static void SetToDrawDebugBoxes(bool param){debugBoxes=param;}
|
||||
static bool GetToDrawDebugSpheres(){return debugSpheres;};
|
||||
static bool GetToDrawDebugBoxes(){return debugBoxes;};
|
||||
static Texture2D* GetColorGrading(){return colorGrading;};
|
||||
static void SetColorGrading(Texture2D* tex){colorGrading=tex;};
|
||||
static void SetEnviromentMap(Texture2D* tex){ enviroMap = tex; }
|
||||
static Texture2D* GetEnviromentMap(){ return enviroMap; }
|
||||
static wiGraphicsTypes::Texture2D* GetColorGrading(){return colorGrading;};
|
||||
static void SetColorGrading(wiGraphicsTypes::Texture2D* tex){colorGrading=tex;};
|
||||
static void SetEnviromentMap(wiGraphicsTypes::Texture2D* tex){ enviroMap = tex; }
|
||||
static wiGraphicsTypes::Texture2D* GetEnviromentMap(){ return enviroMap; }
|
||||
|
||||
|
||||
static Transform* getTransformByName(const string& name);
|
||||
@@ -352,28 +352,28 @@ public:
|
||||
static void UpdateFrameCB(GRAPHICSTHREAD threadID);
|
||||
static void UpdateCameraCB(GRAPHICSTHREAD threadID);
|
||||
static void SetClipPlane(XMFLOAT4 clipPlane, GRAPHICSTHREAD threadID);
|
||||
static void UpdateGBuffer(Texture2D* slot0, Texture2D* slot1, Texture2D* slot2, Texture2D* slot3, Texture2D* slot4, GRAPHICSTHREAD threadID);
|
||||
static void UpdateDepthBuffer(Texture2D* depth, Texture2D* linearDepth, GRAPHICSTHREAD threadID);
|
||||
static void UpdateGBuffer(wiGraphicsTypes::Texture2D* slot0, wiGraphicsTypes::Texture2D* slot1, wiGraphicsTypes::Texture2D* slot2, wiGraphicsTypes::Texture2D* slot3, wiGraphicsTypes::Texture2D* slot4, GRAPHICSTHREAD threadID);
|
||||
static void UpdateDepthBuffer(wiGraphicsTypes::Texture2D* depth, wiGraphicsTypes::Texture2D* linearDepth, GRAPHICSTHREAD threadID);
|
||||
|
||||
static void DrawSky(GRAPHICSTHREAD threadID, bool isReflection = false);
|
||||
static void DrawSun(GRAPHICSTHREAD threadID);
|
||||
static void DrawWorld(Camera* camera, bool DX11Eff, int tessF, GRAPHICSTHREAD threadID
|
||||
, bool BlackOut, bool isReflection, SHADERTYPE shaded, Texture2D* refRes, bool grass, GRAPHICSTHREAD thread);
|
||||
, bool BlackOut, bool isReflection, SHADERTYPE shaded, wiGraphicsTypes::Texture2D* refRes, bool grass, GRAPHICSTHREAD thread);
|
||||
static void ClearShadowMaps(GRAPHICSTHREAD threadID);
|
||||
static void DrawForShadowMap(GRAPHICSTHREAD threadID);
|
||||
static void DrawWorldTransparent(Camera* camera, Texture2D* refracRes, Texture2D* refRes
|
||||
, Texture2D* waterRippleNormals, GRAPHICSTHREAD threadID);
|
||||
static void DrawWorldTransparent(Camera* camera, wiGraphicsTypes::Texture2D* refracRes, wiGraphicsTypes::Texture2D* refRes
|
||||
, wiGraphicsTypes::Texture2D* waterRippleNormals, GRAPHICSTHREAD threadID);
|
||||
void DrawDebugSpheres(Camera* camera, GRAPHICSTHREAD threadID);
|
||||
static void DrawDebugBoneLines(Camera* camera, GRAPHICSTHREAD threadID);
|
||||
static void DrawDebugLines(Camera* camera, GRAPHICSTHREAD threadID);
|
||||
static void DrawDebugBoxes(Camera* camera, GRAPHICSTHREAD threadID);
|
||||
static void DrawSoftParticles(Camera* camera, GRAPHICSTHREAD threadID, bool dark = false);
|
||||
static void DrawSoftPremulParticles(Camera* camera, GRAPHICSTHREAD threadID, bool dark = false);
|
||||
static void DrawTrails(GRAPHICSTHREAD threadID, Texture2D* refracRes);
|
||||
static void DrawImagesAdd(GRAPHICSTHREAD threadID, Texture2D* refracRes);
|
||||
static void DrawTrails(GRAPHICSTHREAD threadID, wiGraphicsTypes::Texture2D* refracRes);
|
||||
static void DrawImagesAdd(GRAPHICSTHREAD threadID, wiGraphicsTypes::Texture2D* refracRes);
|
||||
//alpha-opaque
|
||||
static void DrawImages(GRAPHICSTHREAD threadID, Texture2D* refracRes);
|
||||
static void DrawImagesNormals(GRAPHICSTHREAD threadID, Texture2D* refracRes);
|
||||
static void DrawImages(GRAPHICSTHREAD threadID, wiGraphicsTypes::Texture2D* refracRes);
|
||||
static void DrawImagesNormals(GRAPHICSTHREAD threadID, wiGraphicsTypes::Texture2D* refracRes);
|
||||
static void DrawLights(Camera* camera, GRAPHICSTHREAD threadID, unsigned int stencilRef = 2);
|
||||
static void DrawVolumeLights(Camera* camera, GRAPHICSTHREAD threadID);
|
||||
static void DrawLensFlares(GRAPHICSTHREAD threadID);
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
#include "wiHairParticle.h"
|
||||
#include "wiPHYSICS.h"
|
||||
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
namespace wiRenderer_BindLua
|
||||
{
|
||||
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
#include "wiSound.h"
|
||||
#include "wiHelper.h"
|
||||
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
wiResourceManager::filetypes wiResourceManager::types;
|
||||
wiResourceManager* wiResourceManager::globalResources = nullptr;
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ public:
|
||||
const Resource* get(const string& name, bool IncRefCount = false);
|
||||
//specify datatype for shaders
|
||||
void* add(const string& name, Data_Type newType = Data_Type::DYNAMIC
|
||||
, VertexLayoutDesc* vertexLayoutDesc = nullptr, UINT elementCount = 0, StreamOutDeclaration* streamOutDecl = nullptr);
|
||||
, wiGraphicsTypes::VertexLayoutDesc* vertexLayoutDesc = nullptr, UINT elementCount = 0, wiGraphicsTypes::StreamOutDeclaration* streamOutDecl = nullptr);
|
||||
bool del(const string& name, bool forceDelete = false);
|
||||
bool CleanUp();
|
||||
};
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "Texture_BindLua.h"
|
||||
#include "wiRenderer.h"
|
||||
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
const char wiResourceManager_BindLua::className[] = "Resource";
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
#include "wiImage.h"
|
||||
#include "wiRenderer.h"
|
||||
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
|
||||
wiSprite::wiSprite(wiResourceManager* contentHolder) :ContentHolder(contentHolder)
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ class wiSprite : public wiImage
|
||||
{
|
||||
private:
|
||||
string texture, mask, normal;
|
||||
Texture2D* texturePointer,*normalPointer,*maskPointer;
|
||||
wiGraphicsTypes::Texture2D* texturePointer,*normalPointer,*maskPointer;
|
||||
wiResourceManager* ContentHolder;
|
||||
public:
|
||||
wiSprite(wiResourceManager* contentHolder = nullptr);
|
||||
@@ -22,7 +22,7 @@ public:
|
||||
|
||||
void Update(float);
|
||||
void Update();
|
||||
void Draw(Texture2D* refracRes, GRAPHICSTHREAD threadID);
|
||||
void Draw(wiGraphicsTypes::Texture2D* refracRes, GRAPHICSTHREAD threadID);
|
||||
void Draw();
|
||||
void DrawNormal(GRAPHICSTHREAD threadID);
|
||||
|
||||
@@ -66,7 +66,7 @@ public:
|
||||
};
|
||||
Anim anim;
|
||||
|
||||
Texture2D* getTexture(){return texturePointer;}
|
||||
void setTexture(Texture2D* value){texturePointer=value;}
|
||||
wiGraphicsTypes::Texture2D* getTexture(){return texturePointer;}
|
||||
void setTexture(wiGraphicsTypes::Texture2D* value){texturePointer=value;}
|
||||
};
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include "wiTextureHelper.h"
|
||||
#include "wiRandom.h"
|
||||
|
||||
wiTextureHelper::wiTextureHelperInstance* wiTextureHelper::instance = nullptr;
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
wiTextureHelper::wiTextureHelperInstance::wiTextureHelperInstance()
|
||||
{
|
||||
|
||||
@@ -17,41 +17,39 @@ private:
|
||||
HELPERTEXTURE_NORMALMAPDEFAULT,
|
||||
HELPERTEXTURE_COUNT
|
||||
};
|
||||
Texture2D* helperTextures[HELPERTEXTURE_COUNT];
|
||||
wiGraphicsTypes::Texture2D* helperTextures[HELPERTEXTURE_COUNT];
|
||||
|
||||
unordered_map<unsigned long, Texture2D*> colorTextures;
|
||||
unordered_map<unsigned long, wiGraphicsTypes::Texture2D*> colorTextures;
|
||||
public:
|
||||
wiTextureHelperInstance();
|
||||
~wiTextureHelperInstance();
|
||||
|
||||
Texture2D* getRandom64x64();
|
||||
Texture2D* getColorGradeDefault();
|
||||
Texture2D* getNormalMapDefault();
|
||||
wiGraphicsTypes::Texture2D* getRandom64x64();
|
||||
wiGraphicsTypes::Texture2D* getColorGradeDefault();
|
||||
wiGraphicsTypes::Texture2D* getNormalMapDefault();
|
||||
|
||||
Texture2D* getWhite();
|
||||
Texture2D* getBlack();
|
||||
Texture2D* getTransparent();
|
||||
Texture2D* getColor(const wiColor& color);
|
||||
wiGraphicsTypes::Texture2D* getWhite();
|
||||
wiGraphicsTypes::Texture2D* getBlack();
|
||||
wiGraphicsTypes::Texture2D* getTransparent();
|
||||
wiGraphicsTypes::Texture2D* getColor(const wiColor& color);
|
||||
};
|
||||
|
||||
static wiTextureHelperInstance* instance;
|
||||
|
||||
public:
|
||||
inline static wiTextureHelperInstance* getInstance()
|
||||
static wiTextureHelperInstance* getInstance()
|
||||
{
|
||||
if (instance != nullptr)
|
||||
return instance;
|
||||
|
||||
return instance = new wiTextureHelperInstance();
|
||||
static wiTextureHelperInstance* instance = new wiTextureHelperInstance();
|
||||
return instance;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
static HRESULT CreateTexture(Texture2D*& texture, T* data, UINT width, UINT height, UINT channelCount, DXGI_FORMAT format = DXGI_FORMAT_R8G8B8A8_UNORM)
|
||||
static HRESULT CreateTexture(wiGraphicsTypes::Texture2D*& texture, T* data, UINT width, UINT height, UINT channelCount, wiGraphicsTypes::FORMAT format = wiGraphicsTypes::FORMAT_R8G8B8A8_UNORM)
|
||||
{
|
||||
if (data == nullptr)
|
||||
{
|
||||
return E_FAIL;
|
||||
}
|
||||
using namespace wiGraphicsTypes;
|
||||
|
||||
Texture2DDesc textureDesc;
|
||||
ZeroMemory(&textureDesc, sizeof(textureDesc));
|
||||
@@ -67,27 +65,13 @@ public:
|
||||
textureDesc.CPUAccessFlags = 0;
|
||||
textureDesc.MiscFlags = 0;
|
||||
|
||||
//ShaderResourceViewDesc shaderResourceViewDesc;
|
||||
//shaderResourceViewDesc.Format = format;
|
||||
//shaderResourceViewDesc.ViewDimension = RESOURCE_DIMENSION_TEXTURE2D;
|
||||
////shaderResourceViewDesc.Texture2D.MostDetailedMip = 0;
|
||||
////shaderResourceViewDesc.Texture2D.MipLevels = 1;
|
||||
//shaderResourceViewDesc.mipLevels = 1;
|
||||
|
||||
SubresourceData InitData;
|
||||
ZeroMemory(&InitData, sizeof(InitData));
|
||||
InitData.pSysMem = data;
|
||||
InitData.SysMemPitch = static_cast<UINT>(width * channelCount);
|
||||
|
||||
//Texture2D* texture2D = nullptr;
|
||||
HRESULT hr;
|
||||
hr = wiRenderer::GetDevice()->CreateTexture2D(&textureDesc, &InitData, &texture);
|
||||
//if (FAILED(hr))
|
||||
//{
|
||||
// return hr;
|
||||
//}
|
||||
//hr = wiRenderer::GetDevice()->CreateShaderResourceView(texture2D, &shaderResourceViewDesc, &texture);
|
||||
//SAFE_RELEASE(texture2D);
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user