From 29d60180cce772a9a2397cd5797be9b941f2513e Mon Sep 17 00:00:00 2001 From: Michael Fabian 'Xaymar' Dirks Date: Sun, 28 Mar 2021 13:46:06 +0200 Subject: [PATCH] filter/color-grade: Add direct rendering support (#501) --- source/filters/filter-color-grade.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/source/filters/filter-color-grade.cpp b/source/filters/filter-color-grade.cpp index 6dd7961..4d14867 100644 --- a/source/filters/filter-color-grade.cpp +++ b/source/filters/filter-color-grade.cpp @@ -321,7 +321,7 @@ void color_grade_instance::video_tick(float) _cache_fresh = false; } -void color_grade_instance::video_render(gs_effect_t*) +void color_grade_instance::video_render(gs_effect_t* shader) { // Grab initial values. obs_source_t* parent = obs_filter_get_parent(_self); @@ -329,6 +329,7 @@ void color_grade_instance::video_render(gs_effect_t*) uint32_t width = obs_source_get_base_width(target); uint32_t height = obs_source_get_base_height(target); vec4 blank = vec4{0, 0, 0, 0}; + shader = shader ? shader : obs_get_base_effect(OBS_EFFECT_DEFAULT); // Skip filter if anything is wrong. if (!parent || !target || !width || !height) { @@ -525,8 +526,6 @@ void color_grade_instance::video_render(gs_effect_t*) #ifdef ENABLE_PROFILING gs::debug_marker gdm{gs::debug_color_cache_render, "Draw Cache"}; #endif - auto shader = obs_get_base_effect(OBS_EFFECT_DEFAULT); - // Revert GPU status to what OBS Studio expects. gs_enable_depth_test(false); gs_enable_color(true, true, true, true); @@ -545,7 +544,7 @@ color_grade_factory::color_grade_factory() { _info.id = PREFIX "filter-color-grade"; _info.type = OBS_SOURCE_TYPE_FILTER; - _info.output_flags = OBS_SOURCE_VIDEO | OBS_SOURCE_CUSTOM_DRAW; + _info.output_flags = OBS_SOURCE_VIDEO; set_resolution_enabled(false); finish_setup();