mac-capture: Use obs_get_default_rect_effect

This commit is contained in:
Palana
2014-10-03 23:48:55 +02:00
parent abb95781dd
commit 802ae79601
2 changed files with 6 additions and 45 deletions

View File

@@ -1,35 +0,0 @@
uniform float4x4 ViewProj;
uniform texture_rect diffuse;
sampler_state texSampler {
AddressU = Clamp;
AddressV = Clamp;
Filter = Linear;
};
struct VertexInOut {
float4 pos : POSITION;
float2 uv : TEXCOORD0;
};
VertexInOut VShader(VertexInOut vert_in)
{
VertexInOut vert_out;
vert_out.pos = mul(float4(vert_in.pos.xyz, 1.0), ViewProj);
vert_out.uv = vert_in.uv;
return vert_out;
}
float4 PShader(VertexInOut fragment_in) : TARGET
{
return diffuse.Sample(texSampler, fragment_in.uv);
}
technique Default
{
pass
{
vertex_shader = VShader(vert_in);
pixel_shader = PShader(fragment_in);
}
}

View File

@@ -104,8 +104,6 @@ static void display_capture_destroy(void *data)
if (dc->sampler)
gs_samplerstate_destroy(dc->sampler);
if (dc->effect)
gs_effect_destroy(dc->effect);
if (dc->vertbuf)
gs_vertexbuffer_destroy(dc->vertbuf);
@@ -261,6 +259,10 @@ static void *display_capture_create(obs_data_t *settings,
dc->source = source;
dc->effect = obs_get_default_rect_effect();
if (!dc->effect)
goto fail;
obs_enter_graphics();
struct gs_sampler_info info = {
@@ -274,12 +276,6 @@ static void *display_capture_create(obs_data_t *settings,
if (!dc->sampler)
goto fail;
char *effect_file = obs_module_file("draw_rect.effect");
dc->effect = gs_effect_create_from_file(effect_file, NULL);
bfree(effect_file);
if (!dc->effect)
goto fail;
if (!init_vertbuf(dc))
goto fail;
@@ -408,8 +404,8 @@ static void display_capture_video_render(void *data, gs_effect_t *effect)
gs_load_vertexbuffer(dc->vertbuf);
gs_load_indexbuffer(NULL);
gs_load_samplerstate(dc->sampler, 0);
gs_technique_t *tech = gs_effect_get_technique(dc->effect, "Default");
gs_effect_set_texture(gs_effect_get_param_by_idx(dc->effect, 1),
gs_technique_t *tech = gs_effect_get_technique(dc->effect, "Draw");
gs_effect_set_texture(gs_effect_get_param_by_name(dc->effect, "image"),
dc->tex);
gs_technique_begin(tech);
gs_technique_begin_pass(tech, 0);