diff options
Diffstat (limited to 'lib/wx/c_src/gen')
-rw-r--r-- | lib/wx/c_src/gen/gl_fdefs.h | 7 | ||||
-rw-r--r-- | lib/wx/c_src/gen/gl_finit.h | 6 | ||||
-rw-r--r-- | lib/wx/c_src/gen/gl_funcs.cpp | 14 |
3 files changed, 20 insertions, 7 deletions
diff --git a/lib/wx/c_src/gen/gl_fdefs.h b/lib/wx/c_src/gen/gl_fdefs.h index c0fc338aa8..a45896d30d 100644 --- a/lib/wx/c_src/gen/gl_fdefs.h +++ b/lib/wx/c_src/gen/gl_fdefs.h @@ -24,6 +24,13 @@ # define WXE_EXTERN extern #endif +typedef struct { + const char * name; + const char * alt; + void * func; +} gl_fns_t; + +#define GLE_GL_FUNC_START 5037 typedef void (APIENTRY * WXEGLACCUM)(GLenum,GLfloat); WXE_EXTERN WXEGLACCUM weglAccum; typedef void (APIENTRY * WXEGLALPHAFUNC)(GLenum,GLclampf); diff --git a/lib/wx/c_src/gen/gl_finit.h b/lib/wx/c_src/gen/gl_finit.h index 3d707f4c18..583e36faf7 100644 --- a/lib/wx/c_src/gen/gl_finit.h +++ b/lib/wx/c_src/gen/gl_finit.h @@ -18,11 +18,7 @@ */ /***** This file is generated do not edit ****/ -static struct { - const char * name; - const char * alt; - void * func; -} gl_fns[] = +gl_fns_t gl_fns[] = { {"glAccum", NULL, &weglAccum}, {"glAlphaFunc", NULL, &weglAlphaFunc}, diff --git a/lib/wx/c_src/gen/gl_funcs.cpp b/lib/wx/c_src/gen/gl_funcs.cpp index ea82635846..30542a0f02 100644 --- a/lib/wx/c_src/gen/gl_funcs.cpp +++ b/lib/wx/c_src/gen/gl_funcs.cpp @@ -23,9 +23,10 @@ #include "../egl_impl.h" #include "gl_fdefs.h" -int gl_error_op; +extern gl_fns_t gl_fns[]; + void egl_dispatch(int op, char *bp, ErlDrvPort port, ErlDrvTermData caller, char *bins[], int bins_sz[]){ - gl_error_op = op; + try { switch(op) { case 5000: @@ -6955,5 +6956,14 @@ case 5863: { // glStencilClearTagEXT GLuint *stencilClearTag = (GLuint *) bp; bp += 4; weglStencilClearTagEXT(*stencilTagBits,*stencilClearTag); }; break; +}} catch (char *err_msg) { +int AP = 0; ErlDrvTermData rt[12]; +rt[AP++] = ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_egl_error_"); +rt[AP++] = ERL_DRV_INT; rt[AP++] = (int) op; +rt[AP++] = ERL_DRV_ATOM; rt[AP++] = driver_mk_atom((char *) err_msg); +// rt[AP++] = ERL_DRV_ATOM; rt[AP++] = driver_mk_atom((char *) gl_fns[op-GLE_GL_FUNC_START].name); +// rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; +rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 3; +driver_send_term(port,caller,rt,AP); }} /* The End */ |