Commit Graph

18 Commits

Author SHA1 Message Date
3171507378 scaling (#512) 2021-07-09 10:07:34 +03:00
66347998a3 NuGet Dependencies update for Windows (#492)
* bump sdl2 ref

* Bump sdl2 ref

* Add glm

* remove glm
2021-06-19 16:46:18 +03:00
83a08f3a6c Add CMake build system files (only as "autotools" replacement for now) (#487)
* Initial set of CMake files with options and some targets.

* Added all targets to build libprojectM shared/static libraries.

* Updated currently unused (and seemingly unfinished) SDL-based JACK visualizer to use SDL2.

* Converted more targets to CMake and added install directives.

New targets:
- Presets
- Test application
- Pulseaudio/Qt visualizer
- JACK/Qt visualizer
- JACK/SDL2 visualizer

* Added libvisual plug-in target. Changed default install paths to relative.

* Use debug suffix for libraries by default, but make it configurable.

* Added target for projectMSDL application.

* Added CMake code for the ENABLE_THREADING switch, install desktop, icon, manpage and pkgconfig files.

Also added some dependency version output to the post-configuration summary and made Qt switch implicit based on Pulsaudio/JACK UI selection.

* Added CMake package config files and exported targets. Some restructuring of libprojectM targets.

Kept pkgconfig module name for CMake.

* Add -name parameter to RCC command in existing autotools Makefile.

Fixes symbol name mismatch with CMake auto-generated resources which always add the QRC file basename as resource name.

* Display an author warning that CMake files aren't production ready yet.

* Prefer system GLM library, with fallback to bundled version if not available.

Removed the option to use the system library in favor of automated detection.

* Link correct OpenGL libraries, the previous ones were Linux-specific, with GLVND not being required.

* Recreate config.h as generated by autoheader, even if most defines weren't used.

Will also force-include the file on all platforms.

* Add option to build native preset libraries, disabled by default.

* Only install "tests" presets if building the test suite.

* Fix linking LLVM libraries to libprojectM.

Wasn't inherited anymore due to changing MilkdropPresetFactory library type to OBJECT.

* Use INTERFACE IMPORTED libraries in find scripts, set minimum CMake version to 3.19.

* Added missing config.h template and renamed to config.h.cmake.in, was in the .gitignore list.

* Added Windows-specific CMake configuration and some related code changes.

These changes enable building for Windows with both Visual Studio and Ninja project generators. Installation and packaging for Windows is not yet supported. Source groups, filters and support for embedded debug symbols will be added later.

* Link required CoreFoundation framework on MacOS.

* Work around SDL2 include dir issue (upstream SDL bug #4004) by removing "/SDL2" from the path.

* Fix existing Windows build by moving bundled GLEW files into "GL" subdir.

* Place libprojectM-related targets in a "libprojectM" folder in IDEs supporting it, e.g. Visual Studio.

* Fix displaying whether system GLM is used or not in config summary.

* Disable threading support on Windows unless we don't rely solely on pthreads anymore.

* Add version check for SDL2 (>=2.0.5).

* Complete overhaul of build instructions, adding CMake build and use instructions.

* Added check for OpenMP support and fixed a compiler error in OMPTL.

Also moved compiler warning checks to features.cmake and added the DEBUG define for debug builds.

* Added a quick start guide for building on Debian and Ubuntu.

* Lower minimum required CMake version to 3.14.

Co-authored-by: Kai Blaschke <kai.blaschke@gdata.de>
2021-06-04 16:48:20 +03:00
f9cfdfed77 Split SDL project up into more managable pieces (#473)
* Enable text for SDL app on mac

* fix screenshots

* brew readme

* wip

* Split SDL project up into more managable pieces

* clean

* clean

* Fixed Windows build, made (unused) FPS counter portable to non-POSIX platforms.

Co-authored-by: Kai Blaschke <kai.blaschke@kb-dev.net>
2021-04-21 10:09:51 +03:00
ef010dd9e0 winfix-sdl 2020-09-01 17:09:05 +04:00
c5533e3efe Little things (#368)
* Noise not needed - F4 shows if shaders are compiled.

* Don't compile native presets by default in Visual Studio

* Debug / duplicate info

* Missed a debug native preset.

* Make texture errors more clear - we failed looking for multiple extensions.

* Move images from presets folder to textures folder

* Documented missing textures.

* Undo Visual Studio version bump.

* Renable NativePresetFactory (but the example native presets remain disabled)

* Comment

* Fixes / updates to audio device toggling.

* Stop crashing if there is no input microphone. Make fake audio dynamic so it can be enabled if there is no mic.

* Remove debug output.

* Document VC++ redist requirement.

* F4 missing from SDL help menu.

* Windows app instead of Console (no more cmd.exe pop-up when launching).

* Fullscreen for built-in settings.

* New icon (based on github and idle preset and consistent with Steam)

* Change language for loopback / audio changing.

* default fullscreen for built-in settings.

* Revert "Fullscreen for built-in settings."

This reverts commit b1936e76ab.

* Revert "default fullscreen for built-in settings."

This reverts commit ea89584174.

* Revert "9a9151b9"

* 9a9151b9

* fake_audio to fakeAudio
2020-07-28 22:05:35 +03:00
e49720ecfa Preset subdirs (#385)
Scanning textures/presets dirs for textures and scanning preset dir for presets.
Scanning is now done recursively, so presets and textures can be organized into subdirectories instead of needing to be flattened into a single directory.

On POSIX systems makes use of [ftw](https://linux.die.net/man/3/ftw) which should be relatively efficient. Otherwise falls back to recursing with `dirent` (for windows).

Probably should have made an autoconf check for `ftw` instead of doing `#ifdef WIN32`. 

* Scan subdirectories in presets directory

* remove preset subdir config

* Recursively scan for textures too, add c++-17 compatibility

* Refactor directory scanning code so it's reused by texture loader and preset loader. Make cross-platform (maybe)

* filescanner in makefile

* extension filter for file loader

* make extensions match up'

* need string.h

* Add FileScanner.cpp to win build (maybe)

* scan all dirs

* #ifndef #ifdef is def fun

* bogus comment

* bleh

* bleh

* itunes plugin with c++17

* EyeTunes needs to know about the FileScanner

Co-authored-by: milkdropper.com <milkdropper.com@gmail.com>
Co-authored-by: milkdropper <59471060+milkdropper@users.noreply.github.com>
2020-07-28 22:01:56 +03:00
e51b2c7d63 Don't require user to provide libglm (#387)
* Don't require user to provide libglm

* dist vendor

* Remove GLM requirement, add vendor headers.

Co-authored-by: milkdropper.com <milkdropper.com@gmail.com>
2020-07-27 22:56:40 +03:00
b4a3fd6d0f Menu and FPS changes (#303)
* Set build target to 10 (generic) instead the specific build the original author used.

* Move help menu down a line and indent to align with preset title and FPS.

* More accurate FPS:
 - by resetting timers whenever F5 is pushed.
 - by performing math based on percise seconds that passed, rather than assuming it will trigger exactly 250 milliseconds.

* Set idle preset name so it's displayed with F3.
2020-01-18 12:57:57 +02:00
07a2bacb6f USE_TEXT_MENU PreprocessorDefinitions 2019-11-03 18:50:20 -05:00
0dc84cbee5 test gltext 2019-11-03 15:53:05 -05:00
13807d40ff update sdl build to msvc2019 2019-10-31 22:21:38 -04:00
515848a00d Create inno setup for windows with sdl on appveyor 2019-06-04 18:38:39 -04:00
c09f951ad0 windows audio capture for sdl2 2019-06-04 12:48:37 -04:00
5af7f7c3d9 Create .appveyor.yml 2019-03-22 15:19:47 -04:00
75ac80ec17 win32 qt5 is broken, disable build in msvc solution 2019-03-22 14:46:34 -04:00
004b226122 fix msvc native preset builds 2019-03-22 14:46:20 -04:00
ce60556dae Windows build with MSVC (#181)
credit: @mancoast 

* msvc

* include glew for windows

* fix usage of std namespace with win32

* Update pmSDL.hpp

fix warning with win32

* update dirent for win32

* libs required for win32 linkage

* Update pmSDL.hpp

SDL_MAIN_HANDLED

* Update ShaderEngine.cpp

init glew to create shaders

* fake SDL audio with win32

* Update Renderer.vcxproj

use wildcards for source filenames

* Create config.h

* Update Expr.cpp

fix win32 breaks

* cleanup broken max function

* Update Makefile.am

remove ref to win32-dirent
2019-03-22 08:55:35 +01:00