2013-12-08 17:05:18 +00:00
|
|
|
#ifndef WATERRASTERIZER_H
|
|
|
|
#define WATERRASTERIZER_H
|
|
|
|
|
|
|
|
#include "software_global.h"
|
|
|
|
|
2014-06-05 15:12:49 +00:00
|
|
|
#include "Rasterizer.h"
|
|
|
|
|
2013-12-08 17:05:18 +00:00
|
|
|
namespace paysages {
|
|
|
|
namespace software {
|
|
|
|
|
2014-06-05 15:12:49 +00:00
|
|
|
class WaterRasterizer: public Rasterizer
|
2013-12-08 17:05:18 +00:00
|
|
|
{
|
|
|
|
public:
|
2015-08-23 18:22:37 +00:00
|
|
|
WaterRasterizer(SoftwareRenderer* renderer, RenderProgress *progress, int client_id);
|
2013-12-08 17:05:18 +00:00
|
|
|
|
2014-06-18 18:10:05 +00:00
|
|
|
void rasterizeQuad(CanvasPortion* canvas, double x, double z, double size);
|
|
|
|
|
2015-08-23 18:22:37 +00:00
|
|
|
virtual int prepareRasterization() override;
|
2014-08-19 07:18:55 +00:00
|
|
|
virtual void rasterizeToCanvas(CanvasPortion* canvas) override;
|
2015-10-15 22:51:46 +00:00
|
|
|
virtual Color shadeFragment(const CanvasFragment &fragment, const CanvasFragment *previous) const override;
|
2015-08-23 18:22:37 +00:00
|
|
|
|
2015-09-10 17:33:52 +00:00
|
|
|
virtual void setQuality(double factor) override;
|
|
|
|
|
2015-08-23 18:22:37 +00:00
|
|
|
private:
|
|
|
|
int performTessellation(CanvasPortion* canvas);
|
2015-09-10 17:33:52 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
// Quality control
|
|
|
|
double base_chunk_size;
|
2013-12-08 17:05:18 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // WATERRASTERIZER_H
|