Evas_GL_Program_Source *vert,
Evas_GL_Program_Source *frag,
const char *name);
+void evas_gl_common_shader_program_shutdown(Evas_GL_Program *p);
void evas_gl_common_rect_draw(Evas_GL_Context *gc, int x, int y, int w, int h);
GLERR(__FUNCTION__, __FILE__, __LINE__, "");
glEnableVertexAttribArray(SHAD_COLOR);
GLERR(__FUNCTION__, __FILE__, __LINE__, "");
-
+
evas_gl_common_shader_program_init(&(shared->shader.rect),
&(shader_rect_vert_src),
&(shader_rect_frag_src),
if (gc->shared->references == 0)
{
+ evas_gl_common_shader_program_shutdown(&(gc->shared->shader.rect));
+ evas_gl_common_shader_program_shutdown(&(gc->shared->shader.font));
+ evas_gl_common_shader_program_shutdown(&(gc->shared->shader.img));
+ evas_gl_common_shader_program_shutdown(&(gc->shared->shader.img_nomul));
+ evas_gl_common_shader_program_shutdown(&(gc->shared->shader.img_bgra));
+ evas_gl_common_shader_program_shutdown(&(gc->shared->shader.img_bgra_nomul));
+ evas_gl_common_shader_program_shutdown(&(gc->shared->shader.yuv));
+ evas_gl_common_shader_program_shutdown(&(gc->shared->shader.yuv_nomul));
+ evas_gl_common_shader_program_shutdown(&(gc->shared->shader.tex));
+ evas_gl_common_shader_program_shutdown(&(gc->shared->shader.tex_nomul));
+
while (gc->shared->images)
{
evas_gl_common_image_free(gc->shared->images->data);
eglDestroySurface(gw->egl_disp, gw->egl_surface[0]);
if (win_count == 0)
{
- if (context) eglDestroyContext(gw->disp, context);
- eglTerminate(gw->disp);
+ if (context) eglDestroyContext(gw->egl_disp, context);
+ eglMakeCurrent(gw->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
+ eglTerminate(gw->egl_disp);
context = EGL_NO_CONTEXT;
}
#else