Michaël Lemaire
9a096ec329
Conflicts: src/basics/Disk.cpp src/basics/Disk.h src/basics/SpaceSegment.cpp src/definition/DefinitionNode.cpp src/definition/DefinitionNode.h src/definition/Scenery.cpp src/definition/Scenery.h src/definition/SurfaceMaterial.cpp src/definition/SurfaceMaterial.h src/definition/TextureLayerDefinition.cpp src/definition/definition_global.h src/interface/commandline/tests.cpp src/render/opengl/OpenGLRenderer.cpp src/render/software/SoftwareCanvasRenderer.cpp src/render/software/SoftwareCanvasRenderer.h src/render/software/SoftwareRenderer.h src/render/software/TerrainRasterizer.cpp src/render/software/TerrainRasterizer.h src/render/software/TerrainRenderer.h src/render/software/software_global.h
33 lines
874 B
C++
33 lines
874 B
C++
#ifndef OVERLAYRASTERIZER_H
|
|
#define OVERLAYRASTERIZER_H
|
|
|
|
#include "software_global.h"
|
|
|
|
#include "Rasterizer.h"
|
|
|
|
namespace paysages {
|
|
namespace software {
|
|
|
|
/**
|
|
* Base class for overlay rasterizer.
|
|
*
|
|
* It's a rasterizer that puts a single quad in front of camera, in order to apply a shader on each pixel.
|
|
*/
|
|
class SOFTWARESHARED_EXPORT OverlayRasterizer : public Rasterizer {
|
|
public:
|
|
OverlayRasterizer(SoftwareRenderer *renderer, RenderProgress *progress);
|
|
|
|
/**
|
|
* Abstract method to implement to shade each pixel.
|
|
*/
|
|
virtual Color processPixel(int x, int y, double relx, double rely) const = 0;
|
|
|
|
private:
|
|
virtual int prepareRasterization();
|
|
virtual void rasterizeToCanvas(CanvasPortion *canvas);
|
|
virtual Color shadeFragment(const CanvasFragment &fragment, const CanvasFragment *previous) const;
|
|
};
|
|
}
|
|
}
|
|
|
|
#endif // OVERLAYRASTERIZER_H
|