mirror of
https://github.com/Xaymar/obs-StreamFX
synced 2024-11-10 22:05:06 +00:00
filter-blur: Use self-registration feature
This commit is contained in:
parent
9e813d98f1
commit
61f20a83ad
3 changed files with 16 additions and 5 deletions
|
@ -19,6 +19,8 @@
|
||||||
|
|
||||||
#include "filter-blur.h"
|
#include "filter-blur.h"
|
||||||
#include "strings.h"
|
#include "strings.h"
|
||||||
|
#include <math.h>
|
||||||
|
#include <map>
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#pragma warning (push)
|
#pragma warning (push)
|
||||||
|
@ -29,14 +31,24 @@ extern "C" {
|
||||||
#pragma warning (pop)
|
#pragma warning (pop)
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <math.h>
|
// Initialize & Finalizer
|
||||||
#include <map>
|
static Filter::Blur* handler;
|
||||||
|
INITIALIZER(HandlerInit) {
|
||||||
|
initializerFunctions.push_back([] {
|
||||||
|
handler = new Filter::Blur();
|
||||||
|
});
|
||||||
|
finalizerFunctions.push_back([] {
|
||||||
|
delete handler;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
enum ColorFormat : uint64_t {
|
enum ColorFormat : uint64_t {
|
||||||
RGB,
|
RGB,
|
||||||
YUV, // 701
|
YUV, // 701
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct g_blurEffect {
|
struct g_blurEffect {
|
||||||
gs_effect_t* effect;
|
gs_effect_t* effect;
|
||||||
std::vector<gs_texture_t*> kernels;
|
std::vector<gs_texture_t*> kernels;
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
#include "gs-helper.h"
|
#include "gs-helper.h"
|
||||||
|
#include "gs-effect.h"
|
||||||
|
|
||||||
#define S_FILTER_BLUR "Filter.Blur"
|
#define S_FILTER_BLUR "Filter.Blur"
|
||||||
#define S_FILTER_BLUR_TYPE "Filter.Blur.Type"
|
#define S_FILTER_BLUR_TYPE "Filter.Blur.Type"
|
||||||
|
@ -92,6 +93,7 @@ namespace Filter {
|
||||||
gs_technique_t *m_technique;
|
gs_technique_t *m_technique;
|
||||||
gs_texrender_t *m_primaryRT, *m_secondaryRT;
|
gs_texrender_t *m_primaryRT, *m_secondaryRT;
|
||||||
gs_texrender_t *m_rtHorizontal, *m_rtVertical;
|
gs_texrender_t *m_rtHorizontal, *m_rtVertical;
|
||||||
|
std::shared_ptr<GS::Effect> m_effectCache;
|
||||||
|
|
||||||
// Blur
|
// Blur
|
||||||
Type m_type;
|
Type m_type;
|
||||||
|
|
|
@ -27,7 +27,6 @@ OBS_DECLARE_MODULE();
|
||||||
OBS_MODULE_AUTHOR("Michael Fabian Dirks");
|
OBS_MODULE_AUTHOR("Michael Fabian Dirks");
|
||||||
OBS_MODULE_USE_DEFAULT_LOCALE("obs-stream-effects", "en-US");
|
OBS_MODULE_USE_DEFAULT_LOCALE("obs-stream-effects", "en-US");
|
||||||
|
|
||||||
Filter::Blur *filterBlur;
|
|
||||||
Filter::Displacement *filterDisplacement;
|
Filter::Displacement *filterDisplacement;
|
||||||
Filter::Shape *filterShape;
|
Filter::Shape *filterShape;
|
||||||
Filter::Transform *filterTransform;
|
Filter::Transform *filterTransform;
|
||||||
|
@ -39,7 +38,6 @@ MODULE_EXPORT bool obs_module_load(void) {
|
||||||
filterDisplacement = new Filter::Displacement();
|
filterDisplacement = new Filter::Displacement();
|
||||||
filterShape = new Filter::Shape();
|
filterShape = new Filter::Shape();
|
||||||
filterTransform = new Filter::Transform();
|
filterTransform = new Filter::Transform();
|
||||||
filterBlur = new Filter::Blur();
|
|
||||||
for (auto func : initializerFunctions) {
|
for (auto func : initializerFunctions) {
|
||||||
func();
|
func();
|
||||||
}
|
}
|
||||||
|
@ -53,7 +51,6 @@ MODULE_EXPORT void obs_module_unload(void) {
|
||||||
delete filterTransform;
|
delete filterTransform;
|
||||||
delete filterShape;
|
delete filterShape;
|
||||||
delete filterDisplacement;
|
delete filterDisplacement;
|
||||||
delete filterBlur;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MODULE_EXPORT const char* obs_module_name() {
|
MODULE_EXPORT const char* obs_module_name() {
|
||||||
|
|
Loading…
Reference in a new issue