Commit Graph

491 Commits

Author SHA1 Message Date
727b489bcf rework for windows build 2019-10-25 18:05:54 -04:00
e2a7531d2f typo fix 2019-10-05 21:23:42 +03:00
d1314d0512 There was a bug that existed in open GL ES 2.0 implementations and random textures (#239)
* There was a bug that existed in open GL ES 2.0 implementations
where glTexImage2D could not convert GL_RGB formed textures into GL_RGBA
while generating the noise textures.   The GL error
was GL_INVALID_OPERATION(0x502)
This probably made the noise textures blank.
So a new class was added that has the alpha channel for the values.

* Added a fudge for render farming milkdrop where we control the time and the ticks.

* User defined time: Got rid of testing code

* Attempt to fix WIN32 compile - it doesnt use or need the ability to control the time

* Got rid of debug - got rid of minor warning

* projectM.hpp - type in ifdef
projectM_SDL_main.cpp - there is code added to make the initial random number dependent on the time of day, making
the sequence of visualizers more unexpected.  But the posix command time does not exist in Win32 land, so we disable it.
2019-10-01 10:01:45 +03:00
412cd7432c build all platforms for windows store 2019-05-23 16:57:15 -04:00
48b194a10d Add NSMicrophoneUsageDescription for macOS - required to capture audio input 2019-05-11 22:41:46 +03:00
4fd40d0efc GLSL and emscripten - JavaScript and WebGL support (#92)
* add glm lib in vendor folder

* fix makefile

* add more help and context to emscripten readme

* add correct output parameter to emcc

* add how to restart the process to the readme

* simplify emscripten compilation

* apply patch

* fix blur shaders to work with WebGL
2019-05-11 19:07:49 +03:00
86ebff7e46 Added VR/Multiple screen support (#201)
* Supports Multiple pass2 renderings.

My application (Silent Radiance) added projectM visualizers, but I needed support for VR.
So I added Renderer::RenderFrameOnlyPass1 and Renderer::RenderFrameOnlyPass2
This allows an offset in the screen output so the same image can be rendered twice very quickly.
I could have rendered to a buffer externally.

This is  fed into the Raylib VR in my application to add the fisheye effect.

* Added an example of the VR

* Added multiple screen renderings for VR

Added a new way of rendering that allows multiple pass2's to be done: one per screen.
This allows for a second screen output, and VR. In fact I am using this for VR where I need a left and right eye on the same screen.
In order to do this, I sometimes have to set the viewport not starting at the upper left of the screen.

Added renderFrameOnlyPass2 - and an optional pipeline can be passed - this would be a pipeline when there is a transition from one visual to another.  This can be called once per eye.

Finally, renderFrameEndOnSeparatePasses cleans up, does the fps control, statistics, etc.



This alternate rendering is as possible:
Pipeline pipeline;
Pipeline *comboPipeline;
comboPipeline = renderFrameOnlyPass1(&pipeline);

for each eye:
  renderFrameOnlyPass2(comboPipeline,xoffset,yoffset,eye);
  
Then
renderFrameEndOnSeparatePasses(comboPipeline); 
for the accounting and releasing the mutex

* Removed the duplication of code for VR.

* Removed the duplication of code for VR.
2019-04-29 01:11:18 +03:00
835474f1d2 modify for WINRT support 2019-04-26 14:57:58 -04:00
b92a283b43 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
0e19f0ebe1 https://github.com/projectM-visualizer/projectm/issues/161 (#175)
fix for https://github.com/projectM-visualizer/projectm/issues/161
2019-03-10 20:05:41 -07:00
0318e390f4 LLVM - add native code generation for expression evaluation (#162) 2019-03-05 14:24:59 -08:00
e33cf1a6ab Allocate PerlinNoise dynamically / Fix thread detach after join (#170) 2019-03-03 22:58:57 +02:00
116010d8ad automating dist for macOS 2019-03-03 12:40:09 +02:00
7ef7a379a0 rendercontext is gone 2019-03-03 11:58:24 +02:00
df86fd1240 Merge pull request #125 from luigino/libprojectM
Increase soversion to 3.1.1
2019-02-22 09:39:20 +01:00
3258ff5a1a Increase libprojectM SOVERSION to 3.1.1 2019-02-21 19:41:55 +01:00
8278444652 Merge pull request #158 from kossebau/fixlocalebaseddoubleparsing
Fix Milkdrop Preset parser to read floats always in C locale
2019-02-09 19:20:53 +02:00
321dd5c287 Merge pull request #155 from kossebau/removeunusedRenderContextfiles
Remove unused libprojectM/Renderer/RenderContext.* files
2019-02-09 19:20:37 +02:00
3db162ac43 Error handling fix 2019-01-30 11:04:03 -08:00
f41f39d2f8 Fix Milkdrop Preset parser to read floats always in C locale
Also remove calls of setlocale(LC_NUMERIC, "C"); in library,
which results in unexpected sideeffects in the rest of the process
where the library is used.
Same for the applications which also had this work-around added.

Work-arounds using setlocale had been added in
90aa2c8f38 & 196c374a74
2019-01-27 00:24:01 +01:00
7a529f3536 short circuiting IF() (#156)
* short circuiting IF()

* fix non SSE2 init_mesh()
2019-01-19 10:11:47 -08:00
1cf7eaa4c8 Remove unused libprojectM/Renderer/RenderContext.* files
Used class RenderContext is now defined in Renderable.*
2019-01-19 12:14:01 +01:00
56e03259b5 fix first point in CustomWave 2019-01-17 17:55:28 -08:00
548a65acfa handle 2ch floating point PCM data (#150)
separate stereo channels when using PA_SAMPLE_FLOAT32LE
2019-01-16 20:07:30 +00:00
b0749e5f53 projectM-unittest (#153)
revive projectM-test directory

    new executable src/projectM-test/projectM-unittest
    still need to update existing code SDL->SDL2

Add projectM-unittest to Travic CI
2019-01-16 19:32:51 +00:00
64950a4516 avoid problem loading mixed case extension - EOE125~1.MILk 2019-01-14 16:49:23 -08:00
dfb693c898 Perf cleanup (#151)
* Param refactor
collected all the code that reached inside Param (InitCond, Per*Eqn, Expr, Parser) to read/write and stuffed it all back into Param.cpp
made Param extend Expr to avoid any perf penalty (I actually think eval() is a tiny bit faster now)

* presets/tests

* ALWAYS_MATRIX is used with PER_POINT

* use SSE2 to impove initialize_PerPixelMeshes() performance

* TestRunner
very, very simple test framework, but it's better than no framework
(consider investigating adopting something)

* ProgramExpr
2019-01-14 05:33:38 +00:00
315f9f6423 don't free existing before allocate()
(put back the way it was)
2019-01-13 19:43:33 -08:00
cde3566d16 147 (#149)
* attempt at fixing synchronization problem
https://github.com/projectM-visualizer/projectm/issues/147

* fix init

* add header to Makefile.am

* undo accidental commit
2019-01-12 22:40:19 +00:00
969c6beb3f caching one PresetOutputs appears to be sufficient 2019-01-08 16:37:51 -08:00
1ef0c37d8d More complete fix to PresetOutput bug.
created matching allocate/release methods for PresetOutput, so there is no implicit dependency on behavior between projectM::switchPreset() and MilkdropPresetFactory::allocate()
2019-01-08 14:16:24 -08:00
cd9f7dc2dd value1 and value2 were marked at ALWAYS_MATRIX but the matrix variables were never set.
now treat the three read-only variables consistently (sample, value1, value2)
2019-01-03 23:05:01 -08:00
f94a5f7f8b Merge pull request #141 from mbellew/PresetOutputs-bug
bug calling switchPreset() while a smooth transition is still in progress
2019-01-03 11:30:18 +02:00
95b11b0ada fix bug when calling switchPreset() while a smooth transition is still in progress 2019-01-02 18:30:56 -08:00
414d697f5c xcode cleanup 2019-01-01 13:27:57 +02:00
7af098617c Increase soversion to 2.2.0 2018-12-02 08:39:14 +01:00
35f79c4e5a Merge pull request #123 from projectM-visualizer/gles_fixes
DX to openGL/openGLES transpilation fixes
2018-11-23 12:27:57 +01:00
da470d6e10 - Matrix assignment: DX to GL adaptation
- GLES fix
2018-11-20 20:34:36 +01:00
eb06f6a474 Assignement -> Assignment 2018-11-20 20:29:09 +01:00
5875b012ca DX to openGL/openGLES transpilation fixes 2018-11-17 13:13:25 +01:00
9b9e08badb Build warnings cleanup 2018-11-17 11:42:28 +01:00
b662f81009 memleak fix 2018-11-17 11:41:59 +01:00
2301aaabfe fixup! added: allow specifying datadir in settings on runtime 2018-10-15 15:24:14 +02:00
fa135a027c added: allow specifying datadir in settings on runtime 2018-10-04 16:33:47 +02:00
4de7f24c4f update xcode 2018-09-30 15:46:01 +03:00
4d71160c38 readme, comments 2018-09-30 15:37:45 +03:00
4958a10b16 Merge pull request #106 from projectM-visualizer/no-glew
No GLEW
2018-09-30 15:22:36 +03:00
3a54b34031 Merge pull request #107 from projectM-visualizer/glsl
Include config.h for libraries
2018-09-23 15:04:23 +02:00
dec25a6523 Merge pull request #103 from growingant/patch-2
update Makefile.am
2018-09-23 14:31:09 +02:00
1c8afb30c8 bye glew 2018-09-22 11:52:30 +03:00