Imported Upstream version 0.13.2+dsfg1
This commit is contained in:
commit
fb3990e9e5
2036 changed files with 287360 additions and 0 deletions
69
test/test-input/test-filter.c
Normal file
69
test/test-input/test-filter.c
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
#include <obs-module.h>
|
||||
|
||||
struct test_filter {
|
||||
obs_source_t *source;
|
||||
gs_effect_t *whatever;
|
||||
};
|
||||
|
||||
static const char *filter_getname(void)
|
||||
{
|
||||
return "Test";
|
||||
}
|
||||
|
||||
static void filter_destroy(void *data)
|
||||
{
|
||||
struct test_filter *tf = data;
|
||||
|
||||
if (tf) {
|
||||
obs_enter_graphics();
|
||||
|
||||
gs_effect_destroy(tf->whatever);
|
||||
bfree(tf);
|
||||
|
||||
obs_leave_graphics();
|
||||
}
|
||||
}
|
||||
|
||||
static void *filter_create(obs_data_t *settings, obs_source_t *source)
|
||||
{
|
||||
struct test_filter *tf = bzalloc(sizeof(struct test_filter));
|
||||
char *effect_file;
|
||||
|
||||
obs_enter_graphics();
|
||||
|
||||
effect_file = obs_module_file("test.effect");
|
||||
|
||||
tf->source = source;
|
||||
tf->whatever = gs_effect_create_from_file(effect_file, NULL);
|
||||
bfree(effect_file);
|
||||
if (!tf->whatever) {
|
||||
filter_destroy(tf);
|
||||
tf = NULL;
|
||||
}
|
||||
|
||||
obs_leave_graphics();
|
||||
|
||||
UNUSED_PARAMETER(settings);
|
||||
return tf;
|
||||
}
|
||||
|
||||
static void filter_render(void *data, gs_effect_t *effect)
|
||||
{
|
||||
struct test_filter *tf = data;
|
||||
|
||||
obs_source_process_filter_begin(tf->source, GS_RGBA,
|
||||
OBS_ALLOW_DIRECT_RENDERING);
|
||||
obs_source_process_filter_end(tf->source, tf->whatever, 0, 0);
|
||||
|
||||
UNUSED_PARAMETER(effect);
|
||||
}
|
||||
|
||||
struct obs_source_info test_filter = {
|
||||
.id = "test_filter",
|
||||
.type = OBS_SOURCE_TYPE_FILTER,
|
||||
.output_flags = OBS_SOURCE_VIDEO,
|
||||
.get_name = filter_getname,
|
||||
.create = filter_create,
|
||||
.destroy = filter_destroy,
|
||||
.video_render = filter_render
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue