This class represents a frame buffer for an engine specific code. It provides an API for utilizing an...
PLATFORM_API const std::string & getName() const
Get the Name object.
virtual PLATFORM_API void createPixelOp(const std::string &)
Create and set a pixelop (pre/post filter) on the framebuffer.
AccumulationType _accumulationType
virtual PLATFORM_API void setSubsampling(const size_t)
Set a new subsampling with a factor from 1 to x of the current size.
PLATFORM_API bool getAccumulation() const
Get the Accumulation object.
std::atomic_size_t _accumFrames
virtual PLATFORM_API void setFormat(FrameBufferFormat frameBufferFormat)
Set a new framebuffer format.
PLATFORM_API const Vector2ui & getFrameSize() const
Get the Frame Size object.
virtual PLATFORM_API void setAccumulation(const bool accumulation)
Enable/disable accumulation state on the framebuffer.
PLATFORM_API FrameBufferFormat getFrameBufferFormat() const
Get the Frame Buffer Format object.
virtual PLATFORM_API const uint8_t * getColorBuffer() const =0
Get the Color Buffer object.
PLATFORM_API FrameBuffer(const std::string &name, const Vector2ui &frameSize, FrameBufferFormat frameBufferFormat)
FrameBuffer constructor.
virtual PLATFORM_API void updatePixelOp(const PropertyMap &)
Update the current pixelop with the given properties.
virtual PLATFORM_API void clear()
Clear the framebuffer.
PLATFORM_API void setAccumulationType(const AccumulationType accumulationType)
Set the Accumulation Type object.
virtual PLATFORM_API void map()=0
Map the buffer for reading with get*Buffer().
FrameBufferFormat _frameBufferFormat
PLATFORM_API size_t getColorDepth() const
Get the Color Depth object.
PLATFORM_API freeimage::ImagePtr getImage()
Get the Image object.
virtual PLATFORM_API Vector2ui getSize() const
Get the Size object.
PLATFORM_API size_t numAccumFrames() const
Get the number of accumulation frames.
virtual PLATFORM_API const float * getFloatBuffer() const =0
Get the Float Buffer object.
PLATFORM_API AccumulationType getAccumulationType() const
Get the Accumulation Type object.
PLATFORM_API void incrementAccumFrames()
Increment the accumulation frames.
virtual PLATFORM_API void resize(const Vector2ui &frameSize)=0
Resize the framebuffer to the new size.
virtual PLATFORM_API void unmap()=0
Unmap the buffer for reading with get*Buffer().
std::unique_ptr< FIBITMAP, ImageDeleter > ImagePtr
glm::vec< 2, uint32_t > Vector2ui