framerate double
This commit is contained in:
parent
5119b287d6
commit
9a0f363146
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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]));
|
||||
|
|
|
@ -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