Commit 6309d3d8 authored by cutealien's avatar cutealien

Rewrite profiler implementation some more to get around linker troubles.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@4797 dfc29bdd-3216-0410-991c-e03cc46cb475
parent fafb83f2
......@@ -288,9 +288,23 @@ int main()
if (driverType==video::EDT_COUNT)
return 1;
/*
Profiler is independent of the device - so we can time the device setup
*/
MY_PROFILE(s32 pDev = getProfiler().add(L"createDevice", L"group a");)
MY_PROFILE(getProfiler().start(pDev);)
IrrlichtDevice * device = createDevice(driverType, core::dimension2d<u32>(640, 480));
if (device == 0)
{
/*
When working with start/stop you should add a stop to all exit paths.
Although in this case it wouldn't matter as we don't do anything with it when we quit here.
*/
MY_PROFILE(getProfiler().stop(pDev);)
return 1; // could not create selected driver.
}
MY_PROFILE(getProfiler().stop(pDev);)
video::IVideoDriver* driver = device->getVideoDriver();
IGUIEnvironment* env = device->getGUIEnvironment();
......
......@@ -27,7 +27,7 @@
<Project filename="24.CursorControl/CursorControl.cbp" />
<Project filename="25.XmlHandling/XmlHandling.cbp" />
<Project filename="26.OcclusionQuery/OcclusionQuery.cbp" />
<Project filename="30.Profiling/Profiling.cbp" />
<Project filename="30.Profiling/Profiling.cbp" active="1" />
<Project filename="Demo/demo.cbp" />
<Project filename="../tools/GUIEditor/GUIEditor_gcc.cbp" />
<Project filename="../tools/MeshConverter/MeshConverter.cbp" />
......
......@@ -2,23 +2,34 @@
// For conditions of distribution and use, see copyright notice in irrlicht.h
// Written by Michael Zeilfelder
#ifndef __PROFILER_H_INCLUDED__
#define __PROFILER_H_INCLUDED__
#ifndef __I_PROFILER_H_INCLUDED__
#define __I_PROFILER_H_INCLUDED__
#include "IrrCompileConfig.h"
#include "irrString.h"
#include "irrArray.h"
#include "ITimer.h"
#include <limits.h> // for INT_MAX (we should have a S32_MAX...)
namespace irr
{
class ITimer;
//! For internal engine use:
//! Code inside IRR_PROFILE is only executed when _IRR_COMPILE_WITH_PROFILING_ is set
//! This allows disabling all profiler code completely by changing that define.
//! It's generally useful to wrap profiler-calls in application code with a similar macro.
#ifdef _IRR_COMPILE_WITH_PROFILING_
#define IRR_PROFILE(X) X
#else
#define IRR_PROFILE(X)
#endif // IRR_PROFILE
//! Used to store the profile data (and also used for profile group data).
struct SProfileData
{
friend class CProfiler;
friend class IProfiler;
SProfileData()
{
......@@ -66,16 +77,16 @@ struct SProfileData
private:
//! Convert the whole data into a string
core::stringw getAsString() const;
//! Return a string which describes the columns returned by getAsString
static core::stringw makeTitleString();
// just to be used for searching as it does no initialization besides id
SProfileData(u32 id) : Id(id) {}
void reset();
void reset()
{
CountCalls = 0;
LongestTime = 0;
TimeSum = 0;
LastTimeStarted = 0;
}
s32 Id;
u32 GroupIndex;
......@@ -95,13 +106,15 @@ private:
// And also why it works with id's instead of strings in the start/stop functions even if it makes using
// the class slightly harder.
// The class comes without reference-counting because the profiler-instance is never released (TBD).
class IRRLICHT_API CProfiler
class IProfiler
{
public:
//! Constructor. You could use this to create a new profiler, but usually getProfiler() is used to access the global instance.
CProfiler();
IProfiler() : Timer(0), NextAutoId(INT_MAX)
{}
~CProfiler();
virtual ~IProfiler()
{}
//! Add an id with given name and group which can be used for profiling with start/stop
/** After calling this once you can start/stop profiling for the given id.
......@@ -109,14 +122,14 @@ public:
have been added automatically by the other add function.
\param name: Name for displaying profile data.
\param groupName: Each id belongs into a group - this helps on displaying profile data. */
void add(s32 id, const core::stringw &name, const core::stringw &groupName);
inline void add(s32 id, const core::stringw &name, const core::stringw &groupName);
//! Add an automatically generated for the given name and group which can be used for profiling with start/stop.
/** After calling this once you can start/stop profiling with the returned id.
\param name: Name for displaying profile data.
\param groupName: Each id belongs into a group - this helps on displaying profile data.
\return Automatic id's start at INT_MAX and count down for each new id. If the name already has an id then that id will be returned. */
s32 add(const core::stringw &name, const core::stringw &groupName);
inline s32 add(const core::stringw &name, const core::stringw &groupName);
//! Return the number of profile data blocks. There is one for each id.
u32 getProfileDataCount() const
......@@ -128,7 +141,7 @@ public:
/** \param result Receives the resulting data index when one was found.
\param name String with name to search for
\return true when found, false when not found */
bool findDataIndex(u32 & result, const core::stringw &name) const;
inline bool findDataIndex(u32 & result, const core::stringw &name) const;
//! Get the profile data
/** \param index A value between 0 and getProfileDataCount()-1. Indices can change when new id's are added.*/
......@@ -140,25 +153,18 @@ public:
//! Get the profile data
/** \param id Same value as used in ::add
\return Profile data for the given id or 0 when it does not exist. */
const SProfileData* getProfileDataById(u32 id)
{
SProfileData data(id);
s32 idx = ProfileDatas.binary_search(data);
if ( idx >= 0 )
return &ProfileDatas[idx];
return NULL;
}
inline const SProfileData* getProfileDataById(u32 id);
//! Get the number of profile groups. Will be at least 1.
/** NOTE: The first groups is always L"overview" which is an overview for all existing groups */
u32 getGroupCount() const
inline u32 getGroupCount() const
{
return ProfileGroups.size();
}
//! Get profile data for a group.
/** NOTE: The first groups is always L"overview" which is an overview for all existing groups */
const SProfileData& getGroupData(u32 index) const
inline const SProfileData& getGroupData(u32 index) const
{
return ProfileGroups[index];
}
......@@ -167,7 +173,7 @@ public:
/** \param result Receives the resulting group index when one was found.
\param name String with name to search for
\return true when found, false when not found */
bool findGroupIndex(u32 & result, const core::stringw &name) const;
inline bool findGroupIndex(u32 & result, const core::stringw &name) const;
//! Start profile-timing for the given id
......@@ -179,41 +185,103 @@ public:
inline void stop(s32 id);
//! Reset profile data for the given id
void resetDataById(s32 id);
inline void resetDataById(s32 id);
//! Reset profile data for the given index
void resetDataByIndex(u32 index);
inline void resetDataByIndex(u32 index);
//! Reset profile data for a whole group
void resetGroup(u32 index);
inline void resetGroup(u32 index);
//! Reset all profile data
/** NOTE: This is not deleting id's or groups, just resetting all timers to 0. */
void resetAll();
inline void resetAll();
//! Write all profile-data into a string
/** \param result Receives the result string.
\param includeOverview When true a group-overview is attached first
\param suppressUncalled When true elements which got never called are not printed */
void printAll(core::stringw &result, bool includeOverview=false,bool suppressUncalled=true) const;
virtual void printAll(core::stringw &result, bool includeOverview=false,bool suppressUncalled=true) const = 0;
//! Write the profile data of one group into a string
/** \param result Receives the result string.
\param groupIndex_ */
void printGroup(core::stringw &result, u32 groupIndex, bool suppressUncalled) const;
virtual void printGroup(core::stringw &result, u32 groupIndex, bool suppressUncalled) const = 0;
protected:
u32 addGroup(const core::stringw &name);
inline u32 addGroup(const core::stringw &name);
private:
ITimer * Timer; // I would prefer using os::Timer, but os.h is not in the public interface so far.
s32 NextAutoId; // for giving out id's automatically
// I would prefer using os::Timer, but os.h is not in the public interface so far.
// Timer must be initialized by the implementation.
ITimer * Timer;
core::array<SProfileData> ProfileDatas;
core::array<SProfileData> ProfileGroups;
private:
s32 NextAutoId; // for giving out id's automatically
};
//! Access the Irrlicht profiler object.
/** Profiler is always accessible, except in destruction of global objects.
If you want to get internal profiling information about the engine itself
you will have to re-compile the engine with _IRR_COMPILE_WITH_PROFILING_ enabled.
But you can use the profiler for profiling your own projects without that. */
IRRLICHT_API IProfiler& IRRCALLCONV getProfiler();
//! Class where the objects profile their own life-time.
/** This is a comfort wrapper around the IProfiler start/stop mechanism which is easier to use
when you want to profile a scope. You only have to create an object and it will profile it's own lifetime
for the given id. */
class CProfileScope
{
public:
//! Construct with an known id.
/** This is the fastest scope constructor, but the id must have been added before.
\param id Any id which you did add to the profiler before. */
CProfileScope(s32 id)
: Id(id), Profiler(getProfiler())
{
Profiler.start(Id);
}
//! Object will create the given name, groupName combination for the id if it doesn't exist already
/** \param id: Should be >= 0 as negative id's are reserved for Irrlicht. Also very large numbers (near INT_MAX) might
have been created already by the automatic add function of ::IProfiler.
\param name: Name for displaying profile data.
\param groupName: Each id belongs into a group - this helps on displaying profile data. */
CProfileScope(s32 id, const core::stringw &name, const core::stringw &groupName)
: Id(id), Profiler(getProfiler())
{
Profiler.add(Id, name, groupName);
Profiler.start(Id);
}
//! Object will create an id for the given name, groupName combination if they don't exist already
/** Slowest scope constructor, but usually still fine unless speed is very critical.
\param name: Name for displaying profile data.
\param groupName: Each id belongs into a group - this helps on displaying profile data. */
CProfileScope(const core::stringw &name, const core::stringw &groupName)
: Profiler(getProfiler())
{
Id = Profiler.add(name, groupName);
Profiler.start(Id);
}
~CProfileScope()
{
Profiler.stop(Id);
}
protected:
s32 Id;
IProfiler& Profiler;
};
void CProfiler::start(s32 id)
// IMPLEMENTATION for in-line stuff
void IProfiler::start(s32 id)
{
s32 idx = ProfileDatas.binary_search(SProfileData(id));
if ( idx >= 0 && Timer )
......@@ -222,7 +290,7 @@ void CProfiler::start(s32 id)
}
}
void CProfiler::stop(s32 id)
void IProfiler::stop(s32 id)
{
if ( Timer )
{
......@@ -253,71 +321,145 @@ void CProfiler::stop(s32 id)
}
}
//! Access the Irrlicht profiler object.
/** Profiler is always accessible, except in destruction of global objects.
If you want to get internal profiling information about the engine itself
you will have to re-compile the engine with _IRR_COMPILE_WITH_PROFILING_ enabled.
But you can use the profiler for profiling your own projects without that. */
IRRLICHT_API CProfiler& IRRCALLCONV getProfiler();
s32 IProfiler::add(const core::stringw &name, const core::stringw &groupName)
{
u32 index;
if ( findDataIndex(index, name) )
{
add( ProfileDatas[index].Id, name, groupName );
return ProfileDatas[index].Id;
}
else
{
s32 id = NextAutoId;
--NextAutoId;
add( id, name, groupName );
return id;
}
}
//! Class where the objects profile their own life-time.
/** This is a comfort wrapper around the CProfiler start/stop mechanism which is easier to use
when you want to profile a scope. You only have to create an object and it will profile it's own lifetime
for the given id. */
class CProfileScope
void IProfiler::add(s32 id, const core::stringw &name, const core::stringw &groupName)
{
public:
//! Construct with an known id.
/** This is the fastest scope constructor, but the id must have been added before.
\param id Any id which you did add to the profiler before. */
CProfileScope(s32 id)
: Id(id), Profiler(getProfiler())
u32 groupIdx;
if ( !findGroupIndex(groupIdx, groupName) )
{
Profiler.start(Id);
groupIdx = addGroup(groupName);
}
//! Object will create the given name, groupName combination for the id if it doesn't exist already
/** \param id: Should be >= 0 as negative id's are reserved for Irrlicht. Also very large numbers (near INT_MAX) might
have been created already by the automatic add function of ::CProfiler.
\param name: Name for displaying profile data.
\param groupName: Each id belongs into a group - this helps on displaying profile data. */
CProfileScope(s32 id, const core::stringw &name, const core::stringw &groupName)
: Id(id), Profiler(getProfiler())
SProfileData data(id);
s32 idx = ProfileDatas.binary_search(data);
if ( idx < 0 )
{
Profiler.add(Id, name, groupName);
Profiler.start(Id);
data.reset();
data.GroupIndex = groupIdx;
data.Name = name;
ProfileDatas.push_back(data);
ProfileDatas.sort();
}
else
{
// only reset on group changes, otherwise we want to keep the data or coding CProfileScope would become tricky.
if ( groupIdx != ProfileDatas[idx].GroupIndex )
{
resetDataByIndex((u32)idx);
ProfileDatas[idx].GroupIndex = groupIdx;
}
ProfileDatas[idx].Name = name;
}
}
//! Object will create an id for the given name, groupName combination if they don't exist already
/** Slowest scope constructor, but usually still fine unless speed is very critical.
\param name: Name for displaying profile data.
\param groupName: Each id belongs into a group - this helps on displaying profile data. */
CProfileScope(const core::stringw &name, const core::stringw &groupName)
: Profiler(getProfiler())
u32 IProfiler::addGroup(const core::stringw &name)
{
SProfileData group;
group.Id = -1; // Id for groups doesn't matter so far
group.Name = name;
ProfileGroups.push_back(group);
return ProfileGroups.size()-1;
}
bool IProfiler::findDataIndex(u32 & result, const core::stringw &name) const
{
for ( u32 i=0; i < ProfileDatas.size(); ++i )
{
Id = Profiler.add(name, groupName);
Profiler.start(Id);
if ( ProfileDatas[i].Name == name )
{
result = i;
return true;
}
}
~CProfileScope()
return false;
}
const SProfileData* IProfiler::getProfileDataById(u32 id)
{
SProfileData data(id);
s32 idx = ProfileDatas.binary_search(data);
if ( idx >= 0 )
return &ProfileDatas[idx];
return NULL;
}
bool IProfiler::findGroupIndex(u32 & result, const core::stringw &name) const
{
for ( u32 i=0; i < ProfileGroups.size(); ++i )
{
Profiler.stop(Id);
if ( ProfileGroups[i].Name == name )
{
result = i;
return true;
}
}
protected:
s32 Id;
CProfiler& Profiler;
};
} // namespace irr
return false;
}
//! For internal engine use:
//! Code inside IRR_PROFILE is only executed when _IRR_COMPILE_WITH_PROFILING_ is set
//! This allows disabling all profiler code completely by changing that define.
//! It's generally useful to wrap profiler-calls in application code with a similar macro.
#ifdef _IRR_COMPILE_WITH_PROFILING_
#define IRR_PROFILE(X) X
#else
#define IRR_PROFILE(X)
#endif // IRR_PROFILE
void IProfiler::resetDataById(s32 id)
{
s32 idx = ProfileDatas.binary_search(SProfileData(id));
if ( idx >= 0 )
{
resetDataByIndex((u32)idx);
}
}
void IProfiler::resetDataByIndex(u32 index)
{
SProfileData &data = ProfileDatas[index];
SProfileData & group = ProfileGroups[data.GroupIndex];
group.CountCalls -= data.CountCalls;
group.TimeSum -= data.TimeSum;
data.reset();
}
//! Reset profile data for a whole group
void IProfiler::resetGroup(u32 index)
{
for ( u32 i=0; i<ProfileDatas.size(); ++i )
{
if ( ProfileDatas[i].GroupIndex == index )
ProfileDatas[i].reset();
}
if ( index < ProfileGroups.size() )
ProfileGroups[index].reset();
}
void IProfiler::resetAll()
{
for ( u32 i=0; i<ProfileDatas.size(); ++i )
{
ProfileDatas[i].reset();
}
for ( u32 i=0; i<ProfileGroups.size(); ++i )
{
ProfileGroups[i].reset();
}
}
} // namespace irr
#endif // __PROFILER_H_INCLUDED__
#endif // __I_PROFILER_H_INCLUDED__
......@@ -36,7 +36,7 @@
#include "CMeshBuffer.h"
#include "coreutil.h"
#include "CVertexBuffer.h"
#include "CProfiler.h"
#include "IProfiler.h"
#include "dimension2d.h"
#include "ECullingTypes.h"
#include "EDebugSceneTypes.h"
......
......@@ -13,7 +13,7 @@
namespace irr
{
class CProfiler;
class IProfiler;
struct SProfileData;
namespace gui
......@@ -66,7 +66,7 @@ namespace gui
void fillRow(u32 rowIndex, const SProfileData& data, bool overviewTitle, bool groupTitle);
void rebuildColumns();
CProfiler * Profiler;
IProfiler * Profiler;
irr::gui::IGUITable* DisplayTable;
irr::u32 CurrentGroupIdx;
bool IgnoreUncalled;
......
......@@ -13,7 +13,7 @@
#include "os.h"
#include "CShadowVolumeSceneNode.h"
#include "EProfileIDs.h"
#include "CProfiler.h"
#include "IProfiler.h"
namespace irr
{
......
......@@ -4,63 +4,16 @@
#include "CProfiler.h"
#include "CTimer.h"
#include <limits.h>
namespace irr
{
IRRLICHT_API CProfiler& IRRCALLCONV getProfiler()
IRRLICHT_API IProfiler& IRRCALLCONV getProfiler()
{
static CProfiler profiler;
return profiler;
}
//! Convert the whole data into a string
core::stringw SProfileData::getAsString() const
{
if ( CountCalls > 0 )
{
#ifdef _MSC_VER
#pragma warning(disable:4996) // 'sprintf' was declared deprecated
#endif
// Can't use swprintf as it fails on some platforms (especially mobile platforms)
// Can't use Irrlicht functions because we have no string formatting.
char dummy[1023];
sprintf(dummy, "%-15.15s%-12u%-12u%-12u%-12u",
core::stringc(Name).c_str(), CountCalls, TimeSum,
TimeSum / CountCalls, LongestTime);
dummy[1022] = 0;
return core::stringw(dummy);
#ifdef _MSC_VER
#pragma warning(default :4996) // 'sprintf' was declared deprecated
#endif
}
else
{
return Name;
}
}
//! Return a string which describes the columns returned by getAsString
core::stringw SProfileData::makeTitleString()
{
return core::stringw("name calls time(sum) time(avg) time(max)");
}
void SProfileData::reset()
{
CountCalls = 0;
LongestTime = 0;
TimeSum = 0;
LastTimeStarted = 0;
}
CProfiler::CProfiler()
: Timer(0)
, NextAutoId(INT_MAX)
{
Timer = new CTimer(true);
......@@ -73,139 +26,9 @@ CProfiler::~CProfiler()
Timer->drop();
}
s32 CProfiler::add(const core::stringw &name, const core::stringw &groupName)
{
u32 index;
if ( findDataIndex(index, name) )
{
add( ProfileDatas[index].Id, name, groupName );
return ProfileDatas[index].Id;
}
else
{
s32 id = NextAutoId;
--NextAutoId;
add( id, name, groupName );
return id;
}
}
void CProfiler::add(s32 id, const core::stringw &name, const core::stringw &groupName)
{
u32 groupIdx;
if ( !findGroupIndex(groupIdx, groupName) )
{
groupIdx = addGroup(groupName);
}
SProfileData data(id);
s32 idx = ProfileDatas.binary_search(data);
if ( idx < 0 )
{
data.reset();
data.GroupIndex = groupIdx;
data.Name = name;
ProfileDatas.push_back(data);
ProfileDatas.sort();
}
else
{
// only reset on group changes, otherwise we want to keep the data or coding CProfileScope would become tricky.
if ( groupIdx != ProfileDatas[idx].GroupIndex )
{
resetDataByIndex((u32)idx);
ProfileDatas[idx].GroupIndex = groupIdx;
}
ProfileDatas[idx].Name = name;
}
}
u32 CProfiler::addGroup(const core::stringw &name)
{
SProfileData group;
group.Id = -1; // Id for groups doesn't matter so far
group.Name = name;
ProfileGroups.push_back(group);
return ProfileGroups.size()-1;
}
bool CProfiler::findDataIndex(u32 & result, const core::stringw &name) const
{
for ( u32 i=0; i < ProfileDatas.size(); ++i )
{
if ( ProfileDatas[i].Name == name )
{
result = i;
return true;
}
}
return false;
}
bool CProfiler::findGroupIndex(u32 & result, const core::stringw &name) const
{
for ( u32 i=0; i < ProfileGroups.size(); ++i )
{
if ( ProfileGroups[i].Name == name )
{
result = i;
return true;
}
}
return false;
}
void CProfiler::resetDataById(s32 id)
{
s32 idx = ProfileDatas.binary_search(SProfileData(id));
if ( idx >= 0 )
{
resetDataByIndex((u32)idx);
}
}
void CProfiler::resetDataByIndex(u32 index)
{
SProfileData &data = ProfileDatas[index];
SProfileData & group = ProfileGroups[data.GroupIndex];
group.CountCalls -= data.CountCalls;
group.TimeSum -= data.TimeSum;
data.reset();
}
//! Reset profile data for a whole group
void CProfiler::resetGroup(u32 index)
{
for ( u32 i=0; i<ProfileDatas.size(); ++i )
{
if ( ProfileDatas[i].GroupIndex == index )
ProfileDatas[i].reset();
}
if ( index < ProfileGroups.size() )
ProfileGroups[index].reset();
}
void CProfiler::resetAll()
{
for ( u32 i=0; i<ProfileDatas.size(); ++i )
{
ProfileDatas[i].reset();
}
for ( u32 i=0; i<ProfileGroups.size(); ++i )
{
ProfileGroups[i].reset();
}
}
void CProfiler::printAll(core::stringw &ostream, bool includeOverview, bool suppressUncalled) const
{
ostream += SProfileData::makeTitleString();
ostream += makeTitleString();
ostream += L"\n";
for ( u32 i=includeOverview ?0:1; i<ProfileGroups.size(); ++i )
{
......@@ -215,7 +38,7 @@ void CProfiler::printAll(core::stringw &ostream, bool includeOverview, bool supp
void CProfiler::printGroup(core::stringw &ostream, u32 idxGroup, bool suppressUncalled) const
{
ostream += ProfileGroups[idxGroup].getAsString();
ostream += getAsString(ProfileGroups[idxGroup]);
ostream += L"\n";
// print overview for groups
......@@ -223,9 +46,9 @@ void CProfiler::printGroup(core::stringw &ostream, u32 idxGroup, bool suppressUn
{
for ( u32 i=0; i<ProfileGroups.size(); ++i )
{
if ( !suppressUncalled || ProfileGroups[i].CountCalls > 0)
if ( !suppressUncalled || ProfileGroups[i].getCallsCounter() > 0)
{
ostream += ProfileGroups[i].getAsString();
ostream += getAsString(ProfileGroups[i]);
ostream += L"\n";
}
}
......@@ -235,14 +58,47 @@ void CProfiler::printGroup(core::stringw &ostream, u32 idxGroup, bool suppressUn
{
for ( u32 i=0; i<ProfileDatas.size(); ++i )
{
if ( (!suppressUncalled || ProfileDatas[i].CountCalls > 0)
&& ProfileDatas[i].GroupIndex == idxGroup )
if ( (!suppressUncalled || ProfileDatas[i].getCallsCounter() > 0)
&& ProfileDatas[i].getGroupIndex() == idxGroup )
{
ostream += ProfileDatas[i].getAsString();
ostream += getAsString(ProfileDatas[i]);
ostream += L"\n";
}
}
}
}
//! Convert the whole data into a string
core::stringw CProfiler::getAsString(const SProfileData& data) const
{
if ( data.getCallsCounter() > 0 )
{
#ifdef _MSC_VER
#pragma warning(disable:4996) // 'sprintf' was declared deprecated
#endif
// Can't use swprintf as it fails on some platforms (especially mobile platforms)
// Can't use Irrlicht functions because we have no string formatting.
char dummy[1023];
sprintf(dummy, "%-15.15s%-12u%-12u%-12u%-12u",
core::stringc(data.getName()).c_str(), data.getCallsCounter(), data.getTimeSum(),
data.getTimeSum() / data.getCallsCounter(), data.getLongestTime());
dummy[1022] = 0;
return core::stringw(dummy);
#ifdef _MSC_VER
#pragma warning(default :4996) // 'sprintf' was declared deprecated
#endif
}
else
{
return data.getName();
}
}
//! Return a string which describes the columns returned by getAsString
core::stringw CProfiler::makeTitleString() const
{
return core::stringw("name calls time(sum) time(avg) time(max)");
}
} // namespace irr
// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in irrlicht.h
// Written by Michael Zeilfelder
#ifndef __C_PROFILER_H_INCLUDED__
#define __C_PROFILER_H_INCLUDED__
#include "IrrCompileConfig.h"
#include "IProfiler.h"
namespace irr
{
class CProfiler : public IProfiler
{
public:
CProfiler();
virtual ~CProfiler();
//! Write all profile-data into a string
virtual void printAll(core::stringw &result, bool includeOverview,bool suppressUncalled) const _IRR_OVERRIDE_;
//! Write the profile data of one group into a string
virtual void printGroup(core::stringw &result, u32 groupIndex, bool suppressUncalled) const _IRR_OVERRIDE_;
protected:
core::stringw makeTitleString() const;
core::stringw getAsString(const SProfileData& data) const;
};
} // namespace irr
#endif // __C_PROFILER_H_INCLUDED__
......@@ -16,7 +16,7 @@
#include "IWriteFile.h"
#include "ISceneLoader.h"
#include "EProfileIDs.h"
#include "CProfiler.h"
#include "IProfiler.h"
#include "os.h"
......
......@@ -8,8 +8,8 @@
<Build>
<Target title="Win32 - Debug - dll">
<Option platforms="Windows;" />
<Option output="../../lib/Win32-gcc/Irrlicht" prefix_auto="1" extension_auto="1" />
<Option object_output="../obj/win32-gcc-debug-dll" />
<Option output="..\..\lib\Win32-gcc\Irrlicht" prefix_auto="1" extension_auto="1" />
<Option object_output="..\obj\win32-gcc-debug-dll" />
<Option type="3" />
<Option compiler="gcc" />
<Option createDefFile="1" />
......@@ -27,7 +27,7 @@
<Add option="-DIRRLICHT_EXPORTS" />
<Add option="-D_CRT_SECURE_NO_DEPRECATE" />
<Add option="-D__GNUWIN32__" />
<Add directory="../../include" />
<Add directory="..\..\include" />
<Add directory="zlib" />
</Compiler>
<Linker>
......@@ -51,8 +51,8 @@
</Target>
<Target title="Win32 - Release - accurate math - dll">
<Option platforms="Windows;" />
<Option output="../../lib/Win32-gcc/Irrlicht" prefix_auto="1" extension_auto="1" />
<Option object_output="../obj/win32-gcc-release-dll" />
<Option output="..\..\lib\Win32-gcc\Irrlicht" prefix_auto="1" extension_auto="1" />
<Option object_output="..\obj\win32-gcc-release-dll" />
<Option type="3" />
<Option compiler="gcc" />
<Option createDefFile="1" />
......@@ -68,7 +68,7 @@
<Add option="-DIRRLICHT_EXPORTS" />
<Add option="-D_CRT_SECURE_NO_DEPRECATE" />
<Add option="-D__GNUWIN32__" />
<Add directory="../../include" />
<Add directory="..\..\include" />
<Add directory="zlib" />
</Compiler>
<Linker>
......@@ -93,8 +93,8 @@
</Target>
<Target title="Win32 - Release - fast math - dll">
<Option platforms="Windows;" />
<Option output="../../lib/Win32-gcc/Irrlicht" prefix_auto="1" extension_auto="1" />
<Option object_output="../obj/win32-gcc-release-fast-dll" />
<Option output="..\..\lib\Win32-gcc\Irrlicht" prefix_auto="1" extension_auto="1" />
<Option object_output="..\obj\win32-gcc-release-fast-dll" />
<Option type="3" />
<Option compiler="gcc" />
<Option createDefFile="1" />
......@@ -111,7 +111,7 @@
<Add option="-DIRRLICHT_EXPORTS" />
<Add option="-D_CRT_SECURE_NO_DEPRECATE" />
<Add option="-D__GNUWIN32__" />
<Add directory="../../include" />
<Add directory="..\..\include" />
<Add directory="zlib" />
</Compiler>
<Linker>
......@@ -135,9 +135,9 @@
</Target>
<Target title="Win32 - Debug - static">
<Option platforms="Windows;" />
<Option output="../../lib/Win32-gcc/Irrlicht" prefix_auto="1" extension_auto="1" />
<Option output="..\..\lib\Win32-gcc\Irrlicht" prefix_auto="1" extension_auto="1" />
<Option working_dir="" />
<Option object_output="../obj/win32-gcc-debug-static" />
<Option object_output="..\obj\win32-gcc-debug-static" />
<Option type="2" />
<Option compiler="gcc" />
<Option createDefFile="1" />
......@@ -153,7 +153,7 @@
<Add option="-D_IRR_STATIC_LIB_" />
<Add option="-D_CRT_SECURE_NO_DEPRECATE" />
<Add option="-D__GNUWIN32__" />
<Add directory="../../include" />
<Add directory="..\..\include" />
<Add directory="zlib" />
</Compiler>
<Linker>
......@@ -173,9 +173,9 @@
</Target>
<Target title="Win32 - Release - accurate math - static">
<Option platforms="Windows;" />
<Option output="../../lib/Win32-gcc/Irrlicht" prefix_auto="1" extension_auto="1" />
<Option output="..\..\lib\Win32-gcc\Irrlicht" prefix_auto="1" extension_auto="1" />
<Option working_dir="" />
<Option object_output="../obj/win32-gcc-release-static" />
<Option object_output="..\obj\win32-gcc-release-static" />
<Option type="2" />
<Option compiler="gcc" />
<Option createDefFile="1" />
......@@ -191,7 +191,7 @@
<Add option="-D_IRR_STATIC_LIB_" />
<Add option="-D_CRT_SECURE_NO_DEPRECATE" />
<Add option="-D__GNUWIN32__" />
<Add directory="../../include" />
<Add directory="..\..\include" />
<Add directory="zlib" />
</Compiler>
<Linker>
......@@ -212,9 +212,9 @@
</Target>
<Target title="Win32 - Release - fast math - static">
<Option platforms="Windows;" />
<Option output="../../lib/Win32-gcc/Irrlicht" prefix_auto="1" extension_auto="1" />
<Option output="..\..\lib\Win32-gcc\Irrlicht" prefix_auto="1" extension_auto="1" />
<Option working_dir="" />
<Option object_output="../obj/win32-gcc-release-fast-static" />
<Option object_output="..\obj\win32-gcc-release-fast-static" />
<Option type="2" />
<Option compiler="gcc" />
<Option createDefFile="1" />
......@@ -231,7 +231,7 @@
<Add option="-D_IRR_STATIC_LIB_" />
<Add option="-D_CRT_SECURE_NO_DEPRECATE" />
<Add option="-D__GNUWIN32__" />
<Add directory="../../include" />
<Add directory="..\..\include" />
<Add directory="zlib" />
</Compiler>
<Linker>
......@@ -252,8 +252,8 @@
</Target>
<Target title="Linux - Debug - shared">
<Option platforms="Unix;" />
<Option output="../../lib/Linux/libIrrlicht" prefix_auto="0" extension_auto="1" />
<Option object_output="../obj/linux-gcc-debug-shared" />
<Option output="..\..\lib\Linux\libIrrlicht" prefix_auto="0" extension_auto="1" />
<Option object_output="..\obj\linux-gcc-debug-shared" />
<Option type="3" />
<Option compiler="gcc" />
<Option createDefFile="1" />
......@@ -265,7 +265,7 @@
<Add option="-O0" />
<Add option="-fPIC" />
<Add option="-D_DEBUG" />
<Add directory="../../include" />
<Add directory="..\..\include" />
<Add directory="zlib" />
<Add directory="libpng" />
<Add directory="jpeglib" />
......@@ -273,14 +273,14 @@
<Linker>
<Add library="GL" />
<Add library="Xxf86vm" />
<Add directory="/usr/X11R6/lib" />
<Add directory="/usr/local/lib" />
<Add directory="\usr\X11R6\lib" />
<Add directory="\usr\local\lib" />
</Linker>
</Target>
<Target title="Linux - Release - accurate math - shared">
<Option platforms="Unix;" />
<Option output="../../lib/Linux/libIrrlicht" prefix_auto="0" extension_auto="1" />
<Option object_output="../obj/linux-gcc-release-shared" />
<Option output="..\..\lib\Linux\libIrrlicht" prefix_auto="0" extension_auto="1" />
<Option object_output="..\obj\linux-gcc-release-shared" />
<Option type="3" />
<Option compiler="gcc" />
<Option createDefFile="1" />
......@@ -289,7 +289,7 @@
<Add option="-O3" />
<Add option="-Wextra" />
<Add option="-fPIC" />
<Add directory="../../include" />
<Add directory="..\..\include" />
<Add directory="zlib" />
<Add directory="libpng" />
<Add directory="jpeglib" />
......@@ -297,14 +297,14 @@
<Linker>
<Add library="GL" />
<Add library="Xxf86vm" />
<Add directory="/usr/X11R6/lib" />
<Add directory="/usr/local/lib" />
<Add directory="\usr\X11R6\lib" />
<Add directory="\usr\local\lib" />
</Linker>
</Target>
<Target title="Linux - Release - fast math - shared">
<Option platforms="Unix;" />
<Option output="../../lib/Linux/libIrrlicht" prefix_auto="0" extension_auto="1" />
<Option object_output="../obj/linux-gcc-release-fast-shared" />
<Option output="..\..\lib\Linux\libIrrlicht" prefix_auto="0" extension_auto="1" />
<Option object_output="..\obj\linux-gcc-release-fast-shared" />
<Option type="3" />
<Option compiler="gcc" />
<Option createDefFile="1" />
......@@ -314,7 +314,7 @@
<Add option="-Wextra" />
<Add option="-fPIC" />
<Add option="-ffast-math" />
<Add directory="../../include" />
<Add directory="..\..\include" />
<Add directory="zlib" />
<Add directory="libpng" />
<Add directory="jpeglib" />
......@@ -322,15 +322,15 @@
<Linker>
<Add library="GL" />
<Add library="Xxf86vm" />
<Add directory="/usr/X11R6/lib" />
<Add directory="/usr/local/lib" />
<Add directory="\usr\X11R6\lib" />
<Add directory="\usr\local\lib" />
</Linker>
</Target>
<Target title="Linux - Debug - static">
<Option platforms="Unix;" />
<Option output="../../lib/Linux/libIrrlicht" prefix_auto="0" extension_auto="1" />
<Option output="..\..\lib\Linux\libIrrlicht" prefix_auto="0" extension_auto="1" />
<Option working_dir="" />
<Option object_output="../obj/linux-gcc-debug-static" />
<Option object_output="..\obj\linux-gcc-debug-static" />
<Option type="2" />
<Option compiler="gcc" />
<Option createDefFile="1" />
......@@ -341,22 +341,22 @@
<Add option="-O0" />
<Add option="-D_IRR_STATIC_LIB_" />
<Add option="-D_DEBUG" />
<Add directory="../../include" />
<Add directory="..\..\include" />
<Add directory="zlib" />
<Add directory="libpng" />
</Compiler>
<Linker>
<Add library="GL" />
<Add library="Xxf86vm" />
<Add directory="/usr/X11R6/lib" />
<Add directory="/usr/local/lib" />
<Add directory="\usr\X11R6\lib" />
<Add directory="\usr\local\lib" />
</Linker>
</Target>
<Target title="Linux - Release - accurate math - static">
<Option platforms="Unix;" />
<Option output="../../lib/Linux/libIrrlicht" prefix_auto="0" extension_auto="1" />
<Option output="..\..\lib\Linux\libIrrlicht" prefix_auto="0" extension_auto="1" />
<Option working_dir="" />
<Option object_output="../obj/linux-gcc-release-static" />
<Option object_output="..\obj\linux-gcc-release-static" />
<Option type="2" />
<Option compiler="gcc" />
<Option createDefFile="1" />
......@@ -365,22 +365,22 @@
<Add option="-Wextra" />
<Add option="-fno-exceptions" />
<Add option="-D_IRR_STATIC_LIB_" />
<Add directory="../../include" />
<Add directory="..\..\include" />
<Add directory="zlib" />
<Add directory="libpng" />
</Compiler>
<Linker>
<Add library="GL" />
<Add library="Xxf86vm" />
<Add directory="/usr/X11R6/lib" />
<Add directory="/usr/local/lib" />
<Add directory="\usr\X11R6\lib" />
<Add directory="\usr\local\lib" />
</Linker>
</Target>
<Target title="Linux - Release - fast math - static">
<Option platforms="Unix;" />
<Option output="../../lib/Linux/libIrrlicht" prefix_auto="0" extension_auto="1" />
<Option output="..\..\lib\Linux\libIrrlicht" prefix_auto="0" extension_auto="1" />
<Option working_dir="" />
<Option object_output="../obj/linux-gcc-release-fast-static" />
<Option object_output="..\obj\linux-gcc-release-fast-static" />
<Option type="2" />
<Option compiler="gcc" />
<Option createDefFile="1" />
......@@ -389,15 +389,15 @@
<Add option="-Wextra" />
<Add option="-ffast-math" />
<Add option="-D_IRR_STATIC_LIB_" />
<Add directory="../../include" />
<Add directory="..\..\include" />
<Add directory="zlib" />
<Add directory="libpng" />
</Compiler>
<Linker>
<Add library="GL" />
<Add library="Xxf86vm" />
<Add directory="/usr/X11R6/lib" />
<Add directory="/usr/local/lib" />
<Add directory="\usr\X11R6\lib" />
<Add directory="\usr\local\lib" />
</Linker>
</Target>
</Build>
......@@ -410,193 +410,193 @@
<Add option="-fno-rtti" />
<Add option="-fstrict-aliasing" />
</Compiler>
<Unit filename="../../changes.txt" />
<Unit filename="../../include/CDynamicMeshBuffer.h" />
<Unit filename="../../include/CIndexBuffer.h" />
<Unit filename="../../include/CMeshBuffer.h" />
<Unit filename="../../include/CProfiler.h" />
<Unit filename="../../include/CVertexBuffer.h" />
<Unit filename="../../include/EAttributes.h" />
<Unit filename="../../include/ECullingTypes.h" />
<Unit filename="../../include/EDebugSceneTypes.h" />
<Unit filename="../../include/EDeviceTypes.h" />
<Unit filename="../../include/EDriverFeatures.h" />
<Unit filename="../../include/EDriverTypes.h" />
<Unit filename="../../include/EFocusFlags.h" />
<Unit filename="../../include/EGUIAlignment.h" />
<Unit filename="../../include/EGUIElementTypes.h" />
<Unit filename="../../include/EHardwareBufferFlags.h" />
<Unit filename="../../include/EMaterialFlags.h" />
<Unit filename="../../include/EMaterialTypes.h" />
<Unit filename="../../include/EMeshWriterEnums.h" />
<Unit filename="../../include/EMessageBoxFlags.h" />
<Unit filename="../../include/EPrimitiveTypes.h" />
<Unit filename="../../include/ESceneNodeAnimatorTypes.h" />
<Unit filename="../../include/ESceneNodeTypes.h" />
<Unit filename="../../include/EShaderTypes.h" />
<Unit filename="../../include/ETerrainElements.h" />
<Unit filename="../../include/IAnimatedMesh.h" />
<Unit filename="../../include/IAnimatedMeshMD2.h" />
<Unit filename="../../include/IAnimatedMeshMD3.h" />
<Unit filename="../../include/IAnimatedMeshSceneNode.h" />
<Unit filename="../../include/IAttributeExchangingObject.h" />
<Unit filename="../../include/IAttributes.h" />
<Unit filename="../../include/IBillboardSceneNode.h" />
<Unit filename="../../include/IBillboardTextSceneNode.h" />
<Unit filename="../../include/IBoneSceneNode.h" />
<Unit filename="../../include/ICameraSceneNode.h" />
<Unit filename="../../include/IColladaMeshWriter.h" />
<Unit filename="../../include/ICursorControl.h" />
<Unit filename="../../include/IDummyTransformationSceneNode.h" />
<Unit filename="../../include/IDynamicMeshBuffer.h" />
<Unit filename="../../include/IEventReceiver.h" />
<Unit filename="../../include/IFileArchive.h" />
<Unit filename="../../include/IFileList.h" />
<Unit filename="../../include/IFileSystem.h" />
<Unit filename="../../include/IGPUProgrammingServices.h" />
<Unit filename="../../include/IGUIButton.h" />
<Unit filename="../../include/IGUICheckBox.h" />
<Unit filename="../../include/IGUIColorSelectDialog.h" />
<Unit filename="../../include/IGUIComboBox.h" />
<Unit filename="../../include/IGUIContextMenu.h" />
<Unit filename="../../include/IGUIEditBox.h" />
<Unit filename="../../include/IGUIElement.h" />
<Unit filename="../../include/IGUIElementFactory.h" />
<Unit filename="../../include/IGUIEnvironment.h" />
<Unit filename="../../include/IGUIFileOpenDialog.h" />
<Unit filename="../../include/IGUIFont.h" />
<Unit filename="../../include/IGUIFontBitmap.h" />
<Unit filename="../../include/IGUIImage.h" />
<Unit filename="../../include/IGUIImageList.h" />
<Unit filename="../../include/IGUIInOutFader.h" />
<Unit filename="../../include/IGUIListBox.h" />
<Unit filename="../../include/IGUIMeshViewer.h" />
<Unit filename="../../include/IGUIProfiler.h" />
<Unit filename="../../include/IGUIScrollBar.h" />
<Unit filename="../../include/IGUISkin.h" />
<Unit filename="../../include/IGUISpinBox.h" />
<Unit filename="../../include/IGUISpriteBank.h" />
<Unit filename="../../include/IGUIStaticText.h" />
<Unit filename="../../include/IGUITabControl.h" />
<Unit filename="../../include/IGUITable.h" />
<Unit filename="../../include/IGUIToolbar.h" />
<Unit filename="../../include/IGUITreeView.h" />
<Unit filename="../../include/IGUIWindow.h" />
<Unit filename="../../include/IGeometryCreator.h" />
<Unit filename="../../include/IImage.h" />
<Unit filename="../../include/IImageLoader.h" />
<Unit filename="../../include/IImageWriter.h" />
<Unit filename="../../include/IIndexBuffer.h" />
<Unit filename="../../include/ILightManager.h" />
<Unit filename="../../include/ILightSceneNode.h" />
<Unit filename="../../include/ILogger.h" />
<Unit filename="../../include/IMaterialRenderer.h" />
<Unit filename="../../include/IMaterialRendererServices.h" />
<Unit filename="../../include/IMesh.h" />
<Unit filename="../../include/IMeshBuffer.h" />
<Unit filename="../../include/IMeshCache.h" />
<Unit filename="../../include/IMeshLoader.h" />
<Unit filename="../../include/IMeshManipulator.h" />
<Unit filename="../../include/IMeshSceneNode.h" />
<Unit filename="../../include/IMeshTextureLoader.h" />
<Unit filename="../../include/IMeshWriter.h" />
<Unit filename="../../include/IMetaTriangleSelector.h" />
<Unit filename="../../include/IOSOperator.h" />
<Unit filename="../../include/IParticleAffector.h" />
<Unit filename="../../include/IParticleAnimatedMeshSceneNodeEmitter.h" />
<Unit filename="../../include/IParticleAttractionAffector.h" />
<Unit filename="../../include/IParticleBoxEmitter.h" />
<Unit filename="../../include/IParticleCylinderEmitter.h" />
<Unit filename="../../include/IParticleEmitter.h" />
<Unit filename="../../include/IParticleFadeOutAffector.h" />
<Unit filename="../../include/IParticleGravityAffector.h" />
<Unit filename="../../include/IParticleMeshEmitter.h" />
<Unit filename="../../include/IParticleRingEmitter.h" />
<Unit filename="../../include/IParticleRotationAffector.h" />
<Unit filename="../../include/IParticleSphereEmitter.h" />
<Unit filename="../../include/IParticleSystemSceneNode.h" />
<Unit filename="../../include/IQ3LevelMesh.h" />
<Unit filename="../../include/IQ3Shader.h" />
<Unit filename="../../include/IReadFile.h" />
<Unit filename="../../include/IReferenceCounted.h" />
<Unit filename="../../include/ISceneCollisionManager.h" />
<Unit filename="../../include/ISceneLoader.h" />
<Unit filename="../../include/ISceneManager.h" />
<Unit filename="../../include/ISceneNode.h" />
<Unit filename="../../include/ISceneNodeAnimator.h" />
<Unit filename="../../include/ISceneNodeAnimatorCameraFPS.h" />
<Unit filename="../../include/ISceneNodeAnimatorCameraMaya.h" />
<Unit filename="../../include/ISceneNodeAnimatorCollisionResponse.h" />
<Unit filename="../../include/ISceneNodeAnimatorFactory.h" />
<Unit filename="../../include/ISceneNodeFactory.h" />
<Unit filename="../../include/ISceneUserDataSerializer.h" />
<Unit filename="../../include/IShaderConstantSetCallBack.h" />
<Unit filename="../../include/IShadowVolumeSceneNode.h" />
<Unit filename="../../include/ISkinnedMesh.h" />
<Unit filename="../../include/ITerrainSceneNode.h" />
<Unit filename="../../include/ITextSceneNode.h" />
<Unit filename="../../include/ITexture.h" />
<Unit filename="../../include/ITimer.h" />
<Unit filename="../../include/ITriangleSelector.h" />
<Unit filename="../../include/IVertexBuffer.h" />
<Unit filename="../../include/IVideoDriver.h" />
<Unit filename="../../include/IVideoModeList.h" />
<Unit filename="../../include/IVolumeLightSceneNode.h" />
<Unit filename="../../include/IWriteFile.h" />
<Unit filename="../../include/IXMLReader.h" />
<Unit filename="../../include/IXMLWriter.h" />
<Unit filename="../../include/IrrCompileConfig.h" />
<Unit filename="../../include/IrrlichtDevice.h" />
<Unit filename="../../include/Keycodes.h" />
<Unit filename="../../include/S3DVertex.h" />
<Unit filename="../../include/SAnimatedMesh.h" />
<Unit filename="../../include/SColor.h" />
<Unit filename="../../include/SExposedVideoData.h" />
<Unit filename="../../include/SIrrCreationParameters.h" />
<Unit filename="../../include/SKeyMap.h" />
<Unit filename="../../include/SLight.h" />
<Unit filename="../../include/SMaterial.h" />
<Unit filename="../../include/SMaterialLayer.h" />
<Unit filename="../../include/SMesh.h" />
<Unit filename="../../include/SMeshBuffer.h" />
<Unit filename="../../include/SMeshBufferLightMap.h" />
<Unit filename="../../include/SMeshBufferTangents.h" />
<Unit filename="../../include/SParticle.h" />
<Unit filename="../../include/SSharedMeshBuffer.h" />
<Unit filename="../../include/SSkinMeshBuffer.h" />
<Unit filename="../../include/SVertexIndex.h" />
<Unit filename="../../include/SVertexManipulator.h" />
<Unit filename="../../include/SViewFrustum.h" />
<Unit filename="../../include/SceneParameters.h" />
<Unit filename="../../include/aabbox3d.h" />
<Unit filename="../../include/coreutil.h" />
<Unit filename="../../include/dimension2d.h" />
<Unit filename="../../include/fast_atof.h" />
<Unit filename="../../include/heapsort.h" />
<Unit filename="../../include/irrAllocator.h" />
<Unit filename="../../include/irrArray.h" />
<Unit filename="../../include/irrList.h" />
<Unit filename="../../include/irrMap.h" />
<Unit filename="../../include/irrMath.h" />
<Unit filename="../../include/irrString.h" />
<Unit filename="../../include/irrTypes.h" />
<Unit filename="../../include/irrXML.h" />
<Unit filename="../../include/irrlicht.h" />
<Unit filename="../../include/irrpack.h" />
<Unit filename="../../include/irrunpack.h" />
<Unit filename="../../include/leakHunter.h" />
<Unit filename="../../include/line2d.h" />
<Unit filename="../../include/line3d.h" />
<Unit filename="../../include/matrix4.h" />
<Unit filename="../../include/path.h" />
<Unit filename="../../include/plane3d.h" />
<Unit filename="../../include/position2d.h" />
<Unit filename="../../include/quaternion.h" />
<Unit filename="../../include/rect.h" />
<Unit filename="../../include/triangle3d.h" />
<Unit filename="../../include/vector2d.h" />
<Unit filename="../../include/vector3d.h" />
<Unit filename="../../readme.txt" />
<Unit filename="..\..\changes.txt" />
<Unit filename="..\..\include\CDynamicMeshBuffer.h" />
<Unit filename="..\..\include\CIndexBuffer.h" />
<Unit filename="..\..\include\CMeshBuffer.h" />
<Unit filename="..\..\include\CVertexBuffer.h" />
<Unit filename="..\..\include\EAttributes.h" />
<Unit filename="..\..\include\ECullingTypes.h" />
<Unit filename="..\..\include\EDebugSceneTypes.h" />
<Unit filename="..\..\include\EDeviceTypes.h" />
<Unit filename="..\..\include\EDriverFeatures.h" />
<Unit filename="..\..\include\EDriverTypes.h" />
<Unit filename="..\..\include\EFocusFlags.h" />
<Unit filename="..\..\include\EGUIAlignment.h" />
<Unit filename="..\..\include\EGUIElementTypes.h" />
<Unit filename="..\..\include\EHardwareBufferFlags.h" />
<Unit filename="..\..\include\EMaterialFlags.h" />
<Unit filename="..\..\include\EMaterialTypes.h" />
<Unit filename="..\..\include\EMeshWriterEnums.h" />
<Unit filename="..\..\include\EMessageBoxFlags.h" />
<Unit filename="..\..\include\EPrimitiveTypes.h" />
<Unit filename="..\..\include\ESceneNodeAnimatorTypes.h" />
<Unit filename="..\..\include\ESceneNodeTypes.h" />
<Unit filename="..\..\include\EShaderTypes.h" />
<Unit filename="..\..\include\ETerrainElements.h" />
<Unit filename="..\..\include\IAnimatedMesh.h" />
<Unit filename="..\..\include\IAnimatedMeshMD2.h" />
<Unit filename="..\..\include\IAnimatedMeshMD3.h" />
<Unit filename="..\..\include\IAnimatedMeshSceneNode.h" />
<Unit filename="..\..\include\IAttributeExchangingObject.h" />
<Unit filename="..\..\include\IAttributes.h" />
<Unit filename="..\..\include\IBillboardSceneNode.h" />
<Unit filename="..\..\include\IBillboardTextSceneNode.h" />
<Unit filename="..\..\include\IBoneSceneNode.h" />
<Unit filename="..\..\include\ICameraSceneNode.h" />
<Unit filename="..\..\include\IColladaMeshWriter.h" />
<Unit filename="..\..\include\ICursorControl.h" />
<Unit filename="..\..\include\IDummyTransformationSceneNode.h" />
<Unit filename="..\..\include\IDynamicMeshBuffer.h" />
<Unit filename="..\..\include\IEventReceiver.h" />
<Unit filename="..\..\include\IFileArchive.h" />
<Unit filename="..\..\include\IFileList.h" />
<Unit filename="..\..\include\IFileSystem.h" />
<Unit filename="..\..\include\IGPUProgrammingServices.h" />
<Unit filename="..\..\include\IGUIButton.h" />
<Unit filename="..\..\include\IGUICheckBox.h" />
<Unit filename="..\..\include\IGUIColorSelectDialog.h" />
<Unit filename="..\..\include\IGUIComboBox.h" />
<Unit filename="..\..\include\IGUIContextMenu.h" />
<Unit filename="..\..\include\IGUIEditBox.h" />
<Unit filename="..\..\include\IGUIElement.h" />
<Unit filename="..\..\include\IGUIElementFactory.h" />
<Unit filename="..\..\include\IGUIEnvironment.h" />
<Unit filename="..\..\include\IGUIFileOpenDialog.h" />
<Unit filename="..\..\include\IGUIFont.h" />
<Unit filename="..\..\include\IGUIFontBitmap.h" />
<Unit filename="..\..\include\IGUIImage.h" />
<Unit filename="..\..\include\IGUIImageList.h" />
<Unit filename="..\..\include\IGUIInOutFader.h" />
<Unit filename="..\..\include\IGUIListBox.h" />
<Unit filename="..\..\include\IGUIMeshViewer.h" />
<Unit filename="..\..\include\IGUIProfiler.h" />
<Unit filename="..\..\include\IGUIScrollBar.h" />
<Unit filename="..\..\include\IGUISkin.h" />
<Unit filename="..\..\include\IGUISpinBox.h" />
<Unit filename="..\..\include\IGUISpriteBank.h" />
<Unit filename="..\..\include\IGUIStaticText.h" />
<Unit filename="..\..\include\IGUITabControl.h" />
<Unit filename="..\..\include\IGUITable.h" />
<Unit filename="..\..\include\IGUIToolbar.h" />
<Unit filename="..\..\include\IGUITreeView.h" />
<Unit filename="..\..\include\IGUIWindow.h" />
<Unit filename="..\..\include\IGeometryCreator.h" />
<Unit filename="..\..\include\IImage.h" />
<Unit filename="..\..\include\IImageLoader.h" />
<Unit filename="..\..\include\IImageWriter.h" />
<Unit filename="..\..\include\IIndexBuffer.h" />
<Unit filename="..\..\include\ILightManager.h" />
<Unit filename="..\..\include\ILightSceneNode.h" />
<Unit filename="..\..\include\ILogger.h" />
<Unit filename="..\..\include\IMaterialRenderer.h" />
<Unit filename="..\..\include\IMaterialRendererServices.h" />
<Unit filename="..\..\include\IMesh.h" />
<Unit filename="..\..\include\IMeshBuffer.h" />
<Unit filename="..\..\include\IMeshCache.h" />
<Unit filename="..\..\include\IMeshLoader.h" />
<Unit filename="..\..\include\IMeshManipulator.h" />
<Unit filename="..\..\include\IMeshSceneNode.h" />
<Unit filename="..\..\include\IMeshTextureLoader.h" />
<Unit filename="..\..\include\IMeshWriter.h" />
<Unit filename="..\..\include\IMetaTriangleSelector.h" />
<Unit filename="..\..\include\IOSOperator.h" />
<Unit filename="..\..\include\IParticleAffector.h" />
<Unit filename="..\..\include\IParticleAnimatedMeshSceneNodeEmitter.h" />
<Unit filename="..\..\include\IParticleAttractionAffector.h" />
<Unit filename="..\..\include\IParticleBoxEmitter.h" />
<Unit filename="..\..\include\IParticleCylinderEmitter.h" />
<Unit filename="..\..\include\IParticleEmitter.h" />
<Unit filename="..\..\include\IParticleFadeOutAffector.h" />
<Unit filename="..\..\include\IParticleGravityAffector.h" />
<Unit filename="..\..\include\IParticleMeshEmitter.h" />
<Unit filename="..\..\include\IParticleRingEmitter.h" />
<Unit filename="..\..\include\IParticleRotationAffector.h" />
<Unit filename="..\..\include\IParticleSphereEmitter.h" />
<Unit filename="..\..\include\IParticleSystemSceneNode.h" />
<Unit filename="..\..\include\IProfiler.h" />
<Unit filename="..\..\include\IQ3LevelMesh.h" />
<Unit filename="..\..\include\IQ3Shader.h" />
<Unit filename="..\..\include\IReadFile.h" />
<Unit filename="..\..\include\IReferenceCounted.h" />
<Unit filename="..\..\include\ISceneCollisionManager.h" />
<Unit filename="..\..\include\ISceneLoader.h" />
<Unit filename="..\..\include\ISceneManager.h" />
<Unit filename="..\..\include\ISceneNode.h" />
<Unit filename="..\..\include\ISceneNodeAnimator.h" />
<Unit filename="..\..\include\ISceneNodeAnimatorCameraFPS.h" />
<Unit filename="..\..\include\ISceneNodeAnimatorCameraMaya.h" />
<Unit filename="..\..\include\ISceneNodeAnimatorCollisionResponse.h" />
<Unit filename="..\..\include\ISceneNodeAnimatorFactory.h" />
<Unit filename="..\..\include\ISceneNodeFactory.h" />
<Unit filename="..\..\include\ISceneUserDataSerializer.h" />
<Unit filename="..\..\include\IShaderConstantSetCallBack.h" />
<Unit filename="..\..\include\IShadowVolumeSceneNode.h" />
<Unit filename="..\..\include\ISkinnedMesh.h" />
<Unit filename="..\..\include\ITerrainSceneNode.h" />
<Unit filename="..\..\include\ITextSceneNode.h" />
<Unit filename="..\..\include\ITexture.h" />
<Unit filename="..\..\include\ITimer.h" />
<Unit filename="..\..\include\ITriangleSelector.h" />
<Unit filename="..\..\include\IVertexBuffer.h" />
<Unit filename="..\..\include\IVideoDriver.h" />
<Unit filename="..\..\include\IVideoModeList.h" />
<Unit filename="..\..\include\IVolumeLightSceneNode.h" />
<Unit filename="..\..\include\IWriteFile.h" />
<Unit filename="..\..\include\IXMLReader.h" />
<Unit filename="..\..\include\IXMLWriter.h" />
<Unit filename="..\..\include\IrrCompileConfig.h" />
<Unit filename="..\..\include\IrrlichtDevice.h" />
<Unit filename="..\..\include\Keycodes.h" />
<Unit filename="..\..\include\S3DVertex.h" />
<Unit filename="..\..\include\SAnimatedMesh.h" />
<Unit filename="..\..\include\SColor.h" />
<Unit filename="..\..\include\SExposedVideoData.h" />
<Unit filename="..\..\include\SIrrCreationParameters.h" />
<Unit filename="..\..\include\SKeyMap.h" />
<Unit filename="..\..\include\SLight.h" />
<Unit filename="..\..\include\SMaterial.h" />
<Unit filename="..\..\include\SMaterialLayer.h" />
<Unit filename="..\..\include\SMesh.h" />
<Unit filename="..\..\include\SMeshBuffer.h" />
<Unit filename="..\..\include\SMeshBufferLightMap.h" />
<Unit filename="..\..\include\SMeshBufferTangents.h" />
<Unit filename="..\..\include\SParticle.h" />
<Unit filename="..\..\include\SSharedMeshBuffer.h" />
<Unit filename="..\..\include\SSkinMeshBuffer.h" />
<Unit filename="..\..\include\SVertexIndex.h" />
<Unit filename="..\..\include\SVertexManipulator.h" />
<Unit filename="..\..\include\SViewFrustum.h" />
<Unit filename="..\..\include\SceneParameters.h" />
<Unit filename="..\..\include\aabbox3d.h" />
<Unit filename="..\..\include\coreutil.h" />
<Unit filename="..\..\include\dimension2d.h" />
<Unit filename="..\..\include\fast_atof.h" />
<Unit filename="..\..\include\heapsort.h" />
<Unit filename="..\..\include\irrAllocator.h" />
<Unit filename="..\..\include\irrArray.h" />
<Unit filename="..\..\include\irrList.h" />
<Unit filename="..\..\include\irrMap.h" />
<Unit filename="..\..\include\irrMath.h" />
<Unit filename="..\..\include\irrString.h" />
<Unit filename="..\..\include\irrTypes.h" />
<Unit filename="..\..\include\irrXML.h" />
<Unit filename="..\..\include\irrlicht.h" />
<Unit filename="..\..\include\irrpack.h" />
<Unit filename="..\..\include\irrunpack.h" />
<Unit filename="..\..\include\leakHunter.h" />
<Unit filename="..\..\include\line2d.h" />
<Unit filename="..\..\include\line3d.h" />
<Unit filename="..\..\include\matrix4.h" />
<Unit filename="..\..\include\path.h" />
<Unit filename="..\..\include\plane3d.h" />
<Unit filename="..\..\include\position2d.h" />
<Unit filename="..\..\include\quaternion.h" />
<Unit filename="..\..\include\rect.h" />
<Unit filename="..\..\include\triangle3d.h" />
<Unit filename="..\..\include\vector2d.h" />
<Unit filename="..\..\include\vector3d.h" />
<Unit filename="..\..\readme.txt" />
<Unit filename="BuiltInFont.h" />
<Unit filename="C3DSMeshFileLoader.cpp" />
<Unit filename="C3DSMeshFileLoader.h" />
......@@ -892,6 +892,7 @@
<Unit filename="CParticleSystemSceneNode.cpp" />
<Unit filename="CParticleSystemSceneNode.h" />
<Unit filename="CProfiler.cpp" />
<Unit filename="CProfiler.h" />
<Unit filename="CQ3LevelMesh.cpp" />
<Unit filename="CQ3LevelMesh.h" />
<Unit filename="CQuake3ShaderSceneNode.cpp" />
......@@ -1021,300 +1022,300 @@
<Unit filename="ITriangleRenderer.h" />
<Unit filename="IZBuffer.h" />
<Unit filename="Irrlicht.cpp" />
<Unit filename="MacOSX/CIrrDeviceMacOSX.h" />
<Unit filename="MacOSX/CIrrDeviceMacOSX.mm" />
<Unit filename="MacOSX\CIrrDeviceMacOSX.h" />
<Unit filename="MacOSX\CIrrDeviceMacOSX.mm" />
<Unit filename="Octree.h" />
<Unit filename="S2DVertex.h" />
<Unit filename="S4DVertex.h" />
<Unit filename="SoftwareDriver2_compile_config.h" />
<Unit filename="SoftwareDriver2_helper.h" />
<Unit filename="aesGladman/aes.h" />
<Unit filename="aesGladman/aescrypt.cpp" />
<Unit filename="aesGladman/aeskey.cpp" />
<Unit filename="aesGladman/aesopt.h" />
<Unit filename="aesGladman/aestab.cpp" />
<Unit filename="aesGladman/fileenc.cpp" />
<Unit filename="aesGladman/fileenc.h" />
<Unit filename="aesGladman/hmac.cpp" />
<Unit filename="aesGladman/hmac.h" />
<Unit filename="aesGladman/prng.cpp" />
<Unit filename="aesGladman/prng.h" />
<Unit filename="aesGladman/pwd2key.cpp" />
<Unit filename="aesGladman/pwd2key.h" />
<Unit filename="aesGladman/sha1.cpp" />
<Unit filename="aesGladman/sha1.h" />
<Unit filename="aesGladman/sha2.cpp" />
<Unit filename="aesGladman/sha2.h" />
<Unit filename="bzip2/blocksort.c">
<Unit filename="aesGladman\aes.h" />
<Unit filename="aesGladman\aescrypt.cpp" />
<Unit filename="aesGladman\aeskey.cpp" />
<Unit filename="aesGladman\aesopt.h" />
<Unit filename="aesGladman\aestab.cpp" />
<Unit filename="aesGladman\fileenc.cpp" />
<Unit filename="aesGladman\fileenc.h" />
<Unit filename="aesGladman\hmac.cpp" />
<Unit filename="aesGladman\hmac.h" />
<Unit filename="aesGladman\prng.cpp" />
<Unit filename="aesGladman\prng.h" />
<Unit filename="aesGladman\pwd2key.cpp" />
<Unit filename="aesGladman\pwd2key.h" />
<Unit filename="aesGladman\sha1.cpp" />
<Unit filename="aesGladman\sha1.h" />
<Unit filename="aesGladman\sha2.cpp" />
<Unit filename="aesGladman\sha2.h" />
<Unit filename="bzip2\blocksort.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="bzip2/bzcompress.c">
<Unit filename="bzip2\bzcompress.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="bzip2/bzlib.c">
<Unit filename="bzip2\bzlib.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="bzip2/bzlib.h" />
<Unit filename="bzip2/bzlib_private.h" />
<Unit filename="bzip2/crctable.c">
<Unit filename="bzip2\bzlib.h" />
<Unit filename="bzip2\bzlib_private.h" />
<Unit filename="bzip2\crctable.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="bzip2/decompress.c">
<Unit filename="bzip2\decompress.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="bzip2/huffman.c">
<Unit filename="bzip2\huffman.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="bzip2/randtable.c">
<Unit filename="bzip2\randtable.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="dmfsupport.h" />
<Unit filename="glext.h" />
<Unit filename="irrXML.cpp" />
<Unit filename="jpeglib/cderror.h" />
<Unit filename="jpeglib/jaricom.c">
<Unit filename="jpeglib\cderror.h" />
<Unit filename="jpeglib\jaricom.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jcapimin.c">
<Unit filename="jpeglib\jcapimin.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jcapistd.c">
<Unit filename="jpeglib\jcapistd.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jcarith.c">
<Unit filename="jpeglib\jcarith.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jccoefct.c">
<Unit filename="jpeglib\jccoefct.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jccolor.c">
<Unit filename="jpeglib\jccolor.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jcdctmgr.c">
<Unit filename="jpeglib\jcdctmgr.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jchuff.c">
<Unit filename="jpeglib\jchuff.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jchuff.h" />
<Unit filename="jpeglib/jcinit.c">
<Unit filename="jpeglib\jchuff.h" />
<Unit filename="jpeglib\jcinit.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jcmainct.c">
<Unit filename="jpeglib\jcmainct.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jcmarker.c">
<Unit filename="jpeglib\jcmarker.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jcmaster.c">
<Unit filename="jpeglib\jcmaster.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jcomapi.c">
<Unit filename="jpeglib\jcomapi.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jconfig.h" />
<Unit filename="jpeglib/jcparam.c">
<Unit filename="jpeglib\jconfig.h" />
<Unit filename="jpeglib\jcparam.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jcprepct.c">
<Unit filename="jpeglib\jcprepct.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jcsample.c">
<Unit filename="jpeglib\jcsample.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jctrans.c">
<Unit filename="jpeglib\jctrans.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jdapimin.c">
<Unit filename="jpeglib\jdapimin.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jdapistd.c">
<Unit filename="jpeglib\jdapistd.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jdarith.c">
<Unit filename="jpeglib\jdarith.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jdatadst.c">
<Unit filename="jpeglib\jdatadst.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jdatasrc.c">
<Unit filename="jpeglib\jdatasrc.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jdcoefct.c">
<Unit filename="jpeglib\jdcoefct.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jdcolor.c">
<Unit filename="jpeglib\jdcolor.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jdct.h" />
<Unit filename="jpeglib/jddctmgr.c">
<Unit filename="jpeglib\jdct.h" />
<Unit filename="jpeglib\jddctmgr.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jdhuff.c">
<Unit filename="jpeglib\jdhuff.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jdhuff.h" />
<Unit filename="jpeglib/jdinput.c">
<Unit filename="jpeglib\jdhuff.h" />
<Unit filename="jpeglib\jdinput.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jdmainct.c">
<Unit filename="jpeglib\jdmainct.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jdmarker.c">
<Unit filename="jpeglib\jdmarker.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jdmaster.c">
<Unit filename="jpeglib\jdmaster.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jdmerge.c">
<Unit filename="jpeglib\jdmerge.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jdpostct.c">
<Unit filename="jpeglib\jdpostct.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jdsample.c">
<Unit filename="jpeglib\jdsample.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jdtrans.c">
<Unit filename="jpeglib\jdtrans.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jerror.c">
<Unit filename="jpeglib\jerror.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jerror.h" />
<Unit filename="jpeglib/jfdctflt.c">
<Unit filename="jpeglib\jerror.h" />
<Unit filename="jpeglib\jfdctflt.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jfdctfst.c">
<Unit filename="jpeglib\jfdctfst.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jfdctint.c">
<Unit filename="jpeglib\jfdctint.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jidctflt.c">
<Unit filename="jpeglib\jidctflt.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jidctfst.c">
<Unit filename="jpeglib\jidctfst.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jidctint.c">
<Unit filename="jpeglib\jidctint.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jinclude.h" />
<Unit filename="jpeglib/jmemmgr.c">
<Unit filename="jpeglib\jinclude.h" />
<Unit filename="jpeglib\jmemmgr.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jmemnobs.c">
<Unit filename="jpeglib\jmemnobs.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jmemsys.h" />
<Unit filename="jpeglib/jmorecfg.h" />
<Unit filename="jpeglib/jpegint.h" />
<Unit filename="jpeglib/jpeglib.h" />
<Unit filename="jpeglib/jquant1.c">
<Unit filename="jpeglib\jmemsys.h" />
<Unit filename="jpeglib\jmorecfg.h" />
<Unit filename="jpeglib\jpegint.h" />
<Unit filename="jpeglib\jpeglib.h" />
<Unit filename="jpeglib\jquant1.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jquant2.c">
<Unit filename="jpeglib\jquant2.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jutils.c">
<Unit filename="jpeglib\jutils.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="jpeglib/jversion.h" />
<Unit filename="jpeglib\jversion.h" />
<Unit filename="leakHunter.cpp" />
<Unit filename="libpng/png.c">
<Unit filename="libpng\png.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="libpng/png.h" />
<Unit filename="libpng/pngconf.h" />
<Unit filename="libpng/pngerror.c">
<Unit filename="libpng\png.h" />
<Unit filename="libpng\pngconf.h" />
<Unit filename="libpng\pngerror.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="libpng/pngget.c">
<Unit filename="libpng\pngget.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="libpng/pngmem.c">
<Unit filename="libpng\pngmem.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="libpng/pngpread.c">
<Unit filename="libpng\pngpread.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="libpng/pngread.c">
<Unit filename="libpng\pngread.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="libpng/pngrio.c">
<Unit filename="libpng\pngrio.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="libpng/pngrtran.c">
<Unit filename="libpng\pngrtran.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="libpng/pngrutil.c">
<Unit filename="libpng\pngrutil.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="libpng/pngset.c">
<Unit filename="libpng\pngset.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="libpng/pngtrans.c">
<Unit filename="libpng\pngtrans.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="libpng/pngwio.c">
<Unit filename="libpng\pngwio.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="libpng/pngwrite.c">
<Unit filename="libpng\pngwrite.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="libpng/pngwtran.c">
<Unit filename="libpng\pngwtran.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="libpng/pngwutil.c">
<Unit filename="libpng\pngwutil.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="lzma/LzmaDec.c">
<Unit filename="lzma\LzmaDec.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="lzma/LzmaDec.h" />
<Unit filename="lzma/Types.h" />
<Unit filename="lzma\LzmaDec.h" />
<Unit filename="lzma\Types.h" />
<Unit filename="os.cpp" />
<Unit filename="os.h" />
<Unit filename="zlib/adler32.c">
<Unit filename="zlib\adler32.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="zlib/compress.c">
<Unit filename="zlib\compress.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="zlib/crc32.c">
<Unit filename="zlib\crc32.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="zlib/crc32.h" />
<Unit filename="zlib/deflate.c">
<Unit filename="zlib\crc32.h" />
<Unit filename="zlib\deflate.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="zlib/deflate.h" />
<Unit filename="zlib/inffast.c">
<Unit filename="zlib\deflate.h" />
<Unit filename="zlib\inffast.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="zlib/inffast.h" />
<Unit filename="zlib/inffixed.h" />
<Unit filename="zlib/inflate.c">
<Unit filename="zlib\inffast.h" />
<Unit filename="zlib\inffixed.h" />
<Unit filename="zlib\inflate.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="zlib/inftrees.c">
<Unit filename="zlib\inftrees.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="zlib/inftrees.h" />
<Unit filename="zlib/trees.c">
<Unit filename="zlib\inftrees.h" />
<Unit filename="zlib\trees.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="zlib/trees.h" />
<Unit filename="zlib/uncompr.c">
<Unit filename="zlib\trees.h" />
<Unit filename="zlib\uncompr.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="zlib/zconf.h" />
<Unit filename="zlib/zlib.h" />
<Unit filename="zlib/zutil.c">
<Unit filename="zlib\zconf.h" />
<Unit filename="zlib\zlib.h" />
<Unit filename="zlib\zutil.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="zlib/zutil.h" />
<Unit filename="zlib\zutil.h" />
<Extensions>
<code_completion />
<debugger />
......
......@@ -835,9 +835,9 @@
<ClInclude Include="..\..\include\EMaterialFlags.h" />
<ClInclude Include="..\..\include\IAnimatedMeshMD3.h" />
<ClInclude Include="..\..\include\IEventReceiver.h" />
<ClInclude Include="..\..\include\CProfiler.h" />
<ClInclude Include="..\..\include\ILogger.h" />
<ClInclude Include="..\..\include\IOSOperator.h" />
<ClInclude Include="..\..\include\IProfiler.h" />
<ClInclude Include="..\..\include\IRandomizer.h" />
<ClInclude Include="..\..\include\IReferenceCounted.h" />
<ClInclude Include="..\..\include\IrrCompileConfig.h" />
......@@ -920,7 +920,7 @@
<ClInclude Include="..\..\include\IMeshLoader.h" />
<ClInclude Include="..\..\include\IMeshManipulator.h" />
<ClInclude Include="..\..\include\IMeshSceneNode.h" />
<ClInclude Include="..\..\include\IMeshTextureLoader.h" />
<ClInclude Include="..\..\include\IMeshTextureLoader.h" />
<ClInclude Include="..\..\include\IMeshWriter.h" />
<ClInclude Include="..\..\include\IMetaTriangleSelector.h" />
<ClInclude Include="..\..\include\IParticleAffector.h" />
......@@ -966,7 +966,7 @@
<ClInclude Include="..\..\include\EGUIAlignment.h" />
<ClInclude Include="..\..\include\EGUIElementTypes.h" />
<ClInclude Include="..\..\include\EMessageBoxFlags.h" />
<ClInclude Include="..\..\include\EFocusFlags.h" />
<ClInclude Include="..\..\include\EFocusFlags.h" />
<ClInclude Include="..\..\include\ICursorControl.h" />
<ClInclude Include="..\..\include\IGUIButton.h" />
<ClInclude Include="..\..\include\IGUICheckbox.h" />
......@@ -983,7 +983,7 @@
<ClInclude Include="..\..\include\IGUIInOutFader.h" />
<ClInclude Include="..\..\include\IGUIListBox.h" />
<ClInclude Include="..\..\include\IGUIMeshViewer.h" />
<ClInclude Include="..\..\include\IGUIProfiler.h" />
<ClInclude Include="..\..\include\IGUIProfiler.h" />
<ClInclude Include="..\..\include\IGUIScrollBar.h" />
<ClInclude Include="..\..\include\IGUISkin.h" />
<ClInclude Include="..\..\include\IGUISpinBox.h" />
......@@ -1001,6 +1001,7 @@
<ClInclude Include="CMeshCache.h" />
<ClInclude Include="CMeshManipulator.h" />
<ClInclude Include="COpenGLCgMaterialRenderer.h" />
<ClInclude Include="CProfiler.h" />
<ClInclude Include="CSceneManager.h" />
<ClInclude Include="Octree.h" />
<ClInclude Include="CSMFMeshFileLoader.h" />
......@@ -1018,7 +1019,7 @@
<ClInclude Include="CLWOMeshFileLoader.h" />
<ClInclude Include="CMD2MeshFileLoader.h" />
<ClInclude Include="CMD3MeshFileLoader.h" />
<ClInclude Include="CMeshTextureLoader.h" />
<ClInclude Include="CMeshTextureLoader.h" />
<ClInclude Include="CMS3DMeshFileLoader.h" />
<ClInclude Include="CMY3DHelper.h" />
<ClInclude Include="CMY3DMeshFileLoader.h" />
......@@ -1151,7 +1152,7 @@
<ClInclude Include="COSOperator.h" />
<ClInclude Include="CTimer.h" />
<ClInclude Include="os.h" />
<ClInclude Include="EProfileIDs.h" />
<ClInclude Include="EProfileIDs.h" />
<ClInclude Include="lzma\LzmaDec.h" />
<ClInclude Include="lzma\Types.h" />
<ClInclude Include="zlib\crc32.h" />
......@@ -1230,7 +1231,7 @@
<ClInclude Include="CGUIMessageBox.h" />
<ClInclude Include="CGUIModalScreen.h" />
<ClInclude Include="CGUIProfiler.h" />
<ClInclude Include="CGUIScrollBar.h" />
<ClInclude Include="CGUIScrollBar.h" />
<ClInclude Include="CGUISkin.h" />
<ClInclude Include="CGUISpinBox.h" />
<ClInclude Include="CGUISpriteBank.h" />
......@@ -1270,7 +1271,7 @@
<ClCompile Include="CLWOMeshFileLoader.cpp" />
<ClCompile Include="CMD2MeshFileLoader.cpp" />
<ClCompile Include="CMD3MeshFileLoader.cpp" />
<ClCompile Include="CMeshTextureLoader.cpp" />
<ClCompile Include="CMeshTextureLoader.cpp" />
<ClCompile Include="CMS3DMeshFileLoader.cpp" />
<ClCompile Include="CMY3DMeshFileLoader.cpp" />
<ClCompile Include="COBJMeshFileLoader.cpp" />
......@@ -1417,7 +1418,7 @@
<ClCompile Include="Irrlicht.cpp" />
<ClCompile Include="leakHunter.cpp" />
<ClCompile Include="os.cpp" />
<ClCompile Include="CProfiler.cpp" />
<ClCompile Include="CProfiler.cpp" />
<ClCompile Include="lzma\LzmaDec.c" />
<ClCompile Include="zlib\adler32.c" />
<ClCompile Include="zlib\compress.c" />
......@@ -1548,7 +1549,7 @@
<ClCompile Include="CGUIMessageBox.cpp" />
<ClCompile Include="CGUIModalScreen.cpp" />
<ClCompile Include="CGUIProfiler.cpp" />
<ClCompile Include="CGUIScrollBar.cpp" />
<ClCompile Include="CGUIScrollBar.cpp" />
<ClCompile Include="CGUISkin.cpp" />
<ClCompile Include="CGUISpinBox.cpp" />
<ClCompile Include="CGUISpriteBank.cpp" />
......
......@@ -105,10 +105,7 @@
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\include\IEventReceiver.h">
<Filter>include</Filter>
</ClInclude>
<ClInclude Include="..\..\include\CProfiler.h">
<ClInclude Include="..\..\include\IEventReceiver.h">
<Filter>include</Filter>
</ClInclude>
<ClInclude Include="..\..\include\ILogger.h">
......@@ -357,7 +354,7 @@
<ClInclude Include="..\..\include\IMeshSceneNode.h">
<Filter>include\scene</Filter>
</ClInclude>
<ClInclude Include="..\..\include\IMeshTextureLoader.h">
<ClInclude Include="..\..\include\IMeshTextureLoader.h">
<Filter>include\scene</Filter>
</ClInclude>
<ClInclude Include="..\..\include\IMeshWriter.h">
......@@ -492,7 +489,7 @@
<ClInclude Include="..\..\include\EMessageBoxFlags.h">
<Filter>include\gui</Filter>
</ClInclude>
<ClInclude Include="..\..\include\EFocusFlags.h">
<ClInclude Include="..\..\include\EFocusFlags.h">
<Filter>include\gui</Filter>
</ClInclude>
<ClInclude Include="..\..\include\ICursorControl.h">
......@@ -543,7 +540,7 @@
<ClInclude Include="..\..\include\IGUIMeshViewer.h">
<Filter>include\gui</Filter>
</ClInclude>
<ClInclude Include="..\..\include\IGUIProfiler.h">
<ClInclude Include="..\..\include\IGUIProfiler.h">
<Filter>include\gui</Filter>
</ClInclude>
<ClInclude Include="..\..\include\IGUIScrollBar.h">
......@@ -636,7 +633,7 @@
<ClInclude Include="CMD3MeshFileLoader.h">
<Filter>Irrlicht\scene\loaders</Filter>
</ClInclude>
<ClInclude Include="CMeshTextureLoader.h">
<ClInclude Include="CMeshTextureLoader.h">
<Filter>Irrlicht\scene\loaders</Filter>
</ClInclude>
<ClInclude Include="CMS3DMeshFileLoader.h">
......@@ -1029,7 +1026,7 @@
<ClInclude Include="os.h">
<Filter>Irrlicht\irr</Filter>
</ClInclude>
<ClInclude Include="EProfileIDs.h">
<ClInclude Include="EProfileIDs.h">
<Filter>Irrlicht\irr</Filter>
</ClInclude>
<ClInclude Include="lzma\LzmaDec.h">
......@@ -1266,7 +1263,7 @@
<ClInclude Include="CGUIProfiler.h">
<Filter>Irrlicht\gui</Filter>
</ClInclude>
<ClInclude Include="CGUIScrollBar.h">
<ClInclude Include="CGUIScrollBar.h">
<Filter>Irrlicht\gui</Filter>
</ClInclude>
<ClInclude Include="CGUISkin.h">
......@@ -1330,6 +1327,12 @@
<ClInclude Include="..\..\include\SSharedMeshBuffer.h">
<Filter>include\scene</Filter>
</ClInclude>
<ClInclude Include="..\..\include\IProfiler.h">
<Filter>include</Filter>
</ClInclude>
<ClInclude Include="CProfiler.h">
<Filter>Irrlicht\irr</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\changes.txt">
......@@ -1400,7 +1403,7 @@
<ClCompile Include="CMD3MeshFileLoader.cpp">
<Filter>Irrlicht\scene\loaders</Filter>
</ClCompile>
<ClCompile Include="CMeshTextureLoader.cpp">
<ClCompile Include="CMeshTextureLoader.cpp">
<Filter>Irrlicht\scene\loaders</Filter>
</ClCompile>
<ClCompile Include="CMS3DMeshFileLoader.cpp">
......@@ -1835,7 +1838,7 @@
<ClCompile Include="os.cpp">
<Filter>Irrlicht\irr</Filter>
</ClCompile>
<ClCompile Include="CProfiler.cpp">
<ClCompile Include="CProfiler.cpp">
<Filter>Irrlicht\irr</Filter>
</ClCompile>
<ClCompile Include="lzma\LzmaDec.c">
......@@ -2228,7 +2231,7 @@
<ClCompile Include="CGUIProfiler.cpp">
<Filter>Irrlicht\gui</Filter>
</ClCompile>
<ClCompile Include="CGUIScrollBar.cpp">
<ClCompile Include="CGUIScrollBar.cpp">
<Filter>Irrlicht\gui</Filter>
</ClCompile>
<ClCompile Include="CGUISkin.cpp">
......
......@@ -842,7 +842,7 @@
<ClInclude Include="..\..\include\EMaterialFlags.h" />
<ClInclude Include="..\..\include\IAnimatedMeshMD3.h" />
<ClInclude Include="..\..\include\IEventReceiver.h" />
<ClInclude Include="..\..\include\CProfiler.h" />
<ClInclude Include="..\..\include\IProfiler.h" />
<ClInclude Include="..\..\include\ILogger.h" />
<ClInclude Include="..\..\include\IOSOperator.h" />
<ClInclude Include="..\..\include\IRandomizer.h" />
......@@ -1158,6 +1158,7 @@
<ClInclude Include="COSOperator.h" />
<ClInclude Include="CTimer.h" />
<ClInclude Include="os.h" />
<ClInclude Include="CProfiler.h" />
<ClInclude Include="EProfileIDs.h" />
<ClInclude Include="lzma\LzmaDec.h" />
<ClInclude Include="lzma\Types.h" />
......
......@@ -108,7 +108,7 @@
<ClInclude Include="..\..\include\IEventReceiver.h">
<Filter>include</Filter>
</ClInclude>
<ClInclude Include="..\..\include\CProfiler.h">
<ClInclude Include="..\..\include\IProfiler.h">
<Filter>include</Filter>
</ClInclude>
<ClInclude Include="..\..\include\ILogger.h">
......@@ -1031,6 +1031,9 @@
</ClInclude>
<ClInclude Include="os.h">
<Filter>Irrlicht\irr</Filter>
</ClInclude>
<ClInclude Include="CProfiler.h">
<Filter>Irrlicht\irr</Filter>
</ClInclude>
<ClInclude Include="EProfileIDs.h">
<Filter>Irrlicht\irr</Filter>
......
......@@ -587,7 +587,7 @@
>
</File>
<File
RelativePath=".\..\..\include\CProfiler.h"
RelativePath=".\..\..\include\IProfiler.h"
>
</File>
<File
......@@ -3021,6 +3021,10 @@
RelativePath="CProfiler.cpp"
>
</File>
<File
RelativePath="CProfiler.h"
>
</File>
<File
RelativePath="EProfileIDs.h"
>
......
......@@ -686,7 +686,7 @@
>
</File>
<File
RelativePath="..\..\include\CProfiler.h"
RelativePath="..\..\include\IProfiler.h"
>
</File>
<File
......@@ -2740,6 +2740,10 @@
RelativePath="CProfiler.cpp"
>
</File>
<File
RelativePath="CProfiler.h"
>
</File>
<File
RelativePath="EProfileIDs.h"
>
......
......@@ -330,7 +330,7 @@
>
</File>
<File
RelativePath="..\..\include\CProfiler.h"
RelativePath="..\..\include\IProfiler.h"
>
</File>
<File
......@@ -2594,6 +2594,10 @@
RelativePath="CProfiler.cpp"
>
</File>
<File
RelativePath="CProfiler.h"
>
</File>
<File
RelativePath="EProfileIDs.h"
>
......
......@@ -310,7 +310,7 @@
RelativePath="..\..\include\IEventReceiver.h">
</File>
<File
RelativePath="..\..\include\CProfiler.h">
RelativePath="..\..\include\IProfiler.h">
</File>
<File
RelativePath="..\..\include\IFileArchive.h">
......@@ -1443,6 +1443,9 @@
<File
RelativePath=".\CProfiler.cpp">
</File>
<File
RelativePath=".\CProfiler.h">
</File>
<File
RelativePath=".\EProfileIDs.h">
</File>
......
......@@ -376,7 +376,7 @@ if "osx" in env["platform"] :
# sources of the examples
srcexamples = ["01.HelloWorld", "02.Quake3Map", "03.CustomSceneNode", "04.Movement", "05.UserInterface", "06.2DGraphics", "07.Collision", "08.SpecialFX", "09.Meshviewer", "10.Shaders", "11.PerPixelLighting", "12.TerrainRendering", "13.RenderToTexture", "15.LoadIrrFile", "16.Quake3MapShader", "17.HelloWorld_Mobile", "18.SplitScreen", "19.MouseAndJoystick", "20.ManagedLights", "22.MaterialViewer", "23.SMeshHandling", "24.CursorControl", "25.XmlHandling", "26.OcclusionQuery"]
srcexamples = ["01.HelloWorld", "02.Quake3Map", "03.CustomSceneNode", "04.Movement", "05.UserInterface", "06.2DGraphics", "07.Collision", "08.SpecialFX", "09.Meshviewer", "10.Shaders", "11.PerPixelLighting", "12.TerrainRendering", "13.RenderToTexture", "15.LoadIrrFile", "16.Quake3MapShader", "17.HelloWorld_Mobile", "18.SplitScreen", "19.MouseAndJoystick", "20.ManagedLights", "22.MaterialViewer", "23.SMeshHandling", "24.CursorControl", "25.XmlHandling", "26.OcclusionQuery", "30.Profiling"]
if "win" in env["platform"] :
srcexamples.append("14.Win32Window")
# ===================================================================================================================
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment