diff --git a/src/projectM-engine/CMakeLists.txt b/src/projectM-engine/CMakeLists.txt index 6b34bb0db..3345920b4 100644 --- a/src/projectM-engine/CMakeLists.txt +++ b/src/projectM-engine/CMakeLists.txt @@ -4,7 +4,7 @@ ADD_LIBRARY(projectM SHARED projectM.cpp projectM.hpp PBuffer.cpp PBuffer.hpp In Param.cpp CustomWave.cpp CustomShape.hpp CustomShape.cpp Param.hpp CustomWave.hpp BeatDetect.hpp console_interface.h Func.hpp Func.cpp Eval.cpp wipemalloc.h PerFrameEqn.cpp PerPointEqn.cpp fftsg.cpp console_interface.cpp CValue.hpp Expr.hpp timer.cpp wipemalloc.cpp PerFrameEqn.hpp PerPixelEqn.hpp PerPointEqn.hpp BuiltinFuncs.hpp -BuiltinFuncs.cpp compare.h event.h fatal.h fftsg.h timer.h BuiltinParams.hpp BuiltinParams.cpp Preset.hpp Renderer.cpp Renderer.hpp ParamUtils.hpp PresetLoader.cpp PresetLoader.hpp PresetChooser.hpp PresetChooser.cpp PresetFrameIO.cpp PresetFrameIO.hpp PresetMerge.cpp PresetMerge.hpp ConfigFile.h ConfigFile.cpp IdlePreset.hpp IdlePreset.cpp bmpLoader.h bmpLoader.c pcxLoader.c pcxLoader.h texture.cpp texture.h tgaLoader.c tgaLoader.h) +BuiltinFuncs.cpp compare.h event.h fatal.h fftsg.h timer.h BuiltinParams.hpp BuiltinParams.cpp Preset.hpp Renderer.cpp Renderer.hpp ParamUtils.hpp PresetLoader.cpp PresetLoader.hpp PresetChooser.hpp PresetChooser.cpp PresetFrameIO.cpp PresetFrameIO.hpp PresetMerge.cpp PresetMerge.hpp ConfigFile.h ConfigFile.cpp IdlePreset.hpp IdlePreset.cpp bmpLoader.h bmpLoader.c pcxLoader.c pcxLoader.h texture.cpp texture.h tgaLoader.c tgaLoader.h TextureManager.cpp TextureManager.hpp) OPTION(USE_FTGL "Use FTGL for on-screen fonts" ON) diff --git a/src/projectM-engine/Renderer.cpp b/src/projectM-engine/Renderer.cpp index 51d3ab56d..af95c5ba6 100644 --- a/src/projectM-engine/Renderer.cpp +++ b/src/projectM-engine/Renderer.cpp @@ -5,14 +5,14 @@ #include "console_interface.h" #include "CustomShape.hpp" #include "CustomWave.hpp" -#include "texture.h" +#include "TextureManager.hpp" #include class Preset; GLuint texture; -Renderer::Renderer(int width, int height, int gx, int gy, RenderTarget *renderTarget, BeatDetect *beatDetect, std::string _fontURL): fontURL(_fontURL), m_presetName("None") +Renderer::Renderer(int width, int height, int gx, int gy, RenderTarget *renderTarget, TextureManager *textureManager, BeatDetect *beatDetect, std::string _fontURL): fontURL(_fontURL), m_presetName("None") { int x; int y; @@ -76,7 +76,7 @@ this->origy2=(float **)wipemalloc(gx * sizeof(float *)); this->renderTarget = renderTarget; this->beatDetect = beatDetect; - + this->textureManager = textureManager; #ifdef USE_FTGL /** Reset fonts */ @@ -723,6 +723,7 @@ void Renderer::draw_shapes(PresetOutputs *presetOutputs) { if ( (*pos)->textured) { + //glBindTexture(GL_TEXTURE_2D, texture); glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); diff --git a/src/projectM-engine/Renderer.hpp b/src/projectM-engine/Renderer.hpp index 7650d9135..f0f63c0c6 100644 --- a/src/projectM-engine/Renderer.hpp +++ b/src/projectM-engine/Renderer.hpp @@ -4,6 +4,7 @@ #include "PBuffer.hpp" #include "PresetFrameIO.hpp" #include "BeatDetect.hpp" +#include "TextureManager.hpp" #include #ifdef USE_FTGL @@ -18,6 +19,8 @@ class Renderer { RenderTarget *renderTarget; BeatDetect *beatDetect; + TextureManager *textureManager; + //per pixel equation variables float **gridx; //grid containing interpolated mesh float **gridy; @@ -52,7 +55,7 @@ FTGLPolygonFont *poly_font; int correction; std::string fontURL; - + int noSwitch; int totalframes; @@ -60,7 +63,7 @@ float realfps; char *title; int drawtitle; - Renderer( int width, int height, int gx, int gy, RenderTarget *renderTarget, BeatDetect *beatDetect, std::string fontURL); + Renderer( int width, int height, int gx, int gy, RenderTarget *renderTarget, TextureManager *textureManager, BeatDetect *beatDetect, std::string fontURL); ~Renderer(); void RenderFrame(PresetOutputs *presetOutputs, PresetInputs *presetInputs); void reset(int w, int h); diff --git a/src/projectM-engine/TextureManager.cpp b/src/projectM-engine/TextureManager.cpp new file mode 100644 index 000000000..aab7422a5 --- /dev/null +++ b/src/projectM-engine/TextureManager.cpp @@ -0,0 +1,16 @@ +#include "TextureManager.hpp" + +TextureManager::TextureManager(std::string _presetURL): presetURL(_presetURL) +{ + ; +} + +void TextureManager::loadTextures(PresetOutputs::cshape_container &shapes) +{ + ; +} + +GLuint TextureManager::getTexture(std::string imageUrl) +{ + ; +} diff --git a/src/projectM-engine/TextureManager.hpp b/src/projectM-engine/TextureManager.hpp new file mode 100644 index 000000000..e2884bf1e --- /dev/null +++ b/src/projectM-engine/TextureManager.hpp @@ -0,0 +1,22 @@ +#ifndef TextureManager_HPP +#define TextureManager_HPP + +#include "PresetFrameIO.hpp" +#include +#include "texture.h" +#include +#include + +class TextureManager +{ + std::string presetURL; + +public: + + TextureManager(std::string _presetURL); + void loadTextures(PresetOutputs::cshape_container &shapes); + GLuint getTexture(std::string imageUrl); + +}; + +#endif diff --git a/src/projectM-engine/projectM.cpp b/src/projectM-engine/projectM.cpp index 94e7d856b..e7cfe422b 100755 --- a/src/projectM-engine/projectM.cpp +++ b/src/projectM-engine/projectM.cpp @@ -493,10 +493,14 @@ DLLEXPORT void projectM::projectM_reset() this->hasInit = 1; this->renderTarget = new RenderTarget ( texsize, width, height ); + this->textureManager = new TextureManager(presetURL); this->presetInputs.gx = gx; this->presetInputs.gy = gy; - this->renderer = new Renderer ( width, height, gx, gy, renderTarget, beatDetect, fontURL ); + this->renderer = new Renderer ( width, height, gx, gy, renderTarget, textureManager, beatDetect, fontURL); + + + renderer->setPresetName(m_activePreset->absoluteFilePath()); diff --git a/src/projectM-engine/projectM.hpp b/src/projectM-engine/projectM.hpp index e3e325bb5..fa1a84fa4 100755 --- a/src/projectM-engine/projectM.hpp +++ b/src/projectM-engine/projectM.hpp @@ -70,7 +70,8 @@ #include "fatal.h" #include "PresetFrameIO.hpp" #include "Renderer.hpp" -//#include "PresetChooser.hpp" +#include "TextureManager.hpp" + #include @@ -125,6 +126,7 @@ public: static projectM *currentEngine; static Renderer *renderer; static RenderTarget *renderTarget; + TextureManager *textureManager; std::string presetURL;