diff options
author | tobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c> | 2008-04-22 15:55:50 +0000 |
---|---|---|
committer | tobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c> | 2008-04-22 15:55:50 +0000 |
commit | 0b5d88d2332b91211ae03a3364397369d155e6ba (patch) | |
tree | 40f3ed854d9d7525934060370caff7d510373a93 /Game/Code/lib/projectM/cwrapper | |
parent | 2a39c305cd831d669ff0790bb1e1eaa577595d62 (diff) | |
download | usdx-0b5d88d2332b91211ae03a3364397369d155e6ba.tar.gz usdx-0b5d88d2332b91211ae03a3364397369d155e6ba.tar.xz usdx-0b5d88d2332b91211ae03a3364397369d155e6ba.zip |
- new layout of the projectM lib-dir.
- PROJECTM_..._PLUS variable in config-....inc not needed anymore.
- Support for projectM 1.1 (=1.10)
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1030 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to '')
-rwxr-xr-x | Game/Code/lib/projectM/cwrapper/Makefile.in | 30 | ||||
-rwxr-xr-x | Game/Code/lib/projectM/cwrapper/projectM-cwrapper.cpp | 104 | ||||
-rwxr-xr-x | Game/Code/lib/projectM/cwrapper/projectM-cwrapper.h | 65 | ||||
-rw-r--r-- | Game/Code/lib/projectM/cwrapper/projectM-cwrapper.sln (renamed from Game/Code/lib/projectM/1.0/cwrapper/projectM-cwrapper.sln) | 0 | ||||
-rw-r--r-- | Game/Code/lib/projectM/cwrapper/projectM-cwrapper.vcproj (renamed from Game/Code/lib/projectM/1.0/cwrapper/projectM-cwrapper.vcproj) | 19 |
5 files changed, 209 insertions, 9 deletions
diff --git a/Game/Code/lib/projectM/cwrapper/Makefile.in b/Game/Code/lib/projectM/cwrapper/Makefile.in new file mode 100755 index 00000000..d2be8613 --- /dev/null +++ b/Game/Code/lib/projectM/cwrapper/Makefile.in @@ -0,0 +1,30 @@ +OBJECTS = projectM-cwrapper.o +LIBRARY = libprojectM-cwrapper.a + +CXX = @CXX@ +CXXFLAGS += @CXXFLAGS@ +INCLUDES = -I@libprojectM_INCLUDEDIR@/libprojectM +DEFINES = -DPROJECTM_VERSION_INT=@libprojectM_VERSION_INT@ +RANLIB = @RANLIB@ + +.PHONY: all clean distclean strip + +all : $(LIBRARY) + +$(LIBRARY): $(OBJECTS) + ar ruv $(LIBRARY) $(OBJECTS) + $(RANLIB) $(LIBRARY) + +%.o : %.cpp + $(CXX) $(CXXFLAGS) $(DEFINES) $(INCLUDES) -c $(<) -o $@ + +clean : + rm -f $(LIBRARY) + rm -f $(OBJECTS) + +distclean: clean + rm -rf Makefile + +strip : + strip $(LIBRARY) + $(RANLIB) $(LIBRARY) diff --git a/Game/Code/lib/projectM/cwrapper/projectM-cwrapper.cpp b/Game/Code/lib/projectM/cwrapper/projectM-cwrapper.cpp new file mode 100755 index 00000000..4b81130d --- /dev/null +++ b/Game/Code/lib/projectM/cwrapper/projectM-cwrapper.cpp @@ -0,0 +1,104 @@ +#include "projectM-cwrapper.h" + +#define PM_CLASS(pm) ((projectM*)pm) + +#if (PROJECTM_VERSION_INT >= 1010000) +#define PM_PCM(pm) (PM_CLASS(pm)->pcm()) +#else +#define PM_PCM(pm) (PM_CLASS(pm)->pcm) +#endif + +projectM_ptr projectM_create1(char* config_file) +{ + return projectM_ptr(new projectM(config_file)); +} + +#if (PROJECTM_VERSION_INT < 1010000) +projectM_ptr projectM_create2(int gx, int gy, int fps, int texsize, + int width, int height, char* preset_url, + char* title_fonturl, char* title_menuurl) +{ + return projectM_ptr(new projectM(gx, gy, fps, texsize, width, height, + preset_url, title_fonturl, title_menuurl));} +#endif + +void projectM_resetGL(projectM_ptr pm, int width, int height) +{ + PM_CLASS(pm)->projectM_resetGL(width, height); +} + +void projectM_setTitle(projectM_ptr pm, char* title) +{ + PM_CLASS(pm)->projectM_setTitle(title); +} + +void projectM_renderFrame(projectM_ptr pm) +{ + PM_CLASS(pm)->renderFrame(); +} + +unsigned projectM_initRenderToTexture(projectM_ptr pm) +{ + return PM_CLASS(pm)->initRenderToTexture(); +} + +void projectM_key_handler(projectM_ptr pm, projectMEvent event, + projectMKeycode keycode, projectMModifier modifier) +{ + PM_CLASS(pm)->key_handler(event, keycode, modifier); +} + +void projectM_free(projectM_ptr pm) +{ + delete PM_CLASS(pm); +} + +void PCM_addPCMfloat(projectM_ptr pm, float *PCMdata, int samples) +{ + PM_PCM(pm)->addPCMfloat(PCMdata, samples); +} + +void PCM_addPCM16(projectM_ptr pm, short pcm_data[2][512]) +{ + PM_PCM(pm)->addPCM16(pcm_data); +} + +void PCM_addPCM16Data(projectM_ptr pm, const short* pcm_data, short samples) +{ + PM_PCM(pm)->addPCM16Data(pcm_data, samples); +} + +void PCM_addPCM8(projectM_ptr pm, unsigned char pcm_data[2][1024]) +{ + PM_PCM(pm)->addPCM8(pcm_data); +} + +void PCM_addPCM8_512(projectM_ptr pm, const unsigned char pcm_data[2][512]) +{ + PM_PCM(pm)->addPCM8_512(pcm_data); +} + +#define COPY_FIELD(c_ptr, s, fld) (c_ptr->fld = s.fld) + +#if (PROJECTM_VERSION_INT >= 1010000) +void projectM_settings(projectM_ptr pm, Settings* settings) +{ + const projectM::Settings& pmSettings = PM_CLASS(pm)->settings(); + + COPY_FIELD(settings, pmSettings, meshX); + COPY_FIELD(settings, pmSettings, meshY); + COPY_FIELD(settings, pmSettings, fps); + COPY_FIELD(settings, pmSettings, textureSize); + COPY_FIELD(settings, pmSettings, windowWidth); + COPY_FIELD(settings, pmSettings, windowHeight); + settings->presetURL = pmSettings.presetURL.c_str(); + settings->titleFontURL = pmSettings.titleFontURL.c_str(); + settings->menuFontURL = pmSettings.menuFontURL.c_str(); + COPY_FIELD(settings, pmSettings, smoothPresetDuration); + COPY_FIELD(settings, pmSettings, presetDuration); + COPY_FIELD(settings, pmSettings, beatSensitivity); + COPY_FIELD(settings, pmSettings, aspectCorrection); + COPY_FIELD(settings, pmSettings, easterEgg); + COPY_FIELD(settings, pmSettings, shuffleEnabled); +} +#endif diff --git a/Game/Code/lib/projectM/cwrapper/projectM-cwrapper.h b/Game/Code/lib/projectM/cwrapper/projectM-cwrapper.h new file mode 100755 index 00000000..60e1dbb8 --- /dev/null +++ b/Game/Code/lib/projectM/cwrapper/projectM-cwrapper.h @@ -0,0 +1,65 @@ +#ifndef __PROJECTM_CWRAPPER_H__
+#define __PROJECTM_CWRAPPER_H__
+
+#include "projectM.hpp"
+
+#define PROJECTM_VERSION_1_00_00 1000000 // 1.00.00 = 1.0 or 1.01
+#define PROJECTM_VERSION_1_10_00 1010000 // 1.10.00 = 1.1
+
+// version of projectM to wrap (see PROJECTM_VERSION)
+#ifndef PROJECTM_VERSION_INT
+#define PROJECTM_VERSION_INT PROJECTM_VERSION_1_10_00
+#endif
+
+extern "C" {
+
+ #if (PROJECTM_VERSION_INT >= 1010000)
+ struct Settings {
+ int meshX;
+ int meshY;
+ int fps;
+ int textureSize;
+ int windowWidth;
+ int windowHeight;
+ const char* presetURL;
+ const char* titleFontURL;
+ const char* menuFontURL;
+ int smoothPresetDuration;
+ int presetDuration;
+ float beatSensitivity;
+ char aspectCorrection;
+ float easterEgg;
+ char shuffleEnabled;
+ };
+ #endif
+
+ typedef void* projectM_ptr;
+
+ DLLEXPORT projectM_ptr projectM_create1(char* config_file);
+ #if (PROJECTM_VERSION_INT < 1010000)
+ DLLEXPORT projectM_ptr projectM_create2(int gx, int gy, int fps, int texsize,
+ int width, int height, char* preset_url,
+ char* title_fonturl, char* title_menuurl);
+ #endif
+
+ DLLEXPORT void projectM_resetGL(projectM_ptr pm, int width, int height);
+ DLLEXPORT void projectM_setTitle(projectM_ptr pm, char* title);
+ DLLEXPORT void projectM_renderFrame(projectM_ptr pm);
+ DLLEXPORT unsigned projectM_initRenderToTexture(projectM_ptr pm);
+ DLLEXPORT void projectM_key_handler(projectM_ptr pm, projectMEvent event,
+ projectMKeycode keycode, projectMModifier modifier);
+
+ DLLEXPORT void projectM_free(projectM_ptr pm);
+
+ DLLEXPORT void PCM_addPCMfloat(projectM_ptr pm, float *PCMdata, int samples);
+ DLLEXPORT void PCM_addPCM16(projectM_ptr pm, short [2][512]);
+ DLLEXPORT void PCM_addPCM16Data(projectM_ptr pm, const short* pcm_data, short samples);
+ DLLEXPORT void PCM_addPCM8(projectM_ptr pm, unsigned char [2][1024]);
+ DLLEXPORT void PCM_addPCM8_512(projectM_ptr pm, const unsigned char [2][512]);
+
+ #if (PROJECTM_VERSION_INT >= 1010000)
+ DLLEXPORT void projectM_settings(projectM_ptr pm, Settings* settings);
+ #endif
+}
+
+#endif
diff --git a/Game/Code/lib/projectM/1.0/cwrapper/projectM-cwrapper.sln b/Game/Code/lib/projectM/cwrapper/projectM-cwrapper.sln index e05f79a3..e05f79a3 100644 --- a/Game/Code/lib/projectM/1.0/cwrapper/projectM-cwrapper.sln +++ b/Game/Code/lib/projectM/cwrapper/projectM-cwrapper.sln diff --git a/Game/Code/lib/projectM/1.0/cwrapper/projectM-cwrapper.vcproj b/Game/Code/lib/projectM/cwrapper/projectM-cwrapper.vcproj index 9c182cac..013bc6b7 100644 --- a/Game/Code/lib/projectM/1.0/cwrapper/projectM-cwrapper.vcproj +++ b/Game/Code/lib/projectM/cwrapper/projectM-cwrapper.vcproj @@ -20,7 +20,7 @@ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
- CharacterSet="1"
+ CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
@@ -40,7 +40,7 @@ <Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories="../projectM"
+ AdditionalIncludeDirectories=""D:\daten\ultrastar\libprojectM\libprojectM-1.1\projectM";"D:\daten\ultrastar\libprojectM\libs\pthreads\Pre-built.2\include""
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;PROJECTMCWRAPPER_EXPORTS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
@@ -61,9 +61,9 @@ />
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="projectM.lib"
+ AdditionalDependencies="libprojectM.lib"
LinkIncremental="2"
- AdditionalLibraryDirectories="../projectM/Debug"
+ AdditionalLibraryDirectories=""D:\daten\ultrastar\libprojectM\libprojectM-1.1\projectM\Release""
GenerateDebugInformation="true"
SubSystem="2"
TargetMachine="1"
@@ -118,8 +118,9 @@ />
<Tool
Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="../projectM"
+ AdditionalIncludeDirectories=""D:\daten\ultrastar\libprojectM\libprojectM-1.1\projectM";"D:\daten\ultrastar\libprojectM\libs\pthreads\Pre-built.2\include""
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;PROJECTMCWRAPPER_EXPORTS"
+ ExceptionHandling="1"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
@@ -137,9 +138,9 @@ />
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="projectM.lib"
+ AdditionalDependencies="libprojectM.lib"
LinkIncremental="1"
- AdditionalLibraryDirectories="../projectM/Release"
+ AdditionalLibraryDirectories=""D:\daten\ultrastar\libprojectM\libprojectM-1.1\projectM\Release""
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
@@ -181,7 +182,7 @@ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
- RelativePath=".\projectM.cpp"
+ RelativePath=".\projectM-cwrapper.cpp"
>
</File>
</Filter>
@@ -191,7 +192,7 @@ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
- RelativePath=".\projectM.h"
+ RelativePath=".\projectM-cwrapper.h"
>
</File>
</Filter>
|