Merge branch 'Graphics2D' into Graphics
This commit is contained in:
commit
898fc883e9
|
@ -18,6 +18,8 @@ namespace Oyster
|
|||
{
|
||||
Math::Matrix WV;
|
||||
Math::Matrix WVP;
|
||||
int Animated;
|
||||
Math::Float3 Pad;
|
||||
};
|
||||
|
||||
struct FinalVertex
|
||||
|
@ -52,8 +54,6 @@ namespace Oyster
|
|||
struct AnimationData
|
||||
{
|
||||
Math::Float4x4 AnimatedData[100];
|
||||
int Animated;
|
||||
Math::Float3 Pad;
|
||||
};
|
||||
|
||||
struct GuiData
|
||||
|
|
|
@ -163,7 +163,17 @@ namespace Oyster
|
|||
|
||||
void API::RenderGuiElement(API::Texture tex, Math::Float2 pos, Math::Float2 size)
|
||||
{
|
||||
Render::Rendering::Gui::Render((ID3D11Texture2D*)tex,pos,size);
|
||||
Render::Rendering::Gui::Render((ID3D11ShaderResourceView*)tex,pos,size);
|
||||
}
|
||||
|
||||
API::Texture API::CreateTexture(std::wstring filename)
|
||||
{
|
||||
return Core::loader.LoadResource((Core::texturePath + filename).c_str(),Oyster::Graphics::Loading::LoadTexture, Oyster::Graphics::Loading::UnloadTexture);
|
||||
}
|
||||
|
||||
void API::DeleteTexture(API::Texture tex)
|
||||
{
|
||||
Core::loader.ReleaseResource(tex);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -68,6 +68,7 @@ namespace Oyster
|
|||
static void DeleteModel(Oyster::Graphics::Model::Model* model);
|
||||
|
||||
static Texture CreateTexture(std::wstring filename);
|
||||
static void DeleteTexture(Texture);
|
||||
|
||||
//! @brief adds a light to the scene
|
||||
static void AddLight(Definitions::Pointlight light);
|
||||
|
|
|
@ -72,12 +72,7 @@ namespace Oyster
|
|||
pm.WV = View * models[i].WorldMatrix;
|
||||
pm.WVP = Projection * pm.WV;
|
||||
|
||||
void* data = Resources::Deffered::ModelData.Map();
|
||||
memcpy(data,&(pm),sizeof(pm));
|
||||
Resources::Deffered::ModelData.Unmap();
|
||||
|
||||
Model::ModelInfo* info = (Model::ModelInfo*)models[i].info;
|
||||
|
||||
Model::ModelInfo* info = models[i].info;
|
||||
|
||||
Definitions::AnimationData am; //final
|
||||
if(info->Animated && models[i].AnimationPlaying != -1)
|
||||
|
@ -105,12 +100,7 @@ namespace Oyster
|
|||
|
||||
cube2->WorldMatrix = Scale;
|
||||
cube2->WorldMatrix.v[3] = info->bones[b].Absolute.v[3];
|
||||
//Basic::RenderScene(cube2,1, View, Projection);
|
||||
}
|
||||
//BoneAnimated[8] = Math3D::RotationMatrix(3.14/4, Math::Float3(0, 0, 1)) * info->bones[8].Relative;
|
||||
//BoneAnimated[31] = Math3D::RotationMatrix(3.14/4, Math::Float3(0, 0, 1)) * info->bones[31].Relative;
|
||||
////for each bone in animation
|
||||
////HACK use first bone
|
||||
int b = 0;
|
||||
Model::Animation A = info->Animations[models[i].AnimationPlaying];
|
||||
while(models[i].AnimationTime>A.duration)
|
||||
|
@ -160,28 +150,20 @@ namespace Oyster
|
|||
am.AnimatedData[b] = (BoneAbsAnimated[b] * SkinTransform[b]);
|
||||
}
|
||||
|
||||
//retore to draw animated model
|
||||
Definitions::PerModel pm;
|
||||
pm.WV = View * models[i].WorldMatrix;
|
||||
pm.WVP = Projection * pm.WV;
|
||||
|
||||
void *data = Resources::Deffered::AnimationData.Map();
|
||||
memcpy(data,&am,sizeof(Definitions::AnimationData));
|
||||
Resources::Deffered::AnimationData.Unmap();
|
||||
|
||||
pm.Animated = 1;
|
||||
}
|
||||
else
|
||||
pm.Animated = 0;
|
||||
|
||||
void* data = Resources::Deffered::ModelData.Map();
|
||||
memcpy(data,&(pm),sizeof(pm));
|
||||
Resources::Deffered::ModelData.Unmap();
|
||||
|
||||
//delete[]SkinTransform;
|
||||
//delete[]BoneAbsAnimated;
|
||||
//delete[]BoneAnimated;
|
||||
|
||||
am.Animated = 1;
|
||||
}
|
||||
else
|
||||
am.Animated = 0;
|
||||
|
||||
data = Resources::Deffered::AnimationData.Map();
|
||||
memcpy(data,&am,sizeof(Definitions::AnimationData));
|
||||
Resources::Deffered::AnimationData.Unmap();
|
||||
|
||||
if(info->Material.size())
|
||||
{
|
||||
Core::deviceContext->PSSetShaderResources(0,(UINT)info->Material.size(),&(info->Material[0]));
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
#include "GuiRender.h"
|
||||
#include "../Resources/Deffered.h"
|
||||
#include "../../Definitions/GraphicalDefinition.h"
|
||||
|
||||
namespace Oyster
|
||||
{
|
||||
|
@ -12,31 +14,28 @@ namespace Oyster
|
|||
{
|
||||
}
|
||||
|
||||
void Gui::Render(ID3D11Texture2D* tex,Math::Float2 pos, Math::Float2 size)
|
||||
void Gui::Render(ID3D11ShaderResourceView* tex,Math::Float2 pos, Math::Float2 size)
|
||||
{
|
||||
//Oyster::Core::DeviceContext->PSSetShaderResources(0,1,&srv);
|
||||
Core::deviceContext->PSSetShaderResources(0,1,&tex);
|
||||
|
||||
//Pos.x -= instance.sizeX/2;
|
||||
//Pos.x += size.x/2;
|
||||
pos *= 2;
|
||||
pos -= 1;
|
||||
pos.y *= -1;
|
||||
|
||||
//Pos.y -= instance.sizeY/2;
|
||||
//Pos.y += size.y/2;
|
||||
Definitions::GuiData gd;
|
||||
|
||||
//Matrix m;
|
||||
//m = Math::Matrix::identity;
|
||||
//float width = (1.0f/(instance.sizeX/2.0f));
|
||||
//float height = (1.0f/(instance.sizeY/2.0f));
|
||||
//m.m41=Pos.x * width;
|
||||
//m.m42=-Pos.y * height;
|
||||
//m.m43=Pos.z;
|
||||
//m.m11=width*size.x/2;
|
||||
//m.m22=height*size.y/2;
|
||||
gd.Translation = Math::Matrix::identity;
|
||||
gd.Translation.m41 = pos.x;
|
||||
gd.Translation.m42 = pos.y;
|
||||
gd.Translation.m11 = size.x;
|
||||
gd.Translation.m22 = size.y;
|
||||
|
||||
//void* dest = Resources::Buffers::CBufferGs.Map();
|
||||
//memcpy(dest,&m.GetTranspose(),64);
|
||||
//Resources::Buffers::CBufferGs.Unmap();
|
||||
|
||||
//Oyster::Core::DeviceContext->Draw(1,0);
|
||||
void* data = Render::Resources::Deffered::GuiData.Map();
|
||||
memcpy(data,&gd,sizeof(gd));
|
||||
Render::Resources::Deffered::GuiData.Unmap();
|
||||
|
||||
Core::deviceContext->Draw(1,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@ namespace Oyster
|
|||
{
|
||||
public:
|
||||
static void BeginRender();
|
||||
static void Render(ID3D11Texture2D* tex, Math::Float2 pos, Math::Float2 size);
|
||||
static void Render(ID3D11ShaderResourceView* tex, Math::Float2 pos, Math::Float2 size);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,12 +33,12 @@ SamplerState S1 : register(s0);
|
|||
cbuffer Animation : register(b0)
|
||||
{
|
||||
float4x4 AnimatedData[100];
|
||||
int Animated;
|
||||
float3 Pad;
|
||||
}
|
||||
|
||||
cbuffer PerModel : register(b1)
|
||||
{
|
||||
matrix WV;
|
||||
matrix WVP;
|
||||
int Animated;
|
||||
float3 Pad;
|
||||
}
|
Loading…
Reference in New Issue