framerate double

This commit is contained in:
lanariel 2014-02-07 13:15:38 +01:00
parent 5119b287d6
commit 9a0f363146
5 changed files with 25 additions and 32 deletions

View File

@ -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

View File

@ -165,5 +165,15 @@ namespace Oyster
{
Render::Rendering::Gui::Render((ID3D11Texture2D*)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);
}
}
}

View File

@ -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);

View File

@ -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]));

View File

@ -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;
}