Refactored VideoEcho into its own class

git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/trunk@1077 6778bc44-b910-0410-a7a0-be141de4315d
This commit is contained in:
psperl
2008-06-30 03:00:28 +00:00
parent 463dc08988
commit 61355e1386
14 changed files with 25 additions and 67 deletions

View File

@ -275,8 +275,8 @@ int BuiltinParams::load_all_builtin_param(const PresetInputs & presetInputs, Pre
load_builtin_param_float("frating", (void*)&presetOutputs.fRating, NULL, P_FLAG_NONE, 0.0 , 5.0, 0.0, "");
load_builtin_param_float("fwavescale", (void*)&presetOutputs.wave.scale, NULL, P_FLAG_NONE, 0.0, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, "");
load_builtin_param_float("gamma", (void*)&presetOutputs.fGammaAdj, NULL, P_FLAG_NONE, 0.0, MAX_DOUBLE_SIZE, 0, "fGammaAdj");
load_builtin_param_float("echo_zoom", (void*)&presetOutputs.videoEchoZoom, NULL, P_FLAG_NONE, 0.0, MAX_DOUBLE_SIZE, 0, "fVideoEchoZoom");
load_builtin_param_float("echo_alpha", (void*)&presetOutputs.videoEchoAlpha, NULL, P_FLAG_NONE, 0.0, MAX_DOUBLE_SIZE, 0, "fvideoechoalpha");
load_builtin_param_float("echo_zoom", (void*)&presetOutputs.videoEcho.zoom, NULL, P_FLAG_NONE, 0.0, MAX_DOUBLE_SIZE, 0, "fVideoEchoZoom");
load_builtin_param_float("echo_alpha", (void*)&presetOutputs.videoEcho.a, NULL, P_FLAG_NONE, 0.0, MAX_DOUBLE_SIZE, 0, "fvideoechoalpha");
load_builtin_param_float("wave_a", (void*)&presetOutputs.wave.a, NULL, P_FLAG_NONE, 0.0, 1.0, 0, "fwavealpha");
load_builtin_param_float("fwavesmoothing", (void*)&presetOutputs.wave.smoothing, NULL, P_FLAG_NONE, 0.0, 1.0, -1.0, "");
load_builtin_param_float("fmodwavealphastart", (void*)&presetOutputs.wave.modOpacityStart, NULL, P_FLAG_NONE, 0.0, 1.0, -1.0, "");
@ -288,7 +288,7 @@ int BuiltinParams::load_all_builtin_param(const PresetInputs & presetInputs, Pre
load_builtin_param_float("fshader", (void*)&presetOutputs.fShader, NULL, P_FLAG_NONE, 0.0, 1.0, -1.0, "");
load_builtin_param_float("decay", (void*)&presetOutputs.screenDecay, NULL, P_FLAG_NONE, 0.0, 1.0, 0, "fdecay");
load_builtin_param_int("echo_orient", (void*)&presetOutputs.videoEchoOrientation, P_FLAG_NONE, 0, 3, 0, "nVideoEchoOrientation");
load_builtin_param_int("echo_orient", (void*)&presetOutputs.videoEcho.orientation, P_FLAG_NONE, 0, 3, 0, "nVideoEchoOrientation");
load_builtin_param_int("wave_mode", (void*)&presetOutputs.wave.mode, P_FLAG_NONE, 0, 7, 0, "nwavemode");
load_builtin_param_bool("wave_additive", (void*)&presetOutputs.wave.additive, P_FLAG_NONE, false, "bAdditiveWaves");

View File

@ -32,7 +32,7 @@ Func.cpp Eval.cpp PerFrameEqn.cpp PerPointEqn.cpp fftsg.cpp KeyHandler.cpp
timer.cpp wipemalloc.cpp BuiltinFuncs.cpp BuiltinParams.cpp Renderer.cpp
PresetLoader.cpp PresetChooser.cpp PresetFrameIO.cpp PresetMerge.cpp PipelineContext.cpp
ConfigFile.cpp IdlePreset.cpp TextureManager.cpp TimeKeeper.cpp Filters.cpp Renderable.cpp Pipeline.cpp PerPixelMesh.cpp
MilkdropWaveform.cpp Waveform.cpp ${GLEW_SOURCES})
MilkdropWaveform.cpp Waveform.cpp VideoEcho.cpp Shader.cpp ${GLEW_SOURCES})
if (USE_DEVIL)
SET (projectM_SOURCES ${projectM_SOURCES})

View File

@ -168,9 +168,6 @@ public:
textureWrap = false;
screenDecay = 0.3;
videoEchoOrientation = 0;
videoEchoZoom = 1.0;
videoEchoAlpha = 1.0;
q1 = 0;
meanmid = 0;

View File

@ -9,6 +9,7 @@
#include "PipelineContext.hpp"
#include "Shader.hpp"
class Pipeline
{
public:
@ -16,9 +17,6 @@ public:
bool textureWrap;
float screenDecay;
float videoEchoAlpha;
float videoEchoZoom;
int videoEchoOrientation;
Shader shader;

View File

@ -135,6 +135,7 @@ void PresetOutputs::PrepareToRender()
drawables.push_back(&border);
compositeDrawables.clear();
compositeDrawables.push_back(&videoEcho);
if (bBrighten==1)
compositeDrawables.push_back(&brighten);

View File

@ -6,6 +6,7 @@
#include "Filters.hpp"
#include "CustomShape.hpp"
#include "CustomWave.hpp"
#include "VideoEcho.hpp"
/// Container class for all preset writeable engine variables. This is the important glue
@ -37,6 +38,8 @@ public:
float cx;
float cy;
VideoEcho videoEcho;
MilkdropWaveform wave;
Border border;
MotionVectors mv;

View File

@ -110,8 +110,8 @@ double invratio = 1.0 - ratio;
A.fRating = A.fRating* invratio + B.fRating*ratio;
A.fGammaAdj = A.fGammaAdj* invratio + B.fGammaAdj*ratio;
A.videoEchoZoom = A.videoEchoZoom* invratio + B.videoEchoZoom*ratio;
A.videoEchoAlpha = A.videoEchoAlpha* invratio + B.videoEchoAlpha*ratio;
A.videoEcho.zoom = A.videoEcho.zoom* invratio + B.videoEcho.zoom*ratio;
A.videoEcho.a = A.videoEcho.a* invratio + B.videoEcho.a*ratio;
A.fWarpAnimSpeed = A.fWarpAnimSpeed* invratio + B.fWarpAnimSpeed*ratio;
@ -122,7 +122,7 @@ double invratio = 1.0 - ratio;
if (ratio > 0.5)
{
A.videoEchoOrientation = B.videoEchoOrientation;
A.videoEcho.orientation = B.videoEcho.orientation;
A.textureWrap = B.textureWrap;
A.bDarkenCenter = B.bDarkenCenter;
A.bRedBlueStereo = B.bRedBlueStereo;

View File

@ -9,6 +9,7 @@
#include "Pipeline.hpp"
#include "Transformation.hpp"
#include "MilkdropCompatability.hpp"
#include "VideoEcho.hpp"
class RLGFractalDrop7c : public Pipeline
{
@ -16,6 +17,7 @@ public:
Shape shape1,shape2,shape3,shape4;
MilkdropWaveform wave;
VideoEcho videoEcho;
float movement, t1, t2, t3, t4;
@ -27,12 +29,14 @@ public:
drawables.push_back(&shape4);
drawables.push_back(&wave);
compositeDrawables.push_back(&videoEcho);
textureWrap = true;
screenDecay = 1.0;
videoEchoOrientation = 1;
videoEchoZoom = 1.006752;
videoEchoAlpha = 0.5;
videoEcho.orientation = FlipX;
videoEcho.zoom = 1.006752;
videoEcho.a = 0.5;
wave.mode = DoubleLine;
wave.additive = true;

View File

@ -980,7 +980,6 @@ void Renderer::draw_fps( float realfps )
void Renderer::CompositeOutput(const Pipeline* pipeline)
{
int flipx=1, flipy=1;
glMatrixMode(GL_TEXTURE);
glLoadIdentity();
@ -1022,34 +1021,6 @@ void Renderer::CompositeOutput(const Pipeline* pipeline)
glDrawArrays(GL_TRIANGLE_FAN,0,4);
//Noe Blend the Video Echo
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glMatrixMode(GL_TEXTURE);
//draw video echo
glColor4f(1.0, 1.0, 1.0, pipeline->videoEchoAlpha);
glTranslatef(.5, .5, 0);
glScalef(1.0/pipeline->videoEchoZoom, 1.0/pipeline->videoEchoZoom, 1);
glTranslatef(-.5, -.5, 0);
switch ((int)pipeline->videoEchoOrientation)
{
case 0: flipx=1;flipy=1;break;
case 1: flipx=-1;flipy=1;break;
case 2: flipx=1;flipy=-1;break;
case 3: flipx=-1;flipy=-1;break;
default: flipx=1;flipy=1; break;
}
float pointsFlip[4][2] = {{-0.5*flipx, -0.5*flipy},
{-0.5*flipx, 0.5*flipy},
{ 0.5*flipx, 0.5*flipy},
{ 0.5*flipx, -0.5*flipy}};
glVertexPointer(2,GL_FLOAT,0,pointsFlip);
glDrawArrays(GL_TRIANGLE_FAN,0,4);
glDisable(GL_TEXTURE_2D);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

View File

@ -24,10 +24,6 @@ public:
screenDecay = 0.9;
textureWrap = true;
videoEchoOrientation = 0;
videoEchoZoom = 1.0;
videoEchoAlpha = 1.0;
drawables.push_back(&border);
drawables.push_back(&shape1);
drawables.push_back(&shape2);

View File

@ -23,10 +23,6 @@ public:
screenDecay = 1.0;
textureWrap = 0;
videoEchoOrientation = 0;
videoEchoZoom = 1.0;
videoEchoAlpha = 1.0;
drawables.push_back(&shape1);
drawables.push_back(&shape2);
drawables.push_back(&shape3);

View File

@ -27,9 +27,6 @@ public:
textureWrap = true;
screenDecay = 1.0;
videoEchoOrientation = 0;
videoEchoZoom = 1.0;
videoEchoAlpha = 1.0;
border.outer_size = 0.01;
border.outer_a = 1.0;

View File

@ -26,13 +26,8 @@ public:
drawables.push_back(&vectors);
drawables.push_back(&border);
screenDecay = 1.0;
videoEchoOrientation = 0;
videoEchoZoom = 1.0;
videoEchoAlpha = 1.0;
vectors.x_num = 64;
vectors.y_num = 48;
vectors.r = 0.0;

View File

@ -515,9 +515,9 @@ void projectM::projectM_initengine()
/* PER_FRAME CONSTANTS END */
this->presetOutputs.fRating = 0;
this->presetOutputs.fGammaAdj = 1.0;
this->presetOutputs.videoEchoZoom = 1.0;
this->presetOutputs.videoEchoAlpha = 0;
this->presetOutputs.videoEchoOrientation = 0;
this->presetOutputs.videoEcho.zoom = 1.0;
this->presetOutputs.videoEcho.a = 0;
this->presetOutputs.videoEcho.orientation = Normal;
this->presetOutputs.textureWrap = 0;
this->presetOutputs.bDarkenCenter = 0;
@ -613,9 +613,9 @@ void projectM::projectM_resetengine()
/* PER_FRAME CONSTANTS END */
this->presetOutputs.fRating = 0;
this->presetOutputs.fGammaAdj = 1.0;
this->presetOutputs.videoEchoZoom = 1.0;
this->presetOutputs.videoEchoAlpha = 0;
this->presetOutputs.videoEchoOrientation = 0;
this->presetOutputs.videoEcho.zoom = 1.0;
this->presetOutputs.videoEcho.a = 0;
this->presetOutputs.videoEcho.orientation = Normal;
this->presetOutputs.wave.additive = false;
this->presetOutputs.wave.dots = false;