57 lines
1.2 KiB
C++
57 lines
1.2 KiB
C++
#ifndef Pipeline_HPP
|
|
#define Pipeline_HPP
|
|
|
|
#include <vector>
|
|
#include "PerPixelMesh.hpp"
|
|
#include "Renderable.hpp"
|
|
#include "Filters.hpp"
|
|
#include "PipelineContext.hpp"
|
|
#include "Shader.hpp"
|
|
#include "../Common.hpp"
|
|
//This class is the input to projectM's renderer
|
|
//
|
|
//Most implemenatations should implement PerPixel in order to get multi-threaded
|
|
//dynamic PerPixel equations. If you MUST (ie Milkdrop compatability), you can use the
|
|
//setStaticPerPixel function and fill in x_mesh and y_mesh yourself.
|
|
class Pipeline
|
|
{
|
|
public:
|
|
|
|
//static per pixel stuff
|
|
bool staticPerPixel;
|
|
int gx;
|
|
int gy;
|
|
|
|
float** x_mesh;
|
|
float** y_mesh;
|
|
//end static per pixel
|
|
|
|
bool textureWrap;
|
|
float screenDecay;
|
|
|
|
//variables passed to pixel shaders
|
|
float q[NUM_Q_VARIABLES];
|
|
|
|
//blur settings n=bias x=scale
|
|
float blur1n;
|
|
float blur2n;
|
|
float blur3n;
|
|
float blur1x;
|
|
float blur2x;
|
|
float blur3x;
|
|
float blur1ed;
|
|
|
|
Shader warpShader;
|
|
Shader compositeShader;
|
|
|
|
std::vector<RenderItem*> drawables;
|
|
std::vector<RenderItem*> compositeDrawables;
|
|
|
|
Pipeline();
|
|
void setStaticPerPixel(int gx, int gy);
|
|
virtual ~Pipeline();
|
|
virtual PixelPoint PerPixel(PixelPoint p, const PerPixelContext context);
|
|
};
|
|
|
|
#endif
|