Files
vimix/src/DelayFilter.h
Bruno Herbelin e9b72b442a Cleanup source tree
Move all C++ source files in the src subfolder. Adapted the cmake process accordingly and cleanup.
2022-10-25 00:29:22 +02:00

46 lines
1016 B
C++

#ifndef DELAYFILTER_H
#define DELAYFILTER_H
#include <queue>
#include <glm/glm.hpp>
#include "FrameBufferFilter.h"
class Surface;
class FrameBuffer;
class DelayFilter : public FrameBufferFilter
{
public:
DelayFilter();
~DelayFilter();
// delay property
inline void setDelay(double second) { delay_ = second; }
inline double delay() const { return delay_; }
// implementation of FrameBufferFilter
Type type() const override { return FrameBufferFilter::FILTER_DELAY; }
uint texture () const override;
glm::vec3 resolution () const override;
void update (float dt) override;
void reset () override;
double updateTime () override;
void draw (FrameBuffer *input) override;
void accept (Visitor& v) override;
private:
// queue of frames
std::queue<FrameBuffer *> frames_;
std::queue<double> elapsed_;
// render management
FrameBuffer *temp_frame_;
// time management
double now_;
double delay_;
};
#endif // DELAYFILTER_H