diff options
Diffstat (limited to 'gpu.c')
| -rw-r--r-- | gpu.c | 12 | 
1 files changed, 7 insertions, 5 deletions
| @@ -37,11 +37,11 @@  #include "toolbox/utils.h"  #define _(...) __VA_ARGS__ -#define LOOKUP_FUNCTION(a, b)                 \ +#define LOOKUP_FUNCTION(a, b, c)              \    gpu_context->b = (a)eglGetProcAddress(#b);  \    if (!gpu_context->b) {                      \      LOG("Failed to look up " #b " function"); \ -    goto rollback_display;                    \ +    goto c;                                   \    }  // TODO(mburakov): It should be theoretically possible to do everything in a @@ -343,8 +343,10 @@ struct GpuContext* GpuContextCreate(enum YuvColorspace colorspace,        !HasExtension(egl_ext, "EGL_EXT_image_dma_buf_import") ||        !HasExtension(egl_ext, "EGL_EXT_image_dma_buf_import_modifiers"))      goto rollback_display; -  LOOKUP_FUNCTION(PFNEGLQUERYDMABUFFORMATSEXTPROC, eglQueryDmaBufFormatsEXT) -  LOOKUP_FUNCTION(PFNEGLQUERYDMABUFMODIFIERSEXTPROC, eglQueryDmaBufModifiersEXT) +  LOOKUP_FUNCTION(PFNEGLQUERYDMABUFFORMATSEXTPROC, eglQueryDmaBufFormatsEXT, +                  rollback_display) +  LOOKUP_FUNCTION(PFNEGLQUERYDMABUFMODIFIERSEXTPROC, eglQueryDmaBufModifiersEXT, +                  rollback_display)    if (!eglBindAPI(EGL_OPENGL_ES_API)) {      LOG("Failed to bind egl api (%s)", EglErrorString(eglGetError())); @@ -379,7 +381,7 @@ struct GpuContext* GpuContextCreate(enum YuvColorspace colorspace,    LOG("GL_EXTENSIONS: %s", gl_ext);    if (!HasExtension(gl_ext, "GL_OES_EGL_image")) goto rollback_context;    LOOKUP_FUNCTION(PFNGLEGLIMAGETARGETTEXTURE2DOESPROC, -                  glEGLImageTargetTexture2DOES) +                  glEGLImageTargetTexture2DOES, rollback_context)    gpu_context->program_luma =        CreateGlProgram(_binary_vertex_glsl_start, _binary_vertex_glsl_end, | 
