libobs: Add 'solid' effect for basic primitives

This commit is contained in:
jp9000
2014-06-14 23:55:10 -07:00
parent 8ab1bc8e7b
commit 2a7f202e7e
3 changed files with 71 additions and 0 deletions

View File

@@ -218,6 +218,11 @@ static bool obs_init_graphics(struct obs_video_info *ovi)
NULL);
bfree(filename);
filename = find_libobs_data_file("solid.effect");
video->solid_effect = gs_create_effect_from_file(filename,
NULL);
bfree(filename);
filename = find_libobs_data_file("format_conversion.effect");
video->conversion_effect = gs_create_effect_from_file(filename,
NULL);
@@ -225,6 +230,8 @@ static bool obs_init_graphics(struct obs_video_info *ovi)
if (!video->default_effect)
success = false;
if (!video->solid_effect)
success = false;
if (!video->conversion_effect)
success = false;
}
@@ -342,6 +349,7 @@ static void obs_free_graphics(void)
gs_entercontext(video->graphics);
effect_destroy(video->default_effect);
effect_destroy(video->solid_effect);
effect_destroy(video->conversion_effect);
video->default_effect = NULL;
@@ -964,6 +972,12 @@ effect_t obs_get_default_effect(void)
return obs->video.default_effect;
}
effect_t obs_get_solid_effect(void)
{
if (!obs) return NULL;
return obs->video.solid_effect;
}
signal_handler_t obs_signalhandler(void)
{
if (!obs) return NULL;

View File

@@ -317,6 +317,9 @@ EXPORT char *obs_find_plugin_file(const char *file);
/** Returns the default effect for generic RGB/YUV drawing */
EXPORT effect_t obs_get_default_effect(void);
/** Returns the solid effect for drawing solid colors */
EXPORT effect_t obs_get_solid_effect(void);
/** Returns the primary obs signal handler */
EXPORT signal_handler_t obs_signalhandler(void);