From 961c6ada19e4d3ed6e570e061b61ec475d5ae4ee Mon Sep 17 00:00:00 2001 From: James H Ball Date: Sun, 22 Dec 2024 22:38:10 +0000 Subject: [PATCH] Get syphon working --- External/syphon/Syphon.framework/Headers | 0 External/syphon/Syphon.framework/Modules | 0 External/syphon/Syphon.framework/Resources | 0 External/syphon/Syphon.framework/Syphon | 0 .../syphon/Syphon.framework/Versions/A/Syphon | Bin .../syphon/Syphon.framework/Versions/Current | 0 Source/visualiser/VisualiserComponent.cpp | 15 +- Source/visualiser/WideBlurFragmentShader.glsl | 130 +++++++++--------- modules/juce_sharedtexture | 2 +- 9 files changed, 75 insertions(+), 72 deletions(-) mode change 100644 => 120000 External/syphon/Syphon.framework/Headers mode change 100644 => 120000 External/syphon/Syphon.framework/Modules mode change 100644 => 120000 External/syphon/Syphon.framework/Resources mode change 100644 => 120000 External/syphon/Syphon.framework/Syphon mode change 100644 => 100755 External/syphon/Syphon.framework/Versions/A/Syphon mode change 100644 => 120000 External/syphon/Syphon.framework/Versions/Current diff --git a/External/syphon/Syphon.framework/Headers b/External/syphon/Syphon.framework/Headers deleted file mode 100644 index a177d2a6..00000000 --- a/External/syphon/Syphon.framework/Headers +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Headers \ No newline at end of file diff --git a/External/syphon/Syphon.framework/Headers b/External/syphon/Syphon.framework/Headers new file mode 120000 index 00000000..a177d2a6 --- /dev/null +++ b/External/syphon/Syphon.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/External/syphon/Syphon.framework/Modules b/External/syphon/Syphon.framework/Modules deleted file mode 100644 index 5736f318..00000000 --- a/External/syphon/Syphon.framework/Modules +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Modules \ No newline at end of file diff --git a/External/syphon/Syphon.framework/Modules b/External/syphon/Syphon.framework/Modules new file mode 120000 index 00000000..5736f318 --- /dev/null +++ b/External/syphon/Syphon.framework/Modules @@ -0,0 +1 @@ +Versions/Current/Modules \ No newline at end of file diff --git a/External/syphon/Syphon.framework/Resources b/External/syphon/Syphon.framework/Resources deleted file mode 100644 index 953ee36f..00000000 --- a/External/syphon/Syphon.framework/Resources +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Resources \ No newline at end of file diff --git a/External/syphon/Syphon.framework/Resources b/External/syphon/Syphon.framework/Resources new file mode 120000 index 00000000..953ee36f --- /dev/null +++ b/External/syphon/Syphon.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/External/syphon/Syphon.framework/Syphon b/External/syphon/Syphon.framework/Syphon deleted file mode 100644 index 9091fd4c..00000000 --- a/External/syphon/Syphon.framework/Syphon +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Syphon \ No newline at end of file diff --git a/External/syphon/Syphon.framework/Syphon b/External/syphon/Syphon.framework/Syphon new file mode 120000 index 00000000..9091fd4c --- /dev/null +++ b/External/syphon/Syphon.framework/Syphon @@ -0,0 +1 @@ +Versions/Current/Syphon \ No newline at end of file diff --git a/External/syphon/Syphon.framework/Versions/A/Syphon b/External/syphon/Syphon.framework/Versions/A/Syphon old mode 100644 new mode 100755 diff --git a/External/syphon/Syphon.framework/Versions/Current b/External/syphon/Syphon.framework/Versions/Current deleted file mode 100644 index 8c7e5a66..00000000 --- a/External/syphon/Syphon.framework/Versions/Current +++ /dev/null @@ -1 +0,0 @@ -A \ No newline at end of file diff --git a/External/syphon/Syphon.framework/Versions/Current b/External/syphon/Syphon.framework/Versions/Current new file mode 120000 index 00000000..8c7e5a66 --- /dev/null +++ b/External/syphon/Syphon.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/Source/visualiser/VisualiserComponent.cpp b/Source/visualiser/VisualiserComponent.cpp index 7e5d4b29..e388c3f8 100644 --- a/Source/visualiser/VisualiserComponent.cpp +++ b/Source/visualiser/VisualiserComponent.cpp @@ -328,9 +328,13 @@ void VisualiserComponent::childUpdated() { } void VisualiserComponent::initialiseSharedTexture() { - sharedTextureSender = SharedTextureManager::getInstance()->addSender("TEST OSCI-RENDER", viewportArea.getWidth(), viewportArea.getHeight()); - sharedTextureSender->setExternalFBO(renderTexture.id); - sharedTextureSender->setSize(renderTexture.width, renderTexture.height); + sharedTextureSender = SharedTextureManager::getInstance()->addSender("osci-render - " + juce::String(juce::Time::getCurrentTime().toMilliseconds()), renderTexture.width, renderTexture.height); + sharedTextureSender->initGL(); + sharedTextureSender->setSharedTextureId(renderTexture.id); + sharedTextureSender->setDrawFunction([this] { + setShader(texturedShader.get()); + drawTexture(renderTexture); + }); } void VisualiserComponent::closeSharedTexture() { @@ -444,8 +448,8 @@ void VisualiserComponent::renderOpenGL() { } if (parent == nullptr) { - if (SharedTextureManager::getInstanceWithoutCreating() != nullptr) { - SharedTextureManager::getInstance()->renderGL(); + if (sharedTextureSender != nullptr) { + sharedTextureSender->renderGL(); } } @@ -831,7 +835,6 @@ void VisualiserComponent::drawCRT() { outputShader->setUniform("uResizeForCanvas", lineTexture.width / 1024.0f); juce::Colour colour = juce::Colour::fromHSV(settings.getHue() / 360.0f, 1.0, 1.0, 1.0); outputShader->setUniform("uColour", colour.getFloatRed(), colour.getFloatGreen(), colour.getFloatBlue()); - activateTargetTexture(renderTexture); drawTexture(lineTexture, blur1Texture, blur3Texture, screenTexture); } diff --git a/Source/visualiser/WideBlurFragmentShader.glsl b/Source/visualiser/WideBlurFragmentShader.glsl index 00a6cf9e..e4650099 100644 --- a/Source/visualiser/WideBlurFragmentShader.glsl +++ b/Source/visualiser/WideBlurFragmentShader.glsl @@ -7,71 +7,71 @@ varying vec2 vTexCoord; void main() { vec4 sum = vec4(0.0); - sum += texture2D(uTexture0, vTexCoord + uOffset * -32) * 7.936396739629738e-9; - sum += texture2D(uTexture0, vTexCoord + uOffset * -31) * 2.1238899047869243e-8; - sum += texture2D(uTexture0, vTexCoord + uOffset * -30) * 5.5089512435892845e-8; - sum += texture2D(uTexture0, vTexCoord + uOffset * -29) * 1.3849501900610678e-7; - sum += texture2D(uTexture0, vTexCoord + uOffset * -28) * 3.37464176550827e-7; - sum += texture2D(uTexture0, vTexCoord + uOffset * -27) * 7.969838069860066e-7; - sum += texture2D(uTexture0, vTexCoord + uOffset * -26) * 0.0000018243141024985921; - sum += texture2D(uTexture0, vTexCoord + uOffset * -25) * 0.000004047417737721991; - sum += texture2D(uTexture0, vTexCoord + uOffset * -24) * 0.000008703315823121481; - sum += texture2D(uTexture0, vTexCoord + uOffset * -23) * 0.000018139267838241068; - sum += texture2D(uTexture0, vTexCoord + uOffset * -22) * 0.00003664232826522744; - sum += texture2D(uTexture0, vTexCoord + uOffset * -21) * 0.0000717421959978491; - sum += texture2D(uTexture0, vTexCoord + uOffset * -20) * 0.00013614276559291948; - sum += texture2D(uTexture0, vTexCoord + uOffset * -19) * 0.00025040486855393973; - sum += texture2D(uTexture0, vTexCoord + uOffset * -18) * 0.00044639494279724747; - sum += texture2D(uTexture0, vTexCoord + uOffset * -17) * 0.00077130129517095; - sum += texture2D(uTexture0, vTexCoord + uOffset * -16) * 0.0012916865959769006; - sum += texture2D(uTexture0, vTexCoord + uOffset * -15) * 0.0020966142949301195; - sum += texture2D(uTexture0, vTexCoord + uOffset * -14) * 0.003298437274607801; - sum += texture2D(uTexture0, vTexCoord + uOffset * -13) * 0.005029516233086111; - sum += texture2D(uTexture0, vTexCoord + uOffset * -12) * 0.007433143141769405; - sum += texture2D(uTexture0, vTexCoord + uOffset * -11) * 0.010647485948997013; - sum += texture2D(uTexture0, vTexCoord + uOffset * -10) * 0.014782570282805454; - sum += texture2D(uTexture0, vTexCoord + uOffset * -9) * 0.019892122581030056; - sum += texture2D(uTexture0, vTexCoord + uOffset * -8) * 0.02594421881668063; - sum += texture2D(uTexture0, vTexCoord + uOffset * -7) * 0.03279656561871859; - sum += texture2D(uTexture0, vTexCoord + uOffset * -6) * 0.040183192177668754; - sum += texture2D(uTexture0, vTexCoord + uOffset * -5) * 0.04771872140419803; - sum += texture2D(uTexture0, vTexCoord + uOffset * -4) * 0.05492391166591576; - sum += texture2D(uTexture0, vTexCoord + uOffset * -3) * 0.06127205113483162; - sum += texture2D(uTexture0, vTexCoord + uOffset * -2) * 0.06625088366795348; - sum += texture2D(uTexture0, vTexCoord + uOffset * -1) * 0.06943032995966593; - sum += texture2D(uTexture0, vTexCoord + uOffset * 0) * 0.07052369856294818; - sum += texture2D(uTexture0, vTexCoord + uOffset * 1) * 0.06943032995966593; - sum += texture2D(uTexture0, vTexCoord + uOffset * 2) * 0.06625088366795348; - sum += texture2D(uTexture0, vTexCoord + uOffset * 3) * 0.06127205113483162; - sum += texture2D(uTexture0, vTexCoord + uOffset * 4) * 0.05492391166591576; - sum += texture2D(uTexture0, vTexCoord + uOffset * 5) * 0.04771872140419803; - sum += texture2D(uTexture0, vTexCoord + uOffset * 6) * 0.040183192177668754; - sum += texture2D(uTexture0, vTexCoord + uOffset * 7) * 0.03279656561871859; - sum += texture2D(uTexture0, vTexCoord + uOffset * 8) * 0.02594421881668063; - sum += texture2D(uTexture0, vTexCoord + uOffset * 9) * 0.019892122581030056; - sum += texture2D(uTexture0, vTexCoord + uOffset * 10) * 0.014782570282805454; - sum += texture2D(uTexture0, vTexCoord + uOffset * 11) * 0.010647485948997013; - sum += texture2D(uTexture0, vTexCoord + uOffset * 12) * 0.007433143141769405; - sum += texture2D(uTexture0, vTexCoord + uOffset * 13) * 0.005029516233086111; - sum += texture2D(uTexture0, vTexCoord + uOffset * 14) * 0.003298437274607801; - sum += texture2D(uTexture0, vTexCoord + uOffset * 15) * 0.0020966142949301195; - sum += texture2D(uTexture0, vTexCoord + uOffset * 16) * 0.0012916865959769006; - sum += texture2D(uTexture0, vTexCoord + uOffset * 17) * 0.00077130129517095; - sum += texture2D(uTexture0, vTexCoord + uOffset * 18) * 0.00044639494279724747; - sum += texture2D(uTexture0, vTexCoord + uOffset * 19) * 0.00025040486855393973; - sum += texture2D(uTexture0, vTexCoord + uOffset * 20) * 0.00013614276559291948; - sum += texture2D(uTexture0, vTexCoord + uOffset * 21) * 0.0000717421959978491; - sum += texture2D(uTexture0, vTexCoord + uOffset * 22) * 0.00003664232826522744; - sum += texture2D(uTexture0, vTexCoord + uOffset * 23) * 0.000018139267838241068; - sum += texture2D(uTexture0, vTexCoord + uOffset * 24) * 0.000008703315823121481; - sum += texture2D(uTexture0, vTexCoord + uOffset * 25) * 0.000004047417737721991; - sum += texture2D(uTexture0, vTexCoord + uOffset * 26) * 0.0000018243141024985921; - sum += texture2D(uTexture0, vTexCoord + uOffset * 27) * 7.969838069860066e-7; - sum += texture2D(uTexture0, vTexCoord + uOffset * 28) * 3.37464176550827e-7; - sum += texture2D(uTexture0, vTexCoord + uOffset * 29) * 1.3849501900610678e-7; - sum += texture2D(uTexture0, vTexCoord + uOffset * 30) * 5.5089512435892845e-8; - sum += texture2D(uTexture0, vTexCoord + uOffset * 31) * 2.1238899047869243e-8; - sum += texture2D(uTexture0, vTexCoord + uOffset * 32) * 7.936396739629738e-9; + sum += texture2D(uTexture0, vTexCoord + uOffset * -32.0) * 7.936396739629738e-9; + sum += texture2D(uTexture0, vTexCoord + uOffset * -31.0) * 2.1238899047869243e-8; + sum += texture2D(uTexture0, vTexCoord + uOffset * -30.0) * 5.5089512435892845e-8; + sum += texture2D(uTexture0, vTexCoord + uOffset * -29.0) * 1.3849501900610678e-7; + sum += texture2D(uTexture0, vTexCoord + uOffset * -28.0) * 3.37464176550827e-7; + sum += texture2D(uTexture0, vTexCoord + uOffset * -27.0) * 7.969838069860066e-7; + sum += texture2D(uTexture0, vTexCoord + uOffset * -26.0) * 0.0000018243141024985921; + sum += texture2D(uTexture0, vTexCoord + uOffset * -25.0) * 0.000004047417737721991; + sum += texture2D(uTexture0, vTexCoord + uOffset * -24.0) * 0.000008703315823121481; + sum += texture2D(uTexture0, vTexCoord + uOffset * -23.0) * 0.000018139267838241068; + sum += texture2D(uTexture0, vTexCoord + uOffset * -22.0) * 0.00003664232826522744; + sum += texture2D(uTexture0, vTexCoord + uOffset * -21.0) * 0.0000717421959978491; + sum += texture2D(uTexture0, vTexCoord + uOffset * -20.0) * 0.00013614276559291948; + sum += texture2D(uTexture0, vTexCoord + uOffset * -19.0) * 0.00025040486855393973; + sum += texture2D(uTexture0, vTexCoord + uOffset * -18.0) * 0.00044639494279724747; + sum += texture2D(uTexture0, vTexCoord + uOffset * -17.0) * 0.00077130129517095; + sum += texture2D(uTexture0, vTexCoord + uOffset * -16.0) * 0.0012916865959769006; + sum += texture2D(uTexture0, vTexCoord + uOffset * -15.0) * 0.0020966142949301195; + sum += texture2D(uTexture0, vTexCoord + uOffset * -14.0) * 0.003298437274607801; + sum += texture2D(uTexture0, vTexCoord + uOffset * -13.0) * 0.005029516233086111; + sum += texture2D(uTexture0, vTexCoord + uOffset * -12.0) * 0.007433143141769405; + sum += texture2D(uTexture0, vTexCoord + uOffset * -11.0) * 0.010647485948997013; + sum += texture2D(uTexture0, vTexCoord + uOffset * -10.0) * 0.014782570282805454; + sum += texture2D(uTexture0, vTexCoord + uOffset * -9.0) * 0.019892122581030056; + sum += texture2D(uTexture0, vTexCoord + uOffset * -8.0) * 0.02594421881668063; + sum += texture2D(uTexture0, vTexCoord + uOffset * -7.0) * 0.03279656561871859; + sum += texture2D(uTexture0, vTexCoord + uOffset * -6.0) * 0.040183192177668754; + sum += texture2D(uTexture0, vTexCoord + uOffset * -5.0) * 0.04771872140419803; + sum += texture2D(uTexture0, vTexCoord + uOffset * -4.0) * 0.05492391166591576; + sum += texture2D(uTexture0, vTexCoord + uOffset * -3.0) * 0.06127205113483162; + sum += texture2D(uTexture0, vTexCoord + uOffset * -2.0) * 0.06625088366795348; + sum += texture2D(uTexture0, vTexCoord + uOffset * -1.0) * 0.06943032995966593; + sum += texture2D(uTexture0, vTexCoord + uOffset * 0.0) * 0.07052369856294818; + sum += texture2D(uTexture0, vTexCoord + uOffset * 1.0) * 0.06943032995966593; + sum += texture2D(uTexture0, vTexCoord + uOffset * 2.0) * 0.06625088366795348; + sum += texture2D(uTexture0, vTexCoord + uOffset * 3.0) * 0.06127205113483162; + sum += texture2D(uTexture0, vTexCoord + uOffset * 4.0) * 0.05492391166591576; + sum += texture2D(uTexture0, vTexCoord + uOffset * 5.0) * 0.04771872140419803; + sum += texture2D(uTexture0, vTexCoord + uOffset * 6.0) * 0.040183192177668754; + sum += texture2D(uTexture0, vTexCoord + uOffset * 7.0) * 0.03279656561871859; + sum += texture2D(uTexture0, vTexCoord + uOffset * 8.0) * 0.02594421881668063; + sum += texture2D(uTexture0, vTexCoord + uOffset * 9.0) * 0.019892122581030056; + sum += texture2D(uTexture0, vTexCoord + uOffset * 10.0) * 0.014782570282805454; + sum += texture2D(uTexture0, vTexCoord + uOffset * 11.0) * 0.010647485948997013; + sum += texture2D(uTexture0, vTexCoord + uOffset * 12.0) * 0.007433143141769405; + sum += texture2D(uTexture0, vTexCoord + uOffset * 13.0) * 0.005029516233086111; + sum += texture2D(uTexture0, vTexCoord + uOffset * 14.0) * 0.003298437274607801; + sum += texture2D(uTexture0, vTexCoord + uOffset * 15.0) * 0.0020966142949301195; + sum += texture2D(uTexture0, vTexCoord + uOffset * 16.0) * 0.0012916865959769006; + sum += texture2D(uTexture0, vTexCoord + uOffset * 17.0) * 0.00077130129517095; + sum += texture2D(uTexture0, vTexCoord + uOffset * 18.0) * 0.00044639494279724747; + sum += texture2D(uTexture0, vTexCoord + uOffset * 19.0) * 0.00025040486855393973; + sum += texture2D(uTexture0, vTexCoord + uOffset * 20.0) * 0.00013614276559291948; + sum += texture2D(uTexture0, vTexCoord + uOffset * 21.0) * 0.0000717421959978491; + sum += texture2D(uTexture0, vTexCoord + uOffset * 22.0) * 0.00003664232826522744; + sum += texture2D(uTexture0, vTexCoord + uOffset * 23.0) * 0.000018139267838241068; + sum += texture2D(uTexture0, vTexCoord + uOffset * 24.0) * 0.000008703315823121481; + sum += texture2D(uTexture0, vTexCoord + uOffset * 25.0) * 0.000004047417737721991; + sum += texture2D(uTexture0, vTexCoord + uOffset * 26.0) * 0.0000018243141024985921; + sum += texture2D(uTexture0, vTexCoord + uOffset * 27.0) * 7.969838069860066e-7; + sum += texture2D(uTexture0, vTexCoord + uOffset * 28.0) * 3.37464176550827e-7; + sum += texture2D(uTexture0, vTexCoord + uOffset * 29.0) * 1.3849501900610678e-7; + sum += texture2D(uTexture0, vTexCoord + uOffset * 30.0) * 5.5089512435892845e-8; + sum += texture2D(uTexture0, vTexCoord + uOffset * 31.0) * 2.1238899047869243e-8; + sum += texture2D(uTexture0, vTexCoord + uOffset * 32.0) * 7.936396739629738e-9; gl_FragColor = sum; } diff --git a/modules/juce_sharedtexture b/modules/juce_sharedtexture index 7c652f14..ad3cfff4 160000 --- a/modules/juce_sharedtexture +++ b/modules/juce_sharedtexture @@ -1 +1 @@ -Subproject commit 7c652f141a57e1d46214adb38ad54b64da925ac2 +Subproject commit ad3cfff406675ee680380b8f4b71bb0f9ffa7ea9