Browse Source

GCC 4.4 compatibility: no lambda functions.

Vladimír Vondruš 14 years ago
parent
commit
660776f03a
  1. 12
      src/Profiler.cpp
  2. 14
      src/Profiler.h

12
src/Profiler.cpp

@ -101,11 +101,21 @@ void Profiler::printStatistics() {
vector<size_t> totalSorted(sections.size()); vector<size_t> totalSorted(sections.size());
iota(totalSorted.begin(), totalSorted.end(), 0); iota(totalSorted.begin(), totalSorted.end(), 0);
#ifndef CORRADE_GCC44_COMPATIBILITY
sort(totalSorted.begin(), totalSorted.end(), [this](size_t i, size_t j){return totalData[i] > totalData[j];}); sort(totalSorted.begin(), totalSorted.end(), [this](size_t i, size_t j){return totalData[i] > totalData[j];});
#else
sort(totalSorted.begin(), totalSorted.end(), Compare(this));
#endif
Corrade::Utility::Debug() << "Statistics for last" << measureDuration << "frames:"; Corrade::Utility::Debug() << "Statistics for last" << measureDuration << "frames:";
for(size_t i = 0; i != sections.size(); ++i) for(size_t i = 0; i != sections.size(); ++i)
Corrade::Utility::Debug() << ' ' << sections[totalSorted[i]] << chrono::microseconds(totalData[totalSorted[i]]).count()/frameCount << u8"µs"; Corrade::Utility::Debug() << ' ' << sections[totalSorted[i]]
<< chrono::microseconds(totalData[totalSorted[i]]).count()/frameCount
#ifndef CORRADE_GCC44_COMPATIBILITY
<< u8"µs";
#else
<< "µs";
#endif
} }
} }

14
src/Profiler.h

@ -24,6 +24,7 @@
#include <string> #include <string>
#include <vector> #include <vector>
#include "magnumCompatibility.h"
#include "magnumVisibility.h" #include "magnumVisibility.h"
namespace Magnum { namespace Magnum {
@ -190,6 +191,19 @@ class MAGNUM_EXPORT Profiler {
void printStatistics(); void printStatistics();
private: private:
#if !defined(DOXYGEN_GENERATING_OUTPUT) && defined(CORRADE_GCC44_COMPATIBILITY)
struct Compare {
public:
inline Compare(const Profiler* p): p(p) {}
inline bool operator()(size_t i, size_t j) const {
return p->totalData[i] > p->totalData[j];
}
private:
const Profiler* p;
};
#endif
void save(); void save();
bool enabled; bool enabled;

Loading…
Cancel
Save