From 191b1ea23fed570885b9f4d4eff50923a069db93 Mon Sep 17 00:00:00 2001 From: Michael Fabian Dirks Date: Thu, 6 Jul 2017 05:52:46 +0200 Subject: [PATCH] filter-blur: Move effects to 'data/effects' This should help reusing the same effect instead of having an effect per filter. --- .../bilateral-blur.effect} | 0 .../box.effect => effects/box-blur.effect} | 0 .../gaussian-blur.effect} | 2 +- source/filter-blur.cpp | 21 ++++++++++--------- 4 files changed, 12 insertions(+), 11 deletions(-) rename data/{filter-blur/bilateral.effect => effects/bilateral-blur.effect} (100%) rename data/{filter-blur/box.effect => effects/box-blur.effect} (100%) rename data/{filter-blur/gaussian.effect => effects/gaussian-blur.effect} (96%) diff --git a/data/filter-blur/bilateral.effect b/data/effects/bilateral-blur.effect similarity index 100% rename from data/filter-blur/bilateral.effect rename to data/effects/bilateral-blur.effect diff --git a/data/filter-blur/box.effect b/data/effects/box-blur.effect similarity index 100% rename from data/filter-blur/box.effect rename to data/effects/box-blur.effect diff --git a/data/filter-blur/gaussian.effect b/data/effects/gaussian-blur.effect similarity index 96% rename from data/filter-blur/gaussian.effect rename to data/effects/gaussian-blur.effect index 66cd632..407ff23 100644 --- a/data/filter-blur/gaussian.effect +++ b/data/effects/gaussian-blur.effect @@ -38,7 +38,7 @@ float4 PSGaussian(VertDataOut v_in) : TARGET float4 rgba = float4(0, 0, 0, 0); for (int k = -widthHalf; k <= widthHalf; k++) { float4 smpl = image.Sample(textureSampler, v_in.uv + (texel * k)); - smpl *= Gaussian(k / width, 1.0); + smpl *= Gaussian(k, width / 2.0); rgba += smpl; } return rgba; diff --git a/source/filter-blur.cpp b/source/filter-blur.cpp index 948c5d0..cddce9c 100644 --- a/source/filter-blur.cpp +++ b/source/filter-blur.cpp @@ -53,43 +53,43 @@ Filter::Blur::Blur() { obs_enter_graphics(); { char* loadError = nullptr; - char* file = obs_module_file("filter-blur/box.effect"); + char* file = obs_module_file("effects/box-blur.effect"); g_boxBlurEffect = gs_effect_create_from_file(file, &loadError); bfree(file); if (loadError != nullptr) { - PLOG_ERROR(" Loading effect failed with error(s): %s", loadError); + PLOG_ERROR(" Loading box-blur effect failed with error(s): %s", loadError); bfree(loadError); } else if (!g_boxBlurEffect) { - PLOG_ERROR(" Loading effect failed with unspecified error."); + PLOG_ERROR(" Loading box-blur effect failed with unspecified error."); } } { char* loadError = nullptr; - char* file = obs_module_file("filter-blur/gaussian.effect"); + char* file = obs_module_file("effects/gaussian-blur.effect"); g_gaussianBlurEffect = gs_effect_create_from_file(file, &loadError); bfree(file); if (loadError != nullptr) { - PLOG_ERROR(" Loading effect failed with error(s): %s", loadError); + PLOG_ERROR(" Loading gaussian blur effect failed with error(s): %s", loadError); bfree(loadError); } else if (!g_gaussianBlurEffect) { - PLOG_ERROR(" Loading effect failed with unspecified error."); + PLOG_ERROR(" Loading gaussian blur effect failed with unspecified error."); } } { char* loadError = nullptr; - char* file = obs_module_file("filter-blur/bilateral.effect"); + char* file = obs_module_file("effects/bilateral-blur.effect"); g_bilateralBlurEffect = gs_effect_create_from_file(file, &loadError); bfree(file); if (loadError != nullptr) { - PLOG_ERROR(" Loading effect failed with error(s): %s", loadError); + PLOG_ERROR(" Loading bilateral blur effect failed with error(s): %s", loadError); bfree(loadError); } else if (!g_bilateralBlurEffect) { - PLOG_ERROR(" Loading effect failed with unspecified error."); + PLOG_ERROR(" Loading bilateral blur effect failed with unspecified error."); } } obs_leave_graphics(); - if (g_boxBlurEffect && g_gaussianBlurEffect && g_bilateralBlurEffect) + if (g_boxBlurEffect && g_gaussianBlurEffect && g_bilateralBlurEffect && g_colorConversionEffect) obs_register_source(&sourceInfo); } @@ -157,6 +157,7 @@ bool Filter::Blur::modified_properties(obs_properties_t *pr, obs_property_t *, o break; } + // Bilateral Blur obs_property_set_visible(obs_properties_get(pr, P_FILTER_BLUR_BILATERAL_SMOOTHING), showBilateral); obs_property_set_visible(obs_properties_get(pr, P_FILTER_BLUR_BILATERAL_SHARPNESS),