渲染到纹理
			 2024-07-02
			  37
			 0
			
			
			
				
			
			
		
			渲染这里使用函数draw_mix_texture实现。这里的渲染使用的是HLSL实现的。
首先通过mix_idx获取需要被渲染到的纹量,然后获取其着色器effect指针和相应的参数。
使用gs_effect_set_texture_srgb置当前纹理为渲染纹理。
static inline void draw_mix_texture(const size_t mix_idx)
{
//获取纹理
    gs_texture_t *tex = obs->video.mixes.array[mix_idx]->render_texture;
//获取特效及参数
    gs_effect_t *effect = obs_get_base_effect(OBS_EFFECT_DEFAULT);
    gs_eparam_t *param = gs_effect_get_param_by_name(effect, "image");
//设置为当前纹理
    gs_effect_set_texture_srgb(param, tex);
//渲染
    gs_enable_framebuffer_srgb(true);
    while (gs_effect_loop(effect, "Draw"))
    {
        gs_draw_sprite(tex, 0, 0, 0);
    }
    gs_enable_framebuffer_srgb(false);
}
	
	
			
			obs_core_video_mix
			




