Merge remote-tracking branch 'origin/master' into ResolutionChange

This commit is contained in:
Tleety
2016-02-19 13:17:31 +01:00
28 changed files with 639 additions and 69 deletions
+9 -1
View File
@@ -78,13 +78,21 @@ bool AABBvsTriangles(const AABB& box,
bool& isOnGround,
glm::vec3& outResolutionVector);
//Detects collision, but does not resolve.
bool AABBvsTriangles(const AABB& box,
const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix);
//Return true if the boxes are intersecting.
bool AABBVsAABB(const AABB& a, const AABB& b);
//Return true if the boxes are intersecting.
//Also outputs the minimum translation that box [a] would need in order to resolve collision.
bool AABBVsAABB(const AABB& a, const AABB& b, glm::vec3& minimumTranslation);
// Calculates an absolute AABB from an entity AABB component
// Calculates an absolute AABB from an entity AABB component or Model component.
// if takeModelBox is true, the AABB component will be ignored and box is calculated from Model.
// if takeModelBox is false, the AABB component will be prefered, if it exists.
boost::optional<EntityAABB> EntityAbsoluteAABB(EntityWrapper& entity, bool takeModelBox = false);
boost::optional<EntityAABB> AbsoluteAABBExplosionEffect(EntityWrapper& entity);
//Returns the first entity hit by the input ray. entitiesPotentiallyHitSorted needs to be sorted
+25
View File
@@ -0,0 +1,25 @@
#ifndef PerformanceTimer_h__
#define PerformanceTimer_h__
#include "../Common.h"
#include <boost/timer/timer.hpp>
using boost::timer::cpu_timer;
class PerformanceTimer
{
public:
static void StartTimer(std::string nameOfTimer);
static void StartTimerAndStopPrevious(std::string nameOfTimer);
static void StopTimer(std::string nameOfTimer);
static void SetFrameNumber(int frameNumber);
static void ResetAllTimers();
static void CreateExcelData();
private:
static std::map<std::string, cpu_timer> timers;
static cpu_timer m_Timer;
static std::string currentTimerRunning;
};
#endif
+10 -3
View File
@@ -6,6 +6,7 @@
#include "System.h"
#include "World.h"
#include "EPause.h"
#include "PerformanceTimer.h"
class SystemPipeline
{
@@ -72,7 +73,10 @@ public:
// Update
for (auto& system : group.ImpureSystems) {
auto className = (std::string)typeid(*system).name();
PerformanceTimer::StartTimer(className);
system->Update(dt);
PerformanceTimer::StopTimer(className);
}
for (auto& pair : group.PureSystems) {
const std::string& componentName = pair.first;
@@ -83,7 +87,10 @@ public:
}
for (auto& component : *pool) {
for (auto& system : systems) {
auto className = (std::string)typeid(*system).name();
PerformanceTimer::StartTimer(className);
system->UpdateComponent(EntityWrapper(m_World, component.EntityID), component, dt);
PerformanceTimer::StopTimer(className);
}
}
}
@@ -106,9 +113,9 @@ private:
std::vector<UnorderedSystems> m_OrderedSystemGroups;
EventRelay<SystemPipeline, Events::Pause> m_EPause;
bool OnPause(const Events::Pause& e) {
if (e.World == m_World) {
m_Paused = true;
bool OnPause(const Events::Pause& e) {
if (e.World == m_World) {
m_Paused = true;
}
return true;
}
+2 -1
View File
@@ -7,7 +7,8 @@ namespace Events
{
struct ButtonClicked : public Event {
std::string EntityName = "DEFAULT STRING USED";
std::string EntityName;
EntityWrapper Entity;
};
}
+2 -1
View File
@@ -7,7 +7,8 @@ namespace Events
{
struct ButtonPressed : public Event {
std::string EntityName = "DEFAULT STRING USED";
std::string EntityName;
EntityWrapper Entity;
};
}
+4 -1
View File
@@ -6,7 +6,10 @@
namespace Events
{
struct ButtonReleased : public Event { };
struct ButtonReleased : public Event {
std::string EntityName;
EntityWrapper Entity;
};
}
+2 -2
View File
@@ -108,7 +108,7 @@ struct ModelJob : RenderJob
EndIndex = matGroup->EndIndex;
Matrix = matrix;
Color = modelComponent["Color"];
GlowIntencity = ((double)modelComponent["GlowIntensity"]);
GlowIntensity = ((double)modelComponent["GlowIntensity"]);
Entity = modelComponent.EntityID;
glm::vec3 abspos = Transform::AbsolutePosition(world, modelComponent.EntityID);
glm::vec3 worldpos = glm::vec3(camera->ViewMatrix() * glm::vec4(abspos, 1));
@@ -171,7 +171,7 @@ struct ModelJob : RenderJob
::Skeleton::AnimationOffset AnimationOffset;
float GlowIntencity = 8.0;
float GlowIntensity = 8.0;
glm::vec4 DiffuseColor;
glm::vec4 SpecularColor;
glm::vec4 IncandescenceColor;
+1
View File
@@ -23,6 +23,7 @@
#include "imgui/imgui.h"
#include "TextPass.h"
#include "Util/CommonFunctions.h"
#include "Core/PerformanceTimer.h"
class Renderer : public IRenderer
{