static void gst_gl_filterblur_init_shader (GstGLFilter * filter) { GstGLFilterBlur *blur_filter = GST_GL_FILTERBLUR (filter); //blocking call, wait the opengl thread has compiled the shader gst_gl_display_gen_shader (filter->display, 0, hconv7_fragment_source, &blur_filter->shader0); //blocking call, wait the opengl thread has compiled the shader gst_gl_display_gen_shader (filter->display, 0, vconv7_fragment_source, &blur_filter->shader1); }
static void gst_gl_filtersobel_init_shader (GstGLFilter * filter) { GstGLFilterSobel *filtersobel = GST_GL_FILTERSOBEL (filter); //blocking call, wait the opengl thread has compiled the shader gst_gl_display_gen_shader (filter->display, 0, desaturate_fragment_source, &filtersobel->desat); gst_gl_display_gen_shader (filter->display, 0, sep_sobel_hconv3_fragment_source, &filtersobel->hconv); gst_gl_display_gen_shader (filter->display, 0, sep_sobel_vconv3_fragment_source, &filtersobel->vconv); gst_gl_display_gen_shader (filter->display, 0, sep_sobel_length_fragment_source, &filtersobel->len); }
static void gst_gl_effects_on_init_gl_context (GstGLFilter * filter) { //check that your hardware supports shader //if not the pipeline correctly shut down gst_gl_display_gen_shader (filter->display, 0, 0, NULL); }
static gboolean gst_gl_filterblur_init_shader (GstGLFilter * filter) { GstGLFilterBlur *blur_filter = GST_GL_FILTERBLUR (filter); //blocking call, wait the opengl thread has compiled the shader if (!gst_gl_display_gen_shader (filter->display, 0, hconv7_fragment_source, &blur_filter->shader0)) return FALSE; //blocking call, wait the opengl thread has compiled the shader if (!gst_gl_display_gen_shader (filter->display, 0, vconv7_fragment_source, &blur_filter->shader1)) return FALSE; return TRUE; }
static void gst_gl_filter_cube_init_shader (GstGLFilter * filter) { GstGLFilterCube *cube_filter = GST_GL_FILTER_CUBE (filter); //blocking call, wait the opengl thread has compiled the shader gst_gl_display_gen_shader (filter->display, cube_v_src, cube_f_src, &cube_filter->shader); }
static gboolean gst_gl_filter_glass_init_shader (GstGLFilter * filter) { GstGLFilterGlass *glass_filter = GST_GL_FILTER_GLASS (filter); //blocking call, wait the opengl thread has compiled the shader return gst_gl_display_gen_shader (filter->display, 0, glass_fragment_source, &glass_filter->shader); }
static gboolean gst_gl_bumper_init_shader (GstGLFilter * filter) { GstGLBumper *bumper = GST_GL_BUMPER (filter); //blocking call, wait the opengl thread has compiled the shader return gst_gl_display_gen_shader (filter->display, bumper_v_src, bumper_f_src, &bumper->shader); }
static gboolean gst_gl_deinterlace_init_shader (GstGLFilter * filter) { GstGLDeinterlace *deinterlace_filter = GST_GL_DEINTERLACE (filter); //blocking call, wait the opengl thread has compiled the shader return gst_gl_display_gen_shader (filter->display, 0, greedyh_fragment_source, &deinterlace_filter->shader); }
static gboolean gst_gl_mosaic_init_shader (GstGLMixer * mixer, GstCaps * outcaps) { GstGLMosaic *mosaic = GST_GL_MOSAIC (mixer); //blocking call, wait the opengl thread has compiled the shader gst_gl_display_gen_shader (mixer->display, mosaic_v_src, mosaic_f_src, &mosaic->shader); return TRUE; }