示例#1
0
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);
}
示例#2
0
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);
}
示例#3
0
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);
}
示例#4
0
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;
}
示例#5
0
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);
}
示例#6
0
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);
}
示例#7
0
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);
}
示例#8
0
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);
}
示例#9
0
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;
}