diff --git a/DanBias.sln b/DanBias.sln
index 3be1b5c0..af80c6a1 100644
--- a/DanBias.sln
+++ b/DanBias.sln
@@ -25,6 +25,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetworkDependencies", "Netw
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GameLogic", "GameLogic\GameLogic.vcxproj", "{B1195BB9-B3A5-47F0-906C-8DEA384D1520}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tester", "Tester\Tester.vcxproj", "{9C60E0F4-9DD5-48FC-A5A4-F3B0CC92367B}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Mixed Platforms = Debug|Mixed Platforms
@@ -161,10 +163,22 @@ Global
{B1195BB9-B3A5-47F0-906C-8DEA384D1520}.Debug|Win32.Build.0 = Debug|Win32
{B1195BB9-B3A5-47F0-906C-8DEA384D1520}.Debug|x64.ActiveCfg = Debug|x64
{B1195BB9-B3A5-47F0-906C-8DEA384D1520}.Debug|x64.Build.0 = Debug|x64
+ {B1195BB9-B3A5-47F0-906C-8DEA384D1520}.Debug|x64.Deploy.0 = Debug|x64
{B1195BB9-B3A5-47F0-906C-8DEA384D1520}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{B1195BB9-B3A5-47F0-906C-8DEA384D1520}.Release|Win32.ActiveCfg = Release|Win32
{B1195BB9-B3A5-47F0-906C-8DEA384D1520}.Release|Win32.Build.0 = Release|Win32
{B1195BB9-B3A5-47F0-906C-8DEA384D1520}.Release|x64.ActiveCfg = Release|Win32
+ {9C60E0F4-9DD5-48FC-A5A4-F3B0CC92367B}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
+ {9C60E0F4-9DD5-48FC-A5A4-F3B0CC92367B}.Debug|Mixed Platforms.Build.0 = Debug|Win32
+ {9C60E0F4-9DD5-48FC-A5A4-F3B0CC92367B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9C60E0F4-9DD5-48FC-A5A4-F3B0CC92367B}.Debug|Win32.Build.0 = Debug|Win32
+ {9C60E0F4-9DD5-48FC-A5A4-F3B0CC92367B}.Debug|x64.ActiveCfg = Debug|x64
+ {9C60E0F4-9DD5-48FC-A5A4-F3B0CC92367B}.Debug|x64.Build.0 = Debug|x64
+ {9C60E0F4-9DD5-48FC-A5A4-F3B0CC92367B}.Release|Mixed Platforms.ActiveCfg = Release|Win32
+ {9C60E0F4-9DD5-48FC-A5A4-F3B0CC92367B}.Release|Mixed Platforms.Build.0 = Release|Win32
+ {9C60E0F4-9DD5-48FC-A5A4-F3B0CC92367B}.Release|Win32.ActiveCfg = Release|Win32
+ {9C60E0F4-9DD5-48FC-A5A4-F3B0CC92367B}.Release|Win32.Build.0 = Release|Win32
+ {9C60E0F4-9DD5-48FC-A5A4-F3B0CC92367B}.Release|x64.ActiveCfg = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/OysterGraphics/Engine.cpp b/OysterGraphics/Engine.cpp
index bee1e63d..a05663fb 100644
--- a/OysterGraphics/Engine.cpp
+++ b/OysterGraphics/Engine.cpp
@@ -72,24 +72,20 @@ bool Oyster::Engine::Init::CreateSwapChain(HWND Window,int NrofBuffers,bool MSAA
bool Oyster::Engine::Init::FullInit(const Setup& setup)
{
- if(!Oyster::Engine::Init::Instance(setup.Common.SingleThreaded,setup.Common.Reference,setup.Common.ForceDX11))
+ if(!Oyster::Engine::Init::Instance(setup.SingleThreaded,setup.Reference,setup.ForceDX11))
return false;
- if(setup.Window.InitWindow)
- if(!Oyster::Engine::Init::InitializeWindow(setup.Window.appname,setup.Window.classname,setup.Window.hinstance,setup.Window.nCmdShow,setup.Window.wProc, true))
- return false;
- if(!Oyster::Engine::Init::CreateSwapChain(NULL,setup.Common.NrOfBuffers,setup.Common.MSAA_Quality,setup.Common.Fullscreen))
+ if(!Oyster::Engine::Init::CreateSwapChain(NULL,setup.NrOfBuffers,setup.MSAA_Quality,setup.Fullscreen))
return false;
- if(!Oyster::Shader::InitShaders())
- return false;
- if(setup.Common.GenerateDepthStencil)
- if(!CreateDepthStencil(setup.Common.MSAA_Quality))
+ /// \todo Add Init Shaders to full Init Process
+ if(setup.GenerateDepthStencil)
+ if(!CreateDepthStencil(setup.MSAA_Quality))
return false;
if(!CreateRenderTarget())
return false;
if(!Oyster::Render::Textbox::Init())
return false;
SetViewPort();
- if(setup.Common.BindDefault)
+ if(setup.BindDefault)
Oyster::Engine::PrepareForRendering::BindRenderTargets(&instance.rtv,1,instance.depth);
instance.States.NrOfSamples = 14;
@@ -152,14 +148,14 @@ void Oyster::Engine::PrepareForRendering::Begin2DRender()
{
Oyster::Resources::Buffers::V2DSprites.Apply();
Oyster::Resources::Buffers::CBufferGs.Apply();
- Shader::SetShaderEffect(Oyster::Resources::ShaderEffects::BasicSprite);
+ Core::ShaderManager::SetShaderEffect(Oyster::Resources::ShaderEffects::BasicSprite);
}
void Oyster::Engine::PrepareForRendering::Begin2DTextRender()
{
Oyster::Render::Textbox::TextBuffer.Apply();
Oyster::Resources::Buffers::CBufferGs.Apply();
- Oyster::Shader::SetShaderEffect(Oyster::Resources::ShaderEffects::Text2DEffect);
+ Oyster::Core::ShaderManager::SetShaderEffect(Oyster::Resources::ShaderEffects::Text2DEffect);
}
@@ -366,7 +362,7 @@ void Blur(int target)
Oyster::Engine::PrepareForRendering::BindUAV(&Oyster::Resources::PipeLineResourses::TempUav,1);
//dispatch blurr horizontal
- Oyster::Shader::Set::SetCompute(Oyster::Shader::Get::GetCompute("BlurHorizontal"));
+ Oyster::Core::ShaderManager::Set::Compute(Oyster::Core::ShaderManager::Get::Compute(L"BlurHorizontal"));
Oyster::Core::DeviceContext->Dispatch(7,instance.sizeX,1);
//clean Pipeline
@@ -378,7 +374,7 @@ void Blur(int target)
Oyster::Engine::PrepareForRendering::BindUAV(&Oyster::Resources::PipeLineResourses::LightTarget[target],1);
//dispatch blurr vertical
- Oyster::Shader::Set::SetCompute(Oyster::Shader::Get::GetCompute("BlurVertical"));
+ Oyster::Core::ShaderManager::Set::Compute(Oyster::Core::ShaderManager::Get::Compute(L"BlurVertical"));
Oyster::Core::DeviceContext->Dispatch(instance.sizeY,5,1);
//clean Pipeline
@@ -443,7 +439,7 @@ void Oyster::Engine::Pipeline::Deffered_Lightning::NewFrame(const Float4& col, c
void Oyster::Engine::Pipeline::Deffered_Lightning::BeginRenderGeometry()
{
Oyster::Engine::PrepareForRendering::BindRenderTargets( Oyster::Resources::PipeLineResourses::GeometryTarget, 5 );
- Oyster::Shader::SetShaderEffect( Oyster::Resources::ShaderEffects::ModelEffect );
+ Oyster::Core::ShaderManager::SetShaderEffect( Oyster::Resources::ShaderEffects::ModelEffect );
}
void Oyster::Engine::Pipeline::Deffered_Lightning::RenderGeometry(const Oyster::Render::Model* models,int count)
@@ -472,7 +468,7 @@ void Oyster::Engine::Pipeline::Deffered_Lightning::RenderLightning()
Oyster::Core::DeviceContext->CSSetShaderResources(0,5, Oyster::Resources::PipeLineResourses::GeometryOut);
Oyster::Resources::Buffers::CBufferPipelineCs.Apply();
Oyster::Core::DeviceContext->CSSetShaderResources( 6, 4, Oyster::Resources::PipeLineResourses::ComputeResources );
- Oyster::Shader::Set::SetCompute( Oyster::Shader::Get::GetCompute("Pass0") );
+ Oyster::Core::ShaderManager::Set::Compute( Oyster::Core::ShaderManager::Get::Compute(L"Pass0") );
Oyster::Core::DeviceContext->Dispatch( 49, 36, 1 );
@@ -490,7 +486,7 @@ void Oyster::Engine::Pipeline::Deffered_Lightning::RenderLightning()
//prepare and render final pass
Oyster::Engine::PrepareForRendering::BindBackBufferAsUAV();
- Oyster::Shader::Set::SetCompute( Oyster::Shader::Get::GetCompute("Pass1") );
+ Oyster::Core::ShaderManager::Set::Compute( Oyster::Core::ShaderManager::Get::Compute(L"Pass1") );
Oyster::Core::DeviceContext->CSSetShaderResources( 0, 4, Oyster::Resources::PipeLineResourses::LightOut );
Oyster::Core::DeviceContext->Dispatch( 49, 36, 1 );
diff --git a/OysterGraphics/Engine.h b/OysterGraphics/Engine.h
index a9ef953c..78f9d74b 100644
--- a/OysterGraphics/Engine.h
+++ b/OysterGraphics/Engine.h
@@ -21,38 +21,25 @@ namespace Oyster
public:
struct Setup
{
- struct
- {
- bool InitWindow;
- LPCSTR appname;
- LPCSTR classname;
- HINSTANCE hinstance;
- int nCmdShow;
- WNDPROC wProc;
- bool ManageWindow;
- }Window;
- struct
- {
- int NrOfBuffers;
- bool MSAA_Quality;
- bool Fullscreen;
- bool SingleThreaded;
- bool Reference;
- bool ForceDX11;
- bool GenerateDepthStencil;
- bool BindDefault;
- }Common;
+ int NrOfBuffers;
+ bool MSAA_Quality;
+ bool Fullscreen;
+ bool SingleThreaded;
+ bool Reference;
+ bool ForceDX11;
+ bool GenerateDepthStencil;
+ bool BindDefault;
//all but Window params have Default Values
Setup()
{
- Common.NrOfBuffers=1;
- Common.MSAA_Quality = false;
- Common.Fullscreen = true;
- Common.SingleThreaded = true;
- Common.Reference = false;
- Common.ForceDX11 = false;
- Common.GenerateDepthStencil = true;
- Common.BindDefault = true;
+ NrOfBuffers=1;
+ MSAA_Quality = false;
+ Fullscreen = true;
+ SingleThreaded = true;
+ Reference = false;
+ ForceDX11 = false;
+ GenerateDepthStencil = true;
+ BindDefault = true;
}
};
diff --git a/OysterGraphics/OysterGraphics.vcxproj b/OysterGraphics/OysterGraphics.vcxproj
index 56dbbb16..149735e3 100644
--- a/OysterGraphics/OysterGraphics.vcxproj
+++ b/OysterGraphics/OysterGraphics.vcxproj
@@ -101,7 +101,7 @@
Level3
Disabled
true
- ..\OysterPhysics3D;..\OysterMath;..\Misc;%(AdditionalIncludeDirectories)
+ ..\OysterPhysic3D\Collision;..\OysterPhysics3D;..\OysterMath;..\Misc;%(AdditionalIncludeDirectories)
true
diff --git a/OysterGraphics/Resourses/ShaderEffects.cpp b/OysterGraphics/Resourses/ShaderEffects.cpp
index 8e09956b..33de3c05 100644
--- a/OysterGraphics/Resourses/ShaderEffects.cpp
+++ b/OysterGraphics/Resourses/ShaderEffects.cpp
@@ -4,16 +4,16 @@ namespace Oyster
{
namespace Resources
{
- Shader::ShaderEffect ShaderEffects::BasicSprite = Shader::ShaderEffect();
- Shader::ShaderEffect ShaderEffects::Text2DEffect = Shader::ShaderEffect();
- Shader::ShaderEffect ShaderEffects::ModelEffect = Shader::ShaderEffect();
+ Core::ShaderManager::ShaderEffect ShaderEffects::BasicSprite = Core::ShaderManager::ShaderEffect();
+ Core::ShaderManager::ShaderEffect ShaderEffects::Text2DEffect = Core::ShaderManager::ShaderEffect();
+ Core::ShaderManager::ShaderEffect ShaderEffects::ModelEffect = Core::ShaderManager::ShaderEffect();
void ShaderEffects::Init()
{
BasicSprite.IAStage.Topology = D3D11_PRIMITIVE_TOPOLOGY_POINTLIST;
- BasicSprite.Shaders.Vertex = Oyster::Shader::Get::GetVertex("2D");
- BasicSprite.Shaders.Geometry = Oyster::Shader::Get::GetGeometry("2D");
- BasicSprite.Shaders.Pixel = Oyster::Shader::Get::GetPixel("Texture0");
+ BasicSprite.Shaders.Vertex = Oyster::Core::ShaderManager::Get::Vertex(L"2D");
+ BasicSprite.Shaders.Geometry = Oyster::Core::ShaderManager::Get::Geometry(L"2D");
+ BasicSprite.Shaders.Pixel = Oyster::Core::ShaderManager::Get::Pixel(L"Texture0");
D3D11_BLEND_DESC blendDesc;
blendDesc.AlphaToCoverageEnable=false;
@@ -38,16 +38,16 @@ namespace Oyster
ID3D11InputLayout* layout;
- Oyster::Shader::CreateInputLayout(SpriteVertexDesc,1,Oyster::Shader::Get::GetVertex("2D"),layout);
+ Oyster::Core::ShaderManager::CreateInputLayout(SpriteVertexDesc,1,Oyster::Core::ShaderManager::Get::Vertex(L"2D"),layout);
BasicSprite.IAStage.Layout = layout;
Text2DEffect.IAStage.Topology=D3D11_PRIMITIVE_TOPOLOGY_POINTLIST;
- Text2DEffect.Shaders.Vertex = Oyster::Shader::Get::GetVertex("Text");
- Text2DEffect.Shaders.Geometry = Oyster::Shader::Get::GetGeometry("Text");
- Text2DEffect.Shaders.Pixel = Oyster::Shader::Get::GetPixel("Texture0");
+ Text2DEffect.Shaders.Vertex = Oyster::Core::ShaderManager::Get::Vertex(L"Text");
+ Text2DEffect.Shaders.Geometry = Oyster::Core::ShaderManager::Get::Geometry(L"Text");
+ Text2DEffect.Shaders.Pixel = Oyster::Core::ShaderManager::Get::Pixel(L"Texture0");
- Oyster::Shader::CreateInputLayout(Text2DDesc,3,Oyster::Shader::Get::GetVertex("Text"),layout);
+ Oyster::Core::ShaderManager::CreateInputLayout(Text2DDesc,3,Oyster::Core::ShaderManager::Get::Vertex(L"Text"),layout);
Text2DEffect.IAStage.Layout = layout;
@@ -56,11 +56,11 @@ namespace Oyster
Text2DEffect.RenderStates.BlendState = blender;
ModelEffect.IAStage.Topology = D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST;
- Oyster::Shader::CreateInputLayout(ModelDesc,3,Oyster::Shader::Get::GetVertex("OBJ"),layout);
+ Oyster::Core::ShaderManager::CreateInputLayout(ModelDesc,3,Oyster::Core::ShaderManager::Get::Vertex(L"OBJ"),layout);
ModelEffect.IAStage.Layout = layout;
- ModelEffect.Shaders.Vertex = Oyster::Shader::Get::GetVertex("OBJ");
- ModelEffect.Shaders.Pixel = Oyster::Shader::Get::GetPixel("OBJDEF");
+ ModelEffect.Shaders.Vertex = Oyster::Core::ShaderManager::Get::Vertex(L"OBJ");
+ ModelEffect.Shaders.Pixel = Oyster::Core::ShaderManager::Get::Pixel(L"OBJDEF");
Oyster::Buffer::BUFFER_INIT_DESC desc;
diff --git a/OysterGraphics/Resourses/ShaderEffects.h b/OysterGraphics/Resourses/ShaderEffects.h
index 7377bb7f..766d63a9 100644
--- a/OysterGraphics/Resourses/ShaderEffects.h
+++ b/OysterGraphics/Resourses/ShaderEffects.h
@@ -9,9 +9,9 @@ namespace Oyster
{
struct ShaderEffects
{
- static Oyster::Shader::ShaderEffect BasicSprite;
- static Oyster::Shader::ShaderEffect Text2DEffect;
- static Oyster::Shader::ShaderEffect ModelEffect;
+ static Oyster::Core::ShaderManager::ShaderEffect BasicSprite;
+ static Oyster::Core::ShaderManager::ShaderEffect Text2DEffect;
+ static Oyster::Core::ShaderManager::ShaderEffect ModelEffect;
static void Init();