From 5b5b07a07b2e132059ebcb7867008ff7579ea22a Mon Sep 17 00:00:00 2001 From: w1z7ard Date: Sun, 8 Jul 2007 17:23:12 +0000 Subject: [PATCH] - added static definitions of renderer vars in projectM.cpp - "other_font" is next unresolved symbol git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/personal/carm/dev-1.0@244 6778bc44-b910-0410-a7a0-be141de4315d --- src/linux/projectmDev10.kdevelop | 6 +- src/projectM-engine/PresetChooser.hpp | 2 +- src/projectM-engine/projectM.cpp | 679 +++++++++++++------------- src/projectM-engine/projectM.h | 2 +- 4 files changed, 345 insertions(+), 344 deletions(-) diff --git a/src/linux/projectmDev10.kdevelop b/src/linux/projectmDev10.kdevelop index 764fa95da..864516ab2 100644 --- a/src/linux/projectmDev10.kdevelop +++ b/src/linux/projectmDev10.kdevelop @@ -209,9 +209,9 @@ - - - + + + diff --git a/src/projectM-engine/PresetChooser.hpp b/src/projectM-engine/PresetChooser.hpp index 45b9430d5..65c03bf58 100644 --- a/src/projectM-engine/PresetChooser.hpp +++ b/src/projectM-engine/PresetChooser.hpp @@ -23,7 +23,7 @@ class PresetIterator { public: PresetIterator() {} - /** @brief Instantiate a preset iterator at the given starting position */ + /// Instantiate a preset iterator at the given starting position PresetIterator(std::size_t start); /// Move iterator forward diff --git a/src/projectM-engine/projectM.cpp b/src/projectM-engine/projectM.cpp index 497f9e573..b896d86b9 100755 --- a/src/projectM-engine/projectM.cpp +++ b/src/projectM-engine/projectM.cpp @@ -62,95 +62,96 @@ const std::string projectM::PROJECTM_PRESET_PATH("/usr/share/projectM/presets/") const std::string projectM::PROJECTM_PRESET_PATH("C:\\Program Files\\ProjectM\\presets"); #endif -/** Stash current engine */ +/** Stash current engine */ projectM *projectM::currentEngine = NULL; -/** Constructor */ +/** Static variable initialization involving the render. */ +/// @bug These probably shouldn't be static! +RenderTarget * projectM::renderTarget = NULL; +Renderer * projectM::renderer = NULL; + + DLLEXPORT projectM::projectM() { beatDetect = NULL; } -/** Renders a single frame */ -DLLEXPORT void projectM::renderFrame() { + +DLLEXPORT void projectM::renderFrame() { #ifdef DEBUG -char fname[1024]; -FILE *f = NULL; -int index = 0; -int x, y; -#endif - + char fname[1024]; + FILE *f = NULL; + int index = 0; + int x, y; +#endif + // printf("Start of loop at %d\n",timestart); - mspf=(int)(1000.0/(float)presetInputs.fps); //milliseconds per frame - + mspf=(int)(1000.0/(float)presetInputs.fps); //milliseconds per frame + #ifndef WIN32 - presetInputs.time = getTicks( &startTime ) * 0.001; + presetInputs.time = getTicks( &startTime ) * 0.001; #else - presetInputs.time = getTicks( startTime ) * 0.001; + presetInputs.time = getTicks( startTime ) * 0.001; #endif /** !WIN32 */ - - presetInputs.frame++; //number of frames for current preset - presetInputs.progress= presetInputs.frame/(float)avgtime; + + presetInputs.frame++; //number of frames for current preset + presetInputs.progress= presetInputs.frame/(float)avgtime; DWRITE( "frame: %d\ttime: %f\tprogress: %f\tavgtime: %d\tang: %f\trot: %f\n", - this->presetInputs.frame, presetInputs.time, this->presetInputs.progress, this->avgtime, this->presetInputs.ang_per_pixel, - this->presetOutputs.rot ); - if (presetInputs.progress>1.0) presetInputs.progress=1.0; + this->presetInputs.frame, presetInputs.time, this->presetInputs.progress, this->avgtime, this->presetInputs.ang_per_pixel, + this->presetOutputs.rot ); + if (presetInputs.progress>1.0) presetInputs.progress=1.0; // printf("start:%d at:%d min:%d stop:%d on:%d %d\n",startframe, frame frame-startframe,avgtime, noSwitch,progress); // this->activePreset->evalInitConditions(); - this->activePreset->evaluateFrame(); + this->activePreset->evaluateFrame(); // this->activePreset->evalCustomWaveInitConditions(); // this->activePreset->evalCustomShapeInitConditions(); - -// printf("%f %d\n",Time,frame); - - - beatDetect->detectFromSamples(); - DWRITE( "=== vol: %f\tbass: %f\tmid: %f\ttreb: %f ===\n", - beatDetect->vol,beatDetect->bass,beatDetect->mid,beatDetect->treb); - DWRITE( "=== bass_att: %f ===\n", - beatDetect->bass_att ); - if (renderer->noSwitch==0) { - nohard--; - if((beatDetect->bass-beatDetect->bass_old>beatDetect->beat_sensitivity || - avgtime ) && nohard<0) - { +// printf("%f %d\n",Time,frame); + + + beatDetect->detectFromSamples(); + DWRITE( "=== vol: %f\tbass: %f\tmid: %f\ttreb: %f ===\n", + beatDetect->vol,beatDetect->bass,beatDetect->mid,beatDetect->treb); + DWRITE( "=== bass_att: %f ===\n", + beatDetect->bass_att ); + + if (renderer->noSwitch==0) { + nohard--; + if ((beatDetect->bass-beatDetect->bass_old>beatDetect->beat_sensitivity || + avgtime ) && nohard<0) { // printf("%f %d %d\n", beatDetect->bass-beatDetect->bass_old,this->frame,this->avgtime); // switchPreset(RANDOM_NEXT, HARD_CUT); - nohard=presetInputs.fps*5; - } - } + nohard=presetInputs.fps*5; + } + } - count++; - - renderer->RenderFrame(&presetOutputs, &presetInputs); + count++; + + renderer->RenderFrame(&presetOutputs, &presetInputs); #ifndef WIN32 - /** Frame-rate limiter */ - /** Compute once per preset */ - if (this->count%100==0) { - this->renderer->realfps=100.0/((getTicks(&this->startTime)-this->fpsstart)/1000); - this->fpsstart=getTicks(&this->startTime); - } + /** Frame-rate limiter */ + /** Compute once per preset */ + if (this->count%100==0) { + this->renderer->realfps=100.0/((getTicks(&this->startTime)-this->fpsstart)/1000); + this->fpsstart=getTicks(&this->startTime); + } - int timediff = getTicks(&this->startTime)-this->timestart; + int timediff = getTicks(&this->startTime)-this->timestart; - if ( timediff < this->mspf) - { - // printf("%s:",this->mspf-timediff); - int sleepTime = (unsigned int)( this->mspf-timediff ) * 1000; + if ( timediff < this->mspf) { + // printf("%s:",this->mspf-timediff); + int sleepTime = (unsigned int)( this->mspf-timediff ) * 1000; DWRITE( "usleep: %d\n", sleepTime ); - if ( sleepTime > 0 && sleepTime < 100000 ) { - if ( usleep( sleepTime ) != 0 ) - { - } - } - } - this->timestart=getTicks(&this->startTime); + if ( sleepTime > 0 && sleepTime < 100000 ) { + if ( usleep( sleepTime ) != 0 ) {} + } + } + this->timestart=getTicks(&this->startTime); #endif /** !WIN32 */ DWRITE( "exiting renderFrame()\n" ); @@ -159,10 +160,10 @@ int x, y; DLLEXPORT void projectM::projectM_reset() { DWRITE( "projectM_reset(): in\n" ); - + /// @bug it's very possible this is a hack this->activePreset = std::auto_ptr(0); - + this->presetURL = NULL; this->fontURL = NULL; @@ -171,9 +172,9 @@ DLLEXPORT void projectM::projectM_reset() { this->pcmframes = 1; this->freqframes = 0; - - + + this->fvw = 800; this->fvh = 600; this->wvw = 512; @@ -183,19 +184,19 @@ DLLEXPORT void projectM::projectM_reset() { /** Frames per preset */ this->avgtime = 500; - + /** More other stuff */ this->mspf = 0; this->timed = 0; - this->timestart = 0; + this->timestart = 0; this->nohard = 0; this->count = 0; - + this->fpsstart = 0; projectM_resetengine(); - } +} DLLEXPORT void projectM::projectM_init(int gx, int gy, int fps, int texsize, int width, int height) { @@ -217,7 +218,7 @@ DLLEXPORT void projectM::projectM_init(int gx, int gy, int fps, int texsize, int fbuffer = NULL; /** Initialise per-pixel matrix calculations */ - + presetInputs.fps = fps; @@ -227,7 +228,7 @@ DLLEXPORT void projectM::projectM_init(int gx, int gy, int fps, int texsize, int /* Preset loading function */ initPresetTools(); - /* Load default preset directory */ + /* Load default preset directory */ #ifdef MACOS2 /** Probe the bundle for info */ CFBundleRef bundle = CFBundleGetMainBundle(); @@ -238,17 +239,17 @@ DLLEXPORT void projectM::projectM_init(int gx, int gy, int fps, int texsize, int CFPlugInRef pluginRef = CFBundleGetPlugIn( bundle ); if ( pluginRef != NULL ) { DWRITE( "located plugin ref\n" ); - } else { + } else { DWRITE( "failed to find plugin ref\n" ); - } + } CFURLRef bundleURL = CFBundleCopyBundleURL( bundle ); if ( bundleURL == NULL ) { DWRITE( "bundleURL failed\n" ); - } else { + } else { DWRITE( "bundleURL OK\n" ); - } - char *bundleName = + } + char *bundleName = (char *)CFStringGetCStringPtr( CFURLGetString( bundleURL ), kCFStringEncodingMacRoman ); DWRITE( "bundleURL: %s\n", bundleName ); @@ -261,10 +262,10 @@ DLLEXPORT void projectM::projectM_init(int gx, int gy, int fps, int texsize, int /** Stash the short preset name */ - } else { + } else { DWRITE( "Failed to probe 'presets' bundle ref\n" ); this->presetURL = NULL; - } + } fontURL = CFBundleCopyResourceURL( bundle, furl, NULL, NULL ); if ( fontURL != NULL ) { @@ -272,11 +273,11 @@ DLLEXPORT void projectM::projectM_init(int gx, int gy, int fps, int texsize, int sprintf( msg, "Font: %s\n", fontURL ); DWRITE( msg ); printf( msg ); - } else { + } else { DWRITE( "Failed to probe 'fonts' bundle ref\n" ); fontURL = NULL; - } - } + } + } /** Sanity check */ if ( bundle == NULL || presetURL == NULL || fontURL == NULL ) { @@ -288,10 +289,10 @@ DLLEXPORT void projectM::projectM_init(int gx, int gy, int fps, int texsize, int this->fontURL[34] = '\0'; // loadPresetDir( "../../presets/" ); // loadPresetDir( "/Users/descarte/tmp/projectM-1.00/presets_projectM" ); - } else { + } else { printf( "PresetDir: %s\n", this->presetURL ); loadPresetDir( presetURL ); - } + } #else if ( presetURL == NULL || fontURL == NULL ) { char msg[1024]; @@ -302,19 +303,19 @@ DLLEXPORT void projectM::projectM_init(int gx, int gy, int fps, int texsize, int strcpy( this->fontURL, "c:\\tmp\\projectM\\fonts" ); fontURL[24] = '\0'; #else - strcpy( this->fontURL, "/Users/descarte/tmp/projectM/fonts" ); - fontURL[34] = '\0'; + strcpy( this->fontURL, "/Users/descarte/tmp/projectM/fonts" ); + fontURL[34] = '\0'; #endif DWRITE( "loading font URL directly: %s\n", this->fontURL ); #ifdef WIN32 - // loadPresetDir( "c:\\tmp\\projectM\\presets_projectM" ); + // loadPresetDir( "c:\\tmp\\projectM\\presets_projectM" ); #else // loadPresetDir( "/Users/descarte/tmp/projectM-1.00/presets_projectM" ); #endif - } else { + } else { printf( "PresetDir: %s\n", this->presetURL ); //loadPresetDir( presetURL ); - } + } #endif @@ -322,28 +323,28 @@ DLLEXPORT void projectM::projectM_init(int gx, int gy, int fps, int texsize, int mspf=(int)(1000.0/(float)presetInputs.fps); - initMenu(); + initMenu(); //DWRITE( "post initMenu()\n" ); printf("mesh: %d %d\n", gx,gy ); #ifdef PANTS printf( "maxsamples: %d\n", this->maxsamples ); - initPCM(this->maxsamples); -DWRITE( "post PCM init\n" ); + initPCM(this->maxsamples); + DWRITE( "post PCM init\n" ); #endif - this->avgtime=this->presetInputs.fps*20; + this->avgtime=this->presetInputs.fps*20; this->hasInit = 1; - this->renderTarget = new RenderTarget(texsize, width, height); -this->presetInputs.gx = gx; -this->presetInputs.gy = gy; + this->renderTarget = new RenderTarget(texsize, width, height); + this->presetInputs.gx = gx; + this->presetInputs.gy = gy; this->renderer = new Renderer(width, height, gx, gy, renderTarget, beatDetect, fontURL); -printf( "exiting projectM_init()\n" ); + printf( "exiting projectM_init()\n" ); } @@ -356,250 +357,250 @@ printf( "exiting projectM_init()\n" ); DLLEXPORT void projectM::projectM_initengine() { -/* PER FRAME CONSTANTS BEGIN */ - this->presetOutputs.zoom=1.0; - this->presetOutputs.zoomexp= 1.0; - this->presetOutputs.rot= 0.0; - this->presetOutputs.warp= 0.0; + /* PER FRAME CONSTANTS BEGIN */ + this->presetOutputs.zoom=1.0; + this->presetOutputs.zoomexp= 1.0; + this->presetOutputs.rot= 0.0; + this->presetOutputs.warp= 0.0; - this->presetOutputs.sx= 1.0; - this->presetOutputs.sy= 1.0; - this->presetOutputs.dx= 0.0; - this->presetOutputs.dy= 0.0; - this->presetOutputs.cx= 0.5; - this->presetOutputs.cy= 0.5; + this->presetOutputs.sx= 1.0; + this->presetOutputs.sy= 1.0; + this->presetOutputs.dx= 0.0; + this->presetOutputs.dy= 0.0; + this->presetOutputs.cx= 0.5; + this->presetOutputs.cy= 0.5; - this->presetOutputs.decay=.98; + this->presetOutputs.decay=.98; - this->presetOutputs.wave_r= 1.0; - this->presetOutputs.wave_g= 0.2; - this->presetOutputs.wave_b= 0.0; - this->presetOutputs.wave_x= 0.5; - this->presetOutputs.wave_y= 0.5; - this->presetOutputs.wave_mystery= 0.0; + this->presetOutputs.wave_r= 1.0; + this->presetOutputs.wave_g= 0.2; + this->presetOutputs.wave_b= 0.0; + this->presetOutputs.wave_x= 0.5; + this->presetOutputs.wave_y= 0.5; + this->presetOutputs.wave_mystery= 0.0; - this->presetOutputs.ob_size= 0.0; - this->presetOutputs.ob_r= 0.0; - this->presetOutputs.ob_g= 0.0; - this->presetOutputs.ob_b= 0.0; - this->presetOutputs.ob_a= 0.0; + this->presetOutputs.ob_size= 0.0; + this->presetOutputs.ob_r= 0.0; + this->presetOutputs.ob_g= 0.0; + this->presetOutputs.ob_b= 0.0; + this->presetOutputs.ob_a= 0.0; - this->presetOutputs.ib_size = 0.0; - this->presetOutputs.ib_r = 0.0; - this->presetOutputs.ib_g = 0.0; - this->presetOutputs.ib_b = 0.0; - this->presetOutputs.ib_a = 0.0; + this->presetOutputs.ib_size = 0.0; + this->presetOutputs.ib_r = 0.0; + this->presetOutputs.ib_g = 0.0; + this->presetOutputs.ib_b = 0.0; + this->presetOutputs.ib_a = 0.0; - this->presetOutputs.mv_a = 0.0; - this->presetOutputs.mv_r = 0.0; - this->presetOutputs.mv_g = 0.0; - this->presetOutputs.mv_b = 0.0; - this->presetOutputs.mv_l = 1.0; - this->presetOutputs.mv_x = 16.0; - this->presetOutputs.mv_y = 12.0; - this->presetOutputs.mv_dy = 0.02; - this->presetOutputs.mv_dx = 0.02; - - //this->presetInputs.meshx = 0; - //this->presetInputs.meshy = 0; - - - this->presetInputs.progress = 0; - this->presetInputs.frame = 0; + this->presetOutputs.mv_a = 0.0; + this->presetOutputs.mv_r = 0.0; + this->presetOutputs.mv_g = 0.0; + this->presetOutputs.mv_b = 0.0; + this->presetOutputs.mv_l = 1.0; + this->presetOutputs.mv_x = 16.0; + this->presetOutputs.mv_y = 12.0; + this->presetOutputs.mv_dy = 0.02; + this->presetOutputs.mv_dx = 0.02; + +//this->presetInputs.meshx = 0; +//this->presetInputs.meshy = 0; + + + this->presetInputs.progress = 0; + this->presetInputs.frame = 0; this->avgtime = 600; //bass_thresh = 0; -/* PER_FRAME CONSTANTS END */ - this->presetOutputs.fRating = 0; - this->presetOutputs.fGammaAdj = 1.0; - this->presetOutputs.fVideoEchoZoom = 1.0; - this->presetOutputs.fVideoEchoAlpha = 0; - this->presetOutputs.nVideoEchoOrientation = 0; - - this->presetOutputs.nWaveMode = 7; - this->presetOutputs.bAdditiveWaves = 0; - this->presetOutputs.bWaveDots = 0; - this->presetOutputs.bWaveThick = 0; - this->presetOutputs.bModWaveAlphaByVolume = 0; - this->presetOutputs.bMaximizeWaveColor = 0; - this->presetOutputs.bTexWrap = 0; - this->presetOutputs.bDarkenCenter = 0; - this->presetOutputs.bRedBlueStereo = 0; - this->presetOutputs.bBrighten = 0; - this->presetOutputs.bDarken = 0; - this->presetOutputs.bSolarize = 0; - this->presetOutputs.bInvert = 0; - this->presetOutputs.bMotionVectorsOn = 1; - - this->presetOutputs.fWaveAlpha =1.0; - this->presetOutputs.fWaveScale = 1.0; - this->presetOutputs.fWaveSmoothing = 0; - this->presetOutputs.fWaveParam = 0; - this->presetOutputs.fModWaveAlphaStart = 0; - this->presetOutputs.fModWaveAlphaEnd = 0; - this->presetOutputs.fWarpAnimSpeed = 0; - this->presetOutputs.fWarpScale = 0; - this->presetOutputs.fShader = 0; + /* PER_FRAME CONSTANTS END */ + this->presetOutputs.fRating = 0; + this->presetOutputs.fGammaAdj = 1.0; + this->presetOutputs.fVideoEchoZoom = 1.0; + this->presetOutputs.fVideoEchoAlpha = 0; + this->presetOutputs.nVideoEchoOrientation = 0; + + this->presetOutputs.nWaveMode = 7; + this->presetOutputs.bAdditiveWaves = 0; + this->presetOutputs.bWaveDots = 0; + this->presetOutputs.bWaveThick = 0; + this->presetOutputs.bModWaveAlphaByVolume = 0; + this->presetOutputs.bMaximizeWaveColor = 0; + this->presetOutputs.bTexWrap = 0; + this->presetOutputs.bDarkenCenter = 0; + this->presetOutputs.bRedBlueStereo = 0; + this->presetOutputs.bBrighten = 0; + this->presetOutputs.bDarken = 0; + this->presetOutputs.bSolarize = 0; + this->presetOutputs.bInvert = 0; + this->presetOutputs.bMotionVectorsOn = 1; + + this->presetOutputs.fWaveAlpha =1.0; + this->presetOutputs.fWaveScale = 1.0; + this->presetOutputs.fWaveSmoothing = 0; + this->presetOutputs.fWaveParam = 0; + this->presetOutputs.fModWaveAlphaStart = 0; + this->presetOutputs.fModWaveAlphaEnd = 0; + this->presetOutputs.fWarpAnimSpeed = 0; + this->presetOutputs.fWarpScale = 0; + this->presetOutputs.fShader = 0; -/* PER_PIXEL CONSTANTS BEGIN */ -this->presetInputs.x_per_pixel = 0; -this->presetInputs.y_per_pixel = 0; -this->presetInputs.rad_per_pixel = 0; -this->presetInputs.ang_per_pixel = 0; + /* PER_PIXEL CONSTANTS BEGIN */ + this->presetInputs.x_per_pixel = 0; + this->presetInputs.y_per_pixel = 0; + this->presetInputs.rad_per_pixel = 0; + this->presetInputs.ang_per_pixel = 0; -/* PER_PIXEL CONSTANT END */ + /* PER_PIXEL CONSTANT END */ -/* Q AND T VARIABLES START */ + /* Q AND T VARIABLES START */ -this->presetOutputs.q1 = 0; -this->presetOutputs.q2 = 0; -this->presetOutputs.q3 = 0; -this->presetOutputs.q4 = 0; -this->presetOutputs.q5 = 0; -this->presetOutputs.q6 = 0; -this->presetOutputs.q7 = 0; -this->presetOutputs.q8 = 0; + this->presetOutputs.q1 = 0; + this->presetOutputs.q2 = 0; + this->presetOutputs.q3 = 0; + this->presetOutputs.q4 = 0; + this->presetOutputs.q5 = 0; + this->presetOutputs.q6 = 0; + this->presetOutputs.q7 = 0; + this->presetOutputs.q8 = 0; -/* Q AND T VARIABLES END */ + /* Q AND T VARIABLES END */ //per pixel meshes - this->presetOutputs.zoom_mesh = NULL; - this->presetOutputs.zoomexp_mesh = NULL; - this->presetOutputs.rot_mesh = NULL; - + this->presetOutputs.zoom_mesh = NULL; + this->presetOutputs.zoomexp_mesh = NULL; + this->presetOutputs.rot_mesh = NULL; - this->presetOutputs.sx_mesh = NULL; - this->presetOutputs.sy_mesh = NULL; - this->presetOutputs.dx_mesh = NULL; - this->presetOutputs.dy_mesh = NULL; - this->presetOutputs.cx_mesh = NULL; - this->presetOutputs.cy_mesh = NULL; - this->presetInputs.x_mesh = NULL; - this->presetInputs.y_mesh = NULL; - this->presetInputs.rad_mesh = NULL; - this->presetInputs.theta_mesh = NULL; + this->presetOutputs.sx_mesh = NULL; + this->presetOutputs.sy_mesh = NULL; + this->presetOutputs.dx_mesh = NULL; + this->presetOutputs.dy_mesh = NULL; + this->presetOutputs.cx_mesh = NULL; + this->presetOutputs.cy_mesh = NULL; + + this->presetInputs.x_mesh = NULL; + this->presetInputs.y_mesh = NULL; + this->presetInputs.rad_mesh = NULL; + this->presetInputs.theta_mesh = NULL; //custom wave per point meshes - } +} /* Reinitializes the engine variables to a default (conservative and sane) value */ DLLEXPORT void projectM::projectM_resetengine() { - this->presetOutputs.zoom=1.0; - this->presetOutputs.zoomexp= 1.0; - this->presetOutputs.rot= 0.0; - this->presetOutputs.warp= 0.0; - - this->presetOutputs.sx= 1.0; - this->presetOutputs.sy= 1.0; - this->presetOutputs.dx= 0.0; - this->presetOutputs.dy= 0.0; - this->presetOutputs.cx= 0.5; - this->presetOutputs.cy= 0.5; + this->presetOutputs.zoom=1.0; + this->presetOutputs.zoomexp= 1.0; + this->presetOutputs.rot= 0.0; + this->presetOutputs.warp= 0.0; - this->presetOutputs.decay=.98; - - this->presetOutputs.wave_r= 1.0; - this->presetOutputs.wave_g= 0.2; - this->presetOutputs.wave_b= 0.0; - this->presetOutputs.wave_x= 0.5; - this->presetOutputs.wave_y= 0.5; - this->presetOutputs.wave_mystery= 0.0; + this->presetOutputs.sx= 1.0; + this->presetOutputs.sy= 1.0; + this->presetOutputs.dx= 0.0; + this->presetOutputs.dy= 0.0; + this->presetOutputs.cx= 0.5; + this->presetOutputs.cy= 0.5; - this->presetOutputs.ob_size= 0.0; - this->presetOutputs.ob_r= 0.0; - this->presetOutputs.ob_g= 0.0; - this->presetOutputs.ob_b= 0.0; - this->presetOutputs.ob_a= 0.0; + this->presetOutputs.decay=.98; - this->presetOutputs.ib_size = 0.0; - this->presetOutputs.ib_r = 0.0; - this->presetOutputs.ib_g = 0.0; - this->presetOutputs.ib_b = 0.0; - this->presetOutputs.ib_a = 0.0; + this->presetOutputs.wave_r= 1.0; + this->presetOutputs.wave_g= 0.2; + this->presetOutputs.wave_b= 0.0; + this->presetOutputs.wave_x= 0.5; + this->presetOutputs.wave_y= 0.5; + this->presetOutputs.wave_mystery= 0.0; + + this->presetOutputs.ob_size= 0.0; + this->presetOutputs.ob_r= 0.0; + this->presetOutputs.ob_g= 0.0; + this->presetOutputs.ob_b= 0.0; + this->presetOutputs.ob_a= 0.0; + + this->presetOutputs.ib_size = 0.0; + this->presetOutputs.ib_r = 0.0; + this->presetOutputs.ib_g = 0.0; + this->presetOutputs.ib_b = 0.0; + this->presetOutputs.ib_a = 0.0; + + this->presetOutputs.mv_a = 0.0; + this->presetOutputs.mv_r = 0.0; + this->presetOutputs.mv_g = 0.0; + this->presetOutputs.mv_b = 0.0; + this->presetOutputs.mv_l = 1.0; + this->presetOutputs.mv_x = 16.0; + this->presetOutputs.mv_y = 12.0; + this->presetOutputs.mv_dy = 0.02; + this->presetOutputs.mv_dx = 0.02; + + /// @bug think these are just gx/gy + //this->meshx = 0; + //this->meshy = 0; - this->presetOutputs.mv_a = 0.0; - this->presetOutputs.mv_r = 0.0; - this->presetOutputs.mv_g = 0.0; - this->presetOutputs.mv_b = 0.0; - this->presetOutputs.mv_l = 1.0; - this->presetOutputs.mv_x = 16.0; - this->presetOutputs.mv_y = 12.0; - this->presetOutputs.mv_dy = 0.02; - this->presetOutputs.mv_dx = 0.02; - - /// @bug think these are just gx/gy - //this->meshx = 0; - //this->meshy = 0; - if ( beatDetect != NULL ) { beatDetect->reset(); - } - this->presetInputs.progress = 0; - this->presetInputs.frame = 0; + } + this->presetInputs.progress = 0; + this->presetInputs.frame = 0; // bass_thresh = 0; -/* PER_FRAME CONSTANTS END */ - this->presetOutputs.fRating = 0; - this->presetOutputs.fGammaAdj = 1.0; - this->presetOutputs.fVideoEchoZoom = 1.0; - this->presetOutputs.fVideoEchoAlpha = 0; - this->presetOutputs.nVideoEchoOrientation = 0; - - this->presetOutputs.nWaveMode = 7; - this->presetOutputs.bAdditiveWaves = 0; - this->presetOutputs.bWaveDots = 0; - this->presetOutputs.bWaveThick = 0; - this->presetOutputs.bModWaveAlphaByVolume = 0; - this->presetOutputs.bMaximizeWaveColor = 0; - this->presetOutputs.bTexWrap = 0; - this->presetOutputs.bDarkenCenter = 0; - this->presetOutputs.bRedBlueStereo = 0; - this->presetOutputs.bBrighten = 0; - this->presetOutputs.bDarken = 0; - this->presetOutputs.bSolarize = 0; - this->presetOutputs.bInvert = 0; - this->presetOutputs.bMotionVectorsOn = 1; - - this->presetOutputs.fWaveAlpha =1.0; - this->presetOutputs.fWaveScale = 1.0; - this->presetOutputs.fWaveSmoothing = 0; - this->presetOutputs.fWaveParam = 0; - this->presetOutputs.fModWaveAlphaStart = 0; - this->presetOutputs.fModWaveAlphaEnd = 0; - this->presetOutputs.fWarpAnimSpeed = 0; - this->presetOutputs.fWarpScale = 0; - this->presetOutputs.fShader = 0; + /* PER_FRAME CONSTANTS END */ + this->presetOutputs.fRating = 0; + this->presetOutputs.fGammaAdj = 1.0; + this->presetOutputs.fVideoEchoZoom = 1.0; + this->presetOutputs.fVideoEchoAlpha = 0; + this->presetOutputs.nVideoEchoOrientation = 0; + + this->presetOutputs.nWaveMode = 7; + this->presetOutputs.bAdditiveWaves = 0; + this->presetOutputs.bWaveDots = 0; + this->presetOutputs.bWaveThick = 0; + this->presetOutputs.bModWaveAlphaByVolume = 0; + this->presetOutputs.bMaximizeWaveColor = 0; + this->presetOutputs.bTexWrap = 0; + this->presetOutputs.bDarkenCenter = 0; + this->presetOutputs.bRedBlueStereo = 0; + this->presetOutputs.bBrighten = 0; + this->presetOutputs.bDarken = 0; + this->presetOutputs.bSolarize = 0; + this->presetOutputs.bInvert = 0; + this->presetOutputs.bMotionVectorsOn = 1; + + this->presetOutputs.fWaveAlpha =1.0; + this->presetOutputs.fWaveScale = 1.0; + this->presetOutputs.fWaveSmoothing = 0; + this->presetOutputs.fWaveParam = 0; + this->presetOutputs.fModWaveAlphaStart = 0; + this->presetOutputs.fModWaveAlphaEnd = 0; + this->presetOutputs.fWarpAnimSpeed = 0; + this->presetOutputs.fWarpScale = 0; + this->presetOutputs.fShader = 0; -/* PER_PIXEL CONSTANTS BEGIN */ - this->presetInputs.x_per_pixel = 0; - this->presetInputs.y_per_pixel = 0; - this->presetInputs.rad_per_pixel = 0; - this->presetInputs.ang_per_pixel = 0; + /* PER_PIXEL CONSTANTS BEGIN */ + this->presetInputs.x_per_pixel = 0; + this->presetInputs.y_per_pixel = 0; + this->presetInputs.rad_per_pixel = 0; + this->presetInputs.ang_per_pixel = 0; -/* PER_PIXEL CONSTANT END */ + /* PER_PIXEL CONSTANT END */ -/* Q VARIABLES START */ + /* Q VARIABLES START */ - this->presetOutputs.q1 = 0; - this->presetOutputs.q2 = 0; - this->presetOutputs.q3 = 0; - this->presetOutputs.q4 = 0; - this->presetOutputs.q5 = 0; - this->presetOutputs.q6 = 0; - this->presetOutputs.q7 = 0; - this->presetOutputs.q8 = 0; + this->presetOutputs.q1 = 0; + this->presetOutputs.q2 = 0; + this->presetOutputs.q3 = 0; + this->presetOutputs.q4 = 0; + this->presetOutputs.q5 = 0; + this->presetOutputs.q6 = 0; + this->presetOutputs.q7 = 0; + this->presetOutputs.q8 = 0; - /* Q VARIABLES END */ + /* Q VARIABLES END */ /** Stash the current engine */ currentEngine = this; @@ -607,88 +608,88 @@ DLLEXPORT void projectM::projectM_resetengine() { /** Resets OpenGL state */ DLLEXPORT void projectM::projectM_resetGL( int w, int h ) { - - + + int mindim, origtexsize; DWRITE( "projectM_resetGL(): in: %d x %d\n", w, h ); /** Stash the new dimensions */ - + renderer->reset(w,h); - } +} /** Sets the title to display */ DLLEXPORT void projectM::projectM_setTitle( char *title ) { - /* - if (strcmp(this->title, title)!=0) - {printf("new title\n"); - this->drawtitle=1; + /* + if (strcmp(this->title, title)!=0) + {printf("new title\n"); + this->drawtitle=1; + + if ( this->title != NULL ) { + free( this->title ); + this->title = NULL; + } + + this->title = (char *)wipemalloc( sizeof( char ) * ( strlen( title ) + 1 ) ); + strcpy( this->title, title ); - if ( this->title != NULL ) { - free( this->title ); - this->title = NULL; } - - this->title = (char *)wipemalloc( sizeof( char ) * ( strlen( title ) + 1 ) ); - strcpy( this->title, title ); - - } - */ + */ } int projectM::initPresetTools() { - /* Initializes the builtin function database */ - BuiltinFuncs::init_builtin_func_db(); + /* Initializes the builtin function database */ + BuiltinFuncs::init_builtin_func_db(); - /* Initializes all infix operators */ - Eval::init_infix_ops(); + /* Initializes all infix operators */ + Eval::init_infix_ops(); - /* Set the seed to the current time in seconds */ + /* Set the seed to the current time in seconds */ #ifdef WIN32 - srand(time(NULL)); + srand(time(NULL)); #endif - /* Initialize the 'idle' preset */ - //Preset::init_idle_preset(); + /* Initialize the 'idle' preset */ + //Preset::init_idle_preset(); - projectM_resetengine(); + projectM_resetengine(); - if (m_presetLoader = new PresetLoader(PROJECTM_PRESET_PATH)) { - m_presetLoader = 0; - return PROJECTM_FAILURE; - } + if (m_presetLoader = new PresetLoader(PROJECTM_PRESET_PATH)) { + m_presetLoader = 0; + return PROJECTM_FAILURE; + } - if (m_presetChooser = new PresetChooser(*m_presetLoader)) { - delete(m_presetLoader); - m_presetChooser = 0; - return PROJECTM_FAILURE; -} + if (m_presetChooser = new PresetChooser(*m_presetLoader)) { + delete(m_presetLoader); + m_presetChooser = 0; + return PROJECTM_FAILURE; + } - // Start the iterator - m_presetPos = new PresetIterator(); - *m_presetPos = m_presetChooser->begin(); +// Start the iterator + m_presetPos = new PresetIterator(); + *m_presetPos = m_presetChooser->begin(); - /* Done */ + /* Done */ #ifdef PRESET_DEBUG printf("initPresetLoader: finished\n"); #endif - return PROJECTM_SUCCESS; + return PROJECTM_SUCCESS; } void projectM::destroyPresetTools() { - if(m_presetChooser) - delete(m_presetChooser); + if (m_presetChooser) + delete(m_presetChooser); - if (m_presetLoader) - delete(m_presetLoader); + if (m_presetLoader) + delete(m_presetLoader); - Eval::destroy_infix_ops(); - BuiltinFuncs::destroy_builtin_func_db(); + Eval::destroy_infix_ops(); + BuiltinFuncs::destroy_builtin_func_db(); } diff --git a/src/projectM-engine/projectM.h b/src/projectM-engine/projectM.h index b4a13e04a..4483c5e58 100755 --- a/src/projectM-engine/projectM.h +++ b/src/projectM-engine/projectM.h @@ -128,7 +128,7 @@ public: static RenderTarget *renderTarget; char *presetURL; - + char *fontURL; int hasInit;