(API Change) libobs: Use single func for base effects

API removed:
--------------------
gs_effect_t *obs_get_default_effect(void);
gs_effect_t *obs_get_default_rect_effect(void);
gs_effect_t *obs_get_opaque_effect(void);
gs_effect_t *obs_get_solid_effect(void);
gs_effect_t *obs_get_bicubic_effect(void);
gs_effect_t *obs_get_lanczos_effect(void);
gs_effect_t *obs_get_bilinear_lowres_effect(void);

API added:
--------------------
gs_effect_t *obs_get_base_effect(enum obs_base_effect effect);

Summary:
--------------------
Combines multiple near-identical functions into a single function with
an enum parameter.
This commit is contained in:
jp9000
2015-10-16 07:31:52 -07:00
parent f7e4a79517
commit 6ad8df8adb
15 changed files with 46 additions and 108 deletions

View File

@@ -210,38 +210,3 @@ void dc_capture_render(struct dc_capture *capture, gs_effect_t *effect)
if (capture->textures_written[last_tex])
draw_texture(capture, last_tex, effect);
}
gs_effect_t *create_opaque_effect(void)
{
gs_effect_t *opaque_effect;
char *effect_file;
char *error_string = NULL;
effect_file = obs_module_file("opaque.effect");
if (!effect_file) {
blog(LOG_ERROR, "[create_opaque_effect] Could not find "
"opaque effect file");
return false;
}
obs_enter_graphics();
opaque_effect = gs_effect_create_from_file(effect_file, &error_string);
if (!opaque_effect) {
if (error_string)
blog(LOG_ERROR, "[create_opaque_effect] Failed to "
"create opaque effect:\n%s",
error_string);
else
blog(LOG_ERROR, "[create_opaque_effect] Failed to "
"create opaque effect");
}
bfree(effect_file);
bfree(error_string);
obs_leave_graphics();
return opaque_effect;
}

View File

@@ -35,5 +35,3 @@ extern void dc_capture_free(struct dc_capture *capture);
extern void dc_capture_capture(struct dc_capture *capture, HWND window);
extern void dc_capture_render(struct dc_capture *capture, gs_effect_t *effect);
extern gs_effect_t *create_opaque_effect(void);

View File

@@ -195,7 +195,7 @@ static void duplicator_capture_render(void *data, gs_effect_t *effect)
if (!texture)
return;
effect = obs_get_opaque_effect();
effect = obs_get_base_effect(OBS_EFFECT_OPAQUE);
rot = capture->rot;
@@ -229,7 +229,7 @@ static void duplicator_capture_render(void *data, gs_effect_t *effect)
}
if (capture->capture_cursor) {
effect = obs_get_default_effect();
effect = obs_get_base_effect(OBS_EFFECT_DEFAULT);
while (gs_effect_loop(effect, "Draw")) {
draw_cursor(capture);

View File

@@ -1349,8 +1349,8 @@ static void game_capture_render(void *data, gs_effect_t *effect)
if (!gc->texture)
return;
effect = gc->config.allow_transparency ?
obs_get_default_effect() : obs_get_opaque_effect();
effect = obs_get_base_effect(gc->config.allow_transparency ?
OBS_EFFECT_DEFAULT : OBS_EFFECT_OPAQUE);
while (gs_effect_loop(effect, "Draw")) {
obs_source_draw(gc->texture, 0, 0, 0, 0,
@@ -1362,7 +1362,7 @@ static void game_capture_render(void *data, gs_effect_t *effect)
}
if (!gc->config.allow_transparency && gc->config.cursor) {
effect = obs_get_default_effect();
effect = obs_get_base_effect(OBS_EFFECT_DEFAULT);
while (gs_effect_loop(effect, "Draw")) {
game_capture_render_cursor(gc);

View File

@@ -147,7 +147,8 @@ static void monitor_capture_tick(void *data, float seconds)
static void monitor_capture_render(void *data, gs_effect_t *effect)
{
struct monitor_capture *capture = data;
dc_capture_render(&capture->data, obs_get_opaque_effect());
dc_capture_render(&capture->data,
obs_get_base_effect(OBS_EFFECT_OPAQUE));
UNUSED_PARAMETER(effect);
}

View File

@@ -190,7 +190,7 @@ static void wc_tick(void *data, float seconds)
static void wc_render(void *data, gs_effect_t *effect)
{
struct window_capture *wc = data;
dc_capture_render(&wc->capture, obs_get_opaque_effect());
dc_capture_render(&wc->capture, obs_get_base_effect(OBS_EFFECT_OPAQUE));
UNUSED_PARAMETER(effect);
}