mirror of
https://github.com/projectM-visualizer/projectm.git
synced 2026-03-04 06:25:08 +00:00
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:
@ -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");
|
||||
|
||||
@ -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})
|
||||
|
||||
@ -168,9 +168,6 @@ public:
|
||||
textureWrap = false;
|
||||
screenDecay = 0.3;
|
||||
|
||||
videoEchoOrientation = 0;
|
||||
videoEchoZoom = 1.0;
|
||||
videoEchoAlpha = 1.0;
|
||||
|
||||
q1 = 0;
|
||||
meanmid = 0;
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -135,6 +135,7 @@ void PresetOutputs::PrepareToRender()
|
||||
drawables.push_back(&border);
|
||||
|
||||
compositeDrawables.clear();
|
||||
compositeDrawables.push_back(&videoEcho);
|
||||
|
||||
if (bBrighten==1)
|
||||
compositeDrawables.push_back(&brighten);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
Reference in New Issue
Block a user