From 1a5cc555769fa3c38205c7eb2e71791bfa8fbb2e Mon Sep 17 00:00:00 2001 From: psperl Date: Sat, 12 Jul 2008 01:00:52 +0000 Subject: [PATCH] More noise, less verbosity, and projectM.cg installation git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/trunk@1086 6778bc44-b910-0410-a7a0-be141de4315d --- src/projectM-engine/CMakeLists.txt | 3 ++- src/projectM-engine/PerlinNoise.cpp | 11 ++++++++++- src/projectM-engine/PerlinNoise.hpp | 7 ------- src/projectM-engine/Renderer.cpp | 28 ++++++++++++++++++++-------- src/projectM-engine/Renderer.hpp | 7 ++++++- src/projectM-engine/projectM.cg | 14 ++++++++------ src/projectM-engine/projectM.cpp | 2 +- 7 files changed, 47 insertions(+), 25 deletions(-) diff --git a/src/projectM-engine/CMakeLists.txt b/src/projectM-engine/CMakeLists.txt index 48e587635..0b155a289 100644 --- a/src/projectM-engine/CMakeLists.txt +++ b/src/projectM-engine/CMakeLists.txt @@ -149,7 +149,8 @@ FILE(GLOB presets "presets/*.milk" "presets/*.prjm" "presets/*.tga") INSTALL(FILES ${presets} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM/presets) FILE(GLOB fonts "fonts/*.ttf") INSTALL(FILES ${fonts} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM/fonts) -INSTALL(FILES "${CMAKE_CURRENT_SOURCE_DIR}/libprojectM.pc" DESTINATION ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/pkgconfig) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/projectM.cg DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM/shaders) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/libprojectM.pc DESTINATION ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/pkgconfig) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/config.inp DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM) INSTALL(FILES projectM.hpp event.h dlldefs.h fatal.h PresetFrameIO.hpp PCM.hpp DESTINATION include/libprojectM) INSTALL(TARGETS projectM DESTINATION lib${LIB_SUFFIX}) diff --git a/src/projectM-engine/PerlinNoise.cpp b/src/projectM-engine/PerlinNoise.cpp index 8b0d01e97..5df7ae321 100644 --- a/src/projectM-engine/PerlinNoise.cpp +++ b/src/projectM-engine/PerlinNoise.cpp @@ -9,8 +9,17 @@ PerlinNoise::PerlinNoise() { - // TODO Auto-generated constructor stub + for (int x = 0; x < 256;x++) + for (int y = 0; y < 256;y++) + noise_lq[x][y] = Noise(x,y); + for (int x = 0; x < 32;x++) + for (int y = 0; y < 32;y++) + noise_lq_lite[x][y] = Noise(x,y); + + for (int x = 0; x < 256;x++) + for (int y = 0; y < 256;y++) + noise_hq[x][y] = perlin_noise_2D(x,y,5,1.414); } PerlinNoise::~PerlinNoise() diff --git a/src/projectM-engine/PerlinNoise.hpp b/src/projectM-engine/PerlinNoise.hpp index d60d2d16a..0e399e59d 100644 --- a/src/projectM-engine/PerlinNoise.hpp +++ b/src/projectM-engine/PerlinNoise.hpp @@ -96,14 +96,7 @@ private: return total; } -public: - void GenerateTextures() - { - for (int x = 0; x < 256;x++) - for (int y = 0; y < 256;y++) - noise_lq[x][y] = perlin_noise_2D(x,y,8,1.414); - } }; diff --git a/src/projectM-engine/Renderer.cpp b/src/projectM-engine/Renderer.cpp index 65f6d64e6..4a69b08e6 100644 --- a/src/projectM-engine/Renderer.cpp +++ b/src/projectM-engine/Renderer.cpp @@ -112,12 +112,18 @@ SetupCg(); std::cout<<"Generating Noise Textures"<vol); cgGLSetParameter4f(cgGetNamedParameter(program, "texsize"), renderTarget->texsize, renderTarget->texsize, 1/(float)renderTarget->texsize,1/(float)renderTarget->texsize); - cgGLSetParameter4f(cgGetNamedParameter(program, "aspect"), aspect,1,1/aspect,1); + cgGLSetParameter4f(cgGetNamedParameter(program, "aspect"), aspect,1,1/aspect,1); - cgGLSetTextureParameter(cgGetNamedParameter(program, "sampler_noise_lq"),noise_texture); + cgGLSetTextureParameter(cgGetNamedParameter(program, "sampler_noise_lq"),noise_texture_lq_lite); cgGLEnableTextureParameter(cgGetNamedParameter(program, "sampler_noise_lq")); + + cgGLSetTextureParameter(cgGetNamedParameter(program, "sampler_noise_lq_lite"),noise_texture_lq_lite); + cgGLEnableTextureParameter(cgGetNamedParameter(program, "sampler_noise_lq_lite")); + + cgGLSetTextureParameter(cgGetNamedParameter(program, "sampler_noise_hq"),noise_texture_hq); + cgGLEnableTextureParameter(cgGetNamedParameter(program, "sampler_noise_hq")); } #endif diff --git a/src/projectM-engine/Renderer.hpp b/src/projectM-engine/Renderer.hpp index f3002d6d1..869bff797 100644 --- a/src/projectM-engine/Renderer.hpp +++ b/src/projectM-engine/Renderer.hpp @@ -121,7 +121,12 @@ private: std::string cgTemplate; - unsigned int noise_texture; + unsigned int noise_texture_lq_lite; + unsigned int noise_texture_lq; + unsigned int noise_texture_mq; + unsigned int noise_texture_hq; + unsigned int noise_texture_lq_vol; + unsigned int noise_texture_hq_vol; bool warpShadersEnabled; bool compositeShadersEnabled; diff --git a/src/projectM-engine/projectM.cg b/src/projectM-engine/projectM.cg index bf3039123..e8525a1ab 100644 --- a/src/projectM-engine/projectM.cg +++ b/src/projectM-engine/projectM.cg @@ -25,12 +25,11 @@ sampler2D sampler_main; #define sampler_fw_main sampler_main #define sampler_fc_main sampler_main -#define sampler_noise_lq sampler_main -#define sampler_noise_lq_lite sampler_main -#define sampler_noise_mq sampler_main -#define sampler_noise_hq sampler_main -#define sampler_noisevol_lq sampler_main -#define sampler_noisevol_hq sampler_main + + +#define sampler_noise_mq sampler_noise_hq +#define sampler_noisevol_lq sampler_noise_lq +#define sampler_noisevol_hq sampler_noise_lq #define texsize_noise_lq texsize #define texsize_noise_lq_lite texsize #define texsize_noise_mq texsize @@ -57,6 +56,9 @@ return ret * 0.2; outtype projectm (float2 uv : TEXCOORD0, uniform sampler2D sampler_arg : TEX0, + uniform sampler2D sampler_noise_lq, + uniform sampler2D sampler_noise_lq_lite, + uniform sampler2D sampler_noise_hq, uniform float time, uniform float4 rand_preset, uniform float4 rand_frame, diff --git a/src/projectM-engine/projectM.cpp b/src/projectM-engine/projectM.cpp index 924adf627..0eda5ea9b 100755 --- a/src/projectM-engine/projectM.cpp +++ b/src/projectM-engine/projectM.cpp @@ -852,7 +852,7 @@ void projectM::switchPreset(std::auto_ptr & targetPreset, PresetInputs & // Set preset name here- event is not done because at the moment this function is oblivious to smooth/hard switches renderer->setPresetName ( targetPreset->presetName() ); - + renderer->SetPipeline(outputs); }