paysages3d/src/render/software/RenderProgress.h
Michaël Lemaire 7c7b6043c5 Improved render progress.
A bug was also fixed where some canvas pixels were shaded twice,
leading to a performance loss.
2015-08-23 20:22:37 +02:00

44 lines
659 B
C++

#ifndef RENDERPROGRESS_H
#define RENDERPROGRESS_H
#include "software_global.h"
#include <stack>
namespace paysages {
namespace software {
struct RenderSub {
double start;
double end;
int count;
double previous_step;
};
/**
* Utility to keep track of render progress.
*/
class SOFTWARESHARED_EXPORT RenderProgress
{
public:
RenderProgress(int count=1);
~RenderProgress();
inline double get() const {return global;}
void add(int value=1);
void enterSub(int count);
void exitSub();
private:
Mutex *lock;
double global;
double step;
std::stack<RenderSub> subs;
};
}
}
#endif // RENDERPROGRESS_H