From a9f305c51ebccefc3ce6725b4f90700a7d250287 Mon Sep 17 00:00:00 2001 From: Dan Gudmundsson Date: Wed, 6 Oct 2010 14:05:36 +0200 Subject: Split opengl functionality into separate dynamic library The idea is to build a separate opengl library which can be reused by other erlang applications. --- lib/wx/Makefile | 4 +- lib/wx/api_gen/gl_gen_c.erl | 28 +- lib/wx/api_gen/gl_gen_erl.erl | 61 +- lib/wx/api_gen/wx_gen_cpp.erl | 12 +- lib/wx/api_gen/wx_gen_erl.erl | 17 + lib/wx/api_gen/wxapi.conf | 49 +- lib/wx/c_src/Makefile.in | 68 +- lib/wx/c_src/egl_impl.cpp | 316 +++++++++ lib/wx/c_src/egl_impl.h | 146 ++++ lib/wx/c_src/gen/gl_funcs.cpp | 445 ++++++------ lib/wx/c_src/gen/wxe_funcs.cpp | 10 + lib/wx/c_src/wxe_driver.h | 5 +- lib/wx/c_src/wxe_gl.cpp | 335 ++------- lib/wx/c_src/wxe_gl.h | 119 +--- lib/wx/c_src/wxe_impl.cpp | 2 - lib/wx/src/gen/gl.erl | 1510 ++++++++++++++++++++-------------------- lib/wx/src/gen/glu.erl | 85 ++- lib/wx/src/gen/wxGLCanvas.erl | 2 + lib/wx/src/wx.erl | 10 +- lib/wx/src/wxe.hrl | 8 +- lib/wx/src/wxe_master.erl | 21 +- 21 files changed, 1749 insertions(+), 1504 deletions(-) create mode 100644 lib/wx/c_src/egl_impl.cpp create mode 100644 lib/wx/c_src/egl_impl.h diff --git a/lib/wx/Makefile b/lib/wx/Makefile index 83f545b662..0bc89e08ad 100644 --- a/lib/wx/Makefile +++ b/lib/wx/Makefile @@ -1,7 +1,7 @@ # # %CopyrightBegin% # -# Copyright Ericsson AB 2008-2009. All Rights Reserved. +# Copyright Ericsson AB 2008-2010. All Rights Reserved. # # The contents of this file are subject to the Erlang Public License, # Version 1.1, (the "License"); you may not use this file except in @@ -23,7 +23,7 @@ SUBDIRS = src ifeq ($(CAN_BUILD_DRIVER), true) SUBDIRS += c_src endif -SUBDIRS += examples demos doc/src +SUBDIRS += examples doc/src CLEANDIRS = $(SUBDIRS) api_gen ifeq ($(INSIDE_ERLSRC),true) diff --git a/lib/wx/api_gen/gl_gen_c.erl b/lib/wx/api_gen/gl_gen_c.erl index 3293050ab9..99dd2e58ea 100644 --- a/lib/wx/api_gen/gl_gen_c.erl +++ b/lib/wx/api_gen/gl_gen_c.erl @@ -47,30 +47,16 @@ gen(GLFuncs, GLUFuncs) -> w("/***** This file is generated do not edit ****/~n~n", []), w("#include ~n", []), w("#include ~n", []), - w("#include \"../wxe_impl.h\"~n", []), - w("#include \"../wxe_gl.h\"~n", []), + w("#include \"../egl_impl.h\"~n", []), w("#include \"gl_fdefs.h\"~n", []), w("~nint gl_error_op;~n", []), - w("void gl_dispatch(int op, char *bp,ErlDrvTermData caller,WXEBinRef *bins[]){~n", + w("void egl_dispatch(int op, char *bp, ErlDrvPort port, ErlDrvTermData caller, char *bins[]){~n", []), w(" gl_error_op = op;~n", []), - w(" if(caller != gl_active) {~n", []), - w(" wxGLCanvas * current = glc[caller];~n", []), - w(" if(current) { gl_active = caller; current->SetCurrent();}~n", []), - w(" else {~n " - " ErlDrvTermData rt[] = // Error msg~n" - " {ERL_DRV_ATOM, driver_mk_atom((char *) \"_wxe_error_\"),~n" - " ERL_DRV_INT, op,~n" - " ERL_DRV_ATOM, driver_mk_atom((char *) \"no_gl_context\"),~n" - " ERL_DRV_TUPLE,3};~n" - " driver_send_term(WXE_DRV_PORT,caller,rt,8);~n" - " return ;~n }~n };~n~n", []), w(" switch(op)~n{~n",[]), - w(" case 5000:~n wxe_tess_impl(bp, caller);~n break;~n", []), - w(" case WXE_BIN_INCR:~n driver_binary_inc_refc(bins[0]->bin);~n break;~n",[]), - w(" case WXE_BIN_DECR:~n driver_binary_dec_refc(bins[0]->bin);~n break;~n",[]), + w(" case 5000:~n erl_tess_impl(bp, port, caller);~n break;~n", []), [funcs(F) || F <- GLUFuncs], [funcs(F) || F <- GLFuncs], @@ -171,10 +157,10 @@ decode_arg(P=#arg{where=c},A) -> {P,A}; decode_arg(P=#arg{in=false},A) -> {P,A}; decode_arg(P=#arg{name=Name,type=#type{name=Type,base=binary}},A0) -> - w(" ~s *~s = (~s *) bins[~p]->base;~n", [Type,Name,Type,next_id(bin_count)]), + w(" ~s *~s = (~s *) bins[~p];~n", [Type,Name,Type,next_id(bin_count)]), {P, A0}; decode_arg(P=#arg{name=Name,type=#type{name=Type,base=memory}},A0) -> - w(" ~s *~s = (~s *) bins[~p]->base;~n", [Type,Name,Type,next_id(bin_count)]), + w(" ~s *~s = (~s *) bins[~p];~n", [Type,Name,Type,next_id(bin_count)]), {P, A0}; decode_arg(P=#arg{name=Name,type=#type{name=T,base=string,single=list}},A0) -> A = align(4,A0), @@ -322,7 +308,7 @@ build_return_vals(Type,As) -> w(" rt[AP++]=ERL_DRV_ATOM;" " rt[AP++]=driver_mk_atom((char *) \"ok\");~n",[]), w(" rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2;~n",[]), - w(" driver_send_term(WXE_DRV_PORT,caller,rt,AP);~n",[]), + w(" driver_send_term(port,caller,rt,AP);~n",[]), ok end; {Val,Vars,Cnt} -> @@ -348,7 +334,7 @@ build_return_vals(Type,As) -> w(" rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2;~n",[]), w(" if (AP != ~s ) fprintf(stderr, \"%d: ERROR AP mismatch %d %d\\r\\n\",__LINE__,AP,~s);~n", [CSize,CSize]), - w(" driver_send_term(WXE_DRV_PORT,caller,rt,AP);~n",[]), + w(" driver_send_term(port,caller,rt,AP);~n",[]), case Vars of none -> ignore; _ -> diff --git a/lib/wx/api_gen/gl_gen_erl.erl b/lib/wx/api_gen/gl_gen_erl.erl index ce35484561..36a6ea2373 100644 --- a/lib/wx/api_gen/gl_gen_erl.erl +++ b/lib/wx/api_gen/gl_gen_erl.erl @@ -49,7 +49,7 @@ glu_defines(Defs) -> w("~n%% GLU DEFINITIONS~n~n", []), w("%% This file is generated DO NOT EDIT~n~n", []), [gen_define(Def) || Def=#def{} <- Defs], - close(), + close(), ok. gen_define(#def{name=N, val=Val, type=int}) -> @@ -90,22 +90,51 @@ gl_api(Fs) -> w("%% See www.opengl.org~n",[]), w("%%~n", []), w("%% Booleans are represented by integers 0 and 1.~n~n", []), - w("%% @type wx_mem(). see wx.erl on memory allocation functions~n", []), + w("%% @type mem(). memory block~n", []), w("%% @type enum(). An integer defined in gl.hrl~n", []), w("%% @type offset(). An integer which is an offset in an array~n", []), w("%% @type clamp(). A float clamped between 0.0 - 1.0~n", []), w("-module(gl).~n~n",[]), w("-compile(inline).~n", []), - %% w("-compile(export_all).~n~n", []), - %% w("-compile(binary_comprehension).~n~n", []), - w("-include(\"wxe.hrl\").~n", []), +%% w("-include(\"wxe.hrl\").~n", []), [w("-define(~s,~s).~n", [GL,Erl]) || {GL,Erl} <- types()], Exp = fun(F) -> gen_export(F) end, ExportList = lists:map(Exp,Fs), w("~n-export([~s]).~n~n", [args(fun(EF) -> EF end, ",", ExportList, 60)]), - + w("-export([call/2, cast/2, send_bin/1]).~n",[]), + w("%% @hidden~n", []), + w("call(Op, Args) ->~n", []), + w(" Port = get(opengl_port), ~n", []), + w(" _ = erlang:port_control(Port,Op,Args),~n", []), + w(" rec().~n", []), + w(" ~n", []), + w("%% @hidden~n", []), + w("cast(Op, Args) ->~n", []), + w(" Port = get(opengl_port), ~n", []), + w(" _ = erlang:port_control(Port,Op,Args),~n", []), + w(" ok.~n", []), + w(" ~n", []), + w("%% @hidden~n", []), + w("rec() ->~n", []), + w(" receive ~n", []), + w(" {'_egl_result_', Res} -> Res;~n", []), + w(" {'_egl_error_', Res} -> error({error,Res})~n", []), + w(" end.~n", []), + w("~n", []), + w("%% @hidden~n", []), + w("send_bin(Bin) when is_binary(Bin) ->~n", []), + w(" Port = get(opengl_port), ~n", []), + w(" erlang:port_command(Port,Bin);~n", []), + w("send_bin(Tuple) when is_tuple(Tuple) ->~n", []), + w(" Port = get(opengl_port), ~n", []), + w(" case element(2, Tuple) of~n", []), + w(" Bin when is_binary(Bin) ->~n", []), + w(" erlang:port_command(Port,Bin)~n", []), + w(" end.~n", []), + w("~n", []), + w("~n%% API~n~n", []), [gen_funcs(F) || F <- Fs], close(), @@ -120,20 +149,20 @@ glu_api(Fs) -> w("%% See www.opengl.org~n",[]), w("%%~n", []), w("%% Booleans are represented by integers 0 and 1.~n~n", []), - w("%% @type wx_mem(). see wx.erl on memory allocation functions~n", []), + w("%% @type mem(). memory block~n", []), w("%% @type enum(). An integer defined in gl.hrl~n", []), w("%% @type offset(). An integer which is an offset in an array~n", []), w("%% @type clamp(). A float clamped between 0.0 - 1.0~n~n", []), w("-module(glu).~n",[]), w("-compile(inline).~n", []), - w("-include(\"wxe.hrl\").~n", []), + %%w("-include(\"wxe.hrl\").~n", []), [w("-define(~s,~s).~n", [GL,Erl]) || {GL,Erl} <- types()], Exp = fun(F) -> gen_export(F) end, ExportList = ["tesselate/2" | lists:map(Exp,Fs)], w("~n-export([~s]).~n~n", [args(fun(EF) -> EF end, ",", ExportList, 60)]), - + w("-import(gl, [call/2,cast/2,send_bin/1]).", []), w("~n%% API~n~n", []), w("%% @spec (Vec3, [Vec3]) -> {Triangles, VertexPos}~n",[]), @@ -148,13 +177,13 @@ glu_api(Fs) -> "%% may contain newly created vertices in the end.~n", []), w("tesselate({Nx,Ny,Nz}, Vs) ->~n",[]), - w(" wxe_util:call(5000, <<(length(Vs)):32/native,0:32,~n" + w(" call(5000, <<(length(Vs)):32/native,0:32,~n" " Nx:?GLdouble,Ny:?GLdouble,Nz:?GLdouble,~n" " (<< <>~n" " || {Vx,Vy,Vz} <- Vs>>)/binary >>).~n~n", []), [gen_funcs(F) || F <- Fs], - close(), + close(), ok. gen_funcs([F]) when is_list(F) -> @@ -229,9 +258,9 @@ gen_func(_F=#func{name=Name,type=T,params=As,id=MId}) -> {StrArgs,_} = marshal_args(PreAs), case have_return_vals(T,As) of true -> - w(" wxe_util:call(~p, <<~s>>)", [MId, StrArgs]); + w(" call(~p, <<~s>>)", [MId, StrArgs]); false -> - w(" wxe_util:cast(~p, <<~s>>)", [MId, StrArgs]) + w(" cast(~p, <<~s>>)", [MId, StrArgs]) end. func_arg(#arg{in=In,where=W,name=Name,type=Type}) @@ -302,7 +331,7 @@ doc_arg_type3(#type{base=guard_int}) -> "offset()|binary()"; doc_arg_type3(#type{base=string}) -> "string()"; doc_arg_type3(#type{base=bool}) -> "0|1"; doc_arg_type3(#type{base=binary}) -> "binary()"; -doc_arg_type3(#type{base=memory}) -> "wx:wx_mem()". +doc_arg_type3(#type{base=memory}) -> "mem()". guard_test(As) -> Str = args(fun(#arg{name=N,type=#type{base=guard_int}}) -> @@ -316,10 +345,10 @@ guard_test(As) -> end. pre_marshal([#arg{name=N,in=true,type=#type{base=binary}}|R]) -> - w(" wxe_util:send_bin(~s),~n", [erl_arg_name(N)]), + w(" send_bin(~s),~n", [erl_arg_name(N)]), pre_marshal(R); pre_marshal([#arg{name=N,type=#type{base=memory}}|R]) -> - w(" wxe_util:send_bin(~s#wx_mem.bin),~n", [erl_arg_name(N)]), + w(" send_bin(~s),~n", [erl_arg_name(N)]), pre_marshal(R); pre_marshal([A=#arg{name=N,type=#type{base=string,single=list}}|R]) -> %% With null terminations diff --git a/lib/wx/api_gen/wx_gen_cpp.erl b/lib/wx/api_gen/wx_gen_cpp.erl index 846cec46c4..4bcdbe6a68 100644 --- a/lib/wx/api_gen/wx_gen_cpp.erl +++ b/lib/wx/api_gen/wx_gen_cpp.erl @@ -152,6 +152,7 @@ gen_funcs(Defs) -> w("#include \"../wxe_impl.h\"~n"), w("#include \"../wxe_events.h\"~n"), w("#include \"../wxe_return.h\"~n"), + w("#include \"../wxe_gl.h\"~n"), w("#include \"wxe_macros.h\"~n"), w("#include \"wxe_derived_dest.h\"~n~n"), @@ -176,6 +177,9 @@ gen_funcs(Defs) -> " rt.addAtom(\"ok\");~n" " break;~n" " }~n"), + w(" case WXE_BIN_INCR:~n driver_binary_inc_refc(Ecmd.bin[0]->bin);~n break;~n",[]), + w(" case WXE_BIN_DECR:~n driver_binary_dec_refc(Ecmd.bin[0]->bin);~n break;~n",[]), + w(" case WXE_INIT_OPENGL:~n wxe_initOpenGL(rt, bp);~n break;~n",[]), Res = [gen_class(Class) || Class <- Defs], @@ -266,13 +270,13 @@ gen_method(CName, M=#method{name=N,params=Ps0,type=T,method_type=MT,id=MethodId Def =/= none, In =/= false, Where =/= c], decode_options(Opts, Align), case M#method.pre_hook of - undefined -> skip; - Pre -> w(" ~s;~n", [Pre]) + {c,Pre} -> w(" ~s;~n", [Pre]); + _ -> skip end, Ps3 = call_wx(N,{MT,CName},T,Ps2), case M#method.post_hook of - undefined -> skip; - Post -> w(" ~s;~n", [Post]) + {c, Post} -> w(" ~s;~n", [Post]); + _ -> skip end, free_args(), build_return_vals(T,Ps3), diff --git a/lib/wx/api_gen/wx_gen_erl.erl b/lib/wx/api_gen/wx_gen_erl.erl index 7962dd9fbf..8648174b5b 100644 --- a/lib/wx/api_gen/wx_gen_erl.erl +++ b/lib/wx/api_gen/wx_gen_erl.erl @@ -270,6 +270,16 @@ gen_method2(M=#method{name=N,alias=A,params=Ps,type=T,method_type=MT,id=MethodId MId = arg_type_tests(Args, "?" ++ get_unique_name(MethodId)), {MArgs,Align} = marshal_args(Args), MOpts = marshal_opts(Optional, Align, Args), + case M#method.pre_hook of + {erl,Pre} -> w(" ~s~n", [Pre]); + _ -> skip + end, + + case M#method.post_hook of + {erl,_} -> w(" _Result = ~n", []); + _ -> skip + end, + case have_return_vals(T, Ps) of _ when MT =:= constructor -> w(" wxe_util:construct(~s,~n <<~s~s>>)", [MId, MArgs,MOpts]); @@ -278,6 +288,13 @@ gen_method2(M=#method{name=N,alias=A,params=Ps,type=T,method_type=MT,id=MethodId false -> w(" wxe_util:cast(~s,~n <<~s~s>>)", [MId, MArgs,MOpts]) end, + case M#method.post_hook of + {erl,Post} -> + w(" ~s~n", [Post]), + w(" _Result~n", []); + _ -> skip + end, + erase(current_func), M. diff --git a/lib/wx/api_gen/wxapi.conf b/lib/wx/api_gen/wxapi.conf index 6bafda5b9d..14f5f7e267 100644 --- a/lib/wx/api_gen/wxapi.conf +++ b/lib/wx/api_gen/wxapi.conf @@ -505,15 +505,15 @@ {"data",[in,{base,binary}]}, {"alpha",[in,{base,binary}]}, {{4,pre_hook}, - "if(!static_data) {" - "data = (unsigned char *) malloc(Ecmd.bin[0]->size);" - "memcpy(data,Ecmd.bin[0]->base,Ecmd.bin[0]->size);}"}, + {c, "if(!static_data) {" + "data = (unsigned char *) malloc(Ecmd.bin[0]->size);" + "memcpy(data,Ecmd.bin[0]->base,Ecmd.bin[0]->size);}"}}, {{5,pre_hook}, - "if(!static_data) {" - " data = (unsigned char *) malloc(Ecmd.bin[0]->size);" - " alpha = (unsigned char *) malloc(Ecmd.bin[1]->size);" - " memcpy(data,Ecmd.bin[0]->base,Ecmd.bin[0]->size);" - " memcpy(alpha,Ecmd.bin[1]->base,Ecmd.bin[1]->size);}"} + {c, "if(!static_data) {" + " data = (unsigned char *) malloc(Ecmd.bin[0]->size);" + " alpha = (unsigned char *) malloc(Ecmd.bin[1]->size);" + " memcpy(data,Ecmd.bin[0]->base,Ecmd.bin[0]->size);" + " memcpy(alpha,Ecmd.bin[1]->base,Ecmd.bin[1]->size);}"}} ]}, '~wxImage',%'AddHandler', 'Blur','BlurHorizontal','BlurVertical', @@ -524,15 +524,15 @@ {"data",[in,{base,binary}]}, {"alpha",[in,{base,binary}]}, {{4,pre_hook}, - "if(!static_data) {" - "data = (unsigned char *) malloc(Ecmd.bin[0]->size);" - "memcpy(data,Ecmd.bin[0]->base,Ecmd.bin[0]->size);}"}, + {c, "if(!static_data) {" + "data = (unsigned char *) malloc(Ecmd.bin[0]->size);" + "memcpy(data,Ecmd.bin[0]->base,Ecmd.bin[0]->size);}"}}, {{5,pre_hook}, - "if(!static_data) {" - " data = (unsigned char *) malloc(Ecmd.bin[0]->size);" - " alpha = (unsigned char *) malloc(Ecmd.bin[1]->size);" - " memcpy(data,Ecmd.bin[0]->base,Ecmd.bin[0]->size);" - " memcpy(alpha,Ecmd.bin[1]->base,Ecmd.bin[1]->size);}"} + {c, "if(!static_data) {" + " data = (unsigned char *) malloc(Ecmd.bin[0]->size);" + " alpha = (unsigned char *) malloc(Ecmd.bin[1]->size);" + " memcpy(data,Ecmd.bin[0]->base,Ecmd.bin[0]->size);" + " memcpy(alpha,Ecmd.bin[1]->base,Ecmd.bin[1]->size);}"}} ]}, 'Destroy','FindFirstUnusedColour', % 'FindHandler', 'GetImageExtWildcard', @@ -551,15 +551,15 @@ 'Rotate90','SaveFile','Scale','Size', {'SetAlpha', [{{2,"alpha"},[in,{base,binary}, {def, none}]}, {{2,pre_hook}, - "if(!static_data) {" - "alpha = (unsigned char *) malloc(Ecmd.bin[0]->size);" - "memcpy(alpha,Ecmd.bin[0]->base,Ecmd.bin[0]->size);}"} + {c, "if(!static_data) {" + "alpha = (unsigned char *) malloc(Ecmd.bin[0]->size);" + "memcpy(alpha,Ecmd.bin[0]->base,Ecmd.bin[0]->size);}"}} ]}, {'SetData', [{"data",[in,{base,binary}]}, {pre_hook, - "if(!static_data) {" - "data = (unsigned char *) malloc(Ecmd.bin[0]->size);" - "memcpy(data,Ecmd.bin[0]->base,Ecmd.bin[0]->size);}"} + {c, "if(!static_data) {" + "data = (unsigned char *) malloc(Ecmd.bin[0]->size);" + "memcpy(data,Ecmd.bin[0]->base,Ecmd.bin[0]->size);}"}} ]}, 'SetMask','SetMaskColour','SetMaskFromImage','SetOption', 'SetPalette', @@ -1146,9 +1146,10 @@ {class, wxGLCanvas, wxWindow, [{skip, [{'SetCurrent', 2}]}], %% NA MAC - [{'wxGLCanvas', [{"attribList", [in, {single,array}]}]}, + [{'wxGLCanvas', [{"attribList", [in, {single,array}]}, + {pre_hook, {erl, "wxe_master:init_opengl(),"}}]}, 'GetContext', - {'SetCurrent', [{post_hook,"if(This->GetContext()) setActiveGL(Ecmd.caller,This)"}]}, + {'SetCurrent', [{post_hook,{c, "if(This->GetContext()) setActiveGL(Ecmd.caller,This)"}}]}, %%{'SetColour', [{"colour", [in, {single,array}]}]}, 'SwapBuffers']}. diff --git a/lib/wx/c_src/Makefile.in b/lib/wx/c_src/Makefile.in index 8710641b57..9c85549a5c 100644 --- a/lib/wx/c_src/Makefile.in +++ b/lib/wx/c_src/Makefile.in @@ -32,14 +32,16 @@ endif SO_EXT = @SO_EXT@ -GENERAL = wxe_driver wxe_ps_init wxe_impl wxePrintout wxe_return +GENERAL = wxe_driver wxe_ps_init wxe_impl wxePrintout wxe_return wxe_gl GENERAL_H = wxe_driver.h wxe_impl.h wxe_return.h GENERATED_F = wxe_funcs wxe_events wxe_init -GENERATED_H = gen/wxe_macros.h gen/glu_finit.h gen/gl_finit.h gen/gl_fdefs.h +GENERATED_H = gen/wxe_macros.h + +GL_H = egl_impl.h gen/glu_finit.h gen/gl_finit.h gen/gl_fdefs.h HAVE_OPENGL = true -OPENGL_F = gl_funcs wxe_gl +OPENGL_F = gl_funcs egl_impl ifneq ($(INSIDE_ERLSRC),true) @@ -60,9 +62,9 @@ SYS_TYPE = @WXERL_SYS_TYPE@ GENERAL_O = $(GENERAL:%=$(SYS_TYPE)/%.o) GENERATED_O = $(GENERATED_F:%=$(SYS_TYPE)/%.o) ifeq ($(HAVE_OPENGL), true) - OPENGL_O = $(OPENGL_F:%=$(SYS_TYPE)/%.o) + GL_OBJECTS = $(OPENGL_F:%=$(SYS_TYPE)/%.o) else - OPENGL_O = + GL_OBJECTS = endif RC_FILE_EXT = @RC_FILE_TYPE@ @@ -72,9 +74,11 @@ else RC_FILE = endif -OBJECTS = $(GENERAL_O) $(GENERATED_O) $(OPENGL_O) $(RC_FILE) +WX_OBJECTS = $(GENERAL_O) $(GENERATED_O) $(RC_FILE) + +OBJECTS = $(WX_OBJECTS) $(OPENGL_O) -TARGET_API = wxe_driver +TARGET_APIS = wxe_driver erl_gl TARGET_DIR = ../priv/$(SYS_TYPE) # -O2 -funroll-loops -ffast-math -fomit-frame-pointer @@ -87,31 +91,36 @@ LD = $(CPP) LDFLAGS = @LDFLAGS@ RESCOMP = @WX_RESCOMP@ - ifeq (@WX_HAVE_STATIC_LIBS@,true) -WX_LIBS = @WX_LIBS_STATIC@ +OPT_WX_LIBS = @WX_LIBS_STATIC@ DEBUG_WX_LIBS = @DEBUG_WX_LIBS_STATIC@ else -WX_LIBS = @WX_LIBS@ +OPT_WX_LIBS = @WX_LIBS@ DEBUG_WX_LIBS = @DEBUG_WX_LIBS@ endif ifeq ($(TYPE),debug) -CFLAGS = @DEBUG_WX_CFLAGS@ @DEBUG_CFLAGS@ -CPP_FLAGS = @DEBUG_WX_CXXFLAGS@ @DEBUG_CXXFLAGS@ -LIBS = $(DEBUG_WX_LIBS) +WX_CFLAGS = @DEBUG_WX_CFLAGS@ +CFLAGS = @DEBUG_CFLAGS@ +WX_CXX_FLAGS = @DEBUG_WX_CXXFLAGS@ +CXX_FLAGS = @DEBUG_CXXFLAGS@ +WX_LIBS = $(DEBUG_WX_LIBS) else -CFLAGS = @WX_CFLAGS@ @CFLAGS@ -CPP_FLAGS = @WX_CXXFLAGS@ @CXXFLAGS@ -LIBS = $(WX_LIBS) +WX_CFLAGS = @WX_CFLAGS@ +CFLAGS = @CFLAGS@ +WX_CXX_FLAGS = @WX_CXXFLAGS@ +CXX_FLAGS = @CXXFLAGS@ +WX_LIBS = $(OPT_WX_LIBS) endif -CC_O = $(CC) -c $(CFLAGS) $(COMMON_CFLAGS) -CPP_O = $(CPP) -c $(CPP_FLAGS) $(COMMON_CFLAGS) +CL_LIBS = -lGL -lGLU + +CC_O = $(CC) -c $(CFLAGS) $(WX_CFLAGS) $(COMMON_CFLAGS) +CPP_O = $(CPP) -c $(CXX_FLAGS) $(WX_CXX_FLAGS) $(COMMON_CFLAGS) # Targets -opt: $(TARGET_DIR)/$(TARGET_API)$(SO_EXT) +opt: $(TARGET_DIR)/wxe_driver$(SO_EXT) $(TARGET_DIR)/erl_gl$(SO_EXT) debug: @${MAKE} TYPE=debug @@ -132,20 +141,22 @@ complete_clean: docs: +$(GL_OBJECTS): $(GL_H) +$(WX_OBJECTS): $(GENERATED_H) $(GENERAL_H) -$(SYS_TYPE)/%.o: %.cpp $(GENERATED_H) $(GENERAL_H) +$(SYS_TYPE)/%.o: %.cpp mkdir -p $(SYS_TYPE) $(CPP_O) $< -o $@ -$(SYS_TYPE)/%.o: %.c $(GENERATED_H) $(GENERAL_H) +$(SYS_TYPE)/%.o: %.c mkdir -p $(SYS_TYPE) $(CC_O) $< -o $@ -$(SYS_TYPE)/%.o: gen/%.cpp $(GENERATED_H) $(GENERAL_H) +$(SYS_TYPE)/%.o: gen/%.cpp mkdir -p $(SYS_TYPE) $(CPP_O) $< -o $@ -$(SYS_TYPE)/%.o: gen/%.c $(GENERATED_H) $(GENERAL_H) +$(SYS_TYPE)/%.o: gen/%.c mkdir -p $(SYS_TYPE) $(CC_O) $< -o $@ @@ -153,9 +164,13 @@ $(SYS_TYPE)/wxe_win32.$(RC_FILE_EXT): wxe_win32.rc mkdir -p $(SYS_TYPE) $(RESCOMP) -o $@ $< -$(TARGET_DIR)/$(TARGET_API)$(SO_EXT): $(OBJECTS) +$(TARGET_DIR)/wxe_driver$(SO_EXT): $(WX_OBJECTS) + mkdir -p $(TARGET_DIR) + $(LD) $(LDFLAGS) $(WX_OBJECTS) $(WX_LIBS) -o $@ + +$(TARGET_DIR)/erl_gl$(SO_EXT): $(GL_OBJECTS) mkdir -p $(TARGET_DIR) - $(LD) $(LDFLAGS) $(OBJECTS) $(LIBS) -o $@ + $(CC) $(LDFLAGS) $(GL_OBJECTS) $(CL_LIBS) -o $@ # ---------------------------------------------------- @@ -167,7 +182,8 @@ release_spec: opt $(INSTALL_DIR) $(RELSYSDIR)/priv/$(SYS_TYPE) $(INSTALL_DATA) ../priv/erlang-logo32.png $(RELSYSDIR)/priv/ $(INSTALL_DATA) ../priv/erlang-logo64.png $(RELSYSDIR)/priv/ - $(INSTALL_PROGRAM) $(TARGET_DIR)/$(TARGET_API)$(SO_EXT) $(RELSYSDIR)/priv/$(SYS_TYPE) + $(INSTALL_PROGRAM) $(TARGET_DIR)/wxe_driver$(SO_EXT) $(RELSYSDIR)/priv/$(SYS_TYPE) + $(INSTALL_PROGRAM) $(TARGET_DIR)/erl_gl$(SO_EXT) $(RELSYSDIR)/priv/$(SYS_TYPE) release_docs_spec: diff --git a/lib/wx/c_src/egl_impl.cpp b/lib/wx/c_src/egl_impl.cpp new file mode 100644 index 0000000000..9240bc49f0 --- /dev/null +++ b/lib/wx/c_src/egl_impl.cpp @@ -0,0 +1,316 @@ +/* + * %CopyrightBegin% + * + * Copyright Ericsson AB 2010. All Rights Reserved. + * + * The contents of this file are subject to the Erlang Public License, + * Version 1.1, (the "License"); you may not use this file except in + * compliance with the License. You should have received a copy of the + * Erlang Public License along with this software. If not, it can be + * retrieved online at http://www.erlang.org/. + * + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + * the License for the specific language governing rights and limitations + * under the License. + * + * %CopyrightEnd% + */ + +#include +#include + +#include "egl_impl.h" + +#define WX_DEF_EXTS +#include "gen/gl_fdefs.h" +#include "gen/gl_finit.h" +#include "gen/glu_finit.h" + +void init_tess(); +void exit_tess(); +int load_gl_functions(); + +/* **************************************************************************** + * OPENGL INITIALIZATION + *****************************************************************************/ + +int egl_initiated = 0; + +#ifdef _WIN32 +void * dlsym(HMODULE Lib, const char *func) { + void * funcp; + if((funcp = (void *) GetProcAddress(Lib, func))) + return funcp; + else + return (void *) wglGetProcAddress(func); +} +#endif + +int egl_init_opengl() +{ + if(egl_initiated == 0) { + if(load_gl_functions()) { + init_tess(); + egl_initiated = 1; + } + } + return 1; +} + +int load_gl_functions() { +#ifdef _MACOSX + char * DLName = "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib"; + void * LIBhandle = dlopen(DLName, RTLD_LAZY); +#elif defined(_WIN32) + WCHAR * DLName = wxT("opengl32.dll"); + HMODULE LIBhandle = LoadLibrary(DLName); +#else + char * DLName = (char *) "libGL.so"; + void * LIBhandle = dlopen(DLName, RTLD_LAZY); +#endif + // fprintf(stderr, "Loading GL: %s\r\n", (const char*)DLName); + void * func = NULL; + int i; + + if(LIBhandle) { + for(i=0; gl_fns[i].name != NULL; i++) { + if((func = dlsym(LIBhandle, gl_fns[i].name))) { + * (void **) (gl_fns[i].func) = func; + // fprintf(stderr, "GL LOADED %s \r\n", gl_fns[i].name); + } else { + if(gl_fns[i].alt != NULL) { + if((func = dlsym(LIBhandle, gl_fns[i].alt))) { + * (void **) (gl_fns[i].func) = func; + // fprintf(stderr, "GL LOADED %s \r\n", gl_fns[i].alt); + } else { + * (void **) (gl_fns[i].func) = (void *) &gl_error; + // fprintf(stderr, "GL Skipped %s and %s \r\n", gl_fns[i].name, gl_fns[i].alt); + }; + } else { + * (void **) (gl_fns[i].func) = (void *) &gl_error; + // fprintf(stderr, "GL Skipped %s \r\n", gl_fns[i].name); + } + } + } +#ifdef _WIN32 + FreeLibrary(LIBhandle); +#else + dlclose(LIBhandle); +#endif + // fprintf(stderr, "OPENGL library is loaded\r\n"); + } else { +// wxString msg; +// msg.Printf(wxT("Could NOT load OpenGL library: ")); +// #ifdef _WIN32 +// msg += DLName; +// #else +// msg += wxString::FromAscii((char *)DLName); +// #endif +// send_msg("error", &msg); + fprintf(stderr, "Could NOT load OpenGL library: %s\r\n", DLName); + }; + +#ifdef _MACOSX + DLName = "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib"; + LIBhandle = dlopen(DLName, RTLD_LAZY); +#elif defined(_WIN32) + DLName = wxT("glu32.dll"); + LIBhandle = LoadLibrary(DLName); +#else + DLName = (char *) "libGLU.so"; + LIBhandle = dlopen(DLName, RTLD_LAZY); +#endif + // fprintf(stderr, "Loading GL: %s\r\n", (const char*)DLName); + func = NULL; + + if(LIBhandle) { + for(i=0; glu_fns[i].name != NULL; i++) { + if((func = dlsym(LIBhandle, glu_fns[i].name))) { + * (void **) (glu_fns[i].func) = func; + } else { + if(glu_fns[i].alt != NULL) { + if((func = dlsym(LIBhandle, glu_fns[i].alt))) { + * (void **) (glu_fns[i].func) = func; + } else { + * (void **) (glu_fns[i].func) = (void *) &gl_error; + // fprintf(stderr, "GLU Skipped %s\r\n", glu_fns[i].alt); + }; + } else { + * (void **) (glu_fns[i].func) = (void *) &gl_error; + // fprintf(stderr, "GLU Skipped %s\r\n", glu_fns[i].name); + } + } + } +#ifdef _WIN32 + FreeLibrary(LIBhandle); +#else + dlclose(LIBhandle); +#endif + // fprintf(stderr, "GLU library is loaded\r\n"); + } else { +// wxString msg; +// msg.Printf(wxT("Could NOT load OpenGL GLU library: ")); +// #ifdef _WIN32 +// msg += DLName; +// #else +// msg += wxString::FromAscii((char *)DLName); +// #endif +// send_msg("error", &msg); + fprintf(stderr, "Could NOT load OpenGL GLU library: %s\r\n", DLName); + }; + + return 1; +} + +void gl_error() { + // int AP = 0; ErlDrvTermData rt[8]; + // rt[AP++] = ERL_DRV_ATOM; rt[AP++] = driver_mk_atom((char *)"_wxe_error_"); + // rt[AP++] = ERL_DRV_INT; rt[AP++] = (int) gl_error_op; + // rt[AP++] = ERL_DRV_ATOM; rt[AP++] = driver_mk_atom((char *)"undef"); + // rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 3; + // driver_send_term(WXE_DRV_PORT,gl_active,rt,AP); + // BUGBUG + fprintf(stderr, "OpenGL Extension not available : %d\r\n", gl_error_op); +} + +/* ******************************************************************************* + * GLU Tesselation special + * ******************************************************************************/ + +static GLUtesselator* tess; +static GLdouble* tess_coords; +static GLdouble* tess_alloc_vertex; +static int* tess_vertices; + +void CALLBACK +egl_ogla_vertex(GLdouble* coords) +{ + /* fprintf(stderr, "%d\r\n", (int) (coords - tess_coords) / 3); */ + + *tess_vertices++ = (int) (coords - tess_coords) / 3; +} + +void CALLBACK +egl_ogla_edge_flag(GLboolean flag) +{ +} + +void CALLBACK +egl_ogla_error(GLenum errorCode) +{ + const GLubyte *err; + err = gluErrorString(errorCode); + // wxString msg; + // msg.Printf(wxT("Tesselation error: %d: "), (int)errorCode); + // msg += wxString::FromAscii((char *) err); + // send_msg("error", &msg); + fprintf(stderr, "Tesselation error: %d\r\n", (int) errorCode); +} + +void CALLBACK +egl_ogla_combine(GLdouble coords[3], + void* vertex_data[4], + GLfloat w[4], + void **dataOut) +{ + GLdouble* vertex = tess_alloc_vertex; + + tess_alloc_vertex += 3; + +#if 0 + fprintf(stderr, "combine: "); + int i; + for (i = 0; i < 4; i++) { + if (w[i] > 0.0) { + fprintf(stderr, "%d(%g) ", (int) vertex_data[i], w[i]); + } + } + fprintf(stderr, "\r\n"); + fprintf(stderr, "%g %g %g\r\n", vertex[0], vertex[1], vertex[2]); +#endif + + vertex[0] = coords[0]; + vertex[1] = coords[1]; + vertex[2] = coords[2]; + *dataOut = vertex; +} + +void init_tess() +{ + tess = gluNewTess(); + + gluTessCallback(tess, GLU_TESS_VERTEX, (GLUfuncptr) egl_ogla_vertex); + gluTessCallback(tess, GLU_TESS_EDGE_FLAG, (GLUfuncptr) egl_ogla_edge_flag); + gluTessCallback(tess, GLU_TESS_COMBINE, (GLUfuncptr) egl_ogla_combine); + gluTessCallback(tess, GLU_TESS_ERROR, (GLUfuncptr) egl_ogla_error); + +} + +void exit_tess() +{ + gluDeleteTess(tess); +} + +int erl_tess_impl(char* buff, ErlDrvPort port, ErlDrvTermData caller) +{ + ErlDrvBinary* bin; + int i; + GLdouble* new_vertices; + int *vertices; + int num_vertices; + GLdouble *n; + int n_pos, AP, res; + + num_vertices = * (int *) buff; buff += 8; /* Align */ + n = (double *) buff; buff += 8*3; + + bin = driver_alloc_binary(num_vertices*6*sizeof(GLdouble)); + new_vertices = tess_coords = (double *) bin->orig_bytes; + memcpy(tess_coords,buff,num_vertices*3*sizeof(GLdouble)); + tess_alloc_vertex = tess_coords + num_vertices*3; + +#if 0 + fprintf(stderr, "n=%d\r\n", num_vertices); +#endif + vertices = (int *) driver_alloc(sizeof(int) * 16*num_vertices); + + tess_vertices = vertices; + + gluTessNormal(tess, n[0], n[1], n[2]); + gluTessBeginPolygon(tess, 0); + gluTessBeginContour(tess); + for (i = 0; i < num_vertices; i++) { + gluTessVertex(tess, tess_coords+3*i, tess_coords+3*i); + } + gluTessEndContour(tess); + gluTessEndPolygon(tess); + + n_pos = (tess_vertices - vertices); + + AP = 0; ErlDrvTermData *rt; + rt = (ErlDrvTermData *) driver_alloc(sizeof(ErlDrvTermData) * (13+n_pos*2)); + rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_egl_result_"); + + for(i=0; i < n_pos; i++) { + rt[AP++] = ERL_DRV_INT; rt[AP++] = (int) vertices[i]; + }; + rt[AP++] = ERL_DRV_NIL; rt[AP++] = ERL_DRV_LIST; rt[AP++] = n_pos+1; + + rt[AP++] = ERL_DRV_BINARY; rt[AP++] = (ErlDrvTermData) bin; + rt[AP++] = (tess_alloc_vertex-new_vertices)*sizeof(GLdouble); rt[AP++] = 0; + + rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; // Return tuple {list, Bin} + rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; // Result tuple + + res = driver_send_term(port,caller,rt,AP); + /* fprintf(stderr, "List %d: %d %d %d \r\n", */ + /* res, */ + /* n_pos, */ + /* (tess_alloc_vertex-new_vertices)*sizeof(GLdouble), */ + /* num_vertices*6*sizeof(GLdouble)); */ + driver_free_binary(bin); + driver_free(vertices); + driver_free(rt); + return 0; +} diff --git a/lib/wx/c_src/egl_impl.h b/lib/wx/c_src/egl_impl.h new file mode 100644 index 0000000000..60be2c41d2 --- /dev/null +++ b/lib/wx/c_src/egl_impl.h @@ -0,0 +1,146 @@ +/* + * %CopyrightBegin% + * + * Copyright Ericsson AB 2010. All Rights Reserved. + * + * The contents of this file are subject to the Erlang Public License, + * Version 1.1, (the "License"); you may not use this file except in + * compliance with the License. You should have received a copy of the + * Erlang Public License along with this software. If not, it can be + * retrieved online at http://www.erlang.org/. + * + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + * the License for the specific language governing rights and limitations + * under the License. + * + * %CopyrightEnd% + */ + +#include "erl_driver.h" + +/* Wrap everything from glext.h so we are not dependent on the user version of it */ + +#ifndef _WIN32 +# include +#endif + +#ifndef __WXMAC__ +# include +# include /* Header File For The OpenGL Library */ +#else +# include /* Header File For The OpenGL Library */ +#endif + +#ifndef CALLBACK +# define CALLBACK +#endif + +#ifdef _WIN32 +# ifndef _GLUfuncptr +// Visual studio CPP ++ compiler +# define _GLUfuncptr void (_stdcall *)() +# endif +#endif + +#ifdef _GLUfuncptr +# define GLUfuncptr _GLUfuncptr +#elif defined(TESS_CB_TIGER_STYLE) +# define GLUfuncptr GLvoid (*)(...) +#else +# define GLUfuncptr GLvoid (*)() +#endif + +#ifdef WIN32 +#include +#include +#elif defined(HAVE_GL_GL_H) +#include +#elif defined(HAVE_OPENGL_GL_H) +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif + +/* Some new GL types (eliminates the need for glext.h) */ + +#ifndef HAVE_GLINTPTR +#ifndef HAVE_GLINTPTRARB +# include +/* GL types for handling large vertex buffer objects */ +typedef ptrdiff_t GLintptrARB; +typedef ptrdiff_t GLsizeiptrARB; +#endif /* HAVE_GLINTPTRARB */ +typedef GLintptrARB GLintptr; +typedef GLsizeiptrARB GLsizeiptr; +#endif /* HAVE_GLINTPTR */ + +#ifndef HAVE_GLCHAR +# ifndef HAVE_GLCHARARB +/* GL types for handling shader object handles and characters */ +typedef char GLcharARB; /* native character */ +typedef unsigned int GLhandleARB; /* shader object handle */ +#endif /* HAVE_GLCHARARB */ +typedef GLcharARB GLchar; +#endif + +#ifndef HAVE_GLHALFARB +/* GL types for "half" precision (s10e5) float data in host memory */ +typedef unsigned short GLhalfARB; +#endif + +/* Define int32_t, int64_t, and uint64_t types for UST/MSC */ +/* (as used in the GLX_OML_sync_control extension). */ +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#include +#elif defined(__sun__) +#include +#if defined(__STDC__) +#if defined(__arch64__) +typedef long int int64_t; +typedef unsigned long int uint64_t; +#else +typedef long long int int64_t; +typedef unsigned long long int uint64_t; +#endif /* __arch64__ */ +#endif /* __STDC__ */ +#elif defined( __VMS ) +#include +#elif defined(__SCO__) || defined(__USLC__) +#include +#elif defined(__UNIXOS2__) || defined(__SOL64__) +typedef long int int32_t; +typedef long long int int64_t; +typedef unsigned long long int uint64_t; +#elif defined(WIN32) && defined(_MSC_VER) +typedef long int int32_t; +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +#elif defined(WIN32) && defined(__GNUC__) +#include +#else +#include /* Fallback option */ +#endif + +#ifndef HAVE_GLINT64EXT +typedef int64_t GLint64EXT; +typedef uint64_t GLuint64EXT; +#endif + +/* External Api */ + +#ifdef _WIN32 +__declspec(dllexport) int egl_init_opengl(); +__declspec(dllexport) void egl_dispatch(int, char *, ErlDrvPort, ErlDrvTermData, char **); +#else +extern "C" int egl_init_opengl(); +extern "C" void egl_dispatch(int, char *, ErlDrvPort, ErlDrvTermData, char **); +#endif + +/* internal */ +int erl_tess_impl(char* buff, ErlDrvPort port, ErlDrvTermData caller); +void gl_error(); +extern int gl_error_op; +extern ErlDrvTermData gl_active; + diff --git a/lib/wx/c_src/gen/gl_funcs.cpp b/lib/wx/c_src/gen/gl_funcs.cpp index 95d3c23b23..3bda818366 100644 --- a/lib/wx/c_src/gen/gl_funcs.cpp +++ b/lib/wx/c_src/gen/gl_funcs.cpp @@ -20,37 +20,16 @@ #include #include -#include "../wxe_impl.h" -#include "../wxe_gl.h" +#include "../egl_impl.h" #include "gl_fdefs.h" int gl_error_op; -void gl_dispatch(int op, char *bp,ErlDrvTermData caller,WXEBinRef *bins[]){ +void egl_dispatch(int op, char *bp, ErlDrvPort port, ErlDrvTermData caller, char *bins[]){ gl_error_op = op; - if(caller != gl_active) { - wxGLCanvas * current = glc[caller]; - if(current) { gl_active = caller; current->SetCurrent();} - else { - ErlDrvTermData rt[] = // Error msg - {ERL_DRV_ATOM, driver_mk_atom((char *) "_wxe_error_"), - ERL_DRV_INT, op, - ERL_DRV_ATOM, driver_mk_atom((char *) "no_gl_context"), - ERL_DRV_TUPLE,3}; - driver_send_term(WXE_DRV_PORT,caller,rt,8); - return ; - } - }; - switch(op) { case 5000: - wxe_tess_impl(bp, caller); - break; - case WXE_BIN_INCR: - driver_binary_inc_refc(bins[0]->bin); - break; - case WXE_BIN_DECR: - driver_binary_dec_refc(bins[0]->bin); + erl_tess_impl(bp, port, caller); break; case 5010: { // gluBuild1DMipmapLevels GLenum *target = (GLenum *) bp; bp += 4; @@ -61,14 +40,14 @@ case 5010: { // gluBuild1DMipmapLevels GLint *level = (GLint *) bp; bp += 4; GLint *base = (GLint *) bp; bp += 4; GLint *max = (GLint *) bp; bp += 4; - void *data = (void *) bins[0]->base; + void *data = (void *) bins[0]; GLint result = wegluBuild1DMipmapLevels(*target,*internalFormat,*width,*format,*type,*level,*base,*max,data); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5011: { // gluBuild1DMipmaps GLenum *target = (GLenum *) bp; bp += 4; @@ -76,14 +55,14 @@ case 5011: { // gluBuild1DMipmaps GLsizei *width = (GLsizei *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - void *data = (void *) bins[0]->base; + void *data = (void *) bins[0]; GLint result = wegluBuild1DMipmaps(*target,*internalFormat,*width,*format,*type,data); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5012: { // gluBuild2DMipmapLevels GLenum *target = (GLenum *) bp; bp += 4; @@ -95,14 +74,14 @@ case 5012: { // gluBuild2DMipmapLevels GLint *level = (GLint *) bp; bp += 4; GLint *base = (GLint *) bp; bp += 4; GLint *max = (GLint *) bp; bp += 4; - void *data = (void *) bins[0]->base; + void *data = (void *) bins[0]; GLint result = wegluBuild2DMipmapLevels(*target,*internalFormat,*width,*height,*format,*type,*level,*base,*max,data); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5013: { // gluBuild2DMipmaps GLenum *target = (GLenum *) bp; bp += 4; @@ -111,14 +90,14 @@ case 5013: { // gluBuild2DMipmaps GLsizei *height = (GLsizei *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - void *data = (void *) bins[0]->base; + void *data = (void *) bins[0]; GLint result = wegluBuild2DMipmaps(*target,*internalFormat,*width,*height,*format,*type,data); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5014: { // gluBuild3DMipmapLevels GLenum *target = (GLenum *) bp; bp += 4; @@ -131,14 +110,14 @@ case 5014: { // gluBuild3DMipmapLevels GLint *level = (GLint *) bp; bp += 4; GLint *base = (GLint *) bp; bp += 4; GLint *max = (GLint *) bp; bp += 4; - void *data = (void *) bins[0]->base; + void *data = (void *) bins[0]; GLint result = wegluBuild3DMipmapLevels(*target,*internalFormat,*width,*height,*depth,*format,*type,*level,*base,*max,data); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5015: { // gluBuild3DMipmaps GLenum *target = (GLenum *) bp; bp += 4; @@ -148,14 +127,14 @@ case 5015: { // gluBuild3DMipmaps GLsizei *depth = (GLsizei *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - void *data = (void *) bins[0]->base; + void *data = (void *) bins[0]; GLint result = wegluBuild3DMipmaps(*target,*internalFormat,*width,*height,*depth,*format,*type,data); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5016: { // gluCheckExtension int * extNameLen = (int *) bp; bp += 4; @@ -168,7 +147,7 @@ case 5016: { // gluCheckExtension rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5017: { // gluCylinder GLUquadric * quad = (GLUquadric *) * (GLuint64EXT *) bp; bp += 8; @@ -199,7 +178,7 @@ case 5020: { // gluErrorString rt[AP++] = ERL_DRV_STRING; rt[AP++] = (ErlDrvTermData) result; rt[AP++] = strlen((char *) result); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5021: { // gluGetString GLenum *name = (GLenum *) bp; bp += 4; @@ -209,7 +188,7 @@ case 5021: { // gluGetString rt[AP++] = ERL_DRV_STRING; rt[AP++] = (ErlDrvTermData) result; rt[AP++] = strlen((char *) result); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5022: { // gluLookAt GLdouble *eyeX = (GLdouble *) bp; bp += 8; @@ -230,7 +209,7 @@ case 5023: { // gluNewQuadric rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5024: { // gluOrtho2D GLdouble *left = (GLdouble *) bp; bp += 8; @@ -284,7 +263,7 @@ case 5028: { // gluProject rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5029: { // gluQuadricDrawStyle GLUquadric * quad = (GLUquadric *) * (GLuint64EXT *) bp; bp += 8; @@ -311,18 +290,18 @@ case 5033: { // gluScaleImage GLsizei *wIn = (GLsizei *) bp; bp += 4; GLsizei *hIn = (GLsizei *) bp; bp += 4; GLenum *typeIn = (GLenum *) bp; bp += 4; - void *dataIn = (void *) bins[0]->base; + void *dataIn = (void *) bins[0]; GLsizei *wOut = (GLsizei *) bp; bp += 4; GLsizei *hOut = (GLsizei *) bp; bp += 4; GLenum *typeOut = (GLenum *) bp; bp += 4; - GLvoid *dataOut = (GLvoid *) bins[1]->base; + GLvoid *dataOut = (GLvoid *) bins[1]; GLint result = wegluScaleImage(*format,*wIn,*hIn,*typeIn,dataIn,*wOut,*hOut,*typeOut,dataOut); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5034: { // gluSphere GLUquadric * quad = (GLUquadric *) * (GLuint64EXT *) bp; bp += 8; @@ -351,7 +330,7 @@ case 5035: { // gluUnProject rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5036: { // gluUnProject4 GLdouble *winX = (GLdouble *) bp; bp += 8; @@ -378,7 +357,7 @@ case 5036: { // gluUnProject4 rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 5; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 16 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,16); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5037: { // glAccum GLenum *op = (GLenum *) bp; bp += 4; @@ -406,7 +385,7 @@ case 5039: { // glAreTexturesResident rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 11 + (*texturesLen)*2 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,11 + (*texturesLen)*2); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(rt); driver_free(residences); }; break; @@ -440,7 +419,7 @@ case 5044: { // glBitmap GLfloat *yorig = (GLfloat *) bp; bp += 4; GLfloat *xmove = (GLfloat *) bp; bp += 4; GLfloat *ymove = (GLfloat *) bp; bp += 4; - GLubyte *bitmap = (GLubyte *) bins[0]->base; + GLubyte *bitmap = (GLubyte *) bins[0]; weglBitmap(*width,*height,*xorig,*yorig,*xmove,*ymove,bitmap); }; break; case 5045: { // glBlendFunc @@ -580,7 +559,7 @@ case 5074: { // glColorPointer GLint *size = (GLint *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; GLsizei *stride = (GLsizei *) bp; bp += 4; - GLvoid *pointer = (GLvoid *) bins[0]->base; + GLvoid *pointer = (GLvoid *) bins[0]; weglColorPointer(*size,*type,*stride,pointer); }; break; case 5075: { // glCopyPixels @@ -688,7 +667,7 @@ case 5091: { // glDrawElements GLenum *mode = (GLenum *) bp; bp += 4; GLsizei *count = (GLsizei *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLvoid *indices = (GLvoid *) bins[0]->base; + GLvoid *indices = (GLvoid *) bins[0]; weglDrawElements(*mode,*count,*type,indices); }; break; case 5092: { // glDrawPixels @@ -704,7 +683,7 @@ case 5093: { // glDrawPixels GLsizei *height = (GLsizei *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLvoid *pixels = (GLvoid *) bins[0]->base; + GLvoid *pixels = (GLvoid *) bins[0]; weglDrawPixels(*width,*height,*format,*type,pixels); }; break; case 5094: { // glEdgeFlagv @@ -718,7 +697,7 @@ case 5095: { // glEdgeFlagPointer }; break; case 5096: { // glEdgeFlagPointer GLsizei *stride = (GLsizei *) bp; bp += 4; - GLvoid *pointer = (GLvoid *) bins[0]->base; + GLvoid *pointer = (GLvoid *) bins[0]; weglEdgeFlagPointer(*stride,pointer); }; break; case 5097: { // glEnable @@ -777,13 +756,13 @@ case 5108: { // glEvalPoint2 case 5109: { // glFeedbackBuffer GLsizei *size = (GLsizei *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLfloat *buffer = (GLfloat *) bins[0]->base; + GLfloat *buffer = (GLfloat *) bins[0]; weglFeedbackBuffer(*size,*type,buffer); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "ok"); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5110: { // glFinish weglFinish(); @@ -834,7 +813,7 @@ case 5118: { // glGenLists rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5119: { // glGenTextures GLsizei *n = (GLsizei *) bp; bp += 4; @@ -849,7 +828,7 @@ case 5119: { // glGenTextures rt[AP++] = ERL_DRV_NIL; rt[AP++] = ERL_DRV_LIST; rt[AP++] = (*n)+1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 + (*n)*2 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7 + (*n)*2); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(rt); driver_free(textures); }; break; @@ -879,7 +858,7 @@ case 5120: { // glGetBooleanv rt[AP++] = ERL_DRV_NIL; rt[AP++] = ERL_DRV_LIST; rt[AP++] = 16+1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 39 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,39); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5121: { // glGetClipPlane GLenum *plane = (GLenum *) bp; bp += 4; @@ -895,7 +874,7 @@ case 5121: { // glGetClipPlane rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5122: { // glGetDoublev GLenum *pname = (GLenum *) bp; bp += 4; @@ -923,7 +902,7 @@ case 5122: { // glGetDoublev rt[AP++] = ERL_DRV_NIL; rt[AP++] = ERL_DRV_LIST; rt[AP++] = 16+1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 39 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,39); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5123: { // glGetError GLenum result = weglGetError(); @@ -932,7 +911,7 @@ case 5123: { // glGetError rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5124: { // glGetFloatv GLenum *pname = (GLenum *) bp; bp += 4; @@ -961,7 +940,7 @@ case 5124: { // glGetFloatv rt[AP++] = ERL_DRV_NIL; rt[AP++] = ERL_DRV_LIST; rt[AP++] = 16+1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 39 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,39); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5125: { // glGetIntegerv GLenum *pname = (GLenum *) bp; bp += 4; @@ -989,7 +968,7 @@ case 5125: { // glGetIntegerv rt[AP++] = ERL_DRV_NIL; rt[AP++] = ERL_DRV_LIST; rt[AP++] = 16+1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 39 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,39); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5126: { // glGetLightfv GLenum *light = (GLenum *) bp; bp += 4; @@ -1007,7 +986,7 @@ case 5126: { // glGetLightfv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5127: { // glGetLightiv GLenum *light = (GLenum *) bp; bp += 4; @@ -1024,40 +1003,40 @@ case 5127: { // glGetLightiv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5128: { // glGetMapdv GLenum *target = (GLenum *) bp; bp += 4; GLenum *query = (GLenum *) bp; bp += 4; - GLdouble *v = (GLdouble *) bins[0]->base; + GLdouble *v = (GLdouble *) bins[0]; weglGetMapdv(*target,*query,v); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "ok"); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5129: { // glGetMapfv GLenum *target = (GLenum *) bp; bp += 4; GLenum *query = (GLenum *) bp; bp += 4; - GLfloat *v = (GLfloat *) bins[0]->base; + GLfloat *v = (GLfloat *) bins[0]; weglGetMapfv(*target,*query,v); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "ok"); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5130: { // glGetMapiv GLenum *target = (GLenum *) bp; bp += 4; GLenum *query = (GLenum *) bp; bp += 4; - GLint *v = (GLint *) bins[0]->base; + GLint *v = (GLint *) bins[0]; weglGetMapiv(*target,*query,v); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "ok"); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5131: { // glGetMaterialfv GLenum *face = (GLenum *) bp; bp += 4; @@ -1075,7 +1054,7 @@ case 5131: { // glGetMaterialfv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5132: { // glGetMaterialiv GLenum *face = (GLenum *) bp; bp += 4; @@ -1092,37 +1071,37 @@ case 5132: { // glGetMaterialiv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5133: { // glGetPixelMapfv GLenum *map = (GLenum *) bp; bp += 4; - GLfloat *values = (GLfloat *) bins[0]->base; + GLfloat *values = (GLfloat *) bins[0]; weglGetPixelMapfv(*map,values); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "ok"); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5134: { // glGetPixelMapuiv GLenum *map = (GLenum *) bp; bp += 4; - GLuint *values = (GLuint *) bins[0]->base; + GLuint *values = (GLuint *) bins[0]; weglGetPixelMapuiv(*map,values); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "ok"); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5135: { // glGetPixelMapusv GLenum *map = (GLenum *) bp; bp += 4; - GLushort *values = (GLushort *) bins[0]->base; + GLushort *values = (GLushort *) bins[0]; weglGetPixelMapusv(*map,values); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "ok"); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5136: { // glGetPolygonStipple GLubyte mask[128]; @@ -1134,7 +1113,7 @@ case 5136: { // glGetPolygonStipple rt[AP++] = ERL_DRV_BINARY; rt[AP++] = (ErlDrvTermData) BinCopy; rt[AP++] = 128; rt[AP++] = 0; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 8 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,8); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free_binary(BinCopy); }; break; case 5137: { // glGetString @@ -1145,7 +1124,7 @@ case 5137: { // glGetString rt[AP++] = ERL_DRV_STRING; rt[AP++] = (ErlDrvTermData) result; rt[AP++] = strlen((char *) result); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5138: { // glGetTexEnvfv GLenum *target = (GLenum *) bp; bp += 4; @@ -1163,7 +1142,7 @@ case 5138: { // glGetTexEnvfv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5139: { // glGetTexEnviv GLenum *target = (GLenum *) bp; bp += 4; @@ -1180,7 +1159,7 @@ case 5139: { // glGetTexEnviv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5140: { // glGetTexGendv GLenum *coord = (GLenum *) bp; bp += 4; @@ -1197,7 +1176,7 @@ case 5140: { // glGetTexGendv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5141: { // glGetTexGenfv GLenum *coord = (GLenum *) bp; bp += 4; @@ -1215,7 +1194,7 @@ case 5141: { // glGetTexGenfv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5142: { // glGetTexGeniv GLenum *coord = (GLenum *) bp; bp += 4; @@ -1232,20 +1211,20 @@ case 5142: { // glGetTexGeniv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5143: { // glGetTexImage GLenum *target = (GLenum *) bp; bp += 4; GLint *level = (GLint *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLvoid *pixels = (GLvoid *) bins[0]->base; + GLvoid *pixels = (GLvoid *) bins[0]; weglGetTexImage(*target,*level,*format,*type,pixels); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "ok"); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5144: { // glGetTexLevelParameterfv GLenum *target = (GLenum *) bp; bp += 4; @@ -1261,7 +1240,7 @@ case 5144: { // glGetTexLevelParameterfv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 8 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,8); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5145: { // glGetTexLevelParameteriv GLenum *target = (GLenum *) bp; bp += 4; @@ -1276,7 +1255,7 @@ case 5145: { // glGetTexLevelParameteriv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 8 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,8); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5146: { // glGetTexParameterfv GLenum *target = (GLenum *) bp; bp += 4; @@ -1294,7 +1273,7 @@ case 5146: { // glGetTexParameterfv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5147: { // glGetTexParameteriv GLenum *target = (GLenum *) bp; bp += 4; @@ -1311,7 +1290,7 @@ case 5147: { // glGetTexParameteriv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5148: { // glHint GLenum *target = (GLenum *) bp; bp += 4; @@ -1331,7 +1310,7 @@ case 5150: { // glIndexPointer case 5151: { // glIndexPointer GLenum *type = (GLenum *) bp; bp += 4; GLsizei *stride = (GLsizei *) bp; bp += 4; - GLvoid *pointer = (GLvoid *) bins[0]->base; + GLvoid *pointer = (GLvoid *) bins[0]; weglIndexPointer(*type,*stride,pointer); }; break; case 5152: { // glIndexdv @@ -1366,7 +1345,7 @@ case 5158: { // glInterleavedArrays case 5159: { // glInterleavedArrays GLenum *format = (GLenum *) bp; bp += 4; GLsizei *stride = (GLsizei *) bp; bp += 4; - GLvoid *pointer = (GLvoid *) bins[0]->base; + GLvoid *pointer = (GLvoid *) bins[0]; weglInterleavedArrays(*format,*stride,pointer); }; break; case 5160: { // glIsEnabled @@ -1377,7 +1356,7 @@ case 5160: { // glIsEnabled rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5161: { // glIsList GLuint *list = (GLuint *) bp; bp += 4; @@ -1387,7 +1366,7 @@ case 5161: { // glIsList rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5162: { // glIsTexture GLuint *texture = (GLuint *) bp; bp += 4; @@ -1397,7 +1376,7 @@ case 5162: { // glIsTexture rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5163: { // glLightModelf GLenum *pname = (GLenum *) bp; bp += 4; @@ -1486,7 +1465,7 @@ case 5179: { // glMap1d GLdouble *u2 = (GLdouble *) bp; bp += 8; GLint *stride = (GLint *) bp; bp += 4; GLint *order = (GLint *) bp; bp += 4; - GLdouble *points = (GLdouble *) bins[0]->base; + GLdouble *points = (GLdouble *) bins[0]; weglMap1d(*target,*u1,*u2,*stride,*order,points); }; break; case 5180: { // glMap1f @@ -1495,7 +1474,7 @@ case 5180: { // glMap1f GLfloat *u2 = (GLfloat *) bp; bp += 4; GLint *stride = (GLint *) bp; bp += 4; GLint *order = (GLint *) bp; bp += 4; - GLfloat *points = (GLfloat *) bins[0]->base; + GLfloat *points = (GLfloat *) bins[0]; weglMap1f(*target,*u1,*u2,*stride,*order,points); }; break; case 5181: { // glMap2d @@ -1509,7 +1488,7 @@ case 5181: { // glMap2d GLdouble *v2 = (GLdouble *) bp; bp += 8; GLint *vstride = (GLint *) bp; bp += 4; GLint *vorder = (GLint *) bp; bp += 4; - GLdouble *points = (GLdouble *) bins[0]->base; + GLdouble *points = (GLdouble *) bins[0]; weglMap2d(*target,*u1,*u2,*ustride,*uorder,*v1,*v2,*vstride,*vorder,points); }; break; case 5182: { // glMap2f @@ -1522,7 +1501,7 @@ case 5182: { // glMap2f GLfloat *v2 = (GLfloat *) bp; bp += 4; GLint *vstride = (GLint *) bp; bp += 4; GLint *vorder = (GLint *) bp; bp += 4; - GLfloat *points = (GLfloat *) bins[0]->base; + GLfloat *points = (GLfloat *) bins[0]; weglMap2f(*target,*u1,*u2,*ustride,*uorder,*v1,*v2,*vstride,*vorder,points); }; break; case 5183: { // glMapGrid1d @@ -1630,7 +1609,7 @@ case 5200: { // glNormalPointer case 5201: { // glNormalPointer GLenum *type = (GLenum *) bp; bp += 4; GLsizei *stride = (GLsizei *) bp; bp += 4; - GLvoid *pointer = (GLvoid *) bins[0]->base; + GLvoid *pointer = (GLvoid *) bins[0]; weglNormalPointer(*type,*stride,pointer); }; break; case 5202: { // glOrtho @@ -1649,19 +1628,19 @@ case 5203: { // glPassThrough case 5204: { // glPixelMapfv GLenum *map = (GLenum *) bp; bp += 4; GLsizei *mapsize = (GLsizei *) bp; bp += 4; - GLfloat *values = (GLfloat *) bins[0]->base; + GLfloat *values = (GLfloat *) bins[0]; weglPixelMapfv(*map,*mapsize,values); }; break; case 5205: { // glPixelMapuiv GLenum *map = (GLenum *) bp; bp += 4; GLsizei *mapsize = (GLsizei *) bp; bp += 4; - GLuint *values = (GLuint *) bins[0]->base; + GLuint *values = (GLuint *) bins[0]; weglPixelMapuiv(*map,*mapsize,values); }; break; case 5206: { // glPixelMapusv GLenum *map = (GLenum *) bp; bp += 4; GLsizei *mapsize = (GLsizei *) bp; bp += 4; - GLushort *values = (GLushort *) bins[0]->base; + GLushort *values = (GLushort *) bins[0]; weglPixelMapusv(*map,*mapsize,values); }; break; case 5207: { // glPixelStoref @@ -1704,7 +1683,7 @@ case 5214: { // glPolygonOffset weglPolygonOffset(*factor,*units); }; break; case 5215: { // glPolygonStipple - GLubyte *mask = (GLubyte *) bins[0]->base; + GLubyte *mask = (GLubyte *) bins[0]; weglPolygonStipple(mask); }; break; case 5216: { // glPopAttrib @@ -1800,13 +1779,13 @@ case 5238: { // glReadPixels GLsizei *height = (GLsizei *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLvoid *pixels = (GLvoid *) bins[0]->base; + GLvoid *pixels = (GLvoid *) bins[0]; weglReadPixels(*x,*y,*width,*height,*format,*type,pixels); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "ok"); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5239: { // glRectd GLdouble *x1 = (GLdouble *) bp; bp += 8; @@ -1864,7 +1843,7 @@ case 5247: { // glRenderMode rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5248: { // glRotated GLdouble *angle = (GLdouble *) bp; bp += 8; @@ -1901,13 +1880,13 @@ case 5252: { // glScissor }; break; case 5253: { // glSelectBuffer GLsizei *size = (GLsizei *) bp; bp += 4; - GLuint *buffer = (GLuint *) bins[0]->base; + GLuint *buffer = (GLuint *) bins[0]; weglSelectBuffer(*size,buffer); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "ok"); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5254: { // glShadeModel GLenum *mode = (GLenum *) bp; bp += 4; @@ -2004,7 +1983,7 @@ case 5275: { // glTexCoordPointer GLint *size = (GLint *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; GLsizei *stride = (GLsizei *) bp; bp += 4; - GLvoid *pointer = (GLvoid *) bins[0]->base; + GLvoid *pointer = (GLvoid *) bins[0]; weglTexCoordPointer(*size,*type,*stride,pointer); }; break; case 5276: { // glTexEnvf @@ -2091,7 +2070,7 @@ case 5287: { // glTexImage1D GLint *border = (GLint *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLvoid *pixels = (GLvoid *) bins[0]->base; + GLvoid *pixels = (GLvoid *) bins[0]; weglTexImage1D(*target,*level,*internalformat,*width,*border,*format,*type,pixels); }; break; case 5288: { // glTexImage2D @@ -2115,7 +2094,7 @@ case 5289: { // glTexImage2D GLint *border = (GLint *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLvoid *pixels = (GLvoid *) bins[0]->base; + GLvoid *pixels = (GLvoid *) bins[0]; weglTexImage2D(*target,*level,*internalformat,*width,*height,*border,*format,*type,pixels); }; break; case 5290: { // glTexParameterf @@ -2161,7 +2140,7 @@ case 5295: { // glTexSubImage1D GLsizei *width = (GLsizei *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLvoid *pixels = (GLvoid *) bins[0]->base; + GLvoid *pixels = (GLvoid *) bins[0]; weglTexSubImage1D(*target,*level,*xoffset,*width,*format,*type,pixels); }; break; case 5296: { // glTexSubImage2D @@ -2185,7 +2164,7 @@ case 5297: { // glTexSubImage2D GLsizei *height = (GLsizei *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLvoid *pixels = (GLvoid *) bins[0]->base; + GLvoid *pixels = (GLvoid *) bins[0]; weglTexSubImage2D(*target,*level,*xoffset,*yoffset,*width,*height,*format,*type,pixels); }; break; case 5298: { // glTranslated @@ -2259,7 +2238,7 @@ case 5313: { // glVertexPointer GLint *size = (GLint *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; GLsizei *stride = (GLsizei *) bp; bp += 4; - GLvoid *pointer = (GLvoid *) bins[0]->base; + GLvoid *pointer = (GLvoid *) bins[0]; weglVertexPointer(*size,*type,*stride,pointer); }; break; case 5314: { // glViewport @@ -2295,7 +2274,7 @@ case 5318: { // glDrawRangeElements GLuint *end = (GLuint *) bp; bp += 4; GLsizei *count = (GLsizei *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLvoid *indices = (GLvoid *) bins[0]->base; + GLvoid *indices = (GLvoid *) bins[0]; weglDrawRangeElements(*mode,*start,*end,*count,*type,indices); }; break; case 5319: { // glTexImage3D @@ -2321,7 +2300,7 @@ case 5320: { // glTexImage3D GLint *border = (GLint *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLvoid *pixels = (GLvoid *) bins[0]->base; + GLvoid *pixels = (GLvoid *) bins[0]; weglTexImage3D(*target,*level,*internalformat,*width,*height,*depth,*border,*format,*type,pixels); }; break; case 5321: { // glTexSubImage3D @@ -2349,7 +2328,7 @@ case 5322: { // glTexSubImage3D GLsizei *depth = (GLsizei *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLvoid *pixels = (GLvoid *) bins[0]->base; + GLvoid *pixels = (GLvoid *) bins[0]; weglTexSubImage3D(*target,*level,*xoffset,*yoffset,*zoffset,*width,*height,*depth,*format,*type,pixels); }; break; case 5323: { // glCopyTexSubImage3D @@ -2379,7 +2358,7 @@ case 5325: { // glColorTable GLsizei *width = (GLsizei *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLvoid *table = (GLvoid *) bins[0]->base; + GLvoid *table = (GLvoid *) bins[0]; weglColorTable(*target,*internalformat,*width,*format,*type,table); }; break; case 5326: { // glColorTableParameterfv @@ -2406,13 +2385,13 @@ case 5329: { // glGetColorTable GLenum *target = (GLenum *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLvoid *table = (GLvoid *) bins[0]->base; + GLvoid *table = (GLvoid *) bins[0]; weglGetColorTable(*target,*format,*type,table); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "ok"); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5330: { // glGetColorTableParameterfv GLenum *target = (GLenum *) bp; bp += 4; @@ -2430,7 +2409,7 @@ case 5330: { // glGetColorTableParameterfv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5331: { // glGetColorTableParameteriv GLenum *target = (GLenum *) bp; bp += 4; @@ -2447,7 +2426,7 @@ case 5331: { // glGetColorTableParameteriv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5332: { // glColorSubTable GLenum *target = (GLenum *) bp; bp += 4; @@ -2464,7 +2443,7 @@ case 5333: { // glColorSubTable GLsizei *count = (GLsizei *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLvoid *data = (GLvoid *) bins[0]->base; + GLvoid *data = (GLvoid *) bins[0]; weglColorSubTable(*target,*start,*count,*format,*type,data); }; break; case 5334: { // glCopyColorSubTable @@ -2490,7 +2469,7 @@ case 5336: { // glConvolutionFilter1D GLsizei *width = (GLsizei *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLvoid *image = (GLvoid *) bins[0]->base; + GLvoid *image = (GLvoid *) bins[0]; weglConvolutionFilter1D(*target,*internalformat,*width,*format,*type,image); }; break; case 5337: { // glConvolutionFilter2D @@ -2510,7 +2489,7 @@ case 5338: { // glConvolutionFilter2D GLsizei *height = (GLsizei *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLvoid *image = (GLvoid *) bins[0]->base; + GLvoid *image = (GLvoid *) bins[0]; weglConvolutionFilter2D(*target,*internalformat,*width,*height,*format,*type,image); }; break; case 5339: { // glConvolutionParameterfv @@ -2548,13 +2527,13 @@ case 5343: { // glGetConvolutionFilter GLenum *target = (GLenum *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLvoid *image = (GLvoid *) bins[0]->base; + GLvoid *image = (GLvoid *) bins[0]; weglGetConvolutionFilter(*target,*format,*type,image); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "ok"); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5344: { // glGetConvolutionParameterfv GLenum *target = (GLenum *) bp; bp += 4; @@ -2572,7 +2551,7 @@ case 5344: { // glGetConvolutionParameterfv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5345: { // glGetConvolutionParameteriv GLenum *target = (GLenum *) bp; bp += 4; @@ -2589,7 +2568,7 @@ case 5345: { // glGetConvolutionParameteriv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5346: { // glSeparableFilter2D GLenum *target = (GLenum *) bp; bp += 4; @@ -2609,8 +2588,8 @@ case 5347: { // glSeparableFilter2D GLsizei *height = (GLsizei *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLvoid *row = (GLvoid *) bins[0]->base; - GLvoid *column = (GLvoid *) bins[1]->base; + GLvoid *row = (GLvoid *) bins[0]; + GLvoid *column = (GLvoid *) bins[1]; weglSeparableFilter2D(*target,*internalformat,*width,*height,*format,*type,row,column); }; break; case 5348: { // glGetHistogram @@ -2619,13 +2598,13 @@ case 5348: { // glGetHistogram bp += 3; GLenum *format = (GLenum *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLvoid *values = (GLvoid *) bins[0]->base; + GLvoid *values = (GLvoid *) bins[0]; weglGetHistogram(*target,*reset,*format,*type,values); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "ok"); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5349: { // glGetHistogramParameterfv GLenum *target = (GLenum *) bp; bp += 4; @@ -2640,7 +2619,7 @@ case 5349: { // glGetHistogramParameterfv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 8 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,8); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5350: { // glGetHistogramParameteriv GLenum *target = (GLenum *) bp; bp += 4; @@ -2654,7 +2633,7 @@ case 5350: { // glGetHistogramParameteriv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 8 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,8); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5351: { // glGetMinmax GLenum *target = (GLenum *) bp; bp += 4; @@ -2662,13 +2641,13 @@ case 5351: { // glGetMinmax bp += 3; GLenum *format = (GLenum *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLvoid *values = (GLvoid *) bins[0]->base; + GLvoid *values = (GLvoid *) bins[0]; weglGetMinmax(*target,*reset,*format,*type,values); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "ok"); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5352: { // glGetMinmaxParameterfv GLenum *target = (GLenum *) bp; bp += 4; @@ -2683,7 +2662,7 @@ case 5352: { // glGetMinmaxParameterfv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 8 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,8); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5353: { // glGetMinmaxParameteriv GLenum *target = (GLenum *) bp; bp += 4; @@ -2697,7 +2676,7 @@ case 5353: { // glGetMinmaxParameteriv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 8 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,8); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5354: { // glHistogram GLenum *target = (GLenum *) bp; bp += 4; @@ -2750,7 +2729,7 @@ case 5361: { // glCompressedTexImage3D GLsizei *depth = (GLsizei *) bp; bp += 4; GLint *border = (GLint *) bp; bp += 4; GLsizei *imageSize = (GLsizei *) bp; bp += 4; - GLvoid *data = (GLvoid *) bins[0]->base; + GLvoid *data = (GLvoid *) bins[0]; weglCompressedTexImage3D(*target,*level,*internalformat,*width,*height,*depth,*border,*imageSize,data); }; break; case 5362: { // glCompressedTexImage2D @@ -2772,7 +2751,7 @@ case 5363: { // glCompressedTexImage2D GLsizei *height = (GLsizei *) bp; bp += 4; GLint *border = (GLint *) bp; bp += 4; GLsizei *imageSize = (GLsizei *) bp; bp += 4; - GLvoid *data = (GLvoid *) bins[0]->base; + GLvoid *data = (GLvoid *) bins[0]; weglCompressedTexImage2D(*target,*level,*internalformat,*width,*height,*border,*imageSize,data); }; break; case 5364: { // glCompressedTexImage1D @@ -2792,7 +2771,7 @@ case 5365: { // glCompressedTexImage1D GLsizei *width = (GLsizei *) bp; bp += 4; GLint *border = (GLint *) bp; bp += 4; GLsizei *imageSize = (GLsizei *) bp; bp += 4; - GLvoid *data = (GLvoid *) bins[0]->base; + GLvoid *data = (GLvoid *) bins[0]; weglCompressedTexImage1D(*target,*level,*internalformat,*width,*border,*imageSize,data); }; break; case 5366: { // glCompressedTexSubImage3D @@ -2820,7 +2799,7 @@ case 5367: { // glCompressedTexSubImage3D GLsizei *depth = (GLsizei *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLsizei *imageSize = (GLsizei *) bp; bp += 4; - GLvoid *data = (GLvoid *) bins[0]->base; + GLvoid *data = (GLvoid *) bins[0]; weglCompressedTexSubImage3D(*target,*level,*xoffset,*yoffset,*zoffset,*width,*height,*depth,*format,*imageSize,data); }; break; case 5368: { // glCompressedTexSubImage2D @@ -2844,7 +2823,7 @@ case 5369: { // glCompressedTexSubImage2D GLsizei *height = (GLsizei *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLsizei *imageSize = (GLsizei *) bp; bp += 4; - GLvoid *data = (GLvoid *) bins[0]->base; + GLvoid *data = (GLvoid *) bins[0]; weglCompressedTexSubImage2D(*target,*level,*xoffset,*yoffset,*width,*height,*format,*imageSize,data); }; break; case 5370: { // glCompressedTexSubImage1D @@ -2864,19 +2843,19 @@ case 5371: { // glCompressedTexSubImage1D GLsizei *width = (GLsizei *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLsizei *imageSize = (GLsizei *) bp; bp += 4; - GLvoid *data = (GLvoid *) bins[0]->base; + GLvoid *data = (GLvoid *) bins[0]; weglCompressedTexSubImage1D(*target,*level,*xoffset,*width,*format,*imageSize,data); }; break; case 5372: { // glGetCompressedTexImage GLenum *target = (GLenum *) bp; bp += 4; GLint *level = (GLint *) bp; bp += 4; - GLvoid *img = (GLvoid *) bins[0]->base; + GLvoid *img = (GLvoid *) bins[0]; weglGetCompressedTexImage(*target,*level,img); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "ok"); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5373: { // glClientActiveTexture GLenum *texture = (GLenum *) bp; bp += 4; @@ -3036,7 +3015,7 @@ case 5402: { // glFogCoordPointer case 5403: { // glFogCoordPointer GLenum *type = (GLenum *) bp; bp += 4; GLsizei *stride = (GLsizei *) bp; bp += 4; - GLvoid *pointer = (GLvoid *) bins[0]->base; + GLvoid *pointer = (GLvoid *) bins[0]; weglFogCoordPointer(*type,*stride,pointer); }; break; case 5404: { // glSecondaryColor3bv @@ -3082,7 +3061,7 @@ case 5413: { // glSecondaryColorPointer GLint *size = (GLint *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; GLsizei *stride = (GLsizei *) bp; bp += 4; - GLvoid *pointer = (GLvoid *) bins[0]->base; + GLvoid *pointer = (GLvoid *) bins[0]; weglSecondaryColorPointer(*size,*type,*stride,pointer); }; break; case 5414: { // glWindowPos2dv @@ -3130,7 +3109,7 @@ case 5422: { // glGenQueries rt[AP++] = ERL_DRV_NIL; rt[AP++] = ERL_DRV_LIST; rt[AP++] = (*n)+1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 + (*n)*2 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7 + (*n)*2); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(rt); driver_free(ids); }; break; @@ -3147,7 +3126,7 @@ case 5424: { // glIsQuery rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5425: { // glBeginQuery GLenum *target = (GLenum *) bp; bp += 4; @@ -3168,7 +3147,7 @@ case 5427: { // glGetQueryiv rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) *params; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5428: { // glGetQueryObjectiv GLuint *id = (GLuint *) bp; bp += 4; @@ -3180,7 +3159,7 @@ case 5428: { // glGetQueryObjectiv rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) *params; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5429: { // glGetQueryObjectuiv GLuint *id = (GLuint *) bp; bp += 4; @@ -3192,7 +3171,7 @@ case 5429: { // glGetQueryObjectuiv rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) *params; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5430: { // glBindBuffer GLenum *target = (GLenum *) bp; bp += 4; @@ -3217,7 +3196,7 @@ case 5432: { // glGenBuffers rt[AP++] = ERL_DRV_NIL; rt[AP++] = ERL_DRV_LIST; rt[AP++] = (*n)+1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 + (*n)*2 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7 + (*n)*2); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(rt); driver_free(buffers); }; break; @@ -3229,7 +3208,7 @@ case 5433: { // glIsBuffer rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5434: { // glBufferData GLenum *target = (GLenum *) bp; bp += 4; @@ -3243,7 +3222,7 @@ case 5435: { // glBufferData GLenum *target = (GLenum *) bp; bp += 4; bp += 4; GLsizeiptr size = (GLsizeiptr) * (GLuint64EXT *) bp; bp += 8; - GLvoid *data = (GLvoid *) bins[0]->base; + GLvoid *data = (GLvoid *) bins[0]; GLenum *usage = (GLenum *) bp; bp += 4; weglBufferData(*target,size,data,*usage); }; break; @@ -3260,7 +3239,7 @@ case 5437: { // glBufferSubData bp += 4; GLintptr offset = (GLintptr) * (GLuint64EXT *) bp; bp += 8; GLsizeiptr size = (GLsizeiptr) * (GLuint64EXT *) bp; bp += 8; - GLvoid *data = (GLvoid *) bins[0]->base; + GLvoid *data = (GLvoid *) bins[0]; weglBufferSubData(*target,offset,size,data); }; break; case 5438: { // glGetBufferSubData @@ -3268,13 +3247,13 @@ case 5438: { // glGetBufferSubData bp += 4; GLintptr offset = (GLintptr) * (GLuint64EXT *) bp; bp += 8; GLsizeiptr size = (GLsizeiptr) * (GLuint64EXT *) bp; bp += 8; - GLvoid *data = (GLvoid *) bins[0]->base; + GLvoid *data = (GLvoid *) bins[0]; weglGetBufferSubData(*target,offset,size,data); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "ok"); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5439: { // glGetBufferParameteriv GLenum *target = (GLenum *) bp; bp += 4; @@ -3286,7 +3265,7 @@ case 5439: { // glGetBufferParameteriv rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) *params; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5440: { // glBlendEquationSeparate GLenum *modeRGB = (GLenum *) bp; bp += 4; @@ -3340,7 +3319,7 @@ case 5448: { // glCreateProgram rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5449: { // glCreateShader GLenum *type = (GLenum *) bp; bp += 4; @@ -3350,7 +3329,7 @@ case 5449: { // glCreateShader rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5450: { // glDeleteProgram GLuint *program = (GLuint *) bp; bp += 4; @@ -3391,7 +3370,7 @@ case 5455: { // glGetActiveAttrib rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 3; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 13 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,13); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(name); }; break; case 5456: { // glGetActiveUniform @@ -3412,7 +3391,7 @@ case 5456: { // glGetActiveUniform rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 3; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 13 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,13); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(name); }; break; case 5457: { // glGetAttachedShaders @@ -3430,7 +3409,7 @@ case 5457: { // glGetAttachedShaders rt[AP++] = ERL_DRV_NIL; rt[AP++] = ERL_DRV_LIST; rt[AP++] = (*count)+1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 + (*count)*2 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7 + (*count)*2); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(rt); driver_free(obj); }; break; @@ -3444,7 +3423,7 @@ case 5458: { // glGetAttribLocation rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5459: { // glGetProgramiv GLuint *program = (GLuint *) bp; bp += 4; @@ -3456,7 +3435,7 @@ case 5459: { // glGetProgramiv rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) *params; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5460: { // glGetProgramInfoLog GLuint *program = (GLuint *) bp; bp += 4; @@ -3470,7 +3449,7 @@ case 5460: { // glGetProgramInfoLog rt[AP++] = ERL_DRV_STRING; rt[AP++] = (ErlDrvTermData) infoLog; rt[AP++] = *length; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(infoLog); }; break; case 5461: { // glGetShaderiv @@ -3483,7 +3462,7 @@ case 5461: { // glGetShaderiv rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) *params; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5462: { // glGetShaderInfoLog GLuint *shader = (GLuint *) bp; bp += 4; @@ -3497,7 +3476,7 @@ case 5462: { // glGetShaderInfoLog rt[AP++] = ERL_DRV_STRING; rt[AP++] = (ErlDrvTermData) infoLog; rt[AP++] = *length; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(infoLog); }; break; case 5463: { // glGetShaderSource @@ -3512,7 +3491,7 @@ case 5463: { // glGetShaderSource rt[AP++] = ERL_DRV_STRING; rt[AP++] = (ErlDrvTermData) source; rt[AP++] = *length; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(source); }; break; case 5464: { // glGetUniformLocation @@ -3525,7 +3504,7 @@ case 5464: { // glGetUniformLocation rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5465: { // glGetUniformfv GLuint *program = (GLuint *) bp; bp += 4; @@ -3555,7 +3534,7 @@ case 5465: { // glGetUniformfv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 16; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 38 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,38); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5466: { // glGetUniformiv GLuint *program = (GLuint *) bp; bp += 4; @@ -3584,7 +3563,7 @@ case 5466: { // glGetUniformiv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 16; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 38 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,38); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5467: { // glGetVertexAttribdv GLuint *index = (GLuint *) bp; bp += 4; @@ -3601,7 +3580,7 @@ case 5467: { // glGetVertexAttribdv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5468: { // glGetVertexAttribfv GLuint *index = (GLuint *) bp; bp += 4; @@ -3619,7 +3598,7 @@ case 5468: { // glGetVertexAttribfv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5469: { // glGetVertexAttribiv GLuint *index = (GLuint *) bp; bp += 4; @@ -3636,7 +3615,7 @@ case 5469: { // glGetVertexAttribiv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5470: { // glIsProgram GLuint *program = (GLuint *) bp; bp += 4; @@ -3646,7 +3625,7 @@ case 5470: { // glIsProgram rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5471: { // glIsShader GLuint *shader = (GLuint *) bp; bp += 4; @@ -3656,7 +3635,7 @@ case 5471: { // glIsShader rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5472: { // glLinkProgram GLuint *program = (GLuint *) bp; bp += 4; @@ -3942,7 +3921,7 @@ case 5519: { // glVertexAttribPointer GLboolean *normalized = (GLboolean *) bp; bp += 1; bp += 3; GLsizei *stride = (GLsizei *) bp; bp += 4; - GLvoid *pointer = (GLvoid *) bins[0]->base; + GLvoid *pointer = (GLvoid *) bins[0]; weglVertexAttribPointer(*index,*size,*type,*normalized,*stride,pointer); }; break; case 5520: { // glUniformMatrix2x3fv @@ -4028,7 +4007,7 @@ case 5527: { // glGetBooleani_v rt[AP++] = ERL_DRV_NIL; rt[AP++] = ERL_DRV_LIST; rt[AP++] = 16+1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 39 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,39); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5528: { // glGetIntegeri_v GLenum *target = (GLenum *) bp; bp += 4; @@ -4057,7 +4036,7 @@ case 5528: { // glGetIntegeri_v rt[AP++] = ERL_DRV_NIL; rt[AP++] = ERL_DRV_LIST; rt[AP++] = 16+1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 39 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,39); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5529: { // glEnablei GLenum *target = (GLenum *) bp; bp += 4; @@ -4078,7 +4057,7 @@ case 5531: { // glIsEnabledi rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5532: { // glBeginTransformFeedback GLenum *primitiveMode = (GLenum *) bp; bp += 4; @@ -4133,7 +4112,7 @@ case 5537: { // glGetTransformFeedbackVarying rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 3; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 13 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,13); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(name); }; break; case 5538: { // glClampColor @@ -4162,7 +4141,7 @@ case 5542: { // glVertexAttribIPointer GLint *size = (GLint *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; GLsizei *stride = (GLsizei *) bp; bp += 4; - GLvoid *pointer = (GLvoid *) bins[0]->base; + GLvoid *pointer = (GLvoid *) bins[0]; weglVertexAttribIPointer(*index,*size,*type,*stride,pointer); }; break; case 5543: { // glGetVertexAttribIiv @@ -4180,7 +4159,7 @@ case 5543: { // glGetVertexAttribIiv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5544: { // glGetVertexAttribIuiv GLuint *index = (GLuint *) bp; bp += 4; @@ -4197,7 +4176,7 @@ case 5544: { // glGetVertexAttribIuiv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5545: { // glGetUniformuiv GLuint *program = (GLuint *) bp; bp += 4; @@ -4226,7 +4205,7 @@ case 5545: { // glGetUniformuiv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 16; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 38 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,38); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5546: { // glBindFragDataLocation GLuint *program = (GLuint *) bp; bp += 4; @@ -4245,7 +4224,7 @@ case 5547: { // glGetFragDataLocation rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5548: { // glUniform1ui GLint *location = (GLint *) bp; bp += 4; @@ -4326,7 +4305,7 @@ case 5558: { // glGetTexParameterIiv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5559: { // glGetTexParameterIuiv GLenum *target = (GLenum *) bp; bp += 4; @@ -4343,7 +4322,7 @@ case 5559: { // glGetTexParameterIuiv rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5560: { // glClearBufferiv GLenum *buffer = (GLenum *) bp; bp += 4; @@ -4382,7 +4361,7 @@ case 5564: { // glGetStringi rt[AP++] = ERL_DRV_STRING; rt[AP++] = (ErlDrvTermData) result; rt[AP++] = strlen((char *) result); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5565: { // glVertexAttribI1iv GLuint *index = (GLuint *) bp; bp += 4; @@ -4463,7 +4442,7 @@ case 5579: { // glDrawElementsInstanced GLenum *mode = (GLenum *) bp; bp += 4; GLsizei *count = (GLsizei *) bp; bp += 4; GLenum *type = (GLenum *) bp; bp += 4; - GLvoid *indices = (GLvoid *) bins[0]->base; + GLvoid *indices = (GLvoid *) bins[0]; GLsizei *primcount = (GLsizei *) bp; bp += 4; weglDrawElementsInstanced(*mode,*count,*type,indices,*primcount); }; break; @@ -4586,7 +4565,7 @@ case 5602: { // glGenProgramsARB rt[AP++] = ERL_DRV_NIL; rt[AP++] = ERL_DRV_LIST; rt[AP++] = (*n)+1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 + (*n)*2 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7 + (*n)*2); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(rt); driver_free(programs); }; break; @@ -4665,7 +4644,7 @@ case 5611: { // glGetProgramEnvParameterdvARB rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5612: { // glGetProgramEnvParameterfvARB GLenum *target = (GLenum *) bp; bp += 4; @@ -4683,7 +4662,7 @@ case 5612: { // glGetProgramEnvParameterfvARB rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5613: { // glGetProgramLocalParameterdvARB GLenum *target = (GLenum *) bp; bp += 4; @@ -4700,7 +4679,7 @@ case 5613: { // glGetProgramLocalParameterdvARB rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5614: { // glGetProgramLocalParameterfvARB GLenum *target = (GLenum *) bp; bp += 4; @@ -4718,18 +4697,18 @@ case 5614: { // glGetProgramLocalParameterfvARB rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 4; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 14 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,14); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5615: { // glGetProgramStringARB GLenum *target = (GLenum *) bp; bp += 4; GLenum *pname = (GLenum *) bp; bp += 4; - GLvoid *string = (GLvoid *) bins[0]->base; + GLvoid *string = (GLvoid *) bins[0]; weglGetProgramStringARB(*target,*pname,string); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "ok"); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5616: { // glDeleteObjectARB GLhandleARB obj = (GLhandleARB) * (GLuint64EXT *) bp; bp += 8; @@ -4743,7 +4722,7 @@ case 5617: { // glGetHandleARB rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5618: { // glDetachObjectARB GLhandleARB containerObj = (GLhandleARB) * (GLuint64EXT *) bp; bp += 8; @@ -4758,7 +4737,7 @@ case 5619: { // glCreateShaderObjectARB rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5620: { // glShaderSourceARB GLhandleARB shaderObj = (GLhandleARB) * (GLuint64EXT *) bp; bp += 8; @@ -4783,7 +4762,7 @@ case 5622: { // glCreateProgramObjectARB rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5623: { // glAttachObjectARB GLhandleARB containerObj = (GLhandleARB) * (GLuint64EXT *) bp; bp += 8; @@ -4813,7 +4792,7 @@ case 5627: { // glGetObjectParameterfvARB rt[AP++] = ERL_DRV_FLOAT; rt[AP++] = (ErlDrvTermData) ¶msConv; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5628: { // glGetObjectParameterivARB GLhandleARB obj = (GLhandleARB) * (GLuint64EXT *) bp; bp += 8; @@ -4825,7 +4804,7 @@ case 5628: { // glGetObjectParameterivARB rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) *params; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5629: { // glGetInfoLogARB GLhandleARB obj = (GLhandleARB) * (GLuint64EXT *) bp; bp += 8; @@ -4839,7 +4818,7 @@ case 5629: { // glGetInfoLogARB rt[AP++] = ERL_DRV_STRING; rt[AP++] = (ErlDrvTermData) infoLog; rt[AP++] = *length; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(infoLog); }; break; case 5630: { // glGetAttachedObjectsARB @@ -4857,7 +4836,7 @@ case 5630: { // glGetAttachedObjectsARB rt[AP++] = ERL_DRV_NIL; rt[AP++] = ERL_DRV_LIST; rt[AP++] = (*count)+1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 + (*count)*2 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7 + (*count)*2); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(rt); driver_free(obj); }; break; @@ -4871,7 +4850,7 @@ case 5631: { // glGetUniformLocationARB rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5632: { // glGetActiveUniformARB GLhandleARB programObj = (GLhandleARB) * (GLuint64EXT *) bp; bp += 8; @@ -4891,7 +4870,7 @@ case 5632: { // glGetActiveUniformARB rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 3; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 13 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,13); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(name); }; break; case 5633: { // glGetUniformfvARB @@ -4922,7 +4901,7 @@ case 5633: { // glGetUniformfvARB rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 16; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 38 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,38); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5634: { // glGetUniformivARB GLhandleARB programObj = (GLhandleARB) * (GLuint64EXT *) bp; bp += 8; @@ -4951,7 +4930,7 @@ case 5634: { // glGetUniformivARB rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 16; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 38 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,38); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5635: { // glGetShaderSourceARB GLhandleARB obj = (GLhandleARB) * (GLuint64EXT *) bp; bp += 8; @@ -4965,7 +4944,7 @@ case 5635: { // glGetShaderSourceARB rt[AP++] = ERL_DRV_STRING; rt[AP++] = (ErlDrvTermData) source; rt[AP++] = *length; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(source); }; break; case 5636: { // glBindAttribLocationARB @@ -4993,7 +4972,7 @@ case 5637: { // glGetActiveAttribARB rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 3; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 13 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,13); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(name); }; break; case 5638: { // glGetAttribLocationARB @@ -5006,7 +4985,7 @@ case 5638: { // glGetAttribLocationARB rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5639: { // glIsRenderbuffer GLuint *renderbuffer = (GLuint *) bp; bp += 4; @@ -5016,7 +4995,7 @@ case 5639: { // glIsRenderbuffer rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5640: { // glBindRenderbuffer GLenum *target = (GLenum *) bp; bp += 4; @@ -5041,7 +5020,7 @@ case 5642: { // glGenRenderbuffers rt[AP++] = ERL_DRV_NIL; rt[AP++] = ERL_DRV_LIST; rt[AP++] = (*n)+1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 + (*n)*2 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7 + (*n)*2); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(rt); driver_free(renderbuffers); }; break; @@ -5062,7 +5041,7 @@ case 5644: { // glGetRenderbufferParameteriv rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) *params; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5645: { // glIsFramebuffer GLuint *framebuffer = (GLuint *) bp; bp += 4; @@ -5072,7 +5051,7 @@ case 5645: { // glIsFramebuffer rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5646: { // glBindFramebuffer GLenum *target = (GLenum *) bp; bp += 4; @@ -5097,7 +5076,7 @@ case 5648: { // glGenFramebuffers rt[AP++] = ERL_DRV_NIL; rt[AP++] = ERL_DRV_LIST; rt[AP++] = (*n)+1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 + (*n)*2 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7 + (*n)*2); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(rt); driver_free(framebuffers); }; break; @@ -5109,7 +5088,7 @@ case 5649: { // glCheckFramebufferStatus rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5650: { // glFramebufferTexture1D GLenum *target = (GLenum *) bp; bp += 4; @@ -5154,7 +5133,7 @@ case 5654: { // glGetFramebufferAttachmentParameteriv rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) *params; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5655: { // glGenerateMipmap GLenum *target = (GLenum *) bp; bp += 4; @@ -5244,7 +5223,7 @@ case 5666: { // glGenVertexArrays rt[AP++] = ERL_DRV_NIL; rt[AP++] = ERL_DRV_LIST; rt[AP++] = (*n)+1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 + (*n)*2 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7 + (*n)*2); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(rt); driver_free(arrays); }; break; @@ -5256,7 +5235,7 @@ case 5667: { // glIsVertexArray rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5668: { // glGetUniformIndices GLuint *program = (GLuint *) bp; bp += 4; @@ -5278,7 +5257,7 @@ case 5668: { // glGetUniformIndices rt[AP++] = ERL_DRV_NIL; rt[AP++] = ERL_DRV_LIST; rt[AP++] = (*uniformNamesLen)+1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 + (*uniformNamesLen)*2 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7 + (*uniformNamesLen)*2); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(rt); driver_free(uniformIndices); driver_free(uniformNames); @@ -5299,7 +5278,7 @@ case 5669: { // glGetActiveUniformsiv rt[AP++] = ERL_DRV_NIL; rt[AP++] = ERL_DRV_LIST; rt[AP++] = (*uniformIndicesLen)+1; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 + (*uniformIndicesLen)*2 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7 + (*uniformIndicesLen)*2); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(rt); driver_free(params); }; break; @@ -5316,7 +5295,7 @@ case 5670: { // glGetActiveUniformName rt[AP++] = ERL_DRV_STRING; rt[AP++] = (ErlDrvTermData) uniformName; rt[AP++] = *length; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(uniformName); }; break; case 5671: { // glGetUniformBlockIndex @@ -5329,19 +5308,19 @@ case 5671: { // glGetUniformBlockIndex rt[AP++] = ERL_DRV_INT; rt[AP++] = (ErlDrvSInt) result; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 6 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,6); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5672: { // glGetActiveUniformBlockiv GLuint *program = (GLuint *) bp; bp += 4; GLuint *uniformBlockIndex = (GLuint *) bp; bp += 4; GLenum *pname = (GLenum *) bp; bp += 4; - GLint *params = (GLint *) bins[0]->base; + GLint *params = (GLint *) bins[0]; weglGetActiveUniformBlockiv(*program,*uniformBlockIndex,*pname,params); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "ok"); rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); }; break; case 5673: { // glGetActiveUniformBlockName GLuint *program = (GLuint *) bp; bp += 4; @@ -5356,7 +5335,7 @@ case 5673: { // glGetActiveUniformBlockName rt[AP++] = ERL_DRV_STRING; rt[AP++] = (ErlDrvTermData) uniformBlockName; rt[AP++] = *length; rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; if (AP != 7 ) fprintf(stderr, "%d: ERROR AP mismatch %d %d\r\n",__LINE__,AP,7); - driver_send_term(WXE_DRV_PORT,caller,rt,AP); + driver_send_term(port,caller,rt,AP); driver_free(uniformBlockName); }; break; case 5674: { // glUniformBlockBinding diff --git a/lib/wx/c_src/gen/wxe_funcs.cpp b/lib/wx/c_src/gen/wxe_funcs.cpp index 8c056bbb91..479d7679a4 100644 --- a/lib/wx/c_src/gen/wxe_funcs.cpp +++ b/lib/wx/c_src/gen/wxe_funcs.cpp @@ -23,6 +23,7 @@ #include "../wxe_impl.h" #include "../wxe_events.h" #include "../wxe_return.h" +#include "../wxe_gl.h" #include "wxe_macros.h" #include "wxe_derived_dest.h" @@ -43,6 +44,15 @@ void WxeApp::wxe_dispatch(wxeCommand& Ecmd) rt.addAtom("ok"); break; } + case WXE_BIN_INCR: + driver_binary_inc_refc(Ecmd.bin[0]->bin); + break; + case WXE_BIN_DECR: + driver_binary_dec_refc(Ecmd.bin[0]->bin); + break; + case WXE_INIT_OPENGL: + wxe_initOpenGL(rt, bp); + break; case 98: { // wxeEvtListener::wxeEvtListener wxeEvtListener *Result = new wxeEvtListener(Ecmd.port); rt.addRef(getRef((void *)Result,memenv), "wxeEvtListener"); diff --git a/lib/wx/c_src/wxe_driver.h b/lib/wx/c_src/wxe_driver.h index 13a17e356f..5c5b8614ed 100644 --- a/lib/wx/c_src/wxe_driver.h +++ b/lib/wx/c_src/wxe_driver.h @@ -83,8 +83,9 @@ extern char * erl_wx_privdir; #define WXE_CB_START 8 #define WXE_DEBUG_DRIVER 9 #define WXE_DEBUG_PING 10 -#define WXE_BIN_INCR 5001 -#define WXE_BIN_DECR 5002 +#define WXE_BIN_INCR 11 +#define WXE_BIN_DECR 12 +#define WXE_INIT_OPENGL 13 #define OPENGL_START 5000 diff --git a/lib/wx/c_src/wxe_gl.cpp b/lib/wx/c_src/wxe_gl.cpp index 63dd68fa5e..eb4462047f 100644 --- a/lib/wx/c_src/wxe_gl.cpp +++ b/lib/wx/c_src/wxe_gl.cpp @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 2008-2009. All Rights Reserved. + * Copyright Ericsson AB 2008-2010. All Rights Reserved. * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in @@ -19,303 +19,104 @@ #include #include +#include #include "wxe_impl.h" - -#include "wxe_gl.h" +#include "wxe_return.h" #define WX_DEF_EXTS -#include "gen/gl_fdefs.h" -#include "gen/gl_finit.h" -#include "gen/glu_finit.h" /* **************************************************************************** * Opengl context management * * ****************************************************************************/ -int gl_initiated = FALSE; +int erl_gl_initiated = FALSE; ErlDrvTermData gl_active = 0; wxeGLC glc; -void setActiveGL(ErlDrvTermData caller, wxGLCanvas *canvas) -{ - if(gl_initiated == FALSE) { - initOpenGL(); - init_tess(); - gl_initiated = TRUE; - } - gl_active = caller; - glc[caller] = canvas; -} - -void deleteActiveGL(wxGLCanvas *canvas) -{ - gl_active = 0; - wxeGLC::iterator it; - for(it = glc.begin(); it != glc.end(); ++it) { - if(it->second == canvas) { - it->second = (wxGLCanvas *) 0; - } - } -} - -/* **************************************************************************** - * OPENGL INITIALIZATION - *****************************************************************************/ +typedef void (*WXE_GL_DISPATCH) (int, char *, ErlDrvPort, ErlDrvTermData, char **); +WXE_GL_DISPATCH wxe_gl_dispatch; #ifdef _WIN32 void * dlsym(HMODULE Lib, const char *func) { - void * funcp; - if((funcp = (void *) GetProcAddress(Lib, func))) - return funcp; - else - return (void *) wglGetProcAddress(func); + funcp = (void *) GetProcAddress(Lib, func); + return funcp; } #endif -int initOpenGL() -{ -#ifdef _MACOSX - char * DLName = "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib"; - void * LIBhandle = dlopen(DLName, RTLD_LAZY); -#elif defined(_WIN32) - WCHAR * DLName = wxT("opengl32.dll"); - HMODULE LIBhandle = LoadLibrary(DLName); -#else - char * DLName = (char *) "libGL.so"; - void * LIBhandle = dlopen(DLName, RTLD_LAZY); -#endif - // fprintf(stderr, "Loading GL: %s\r\n", (const char*)DLName); - void * func = NULL; - int i; - - if(LIBhandle) { - for(i=0; gl_fns[i].name != NULL; i++) { - if((func = dlsym(LIBhandle, gl_fns[i].name))) { - * (void **) (gl_fns[i].func) = func; - // fprintf(stderr, "GL LOADED %s \r\n", gl_fns[i].name); - } else { - if(gl_fns[i].alt != NULL) { - if((func = dlsym(LIBhandle, gl_fns[i].alt))) { - * (void **) (gl_fns[i].func) = func; - // fprintf(stderr, "GL LOADED %s \r\n", gl_fns[i].alt); - } else { - * (void **) (gl_fns[i].func) = (void *) &gl_error; - // fprintf(stderr, "GL Skipped %s and %s \r\n", gl_fns[i].name, gl_fns[i].alt); - }; +void wxe_initOpenGL(wxeReturn rt, char *bp) { + void * LIBhandle; + int (*init_opengl) (); + + if(erl_gl_initiated == FALSE) { + if((LIBhandle = dlopen(bp, RTLD_LAZY))) { + *(void **) (&init_opengl) = dlsym(LIBhandle, "egl_init_opengl"); + wxe_gl_dispatch = (WXE_GL_DISPATCH) dlsym(LIBhandle, "egl_dispatch"); + if(init_opengl && wxe_gl_dispatch) { + (*init_opengl)(); + rt.addAtom((char *) "ok"); + rt.add(wxString::FromAscii("initiated")); + rt.addTupleCount(2); + erl_gl_initiated = TRUE; } else { - * (void **) (gl_fns[i].func) = (void *) &gl_error; - // fprintf(stderr, "GL Skipped %s \r\n", gl_fns[i].name); + wxString msg; + msg.Printf(wxT("In library: ")); + msg += wxString::FromAscii(bp); + msg += wxT(" functions: "); + if(!init_opengl) + msg += wxT("egl_init_opengl "); + if(!wxe_gl_dispatch) + msg += wxT("egl_dispatch "); + rt.addAtom((char *) "error"); + rt.add(msg); + rt.addTupleCount(2); } - } } -#ifdef _WIN32 - FreeLibrary(LIBhandle); -#else - dlclose(LIBhandle); -#endif - // fprintf(stderr, "OPENGL library is loaded\r\n"); } else { - wxString msg; - msg.Printf(wxT("Could NOT load OpenGL library: ")); -#ifdef _WIN32 - msg += DLName; -#else - msg += wxString::FromAscii((char *)DLName); -#endif - send_msg("error", &msg); - }; - -#ifdef _MACOSX - DLName = "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib"; - LIBhandle = dlopen(DLName, RTLD_LAZY); -#elif defined(_WIN32) - DLName = wxT("glu32.dll"); - LIBhandle = LoadLibrary(DLName); -#else - DLName = (char *) "libGLU.so"; - LIBhandle = dlopen(DLName, RTLD_LAZY); -#endif - // fprintf(stderr, "Loading GL: %s\r\n", (const char*)DLName); - func = NULL; - - if(LIBhandle) { - for(i=0; glu_fns[i].name != NULL; i++) { - if((func = dlsym(LIBhandle, glu_fns[i].name))) { - * (void **) (glu_fns[i].func) = func; - } else { - if(glu_fns[i].alt != NULL) { - if((func = dlsym(LIBhandle, glu_fns[i].alt))) { - * (void **) (glu_fns[i].func) = func; - } else { - * (void **) (glu_fns[i].func) = (void *) &gl_error; - // fprintf(stderr, "GLU Skipped %s\r\n", glu_fns[i].alt); - }; - } else { - * (void **) (glu_fns[i].func) = (void *) &gl_error; - // fprintf(stderr, "GLU Skipped %s\r\n", glu_fns[i].name); - } - } - } -#ifdef _WIN32 - FreeLibrary(LIBhandle); -#else - dlclose(LIBhandle); -#endif - // fprintf(stderr, "GLU library is loaded\r\n"); - } else { - wxString msg; - msg.Printf(wxT("Could NOT load OpenGL GLU library: ")); -#ifdef _WIN32 - msg += DLName; -#else - msg += wxString::FromAscii((char *)DLName); -#endif - send_msg("error", &msg); - }; - return 0; -} - -void gl_error() { - int AP = 0; ErlDrvTermData rt[8]; - rt[AP++] = ERL_DRV_ATOM; rt[AP++] = driver_mk_atom((char *)"_wxe_error_"); - rt[AP++] = ERL_DRV_INT; rt[AP++] = (int) gl_error_op; - rt[AP++] = ERL_DRV_ATOM; rt[AP++] = driver_mk_atom((char *)"undef"); - rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 3; - driver_send_term(WXE_DRV_PORT,gl_active,rt,AP); -} - -/* ******************************************************************************* - * GLU Tesselation special - * ******************************************************************************/ - -static GLUtesselator* tess; -static GLdouble* tess_coords; -static GLdouble* tess_alloc_vertex; -static int* tess_vertices; - -void CALLBACK -wxe_ogla_vertex(GLdouble* coords) -{ - /* fprintf(stderr, "%d\r\n", (int) (coords - tess_coords) / 3); */ - - *tess_vertices++ = (int) (coords - tess_coords) / 3; -} - -void CALLBACK -wxe_ogla_edge_flag(GLboolean flag) -{ + rt.addAtom((char *) "ok"); + rt.add(wxString::FromAscii("already initilized")); + rt.addTupleCount(2); + } + rt.send(); } -void CALLBACK -wxe_ogla_error(GLenum errorCode) +void setActiveGL(ErlDrvTermData caller, wxGLCanvas *canvas) { - const GLubyte *err; - err = gluErrorString(errorCode); - wxString msg; - msg.Printf(wxT("Tesselation error: %d: "), (int)errorCode); - msg += wxString::FromAscii((char *) err); - send_msg("error", &msg); + gl_active = caller; + glc[caller] = canvas; } -void CALLBACK -wxe_ogla_combine(GLdouble coords[3], - void* vertex_data[4], - GLfloat w[4], - void **dataOut) +void deleteActiveGL(wxGLCanvas *canvas) { - GLdouble* vertex = tess_alloc_vertex; - - tess_alloc_vertex += 3; - -#if 0 - fprintf(stderr, "combine: "); - int i; - for (i = 0; i < 4; i++) { - if (w[i] > 0.0) { - fprintf(stderr, "%d(%g) ", (int) vertex_data[i], w[i]); + gl_active = 0; + wxeGLC::iterator it; + for(it = glc.begin(); it != glc.end(); ++it) { + if(it->second == canvas) { + it->second = (wxGLCanvas *) 0; } } - fprintf(stderr, "\r\n"); - fprintf(stderr, "%g %g %g\r\n", vertex[0], vertex[1], vertex[2]); -#endif - - vertex[0] = coords[0]; - vertex[1] = coords[1]; - vertex[2] = coords[2]; - *dataOut = vertex; -} - -void init_tess() -{ - tess = gluNewTess(); - - gluTessCallback(tess, GLU_TESS_VERTEX, (GLUfuncptr) wxe_ogla_vertex); - gluTessCallback(tess, GLU_TESS_EDGE_FLAG, (GLUfuncptr) wxe_ogla_edge_flag); - gluTessCallback(tess, GLU_TESS_COMBINE, (GLUfuncptr) wxe_ogla_combine); - gluTessCallback(tess, GLU_TESS_ERROR, (GLUfuncptr) wxe_ogla_error); - -} - -void exit_tess() -{ - gluDeleteTess(tess); } -int wxe_tess_impl(char* buff, ErlDrvTermData caller) -{ - ErlDrvBinary* bin; - int i; - int num_vertices = * (int *) buff; buff += 8; // Align - GLdouble *n = (double *) buff; buff += 8*3; - - GLdouble* new_vertices; - bin = driver_alloc_binary(num_vertices*6*sizeof(GLdouble)); - new_vertices = tess_coords = (double *) bin->orig_bytes; - memcpy(tess_coords,buff,num_vertices*3*sizeof(GLdouble)); - tess_alloc_vertex = tess_coords + num_vertices*3; - -#if 0 - fprintf(stderr, "n=%d\r\n", num_vertices); -#endif - int *vertices; - vertices = (int *) driver_alloc(sizeof(int) * 16*num_vertices); - - tess_vertices = vertices; - - gluTessNormal(tess, n[0], n[1], n[2]); - gluTessBeginPolygon(tess, 0); - gluTessBeginContour(tess); - for (i = 0; i < num_vertices; i++) { - gluTessVertex(tess, tess_coords+3*i, tess_coords+3*i); - } - gluTessEndContour(tess); - gluTessEndPolygon(tess); - - int n_pos = (tess_vertices - vertices); - - int AP = 0; ErlDrvTermData *rt; - rt = (ErlDrvTermData *) driver_alloc(sizeof(ErlDrvTermData) * (13+n_pos*2)); - rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_wxe_result_"); - - for(i=0; i < n_pos; i++) { - rt[AP++] = ERL_DRV_INT; rt[AP++] = (int) vertices[i]; +void gl_dispatch(int op, char *bp,ErlDrvTermData caller,WXEBinRef *bins[]){ + if(caller != gl_active) { + wxGLCanvas * current = glc[caller]; + if(current) { gl_active = caller; current->SetCurrent();} + else { + ErlDrvTermData rt[] = // Error msg + {ERL_DRV_ATOM, driver_mk_atom((char *) "_wxe_error_"), + ERL_DRV_INT, op, + ERL_DRV_ATOM, driver_mk_atom((char *) "no_gl_context"), + ERL_DRV_TUPLE,3}; + driver_send_term(WXE_DRV_PORT,caller,rt,8); + return ; + } }; - rt[AP++] = ERL_DRV_NIL; rt[AP++] = ERL_DRV_LIST; rt[AP++] = n_pos+1; - - rt[AP++] = ERL_DRV_BINARY; rt[AP++] = (ErlDrvTermData) bin; - rt[AP++] = (tess_alloc_vertex-new_vertices)*sizeof(GLdouble); rt[AP++] = 0; - - rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; // Return tuple {list, Bin} - rt[AP++] = ERL_DRV_TUPLE; rt[AP++] = 2; // Result tuple - - driver_send_term(WXE_DRV_PORT,caller,rt,AP); -// fprintf(stderr, "List %d %d %d \r\n", -// n_pos, -// (tess_alloc_vertex-new_vertices)*sizeof(GLdouble), -// num_vertices*6*sizeof(GLdouble)); - driver_free_binary(bin); - driver_free(vertices); - driver_free(rt); - return 0; + char * bs[3]; + for(int i=0; i<3; i++) { + if(bins[i]) + bs[i] = bins[i]->base; + else + bs[i] = NULL; + } + wxe_gl_dispatch(op, bp, WXE_DRV_PORT, caller, bs); } diff --git a/lib/wx/c_src/wxe_gl.h b/lib/wx/c_src/wxe_gl.h index 3a47b3c1bd..1b556ff4ec 100644 --- a/lib/wx/c_src/wxe_gl.h +++ b/lib/wx/c_src/wxe_gl.h @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 2008-2009. All Rights Reserved. + * Copyright Ericsson AB 2008-2010. All Rights Reserved. * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in @@ -17,119 +17,6 @@ * %CopyrightEnd% */ +#include "egl_impl.h" -#ifndef _WIN32 -# include -#endif - -#ifndef __WXMAC__ -# include -# include /* Header File For The OpenGL Library */ -#else -# include /* Header File For The OpenGL Library */ -#endif - -#ifndef CALLBACK -# define CALLBACK -#endif - -#ifdef _WIN32 -# ifndef _GLUfuncptr -// Visual studio CPP ++ compiler -# define _GLUfuncptr void (_stdcall *)() -# endif -#endif - -#ifdef _GLUfuncptr -# define GLUfuncptr _GLUfuncptr -#elif defined(TESS_CB_TIGER_STYLE) -# define GLUfuncptr GLvoid (*)(...) -#else -# define GLUfuncptr GLvoid (*)() -#endif - -#ifdef WIN32 -#include -#include -#elif defined(HAVE_GL_GL_H) -#include -#elif defined(HAVE_OPENGL_GL_H) -#endif - -#ifndef APIENTRY -#define APIENTRY -#endif - -int initOpenGL(); -void gl_error(); -extern int gl_error_op; -extern ErlDrvTermData gl_active; - -/* Some new GL types (eliminates the need for glext.h) */ - -#ifndef HAVE_GLINTPTR -#ifndef HAVE_GLINTPTRARB -# include -/* GL types for handling large vertex buffer objects */ -typedef ptrdiff_t GLintptrARB; -typedef ptrdiff_t GLsizeiptrARB; -#endif /* HAVE_GLINTPTRARB */ -typedef GLintptrARB GLintptr; -typedef GLsizeiptrARB GLsizeiptr; -#endif /* HAVE_GLINTPTR */ - -#ifndef HAVE_GLCHAR -# ifndef HAVE_GLCHARARB -/* GL types for handling shader object handles and characters */ -typedef char GLcharARB; /* native character */ -typedef unsigned int GLhandleARB; /* shader object handle */ -#endif /* HAVE_GLCHARARB */ -typedef GLcharARB GLchar; -#endif - -#ifndef HAVE_GLHALFARB -/* GL types for "half" precision (s10e5) float data in host memory */ -typedef unsigned short GLhalfARB; -#endif - -/* Define int32_t, int64_t, and uint64_t types for UST/MSC */ -/* (as used in the GLX_OML_sync_control extension). */ -#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -#include -#elif defined(__sun__) -#include -#if defined(__STDC__) -#if defined(__arch64__) -typedef long int int64_t; -typedef unsigned long int uint64_t; -#else -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#endif /* __arch64__ */ -#endif /* __STDC__ */ -#elif defined( __VMS ) -#include -#elif defined(__SCO__) || defined(__USLC__) -#include -#elif defined(__UNIXOS2__) || defined(__SOL64__) -typedef long int int32_t; -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#elif defined(WIN32) && defined(_MSC_VER) -typedef long int int32_t; -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; -#elif defined(WIN32) && defined(__GNUC__) -#include -#else -#include /* Fallback option */ -#endif - -#ifndef HAVE_GLINT64EXT -typedef int64_t GLint64EXT; -typedef uint64_t GLuint64EXT; -#endif - -void init_tess(); -void exit_tess(); -int wxe_tess_impl(char* buff, ErlDrvTermData caller); +void wxe_initOpenGL(wxeReturn, char*); diff --git a/lib/wx/c_src/wxe_impl.cpp b/lib/wx/c_src/wxe_impl.cpp index 6d2926ce4e..79d1a29519 100644 --- a/lib/wx/c_src/wxe_impl.cpp +++ b/lib/wx/c_src/wxe_impl.cpp @@ -68,7 +68,6 @@ ErlDrvTermData wxe_batch_caller = 0; ErlDrvTermData init_caller = 0; // extern opengl -extern int gl_initiated; void gl_dispatch(int op, char *bp, ErlDrvTermData caller, WXEBinRef *bins[]); @@ -265,7 +264,6 @@ bool WxeApp::OnInit() init_nonconsts(global_me, init_caller); erl_drv_mutex_lock(wxe_status_m); wxe_status = WXE_INITIATED; - gl_initiated = FALSE; erl_drv_cond_signal(wxe_status_c); erl_drv_mutex_unlock(wxe_status_m); return TRUE; diff --git a/lib/wx/src/gen/gl.erl b/lib/wx/src/gen/gl.erl index 62d0ff6aed..e26fa02729 100644 --- a/lib/wx/src/gen/gl.erl +++ b/lib/wx/src/gen/gl.erl @@ -25,14 +25,13 @@ %% %% Booleans are represented by integers 0 and 1. -%% @type wx_mem(). see wx.erl on memory allocation functions +%% @type mem(). memory block %% @type enum(). An integer defined in gl.hrl %% @type offset(). An integer which is an offset in an array %% @type clamp(). A float clamped between 0.0 - 1.0 -module(gl). -compile(inline). --include("wxe.hrl"). -define(GLenum,32/native-unsigned). -define(GLboolean,8/native-unsigned). -define(GLbitfield,32/native-unsigned). @@ -215,103 +214,134 @@ windowPos4ivMESA/1,windowPos4sMESA/4,windowPos4svMESA/1,depthBoundsEXT/2, stencilClearTagEXT/2]). +-export([call/2, cast/2, send_bin/1]). +%% @hidden +call(Op, Args) -> + Port = get(opengl_port), + _ = erlang:port_control(Port,Op,Args), + rec(). + +%% @hidden +cast(Op, Args) -> + Port = get(opengl_port), + _ = erlang:port_control(Port,Op,Args), + ok. + +%% @hidden +rec() -> + receive + {'_egl_result_', Res} -> Res; + {'_egl_error_', Res} -> error({error,Res}) + end. + +%% @hidden +send_bin(Bin) when is_binary(Bin) -> + Port = get(opengl_port), + erlang:port_command(Port,Bin); +send_bin(Tuple) when is_tuple(Tuple) -> + Port = get(opengl_port), + case element(2, Tuple) of + Bin when is_binary(Bin) -> + erlang:port_command(Port,Bin) + end. + %% API %% @spec (Op::enum(),Value::float()) -> ok %% @doc See external documentation. accum(Op,Value) -> - wxe_util:cast(5037, <>). + cast(5037, <>). %% @spec (Func::enum(),Ref::clamp()) -> ok %% @doc See external documentation. alphaFunc(Func,Ref) -> - wxe_util:cast(5038, <>). + cast(5038, <>). %% @spec (Textures::[integer()]) -> {0|1,Residences::[0|1]} %% @doc See external documentation. areTexturesResident(Textures) -> - wxe_util:call(5039, <<(length(Textures)):?GLuint, + call(5039, <<(length(Textures)):?GLuint, (<< <> || C <- Textures>>)/binary,0:(((1+length(Textures)) rem 2)*32)>>). %% @spec (I::integer()) -> ok %% @doc See external documentation. arrayElement(I) -> - wxe_util:cast(5040, <>). + cast(5040, <>). %% @spec (Mode::enum()) -> ok %% @doc See external documentation. 'begin'(Mode) -> - wxe_util:cast(5041, <>). + cast(5041, <>). %% @spec (Target::enum(),Texture::integer()) -> ok %% @doc See external documentation. bindTexture(Target,Texture) -> - wxe_util:cast(5042, <>). + cast(5042, <>). %% @spec (Width::integer(),Height::integer(),Xorig::float(),Yorig::float(),Xmove::float(),Ymove::float(),Bitmap::offset()|binary()) -> ok %% @doc See external documentation. bitmap(Width,Height,Xorig,Yorig,Xmove,Ymove,Bitmap) when is_integer(Bitmap) -> - wxe_util:cast(5043, <>); + cast(5043, <>); bitmap(Width,Height,Xorig,Yorig,Xmove,Ymove,Bitmap) -> - wxe_util:send_bin(Bitmap), - wxe_util:cast(5044, <>). + send_bin(Bitmap), + cast(5044, <>). %% @spec (Sfactor::enum(),Dfactor::enum()) -> ok %% @doc See external documentation. blendFunc(Sfactor,Dfactor) -> - wxe_util:cast(5045, <>). + cast(5045, <>). %% @spec (List::integer()) -> ok %% @doc See external documentation. callList(List) -> - wxe_util:cast(5046, <>). + cast(5046, <>). %% @spec (Lists::[integer()]) -> ok %% @doc See external documentation. callLists(Lists) -> - wxe_util:cast(5047, <<(length(Lists)):?GLuint, + cast(5047, <<(length(Lists)):?GLuint, (<< <> || C <- Lists>>)/binary,0:(((1+length(Lists)) rem 2)*32)>>). %% @spec (Mask::integer()) -> ok %% @doc See external documentation. clear(Mask) -> - wxe_util:cast(5048, <>). + cast(5048, <>). %% @spec (Red::float(),Green::float(),Blue::float(),Alpha::float()) -> ok %% @doc See external documentation. clearAccum(Red,Green,Blue,Alpha) -> - wxe_util:cast(5049, <>). + cast(5049, <>). %% @spec (Red::clamp(),Green::clamp(),Blue::clamp(),Alpha::clamp()) -> ok %% @doc See external documentation. clearColor(Red,Green,Blue,Alpha) -> - wxe_util:cast(5050, <>). + cast(5050, <>). %% @spec (Depth::clamp()) -> ok %% @doc See external documentation. clearDepth(Depth) -> - wxe_util:cast(5051, <>). + cast(5051, <>). %% @spec (C::float()) -> ok %% @doc See external documentation. clearIndex(C) -> - wxe_util:cast(5052, <>). + cast(5052, <>). %% @spec (S::integer()) -> ok %% @doc See external documentation. clearStencil(S) -> - wxe_util:cast(5053, <>). + cast(5053, <>). %% @spec (Plane::enum(),Equation::{float()}) -> ok %% @doc See external documentation. clipPlane(Plane,{E1,E2,E3,E4}) -> - wxe_util:cast(5054, <>). + cast(5054, <>). %% @spec (Red::integer(),Green::integer(),Blue::integer()) -> ok %% @doc See external documentation. color3b(Red,Green,Blue) -> - wxe_util:cast(5055, <>). + cast(5055, <>). %% @spec ({Red,Green,Blue}) -> ok %% @equiv color3b(Red,Green,Blue) @@ -320,7 +350,7 @@ color3bv({Red,Green,Blue}) -> color3b(Red,Green,Blue). %% @spec (Red::float(),Green::float(),Blue::float()) -> ok %% @doc See external documentation. color3d(Red,Green,Blue) -> - wxe_util:cast(5056, <>). + cast(5056, <>). %% @spec ({Red,Green,Blue}) -> ok %% @equiv color3d(Red,Green,Blue) @@ -329,7 +359,7 @@ color3dv({Red,Green,Blue}) -> color3d(Red,Green,Blue). %% @spec (Red::float(),Green::float(),Blue::float()) -> ok %% @doc See external documentation. color3f(Red,Green,Blue) -> - wxe_util:cast(5057, <>). + cast(5057, <>). %% @spec ({Red,Green,Blue}) -> ok %% @equiv color3f(Red,Green,Blue) @@ -338,7 +368,7 @@ color3fv({Red,Green,Blue}) -> color3f(Red,Green,Blue). %% @spec (Red::integer(),Green::integer(),Blue::integer()) -> ok %% @doc See external documentation. color3i(Red,Green,Blue) -> - wxe_util:cast(5058, <>). + cast(5058, <>). %% @spec ({Red,Green,Blue}) -> ok %% @equiv color3i(Red,Green,Blue) @@ -347,7 +377,7 @@ color3iv({Red,Green,Blue}) -> color3i(Red,Green,Blue). %% @spec (Red::integer(),Green::integer(),Blue::integer()) -> ok %% @doc See external documentation. color3s(Red,Green,Blue) -> - wxe_util:cast(5059, <>). + cast(5059, <>). %% @spec ({Red,Green,Blue}) -> ok %% @equiv color3s(Red,Green,Blue) @@ -356,7 +386,7 @@ color3sv({Red,Green,Blue}) -> color3s(Red,Green,Blue). %% @spec (Red::integer(),Green::integer(),Blue::integer()) -> ok %% @doc See external documentation. color3ub(Red,Green,Blue) -> - wxe_util:cast(5060, <>). + cast(5060, <>). %% @spec ({Red,Green,Blue}) -> ok %% @equiv color3ub(Red,Green,Blue) @@ -365,7 +395,7 @@ color3ubv({Red,Green,Blue}) -> color3ub(Red,Green,Blue). %% @spec (Red::integer(),Green::integer(),Blue::integer()) -> ok %% @doc See external documentation. color3ui(Red,Green,Blue) -> - wxe_util:cast(5061, <>). + cast(5061, <>). %% @spec ({Red,Green,Blue}) -> ok %% @equiv color3ui(Red,Green,Blue) @@ -374,7 +404,7 @@ color3uiv({Red,Green,Blue}) -> color3ui(Red,Green,Blue). %% @spec (Red::integer(),Green::integer(),Blue::integer()) -> ok %% @doc See external documentation. color3us(Red,Green,Blue) -> - wxe_util:cast(5062, <>). + cast(5062, <>). %% @spec ({Red,Green,Blue}) -> ok %% @equiv color3us(Red,Green,Blue) @@ -383,7 +413,7 @@ color3usv({Red,Green,Blue}) -> color3us(Red,Green,Blue). %% @spec (Red::integer(),Green::integer(),Blue::integer(),Alpha::integer()) -> ok %% @doc See external documentation. color4b(Red,Green,Blue,Alpha) -> - wxe_util:cast(5063, <>). + cast(5063, <>). %% @spec ({Red,Green,Blue,Alpha}) -> ok %% @equiv color4b(Red,Green,Blue,Alpha) @@ -392,7 +422,7 @@ color4bv({Red,Green,Blue,Alpha}) -> color4b(Red,Green,Blue,Alpha). %% @spec (Red::float(),Green::float(),Blue::float(),Alpha::float()) -> ok %% @doc See external documentation. color4d(Red,Green,Blue,Alpha) -> - wxe_util:cast(5064, <>). + cast(5064, <>). %% @spec ({Red,Green,Blue,Alpha}) -> ok %% @equiv color4d(Red,Green,Blue,Alpha) @@ -401,7 +431,7 @@ color4dv({Red,Green,Blue,Alpha}) -> color4d(Red,Green,Blue,Alpha). %% @spec (Red::float(),Green::float(),Blue::float(),Alpha::float()) -> ok %% @doc See external documentation. color4f(Red,Green,Blue,Alpha) -> - wxe_util:cast(5065, <>). + cast(5065, <>). %% @spec ({Red,Green,Blue,Alpha}) -> ok %% @equiv color4f(Red,Green,Blue,Alpha) @@ -410,7 +440,7 @@ color4fv({Red,Green,Blue,Alpha}) -> color4f(Red,Green,Blue,Alpha). %% @spec (Red::integer(),Green::integer(),Blue::integer(),Alpha::integer()) -> ok %% @doc See external documentation. color4i(Red,Green,Blue,Alpha) -> - wxe_util:cast(5066, <>). + cast(5066, <>). %% @spec ({Red,Green,Blue,Alpha}) -> ok %% @equiv color4i(Red,Green,Blue,Alpha) @@ -419,7 +449,7 @@ color4iv({Red,Green,Blue,Alpha}) -> color4i(Red,Green,Blue,Alpha). %% @spec (Red::integer(),Green::integer(),Blue::integer(),Alpha::integer()) -> ok %% @doc See external documentation. color4s(Red,Green,Blue,Alpha) -> - wxe_util:cast(5067, <>). + cast(5067, <>). %% @spec ({Red,Green,Blue,Alpha}) -> ok %% @equiv color4s(Red,Green,Blue,Alpha) @@ -428,7 +458,7 @@ color4sv({Red,Green,Blue,Alpha}) -> color4s(Red,Green,Blue,Alpha). %% @spec (Red::integer(),Green::integer(),Blue::integer(),Alpha::integer()) -> ok %% @doc See external documentation. color4ub(Red,Green,Blue,Alpha) -> - wxe_util:cast(5068, <>). + cast(5068, <>). %% @spec ({Red,Green,Blue,Alpha}) -> ok %% @equiv color4ub(Red,Green,Blue,Alpha) @@ -437,7 +467,7 @@ color4ubv({Red,Green,Blue,Alpha}) -> color4ub(Red,Green,Blue,Alpha). %% @spec (Red::integer(),Green::integer(),Blue::integer(),Alpha::integer()) -> ok %% @doc See external documentation. color4ui(Red,Green,Blue,Alpha) -> - wxe_util:cast(5069, <>). + cast(5069, <>). %% @spec ({Red,Green,Blue,Alpha}) -> ok %% @equiv color4ui(Red,Green,Blue,Alpha) @@ -446,7 +476,7 @@ color4uiv({Red,Green,Blue,Alpha}) -> color4ui(Red,Green,Blue,Alpha). %% @spec (Red::integer(),Green::integer(),Blue::integer(),Alpha::integer()) -> ok %% @doc See external documentation. color4us(Red,Green,Blue,Alpha) -> - wxe_util:cast(5070, <>). + cast(5070, <>). %% @spec ({Red,Green,Blue,Alpha}) -> ok %% @equiv color4us(Red,Green,Blue,Alpha) @@ -455,125 +485,125 @@ color4usv({Red,Green,Blue,Alpha}) -> color4us(Red,Green,Blue,Alpha). %% @spec (Red::0|1,Green::0|1,Blue::0|1,Alpha::0|1) -> ok %% @doc See external documentation. colorMask(Red,Green,Blue,Alpha) -> - wxe_util:cast(5071, <>). + cast(5071, <>). %% @spec (Face::enum(),Mode::enum()) -> ok %% @doc See external documentation. colorMaterial(Face,Mode) -> - wxe_util:cast(5072, <>). + cast(5072, <>). %% @spec (Size::integer(),Type::enum(),Stride::integer(),Pointer::offset()|binary()) -> ok %% @doc See external documentation. colorPointer(Size,Type,Stride,Pointer) when is_integer(Pointer) -> - wxe_util:cast(5073, <>); + cast(5073, <>); colorPointer(Size,Type,Stride,Pointer) -> - wxe_util:send_bin(Pointer), - wxe_util:cast(5074, <>). + send_bin(Pointer), + cast(5074, <>). %% @spec (X::integer(),Y::integer(),Width::integer(),Height::integer(),Type::enum()) -> ok %% @doc See external documentation. copyPixels(X,Y,Width,Height,Type) -> - wxe_util:cast(5075, <>). + cast(5075, <>). %% @spec (Target::enum(),Level::integer(),InternalFormat::enum(),X::integer(),Y::integer(),Width::integer(),Border::integer()) -> ok %% @doc See external documentation. copyTexImage1D(Target,Level,InternalFormat,X,Y,Width,Border) -> - wxe_util:cast(5076, <>). + cast(5076, <>). %% @spec (Target::enum(),Level::integer(),InternalFormat::enum(),X::integer(),Y::integer(),Width::integer(),Height::integer(),Border::integer()) -> ok %% @doc See external documentation. copyTexImage2D(Target,Level,InternalFormat,X,Y,Width,Height,Border) -> - wxe_util:cast(5077, <>). + cast(5077, <>). %% @spec (Target::enum(),Level::integer(),Xoffset::integer(),X::integer(),Y::integer(),Width::integer()) -> ok %% @doc See external documentation. copyTexSubImage1D(Target,Level,Xoffset,X,Y,Width) -> - wxe_util:cast(5078, <>). + cast(5078, <>). %% @spec (Target::enum(),Level::integer(),Xoffset::integer(),Yoffset::integer(),X::integer(),Y::integer(),Width::integer(),Height::integer()) -> ok %% @doc See external documentation. copyTexSubImage2D(Target,Level,Xoffset,Yoffset,X,Y,Width,Height) -> - wxe_util:cast(5079, <>). + cast(5079, <>). %% @spec (Mode::enum()) -> ok %% @doc See external documentation. cullFace(Mode) -> - wxe_util:cast(5080, <>). + cast(5080, <>). %% @spec (List::integer(),Range::integer()) -> ok %% @doc See external documentation. deleteLists(List,Range) -> - wxe_util:cast(5081, <>). + cast(5081, <>). %% @spec (Textures::[integer()]) -> ok %% @doc See external documentation. deleteTextures(Textures) -> - wxe_util:cast(5082, <<(length(Textures)):?GLuint, + cast(5082, <<(length(Textures)):?GLuint, (<< <> || C <- Textures>>)/binary,0:(((1+length(Textures)) rem 2)*32)>>). %% @spec (Func::enum()) -> ok %% @doc See external documentation. depthFunc(Func) -> - wxe_util:cast(5083, <>). + cast(5083, <>). %% @spec (Flag::0|1) -> ok %% @doc See external documentation. depthMask(Flag) -> - wxe_util:cast(5084, <>). + cast(5084, <>). %% @spec (ZNear::clamp(),ZFar::clamp()) -> ok %% @doc See external documentation. depthRange(ZNear,ZFar) -> - wxe_util:cast(5085, <>). + cast(5085, <>). %% @spec (Cap::enum()) -> ok %% @doc See external documentation. disable(Cap) -> - wxe_util:cast(5086, <>). + cast(5086, <>). %% @spec (Array::enum()) -> ok %% @doc See external documentation. disableClientState(Array) -> - wxe_util:cast(5087, <>). + cast(5087, <>). %% @spec (Mode::enum(),First::integer(),Count::integer()) -> ok %% @doc See external documentation. drawArrays(Mode,First,Count) -> - wxe_util:cast(5088, <>). + cast(5088, <>). %% @spec (Mode::enum()) -> ok %% @doc See external documentation. drawBuffer(Mode) -> - wxe_util:cast(5089, <>). + cast(5089, <>). %% @spec (Mode::enum(),Count::integer(),Type::enum(),Indices::offset()|binary()) -> ok %% @doc See external documentation. drawElements(Mode,Count,Type,Indices) when is_integer(Indices) -> - wxe_util:cast(5090, <>); + cast(5090, <>); drawElements(Mode,Count,Type,Indices) -> - wxe_util:send_bin(Indices), - wxe_util:cast(5091, <>). + send_bin(Indices), + cast(5091, <>). %% @spec (Width::integer(),Height::integer(),Format::enum(),Type::enum(),Pixels::offset()|binary()) -> ok %% @doc See external documentation. drawPixels(Width,Height,Format,Type,Pixels) when is_integer(Pixels) -> - wxe_util:cast(5092, <>); + cast(5092, <>); drawPixels(Width,Height,Format,Type,Pixels) -> - wxe_util:send_bin(Pixels), - wxe_util:cast(5093, <>). + send_bin(Pixels), + cast(5093, <>). %% @spec (Flag::0|1) -> ok %% @doc See external documentation. edgeFlag(Flag) -> - wxe_util:cast(5094, <>). + cast(5094, <>). %% @spec (Stride::integer(),Pointer::offset()|binary()) -> ok %% @doc See external documentation. edgeFlagPointer(Stride,Pointer) when is_integer(Pointer) -> - wxe_util:cast(5095, <>); + cast(5095, <>); edgeFlagPointer(Stride,Pointer) -> - wxe_util:send_bin(Pointer), - wxe_util:cast(5096, <>). + send_bin(Pointer), + cast(5096, <>). %% @spec ({Flag}) -> ok %% @equiv edgeFlag(Flag) @@ -582,27 +612,27 @@ edgeFlagv({Flag}) -> edgeFlag(Flag). %% @spec (Cap::enum()) -> ok %% @doc See external documentation. enable(Cap) -> - wxe_util:cast(5097, <>). + cast(5097, <>). %% @spec (Array::enum()) -> ok %% @doc See external documentation. enableClientState(Array) -> - wxe_util:cast(5098, <>). + cast(5098, <>). %% @spec () -> ok %% @doc See external documentation. 'end'() -> - wxe_util:cast(5099, <<>>). + cast(5099, <<>>). %% @spec () -> ok %% @doc See external documentation. endList() -> - wxe_util:cast(5100, <<>>). + cast(5100, <<>>). %% @spec (U::float()) -> ok %% @doc See external documentation. evalCoord1d(U) -> - wxe_util:cast(5101, <>). + cast(5101, <>). %% @spec ({U}) -> ok %% @equiv evalCoord1d(U) @@ -611,7 +641,7 @@ evalCoord1dv({U}) -> evalCoord1d(U). %% @spec (U::float()) -> ok %% @doc See external documentation. evalCoord1f(U) -> - wxe_util:cast(5102, <>). + cast(5102, <>). %% @spec ({U}) -> ok %% @equiv evalCoord1f(U) @@ -620,7 +650,7 @@ evalCoord1fv({U}) -> evalCoord1f(U). %% @spec (U::float(),V::float()) -> ok %% @doc See external documentation. evalCoord2d(U,V) -> - wxe_util:cast(5103, <>). + cast(5103, <>). %% @spec ({U,V}) -> ok %% @equiv evalCoord2d(U,V) @@ -629,7 +659,7 @@ evalCoord2dv({U,V}) -> evalCoord2d(U,V). %% @spec (U::float(),V::float()) -> ok %% @doc See external documentation. evalCoord2f(U,V) -> - wxe_util:cast(5104, <>). + cast(5104, <>). %% @spec ({U,V}) -> ok %% @equiv evalCoord2f(U,V) @@ -638,250 +668,250 @@ evalCoord2fv({U,V}) -> evalCoord2f(U,V). %% @spec (Mode::enum(),I1::integer(),I2::integer()) -> ok %% @doc See external documentation. evalMesh1(Mode,I1,I2) -> - wxe_util:cast(5105, <>). + cast(5105, <>). %% @spec (Mode::enum(),I1::integer(),I2::integer(),J1::integer(),J2::integer()) -> ok %% @doc See external documentation. evalMesh2(Mode,I1,I2,J1,J2) -> - wxe_util:cast(5106, <>). + cast(5106, <>). %% @spec (I::integer()) -> ok %% @doc See external documentation. evalPoint1(I) -> - wxe_util:cast(5107, <>). + cast(5107, <>). %% @spec (I::integer(),J::integer()) -> ok %% @doc See external documentation. evalPoint2(I,J) -> - wxe_util:cast(5108, <>). + cast(5108, <>). -%% @spec (Size::integer(),Type::enum(),Buffer::wx:wx_mem()) -> ok +%% @spec (Size::integer(),Type::enum(),Buffer::mem()) -> ok %% @doc See external documentation. feedbackBuffer(Size,Type,Buffer) -> - wxe_util:send_bin(Buffer#wx_mem.bin), - wxe_util:call(5109, <>). + send_bin(Buffer), + call(5109, <>). %% @spec () -> ok %% @doc See external documentation. finish() -> - wxe_util:cast(5110, <<>>). + cast(5110, <<>>). %% @spec () -> ok %% @doc See external documentation. flush() -> - wxe_util:cast(5111, <<>>). + cast(5111, <<>>). %% @spec (Pname::enum(),Param::float()) -> ok %% @doc See external documentation. fogf(Pname,Param) -> - wxe_util:cast(5112, <>). + cast(5112, <>). %% @spec (Pname::enum(),Params::{float()}) -> ok %% @doc See external documentation. fogfv(Pname,Params) -> - wxe_util:cast(5113, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((0+size(Params)) rem 2)*32)>>). %% @spec (Pname::enum(),Param::integer()) -> ok %% @doc See external documentation. fogi(Pname,Param) -> - wxe_util:cast(5114, <>). + cast(5114, <>). %% @spec (Pname::enum(),Params::{integer()}) -> ok %% @doc See external documentation. fogiv(Pname,Params) -> - wxe_util:cast(5115, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((0+size(Params)) rem 2)*32)>>). %% @spec (Mode::enum()) -> ok %% @doc See external documentation. frontFace(Mode) -> - wxe_util:cast(5116, <>). + cast(5116, <>). %% @spec (Left::float(),Right::float(),Bottom::float(),Top::float(),ZNear::float(),ZFar::float()) -> ok %% @doc See external documentation. frustum(Left,Right,Bottom,Top,ZNear,ZFar) -> - wxe_util:cast(5117, <>). + cast(5117, <>). %% @spec (Range::integer()) -> integer() %% @doc See external documentation. genLists(Range) -> - wxe_util:call(5118, <>). + call(5118, <>). %% @spec (N::integer()) -> [integer()] %% @doc See external documentation. genTextures(N) -> - wxe_util:call(5119, <>). + call(5119, <>). %% @spec (Pname::enum()) -> [0|1] %% @doc See external documentation. getBooleanv(Pname) -> - wxe_util:call(5120, <>). + call(5120, <>). %% @spec (Plane::enum()) -> {float()} %% @doc See external documentation. getClipPlane(Plane) -> - wxe_util:call(5121, <>). + call(5121, <>). %% @spec (Pname::enum()) -> [float()] %% @doc See external documentation. getDoublev(Pname) -> - wxe_util:call(5122, <>). + call(5122, <>). %% @spec () -> enum() %% @doc See external documentation. getError() -> - wxe_util:call(5123, <<>>). + call(5123, <<>>). %% @spec (Pname::enum()) -> [float()] %% @doc See external documentation. getFloatv(Pname) -> - wxe_util:call(5124, <>). + call(5124, <>). %% @spec (Pname::enum()) -> [integer()] %% @doc See external documentation. getIntegerv(Pname) -> - wxe_util:call(5125, <>). + call(5125, <>). %% @spec (Light::enum(),Pname::enum()) -> {float()} %% @doc See external documentation. getLightfv(Light,Pname) -> - wxe_util:call(5126, <>). + call(5126, <>). %% @spec (Light::enum(),Pname::enum()) -> {integer()} %% @doc See external documentation. getLightiv(Light,Pname) -> - wxe_util:call(5127, <>). + call(5127, <>). -%% @spec (Target::enum(),Query::enum(),V::wx:wx_mem()) -> ok +%% @spec (Target::enum(),Query::enum(),V::mem()) -> ok %% @doc See external documentation. getMapdv(Target,Query,V) -> - wxe_util:send_bin(V#wx_mem.bin), - wxe_util:call(5128, <>). + send_bin(V), + call(5128, <>). -%% @spec (Target::enum(),Query::enum(),V::wx:wx_mem()) -> ok +%% @spec (Target::enum(),Query::enum(),V::mem()) -> ok %% @doc See external documentation. getMapfv(Target,Query,V) -> - wxe_util:send_bin(V#wx_mem.bin), - wxe_util:call(5129, <>). + send_bin(V), + call(5129, <>). -%% @spec (Target::enum(),Query::enum(),V::wx:wx_mem()) -> ok +%% @spec (Target::enum(),Query::enum(),V::mem()) -> ok %% @doc See external documentation. getMapiv(Target,Query,V) -> - wxe_util:send_bin(V#wx_mem.bin), - wxe_util:call(5130, <>). + send_bin(V), + call(5130, <>). %% @spec (Face::enum(),Pname::enum()) -> {float()} %% @doc See external documentation. getMaterialfv(Face,Pname) -> - wxe_util:call(5131, <>). + call(5131, <>). %% @spec (Face::enum(),Pname::enum()) -> {integer()} %% @doc See external documentation. getMaterialiv(Face,Pname) -> - wxe_util:call(5132, <>). + call(5132, <>). -%% @spec (Map::enum(),Values::wx:wx_mem()) -> ok +%% @spec (Map::enum(),Values::mem()) -> ok %% @doc See external documentation. getPixelMapfv(Map,Values) -> - wxe_util:send_bin(Values#wx_mem.bin), - wxe_util:call(5133, <>). + send_bin(Values), + call(5133, <>). -%% @spec (Map::enum(),Values::wx:wx_mem()) -> ok +%% @spec (Map::enum(),Values::mem()) -> ok %% @doc See external documentation. getPixelMapuiv(Map,Values) -> - wxe_util:send_bin(Values#wx_mem.bin), - wxe_util:call(5134, <>). + send_bin(Values), + call(5134, <>). -%% @spec (Map::enum(),Values::wx:wx_mem()) -> ok +%% @spec (Map::enum(),Values::mem()) -> ok %% @doc See external documentation. getPixelMapusv(Map,Values) -> - wxe_util:send_bin(Values#wx_mem.bin), - wxe_util:call(5135, <>). + send_bin(Values), + call(5135, <>). %% @spec () -> binary() %% @doc See external documentation. getPolygonStipple() -> - wxe_util:call(5136, <<>>). + call(5136, <<>>). %% @spec (Name::enum()) -> string() %% @doc See external documentation. getString(Name) -> - wxe_util:call(5137, <>). + call(5137, <>). %% @spec (Target::enum(),Pname::enum()) -> {float()} %% @doc See external documentation. getTexEnvfv(Target,Pname) -> - wxe_util:call(5138, <>). + call(5138, <>). %% @spec (Target::enum(),Pname::enum()) -> {integer()} %% @doc See external documentation. getTexEnviv(Target,Pname) -> - wxe_util:call(5139, <>). + call(5139, <>). %% @spec (Coord::enum(),Pname::enum()) -> {float()} %% @doc See external documentation. getTexGendv(Coord,Pname) -> - wxe_util:call(5140, <>). + call(5140, <>). %% @spec (Coord::enum(),Pname::enum()) -> {float()} %% @doc See external documentation. getTexGenfv(Coord,Pname) -> - wxe_util:call(5141, <>). + call(5141, <>). %% @spec (Coord::enum(),Pname::enum()) -> {integer()} %% @doc See external documentation. getTexGeniv(Coord,Pname) -> - wxe_util:call(5142, <>). + call(5142, <>). -%% @spec (Target::enum(),Level::integer(),Format::enum(),Type::enum(),Pixels::wx:wx_mem()) -> ok +%% @spec (Target::enum(),Level::integer(),Format::enum(),Type::enum(),Pixels::mem()) -> ok %% @doc See external documentation. getTexImage(Target,Level,Format,Type,Pixels) -> - wxe_util:send_bin(Pixels#wx_mem.bin), - wxe_util:call(5143, <>). + send_bin(Pixels), + call(5143, <>). %% @spec (Target::enum(),Level::integer(),Pname::enum()) -> {float()} %% @doc See external documentation. getTexLevelParameterfv(Target,Level,Pname) -> - wxe_util:call(5144, <>). + call(5144, <>). %% @spec (Target::enum(),Level::integer(),Pname::enum()) -> {integer()} %% @doc See external documentation. getTexLevelParameteriv(Target,Level,Pname) -> - wxe_util:call(5145, <>). + call(5145, <>). %% @spec (Target::enum(),Pname::enum()) -> {float()} %% @doc See external documentation. getTexParameterfv(Target,Pname) -> - wxe_util:call(5146, <>). + call(5146, <>). %% @spec (Target::enum(),Pname::enum()) -> {integer()} %% @doc See external documentation. getTexParameteriv(Target,Pname) -> - wxe_util:call(5147, <>). + call(5147, <>). %% @spec (Target::enum(),Mode::enum()) -> ok %% @doc See external documentation. hint(Target,Mode) -> - wxe_util:cast(5148, <>). + cast(5148, <>). %% @spec (Mask::integer()) -> ok %% @doc See external documentation. indexMask(Mask) -> - wxe_util:cast(5149, <>). + cast(5149, <>). %% @spec (Type::enum(),Stride::integer(),Pointer::offset()|binary()) -> ok %% @doc See external documentation. indexPointer(Type,Stride,Pointer) when is_integer(Pointer) -> - wxe_util:cast(5150, <>); + cast(5150, <>); indexPointer(Type,Stride,Pointer) -> - wxe_util:send_bin(Pointer), - wxe_util:cast(5151, <>). + send_bin(Pointer), + cast(5151, <>). %% @spec (C::float()) -> ok %% @doc See external documentation. indexd(C) -> - wxe_util:cast(5152, <>). + cast(5152, <>). %% @spec ({C}) -> ok %% @equiv indexd(C) @@ -890,7 +920,7 @@ indexdv({C}) -> indexd(C). %% @spec (C::float()) -> ok %% @doc See external documentation. indexf(C) -> - wxe_util:cast(5153, <>). + cast(5153, <>). %% @spec ({C}) -> ok %% @equiv indexf(C) @@ -899,7 +929,7 @@ indexfv({C}) -> indexf(C). %% @spec (C::integer()) -> ok %% @doc See external documentation. indexi(C) -> - wxe_util:cast(5154, <>). + cast(5154, <>). %% @spec ({C}) -> ok %% @equiv indexi(C) @@ -908,7 +938,7 @@ indexiv({C}) -> indexi(C). %% @spec (C::integer()) -> ok %% @doc See external documentation. indexs(C) -> - wxe_util:cast(5155, <>). + cast(5155, <>). %% @spec ({C}) -> ok %% @equiv indexs(C) @@ -917,7 +947,7 @@ indexsv({C}) -> indexs(C). %% @spec (C::integer()) -> ok %% @doc See external documentation. indexub(C) -> - wxe_util:cast(5156, <>). + cast(5156, <>). %% @spec ({C}) -> ok %% @equiv indexub(C) @@ -926,213 +956,213 @@ indexubv({C}) -> indexub(C). %% @spec () -> ok %% @doc See external documentation. initNames() -> - wxe_util:cast(5157, <<>>). + cast(5157, <<>>). %% @spec (Format::enum(),Stride::integer(),Pointer::offset()|binary()) -> ok %% @doc See external documentation. interleavedArrays(Format,Stride,Pointer) when is_integer(Pointer) -> - wxe_util:cast(5158, <>); + cast(5158, <>); interleavedArrays(Format,Stride,Pointer) -> - wxe_util:send_bin(Pointer), - wxe_util:cast(5159, <>). + send_bin(Pointer), + cast(5159, <>). %% @spec (Cap::enum()) -> 0|1 %% @doc See external documentation. isEnabled(Cap) -> - wxe_util:call(5160, <>). + call(5160, <>). %% @spec (List::integer()) -> 0|1 %% @doc See external documentation. isList(List) -> - wxe_util:call(5161, <>). + call(5161, <>). %% @spec (Texture::integer()) -> 0|1 %% @doc See external documentation. isTexture(Texture) -> - wxe_util:call(5162, <>). + call(5162, <>). %% @spec (Pname::enum(),Param::float()) -> ok %% @doc See external documentation. lightModelf(Pname,Param) -> - wxe_util:cast(5163, <>). + cast(5163, <>). %% @spec (Pname::enum(),Params::{float()}) -> ok %% @doc See external documentation. lightModelfv(Pname,Params) -> - wxe_util:cast(5164, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((0+size(Params)) rem 2)*32)>>). %% @spec (Pname::enum(),Param::integer()) -> ok %% @doc See external documentation. lightModeli(Pname,Param) -> - wxe_util:cast(5165, <>). + cast(5165, <>). %% @spec (Pname::enum(),Params::{integer()}) -> ok %% @doc See external documentation. lightModeliv(Pname,Params) -> - wxe_util:cast(5166, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((0+size(Params)) rem 2)*32)>>). %% @spec (Light::enum(),Pname::enum(),Param::float()) -> ok %% @doc See external documentation. lightf(Light,Pname,Param) -> - wxe_util:cast(5167, <>). + cast(5167, <>). %% @spec (Light::enum(),Pname::enum(),Params::{float()}) -> ok %% @doc See external documentation. lightfv(Light,Pname,Params) -> - wxe_util:cast(5168, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>). %% @spec (Light::enum(),Pname::enum(),Param::integer()) -> ok %% @doc See external documentation. lighti(Light,Pname,Param) -> - wxe_util:cast(5169, <>). + cast(5169, <>). %% @spec (Light::enum(),Pname::enum(),Params::{integer()}) -> ok %% @doc See external documentation. lightiv(Light,Pname,Params) -> - wxe_util:cast(5170, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>). %% @spec (Factor::integer(),Pattern::integer()) -> ok %% @doc See external documentation. lineStipple(Factor,Pattern) -> - wxe_util:cast(5171, <>). + cast(5171, <>). %% @spec (Width::float()) -> ok %% @doc See external documentation. lineWidth(Width) -> - wxe_util:cast(5172, <>). + cast(5172, <>). %% @spec (Base::integer()) -> ok %% @doc See external documentation. listBase(Base) -> - wxe_util:cast(5173, <>). + cast(5173, <>). %% @spec () -> ok %% @doc See external documentation. loadIdentity() -> - wxe_util:cast(5174, <<>>). + cast(5174, <<>>). %% @spec (M::{float()}) -> ok %% @doc See external documentation. loadMatrixd({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16}) -> - wxe_util:cast(5175, <>); + cast(5175, <>); loadMatrixd({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12}) -> - wxe_util:cast(5175, <>). + cast(5175, <>). %% @spec (M::{float()}) -> ok %% @doc See external documentation. loadMatrixf({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16}) -> - wxe_util:cast(5176, <>); + cast(5176, <>); loadMatrixf({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12}) -> - wxe_util:cast(5176, <>). + cast(5176, <>). %% @spec (Name::integer()) -> ok %% @doc See external documentation. loadName(Name) -> - wxe_util:cast(5177, <>). + cast(5177, <>). %% @spec (Opcode::enum()) -> ok %% @doc See external documentation. logicOp(Opcode) -> - wxe_util:cast(5178, <>). + cast(5178, <>). %% @spec (Target::enum(),U1::float(),U2::float(),Stride::integer(),Order::integer(),Points::binary()) -> ok %% @doc See external documentation. map1d(Target,U1,U2,Stride,Order,Points) -> - wxe_util:send_bin(Points), - wxe_util:cast(5179, <>). + send_bin(Points), + cast(5179, <>). %% @spec (Target::enum(),U1::float(),U2::float(),Stride::integer(),Order::integer(),Points::binary()) -> ok %% @doc See external documentation. map1f(Target,U1,U2,Stride,Order,Points) -> - wxe_util:send_bin(Points), - wxe_util:cast(5180, <>). + send_bin(Points), + cast(5180, <>). %% @spec (Target::enum(),U1::float(),U2::float(),Ustride::integer(),Uorder::integer(),V1::float(),V2::float(),Vstride::integer(),Vorder::integer(),Points::binary()) -> ok %% @doc See external documentation. map2d(Target,U1,U2,Ustride,Uorder,V1,V2,Vstride,Vorder,Points) -> - wxe_util:send_bin(Points), - wxe_util:cast(5181, <>). + send_bin(Points), + cast(5181, <>). %% @spec (Target::enum(),U1::float(),U2::float(),Ustride::integer(),Uorder::integer(),V1::float(),V2::float(),Vstride::integer(),Vorder::integer(),Points::binary()) -> ok %% @doc See external documentation. map2f(Target,U1,U2,Ustride,Uorder,V1,V2,Vstride,Vorder,Points) -> - wxe_util:send_bin(Points), - wxe_util:cast(5182, <>). + send_bin(Points), + cast(5182, <>). %% @spec (Un::integer(),U1::float(),U2::float()) -> ok %% @doc See external documentation. mapGrid1d(Un,U1,U2) -> - wxe_util:cast(5183, <>). + cast(5183, <>). %% @spec (Un::integer(),U1::float(),U2::float()) -> ok %% @doc See external documentation. mapGrid1f(Un,U1,U2) -> - wxe_util:cast(5184, <>). + cast(5184, <>). %% @spec (Un::integer(),U1::float(),U2::float(),Vn::integer(),V1::float(),V2::float()) -> ok %% @doc See external documentation. mapGrid2d(Un,U1,U2,Vn,V1,V2) -> - wxe_util:cast(5185, <>). + cast(5185, <>). %% @spec (Un::integer(),U1::float(),U2::float(),Vn::integer(),V1::float(),V2::float()) -> ok %% @doc See external documentation. mapGrid2f(Un,U1,U2,Vn,V1,V2) -> - wxe_util:cast(5186, <>). + cast(5186, <>). %% @spec (Face::enum(),Pname::enum(),Param::float()) -> ok %% @doc See external documentation. materialf(Face,Pname,Param) -> - wxe_util:cast(5187, <>). + cast(5187, <>). %% @spec (Face::enum(),Pname::enum(),Params::{float()}) -> ok %% @doc See external documentation. materialfv(Face,Pname,Params) -> - wxe_util:cast(5188, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>). %% @spec (Face::enum(),Pname::enum(),Param::integer()) -> ok %% @doc See external documentation. materiali(Face,Pname,Param) -> - wxe_util:cast(5189, <>). + cast(5189, <>). %% @spec (Face::enum(),Pname::enum(),Params::{integer()}) -> ok %% @doc See external documentation. materialiv(Face,Pname,Params) -> - wxe_util:cast(5190, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>). %% @spec (Mode::enum()) -> ok %% @doc See external documentation. matrixMode(Mode) -> - wxe_util:cast(5191, <>). + cast(5191, <>). %% @spec (M::{float()}) -> ok %% @doc See external documentation. multMatrixd({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16}) -> - wxe_util:cast(5192, <>); + cast(5192, <>); multMatrixd({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12}) -> - wxe_util:cast(5192, <>). + cast(5192, <>). %% @spec (M::{float()}) -> ok %% @doc See external documentation. multMatrixf({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16}) -> - wxe_util:cast(5193, <>); + cast(5193, <>); multMatrixf({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12}) -> - wxe_util:cast(5193, <>). + cast(5193, <>). %% @spec (List::integer(),Mode::enum()) -> ok %% @doc See external documentation. newList(List,Mode) -> - wxe_util:cast(5194, <>). + cast(5194, <>). %% @spec (Nx::integer(),Ny::integer(),Nz::integer()) -> ok %% @doc See external documentation. normal3b(Nx,Ny,Nz) -> - wxe_util:cast(5195, <>). + cast(5195, <>). %% @spec ({Nx,Ny,Nz}) -> ok %% @equiv normal3b(Nx,Ny,Nz) @@ -1141,7 +1171,7 @@ normal3bv({Nx,Ny,Nz}) -> normal3b(Nx,Ny,Nz). %% @spec (Nx::float(),Ny::float(),Nz::float()) -> ok %% @doc See external documentation. normal3d(Nx,Ny,Nz) -> - wxe_util:cast(5196, <>). + cast(5196, <>). %% @spec ({Nx,Ny,Nz}) -> ok %% @equiv normal3d(Nx,Ny,Nz) @@ -1150,7 +1180,7 @@ normal3dv({Nx,Ny,Nz}) -> normal3d(Nx,Ny,Nz). %% @spec (Nx::float(),Ny::float(),Nz::float()) -> ok %% @doc See external documentation. normal3f(Nx,Ny,Nz) -> - wxe_util:cast(5197, <>). + cast(5197, <>). %% @spec ({Nx,Ny,Nz}) -> ok %% @equiv normal3f(Nx,Ny,Nz) @@ -1159,7 +1189,7 @@ normal3fv({Nx,Ny,Nz}) -> normal3f(Nx,Ny,Nz). %% @spec (Nx::integer(),Ny::integer(),Nz::integer()) -> ok %% @doc See external documentation. normal3i(Nx,Ny,Nz) -> - wxe_util:cast(5198, <>). + cast(5198, <>). %% @spec ({Nx,Ny,Nz}) -> ok %% @equiv normal3i(Nx,Ny,Nz) @@ -1168,7 +1198,7 @@ normal3iv({Nx,Ny,Nz}) -> normal3i(Nx,Ny,Nz). %% @spec (Nx::integer(),Ny::integer(),Nz::integer()) -> ok %% @doc See external documentation. normal3s(Nx,Ny,Nz) -> - wxe_util:cast(5199, <>). + cast(5199, <>). %% @spec ({Nx,Ny,Nz}) -> ok %% @equiv normal3s(Nx,Ny,Nz) @@ -1177,136 +1207,136 @@ normal3sv({Nx,Ny,Nz}) -> normal3s(Nx,Ny,Nz). %% @spec (Type::enum(),Stride::integer(),Pointer::offset()|binary()) -> ok %% @doc See external documentation. normalPointer(Type,Stride,Pointer) when is_integer(Pointer) -> - wxe_util:cast(5200, <>); + cast(5200, <>); normalPointer(Type,Stride,Pointer) -> - wxe_util:send_bin(Pointer), - wxe_util:cast(5201, <>). + send_bin(Pointer), + cast(5201, <>). %% @spec (Left::float(),Right::float(),Bottom::float(),Top::float(),ZNear::float(),ZFar::float()) -> ok %% @doc See external documentation. ortho(Left,Right,Bottom,Top,ZNear,ZFar) -> - wxe_util:cast(5202, <>). + cast(5202, <>). %% @spec (Token::float()) -> ok %% @doc See external documentation. passThrough(Token) -> - wxe_util:cast(5203, <>). + cast(5203, <>). %% @spec (Map::enum(),Mapsize::integer(),Values::binary()) -> ok %% @doc See external documentation. pixelMapfv(Map,Mapsize,Values) -> - wxe_util:send_bin(Values), - wxe_util:cast(5204, <>). + send_bin(Values), + cast(5204, <>). %% @spec (Map::enum(),Mapsize::integer(),Values::binary()) -> ok %% @doc See external documentation. pixelMapuiv(Map,Mapsize,Values) -> - wxe_util:send_bin(Values), - wxe_util:cast(5205, <>). + send_bin(Values), + cast(5205, <>). %% @spec (Map::enum(),Mapsize::integer(),Values::binary()) -> ok %% @doc See external documentation. pixelMapusv(Map,Mapsize,Values) -> - wxe_util:send_bin(Values), - wxe_util:cast(5206, <>). + send_bin(Values), + cast(5206, <>). %% @spec (Pname::enum(),Param::float()) -> ok %% @doc See external documentation. pixelStoref(Pname,Param) -> - wxe_util:cast(5207, <>). + cast(5207, <>). %% @spec (Pname::enum(),Param::integer()) -> ok %% @doc See external documentation. pixelStorei(Pname,Param) -> - wxe_util:cast(5208, <>). + cast(5208, <>). %% @spec (Pname::enum(),Param::float()) -> ok %% @doc See external documentation. pixelTransferf(Pname,Param) -> - wxe_util:cast(5209, <>). + cast(5209, <>). %% @spec (Pname::enum(),Param::integer()) -> ok %% @doc See external documentation. pixelTransferi(Pname,Param) -> - wxe_util:cast(5210, <>). + cast(5210, <>). %% @spec (Xfactor::float(),Yfactor::float()) -> ok %% @doc See external documentation. pixelZoom(Xfactor,Yfactor) -> - wxe_util:cast(5211, <>). + cast(5211, <>). %% @spec (Size::float()) -> ok %% @doc See external documentation. pointSize(Size) -> - wxe_util:cast(5212, <>). + cast(5212, <>). %% @spec (Face::enum(),Mode::enum()) -> ok %% @doc See external documentation. polygonMode(Face,Mode) -> - wxe_util:cast(5213, <>). + cast(5213, <>). %% @spec (Factor::float(),Units::float()) -> ok %% @doc See external documentation. polygonOffset(Factor,Units) -> - wxe_util:cast(5214, <>). + cast(5214, <>). %% @spec (Mask::binary()) -> ok %% @doc See external documentation. polygonStipple(Mask) -> - wxe_util:send_bin(Mask), - wxe_util:cast(5215, <<>>). + send_bin(Mask), + cast(5215, <<>>). %% @spec () -> ok %% @doc See external documentation. popAttrib() -> - wxe_util:cast(5216, <<>>). + cast(5216, <<>>). %% @spec () -> ok %% @doc See external documentation. popClientAttrib() -> - wxe_util:cast(5217, <<>>). + cast(5217, <<>>). %% @spec () -> ok %% @doc See external documentation. popMatrix() -> - wxe_util:cast(5218, <<>>). + cast(5218, <<>>). %% @spec () -> ok %% @doc See external documentation. popName() -> - wxe_util:cast(5219, <<>>). + cast(5219, <<>>). %% @spec (Textures::[integer()],Priorities::[clamp()]) -> ok %% @doc See external documentation. prioritizeTextures(Textures,Priorities) -> - wxe_util:cast(5220, <<(length(Textures)):?GLuint, + cast(5220, <<(length(Textures)):?GLuint, (<< <> || C <- Textures>>)/binary,0:(((1+length(Textures)) rem 2)*32),(length(Priorities)):?GLuint, (<< <> || C <- Priorities>>)/binary,0:(((1+length(Priorities)) rem 2)*32)>>). %% @spec (Mask::integer()) -> ok %% @doc See external documentation. pushAttrib(Mask) -> - wxe_util:cast(5221, <>). + cast(5221, <>). %% @spec (Mask::integer()) -> ok %% @doc See external documentation. pushClientAttrib(Mask) -> - wxe_util:cast(5222, <>). + cast(5222, <>). %% @spec () -> ok %% @doc See external documentation. pushMatrix() -> - wxe_util:cast(5223, <<>>). + cast(5223, <<>>). %% @spec (Name::integer()) -> ok %% @doc See external documentation. pushName(Name) -> - wxe_util:cast(5224, <>). + cast(5224, <>). %% @spec (X::float(),Y::float()) -> ok %% @doc See external documentation. rasterPos2d(X,Y) -> - wxe_util:cast(5225, <>). + cast(5225, <>). %% @spec ({X,Y}) -> ok %% @equiv rasterPos2d(X,Y) @@ -1315,7 +1345,7 @@ rasterPos2dv({X,Y}) -> rasterPos2d(X,Y). %% @spec (X::float(),Y::float()) -> ok %% @doc See external documentation. rasterPos2f(X,Y) -> - wxe_util:cast(5226, <>). + cast(5226, <>). %% @spec ({X,Y}) -> ok %% @equiv rasterPos2f(X,Y) @@ -1324,7 +1354,7 @@ rasterPos2fv({X,Y}) -> rasterPos2f(X,Y). %% @spec (X::integer(),Y::integer()) -> ok %% @doc See external documentation. rasterPos2i(X,Y) -> - wxe_util:cast(5227, <>). + cast(5227, <>). %% @spec ({X,Y}) -> ok %% @equiv rasterPos2i(X,Y) @@ -1333,7 +1363,7 @@ rasterPos2iv({X,Y}) -> rasterPos2i(X,Y). %% @spec (X::integer(),Y::integer()) -> ok %% @doc See external documentation. rasterPos2s(X,Y) -> - wxe_util:cast(5228, <>). + cast(5228, <>). %% @spec ({X,Y}) -> ok %% @equiv rasterPos2s(X,Y) @@ -1342,7 +1372,7 @@ rasterPos2sv({X,Y}) -> rasterPos2s(X,Y). %% @spec (X::float(),Y::float(),Z::float()) -> ok %% @doc See external documentation. rasterPos3d(X,Y,Z) -> - wxe_util:cast(5229, <>). + cast(5229, <>). %% @spec ({X,Y,Z}) -> ok %% @equiv rasterPos3d(X,Y,Z) @@ -1351,7 +1381,7 @@ rasterPos3dv({X,Y,Z}) -> rasterPos3d(X,Y,Z). %% @spec (X::float(),Y::float(),Z::float()) -> ok %% @doc See external documentation. rasterPos3f(X,Y,Z) -> - wxe_util:cast(5230, <>). + cast(5230, <>). %% @spec ({X,Y,Z}) -> ok %% @equiv rasterPos3f(X,Y,Z) @@ -1360,7 +1390,7 @@ rasterPos3fv({X,Y,Z}) -> rasterPos3f(X,Y,Z). %% @spec (X::integer(),Y::integer(),Z::integer()) -> ok %% @doc See external documentation. rasterPos3i(X,Y,Z) -> - wxe_util:cast(5231, <>). + cast(5231, <>). %% @spec ({X,Y,Z}) -> ok %% @equiv rasterPos3i(X,Y,Z) @@ -1369,7 +1399,7 @@ rasterPos3iv({X,Y,Z}) -> rasterPos3i(X,Y,Z). %% @spec (X::integer(),Y::integer(),Z::integer()) -> ok %% @doc See external documentation. rasterPos3s(X,Y,Z) -> - wxe_util:cast(5232, <>). + cast(5232, <>). %% @spec ({X,Y,Z}) -> ok %% @equiv rasterPos3s(X,Y,Z) @@ -1378,7 +1408,7 @@ rasterPos3sv({X,Y,Z}) -> rasterPos3s(X,Y,Z). %% @spec (X::float(),Y::float(),Z::float(),W::float()) -> ok %% @doc See external documentation. rasterPos4d(X,Y,Z,W) -> - wxe_util:cast(5233, <>). + cast(5233, <>). %% @spec ({X,Y,Z,W}) -> ok %% @equiv rasterPos4d(X,Y,Z,W) @@ -1387,7 +1417,7 @@ rasterPos4dv({X,Y,Z,W}) -> rasterPos4d(X,Y,Z,W). %% @spec (X::float(),Y::float(),Z::float(),W::float()) -> ok %% @doc See external documentation. rasterPos4f(X,Y,Z,W) -> - wxe_util:cast(5234, <>). + cast(5234, <>). %% @spec ({X,Y,Z,W}) -> ok %% @equiv rasterPos4f(X,Y,Z,W) @@ -1396,7 +1426,7 @@ rasterPos4fv({X,Y,Z,W}) -> rasterPos4f(X,Y,Z,W). %% @spec (X::integer(),Y::integer(),Z::integer(),W::integer()) -> ok %% @doc See external documentation. rasterPos4i(X,Y,Z,W) -> - wxe_util:cast(5235, <>). + cast(5235, <>). %% @spec ({X,Y,Z,W}) -> ok %% @equiv rasterPos4i(X,Y,Z,W) @@ -1405,7 +1435,7 @@ rasterPos4iv({X,Y,Z,W}) -> rasterPos4i(X,Y,Z,W). %% @spec (X::integer(),Y::integer(),Z::integer(),W::integer()) -> ok %% @doc See external documentation. rasterPos4s(X,Y,Z,W) -> - wxe_util:cast(5236, <>). + cast(5236, <>). %% @spec ({X,Y,Z,W}) -> ok %% @equiv rasterPos4s(X,Y,Z,W) @@ -1414,114 +1444,114 @@ rasterPos4sv({X,Y,Z,W}) -> rasterPos4s(X,Y,Z,W). %% @spec (Mode::enum()) -> ok %% @doc See external documentation. readBuffer(Mode) -> - wxe_util:cast(5237, <>). + cast(5237, <>). -%% @spec (X::integer(),Y::integer(),Width::integer(),Height::integer(),Format::enum(),Type::enum(),Pixels::wx:wx_mem()) -> ok +%% @spec (X::integer(),Y::integer(),Width::integer(),Height::integer(),Format::enum(),Type::enum(),Pixels::mem()) -> ok %% @doc See external documentation. readPixels(X,Y,Width,Height,Format,Type,Pixels) -> - wxe_util:send_bin(Pixels#wx_mem.bin), - wxe_util:call(5238, <>). + send_bin(Pixels), + call(5238, <>). %% @spec (X1::float(),Y1::float(),X2::float(),Y2::float()) -> ok %% @doc See external documentation. rectd(X1,Y1,X2,Y2) -> - wxe_util:cast(5239, <>). + cast(5239, <>). %% @spec (V1::{float()},V2::{float()}) -> ok %% @doc See external documentation. rectdv({V1,V2},{V1,V2}) -> - wxe_util:cast(5240, <>). + cast(5240, <>). %% @spec (X1::float(),Y1::float(),X2::float(),Y2::float()) -> ok %% @doc See external documentation. rectf(X1,Y1,X2,Y2) -> - wxe_util:cast(5241, <>). + cast(5241, <>). %% @spec (V1::{float()},V2::{float()}) -> ok %% @doc See external documentation. rectfv({V1,V2},{V1,V2}) -> - wxe_util:cast(5242, <>). + cast(5242, <>). %% @spec (X1::integer(),Y1::integer(),X2::integer(),Y2::integer()) -> ok %% @doc See external documentation. recti(X1,Y1,X2,Y2) -> - wxe_util:cast(5243, <>). + cast(5243, <>). %% @spec (V1::{integer()},V2::{integer()}) -> ok %% @doc See external documentation. rectiv({V1,V2},{V1,V2}) -> - wxe_util:cast(5244, <>). + cast(5244, <>). %% @spec (X1::integer(),Y1::integer(),X2::integer(),Y2::integer()) -> ok %% @doc See external documentation. rects(X1,Y1,X2,Y2) -> - wxe_util:cast(5245, <>). + cast(5245, <>). %% @spec (V1::{integer()},V2::{integer()}) -> ok %% @doc See external documentation. rectsv({V1,V2},{V1,V2}) -> - wxe_util:cast(5246, <>). + cast(5246, <>). %% @spec (Mode::enum()) -> integer() %% @doc See external documentation. renderMode(Mode) -> - wxe_util:call(5247, <>). + call(5247, <>). %% @spec (Angle::float(),X::float(),Y::float(),Z::float()) -> ok %% @doc See external documentation. rotated(Angle,X,Y,Z) -> - wxe_util:cast(5248, <>). + cast(5248, <>). %% @spec (Angle::float(),X::float(),Y::float(),Z::float()) -> ok %% @doc See external documentation. rotatef(Angle,X,Y,Z) -> - wxe_util:cast(5249, <>). + cast(5249, <>). %% @spec (X::float(),Y::float(),Z::float()) -> ok %% @doc See external documentation. scaled(X,Y,Z) -> - wxe_util:cast(5250, <>). + cast(5250, <>). %% @spec (X::float(),Y::float(),Z::float()) -> ok %% @doc See external documentation. scalef(X,Y,Z) -> - wxe_util:cast(5251, <>). + cast(5251, <>). %% @spec (X::integer(),Y::integer(),Width::integer(),Height::integer()) -> ok %% @doc See external documentation. scissor(X,Y,Width,Height) -> - wxe_util:cast(5252, <>). + cast(5252, <>). -%% @spec (Size::integer(),Buffer::wx:wx_mem()) -> ok +%% @spec (Size::integer(),Buffer::mem()) -> ok %% @doc See external documentation. selectBuffer(Size,Buffer) -> - wxe_util:send_bin(Buffer#wx_mem.bin), - wxe_util:call(5253, <>). + send_bin(Buffer), + call(5253, <>). %% @spec (Mode::enum()) -> ok %% @doc See external documentation. shadeModel(Mode) -> - wxe_util:cast(5254, <>). + cast(5254, <>). %% @spec (Func::enum(),Ref::integer(),Mask::integer()) -> ok %% @doc See external documentation. stencilFunc(Func,Ref,Mask) -> - wxe_util:cast(5255, <>). + cast(5255, <>). %% @spec (Mask::integer()) -> ok %% @doc See external documentation. stencilMask(Mask) -> - wxe_util:cast(5256, <>). + cast(5256, <>). %% @spec (Fail::enum(),Zfail::enum(),Zpass::enum()) -> ok %% @doc See external documentation. stencilOp(Fail,Zfail,Zpass) -> - wxe_util:cast(5257, <>). + cast(5257, <>). %% @spec (S::float()) -> ok %% @doc See external documentation. texCoord1d(S) -> - wxe_util:cast(5258, <>). + cast(5258, <>). %% @spec ({S}) -> ok %% @equiv texCoord1d(S) @@ -1530,7 +1560,7 @@ texCoord1dv({S}) -> texCoord1d(S). %% @spec (S::float()) -> ok %% @doc See external documentation. texCoord1f(S) -> - wxe_util:cast(5259, <>). + cast(5259, <>). %% @spec ({S}) -> ok %% @equiv texCoord1f(S) @@ -1539,7 +1569,7 @@ texCoord1fv({S}) -> texCoord1f(S). %% @spec (S::integer()) -> ok %% @doc See external documentation. texCoord1i(S) -> - wxe_util:cast(5260, <>). + cast(5260, <>). %% @spec ({S}) -> ok %% @equiv texCoord1i(S) @@ -1548,7 +1578,7 @@ texCoord1iv({S}) -> texCoord1i(S). %% @spec (S::integer()) -> ok %% @doc See external documentation. texCoord1s(S) -> - wxe_util:cast(5261, <>). + cast(5261, <>). %% @spec ({S}) -> ok %% @equiv texCoord1s(S) @@ -1557,7 +1587,7 @@ texCoord1sv({S}) -> texCoord1s(S). %% @spec (S::float(),T::float()) -> ok %% @doc See external documentation. texCoord2d(S,T) -> - wxe_util:cast(5262, <>). + cast(5262, <>). %% @spec ({S,T}) -> ok %% @equiv texCoord2d(S,T) @@ -1566,7 +1596,7 @@ texCoord2dv({S,T}) -> texCoord2d(S,T). %% @spec (S::float(),T::float()) -> ok %% @doc See external documentation. texCoord2f(S,T) -> - wxe_util:cast(5263, <>). + cast(5263, <>). %% @spec ({S,T}) -> ok %% @equiv texCoord2f(S,T) @@ -1575,7 +1605,7 @@ texCoord2fv({S,T}) -> texCoord2f(S,T). %% @spec (S::integer(),T::integer()) -> ok %% @doc See external documentation. texCoord2i(S,T) -> - wxe_util:cast(5264, <>). + cast(5264, <>). %% @spec ({S,T}) -> ok %% @equiv texCoord2i(S,T) @@ -1584,7 +1614,7 @@ texCoord2iv({S,T}) -> texCoord2i(S,T). %% @spec (S::integer(),T::integer()) -> ok %% @doc See external documentation. texCoord2s(S,T) -> - wxe_util:cast(5265, <>). + cast(5265, <>). %% @spec ({S,T}) -> ok %% @equiv texCoord2s(S,T) @@ -1593,7 +1623,7 @@ texCoord2sv({S,T}) -> texCoord2s(S,T). %% @spec (S::float(),T::float(),R::float()) -> ok %% @doc See external documentation. texCoord3d(S,T,R) -> - wxe_util:cast(5266, <>). + cast(5266, <>). %% @spec ({S,T,R}) -> ok %% @equiv texCoord3d(S,T,R) @@ -1602,7 +1632,7 @@ texCoord3dv({S,T,R}) -> texCoord3d(S,T,R). %% @spec (S::float(),T::float(),R::float()) -> ok %% @doc See external documentation. texCoord3f(S,T,R) -> - wxe_util:cast(5267, <>). + cast(5267, <>). %% @spec ({S,T,R}) -> ok %% @equiv texCoord3f(S,T,R) @@ -1611,7 +1641,7 @@ texCoord3fv({S,T,R}) -> texCoord3f(S,T,R). %% @spec (S::integer(),T::integer(),R::integer()) -> ok %% @doc See external documentation. texCoord3i(S,T,R) -> - wxe_util:cast(5268, <>). + cast(5268, <>). %% @spec ({S,T,R}) -> ok %% @equiv texCoord3i(S,T,R) @@ -1620,7 +1650,7 @@ texCoord3iv({S,T,R}) -> texCoord3i(S,T,R). %% @spec (S::integer(),T::integer(),R::integer()) -> ok %% @doc See external documentation. texCoord3s(S,T,R) -> - wxe_util:cast(5269, <>). + cast(5269, <>). %% @spec ({S,T,R}) -> ok %% @equiv texCoord3s(S,T,R) @@ -1629,7 +1659,7 @@ texCoord3sv({S,T,R}) -> texCoord3s(S,T,R). %% @spec (S::float(),T::float(),R::float(),Q::float()) -> ok %% @doc See external documentation. texCoord4d(S,T,R,Q) -> - wxe_util:cast(5270, <>). + cast(5270, <>). %% @spec ({S,T,R,Q}) -> ok %% @equiv texCoord4d(S,T,R,Q) @@ -1638,7 +1668,7 @@ texCoord4dv({S,T,R,Q}) -> texCoord4d(S,T,R,Q). %% @spec (S::float(),T::float(),R::float(),Q::float()) -> ok %% @doc See external documentation. texCoord4f(S,T,R,Q) -> - wxe_util:cast(5271, <>). + cast(5271, <>). %% @spec ({S,T,R,Q}) -> ok %% @equiv texCoord4f(S,T,R,Q) @@ -1647,7 +1677,7 @@ texCoord4fv({S,T,R,Q}) -> texCoord4f(S,T,R,Q). %% @spec (S::integer(),T::integer(),R::integer(),Q::integer()) -> ok %% @doc See external documentation. texCoord4i(S,T,R,Q) -> - wxe_util:cast(5272, <>). + cast(5272, <>). %% @spec ({S,T,R,Q}) -> ok %% @equiv texCoord4i(S,T,R,Q) @@ -1656,7 +1686,7 @@ texCoord4iv({S,T,R,Q}) -> texCoord4i(S,T,R,Q). %% @spec (S::integer(),T::integer(),R::integer(),Q::integer()) -> ok %% @doc See external documentation. texCoord4s(S,T,R,Q) -> - wxe_util:cast(5273, <>). + cast(5273, <>). %% @spec ({S,T,R,Q}) -> ok %% @equiv texCoord4s(S,T,R,Q) @@ -1665,134 +1695,134 @@ texCoord4sv({S,T,R,Q}) -> texCoord4s(S,T,R,Q). %% @spec (Size::integer(),Type::enum(),Stride::integer(),Pointer::offset()|binary()) -> ok %% @doc See external documentation. texCoordPointer(Size,Type,Stride,Pointer) when is_integer(Pointer) -> - wxe_util:cast(5274, <>); + cast(5274, <>); texCoordPointer(Size,Type,Stride,Pointer) -> - wxe_util:send_bin(Pointer), - wxe_util:cast(5275, <>). + send_bin(Pointer), + cast(5275, <>). %% @spec (Target::enum(),Pname::enum(),Param::float()) -> ok %% @doc See external documentation. texEnvf(Target,Pname,Param) -> - wxe_util:cast(5276, <>). + cast(5276, <>). %% @spec (Target::enum(),Pname::enum(),Params::{float()}) -> ok %% @doc See external documentation. texEnvfv(Target,Pname,Params) -> - wxe_util:cast(5277, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>). %% @spec (Target::enum(),Pname::enum(),Param::integer()) -> ok %% @doc See external documentation. texEnvi(Target,Pname,Param) -> - wxe_util:cast(5278, <>). + cast(5278, <>). %% @spec (Target::enum(),Pname::enum(),Params::{integer()}) -> ok %% @doc See external documentation. texEnviv(Target,Pname,Params) -> - wxe_util:cast(5279, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>). %% @spec (Coord::enum(),Pname::enum(),Param::float()) -> ok %% @doc See external documentation. texGend(Coord,Pname,Param) -> - wxe_util:cast(5280, <>). + cast(5280, <>). %% @spec (Coord::enum(),Pname::enum(),Params::{float()}) -> ok %% @doc See external documentation. texGendv(Coord,Pname,Params) -> - wxe_util:cast(5281, <> ||C <- tuple_to_list(Params)>>)/binary>>). %% @spec (Coord::enum(),Pname::enum(),Param::float()) -> ok %% @doc See external documentation. texGenf(Coord,Pname,Param) -> - wxe_util:cast(5282, <>). + cast(5282, <>). %% @spec (Coord::enum(),Pname::enum(),Params::{float()}) -> ok %% @doc See external documentation. texGenfv(Coord,Pname,Params) -> - wxe_util:cast(5283, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>). %% @spec (Coord::enum(),Pname::enum(),Param::integer()) -> ok %% @doc See external documentation. texGeni(Coord,Pname,Param) -> - wxe_util:cast(5284, <>). + cast(5284, <>). %% @spec (Coord::enum(),Pname::enum(),Params::{integer()}) -> ok %% @doc See external documentation. texGeniv(Coord,Pname,Params) -> - wxe_util:cast(5285, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>). %% @spec (Target::enum(),Level::integer(),Internalformat::integer(),Width::integer(),Border::integer(),Format::enum(),Type::enum(),Pixels::offset()|binary()) -> ok %% @doc See external documentation. texImage1D(Target,Level,Internalformat,Width,Border,Format,Type,Pixels) when is_integer(Pixels) -> - wxe_util:cast(5286, <>); + cast(5286, <>); texImage1D(Target,Level,Internalformat,Width,Border,Format,Type,Pixels) -> - wxe_util:send_bin(Pixels), - wxe_util:cast(5287, <>). + send_bin(Pixels), + cast(5287, <>). %% @spec (Target::enum(),Level::integer(),Internalformat::integer(),Width::integer(),Height::integer(),Border::integer(),Format::enum(),Type::enum(),Pixels::offset()|binary()) -> ok %% @doc See external documentation. texImage2D(Target,Level,Internalformat,Width,Height,Border,Format,Type,Pixels) when is_integer(Pixels) -> - wxe_util:cast(5288, <>); + cast(5288, <>); texImage2D(Target,Level,Internalformat,Width,Height,Border,Format,Type,Pixels) -> - wxe_util:send_bin(Pixels), - wxe_util:cast(5289, <>). + send_bin(Pixels), + cast(5289, <>). %% @spec (Target::enum(),Pname::enum(),Param::float()) -> ok %% @doc See external documentation. texParameterf(Target,Pname,Param) -> - wxe_util:cast(5290, <>). + cast(5290, <>). %% @spec (Target::enum(),Pname::enum(),Params::{float()}) -> ok %% @doc See external documentation. texParameterfv(Target,Pname,Params) -> - wxe_util:cast(5291, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>). %% @spec (Target::enum(),Pname::enum(),Param::integer()) -> ok %% @doc See external documentation. texParameteri(Target,Pname,Param) -> - wxe_util:cast(5292, <>). + cast(5292, <>). %% @spec (Target::enum(),Pname::enum(),Params::{integer()}) -> ok %% @doc See external documentation. texParameteriv(Target,Pname,Params) -> - wxe_util:cast(5293, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>). %% @spec (Target::enum(),Level::integer(),Xoffset::integer(),Width::integer(),Format::enum(),Type::enum(),Pixels::offset()|binary()) -> ok %% @doc See external documentation. texSubImage1D(Target,Level,Xoffset,Width,Format,Type,Pixels) when is_integer(Pixels) -> - wxe_util:cast(5294, <>); + cast(5294, <>); texSubImage1D(Target,Level,Xoffset,Width,Format,Type,Pixels) -> - wxe_util:send_bin(Pixels), - wxe_util:cast(5295, <>). + send_bin(Pixels), + cast(5295, <>). %% @spec (Target::enum(),Level::integer(),Xoffset::integer(),Yoffset::integer(),Width::integer(),Height::integer(),Format::enum(),Type::enum(),Pixels::offset()|binary()) -> ok %% @doc See external documentation. texSubImage2D(Target,Level,Xoffset,Yoffset,Width,Height,Format,Type,Pixels) when is_integer(Pixels) -> - wxe_util:cast(5296, <>); + cast(5296, <>); texSubImage2D(Target,Level,Xoffset,Yoffset,Width,Height,Format,Type,Pixels) -> - wxe_util:send_bin(Pixels), - wxe_util:cast(5297, <>). + send_bin(Pixels), + cast(5297, <>). %% @spec (X::float(),Y::float(),Z::float()) -> ok %% @doc See external documentation. translated(X,Y,Z) -> - wxe_util:cast(5298, <>). + cast(5298, <>). %% @spec (X::float(),Y::float(),Z::float()) -> ok %% @doc See external documentation. translatef(X,Y,Z) -> - wxe_util:cast(5299, <>). + cast(5299, <>). %% @spec (X::float(),Y::float()) -> ok %% @doc See external documentation. vertex2d(X,Y) -> - wxe_util:cast(5300, <>). + cast(5300, <>). %% @spec ({X,Y}) -> ok %% @equiv vertex2d(X,Y) @@ -1801,7 +1831,7 @@ vertex2dv({X,Y}) -> vertex2d(X,Y). %% @spec (X::float(),Y::float()) -> ok %% @doc See external documentation. vertex2f(X,Y) -> - wxe_util:cast(5301, <>). + cast(5301, <>). %% @spec ({X,Y}) -> ok %% @equiv vertex2f(X,Y) @@ -1810,7 +1840,7 @@ vertex2fv({X,Y}) -> vertex2f(X,Y). %% @spec (X::integer(),Y::integer()) -> ok %% @doc See external documentation. vertex2i(X,Y) -> - wxe_util:cast(5302, <>). + cast(5302, <>). %% @spec ({X,Y}) -> ok %% @equiv vertex2i(X,Y) @@ -1819,7 +1849,7 @@ vertex2iv({X,Y}) -> vertex2i(X,Y). %% @spec (X::integer(),Y::integer()) -> ok %% @doc See external documentation. vertex2s(X,Y) -> - wxe_util:cast(5303, <>). + cast(5303, <>). %% @spec ({X,Y}) -> ok %% @equiv vertex2s(X,Y) @@ -1828,7 +1858,7 @@ vertex2sv({X,Y}) -> vertex2s(X,Y). %% @spec (X::float(),Y::float(),Z::float()) -> ok %% @doc See external documentation. vertex3d(X,Y,Z) -> - wxe_util:cast(5304, <>). + cast(5304, <>). %% @spec ({X,Y,Z}) -> ok %% @equiv vertex3d(X,Y,Z) @@ -1837,7 +1867,7 @@ vertex3dv({X,Y,Z}) -> vertex3d(X,Y,Z). %% @spec (X::float(),Y::float(),Z::float()) -> ok %% @doc See external documentation. vertex3f(X,Y,Z) -> - wxe_util:cast(5305, <>). + cast(5305, <>). %% @spec ({X,Y,Z}) -> ok %% @equiv vertex3f(X,Y,Z) @@ -1846,7 +1876,7 @@ vertex3fv({X,Y,Z}) -> vertex3f(X,Y,Z). %% @spec (X::integer(),Y::integer(),Z::integer()) -> ok %% @doc See external documentation. vertex3i(X,Y,Z) -> - wxe_util:cast(5306, <>). + cast(5306, <>). %% @spec ({X,Y,Z}) -> ok %% @equiv vertex3i(X,Y,Z) @@ -1855,7 +1885,7 @@ vertex3iv({X,Y,Z}) -> vertex3i(X,Y,Z). %% @spec (X::integer(),Y::integer(),Z::integer()) -> ok %% @doc See external documentation. vertex3s(X,Y,Z) -> - wxe_util:cast(5307, <>). + cast(5307, <>). %% @spec ({X,Y,Z}) -> ok %% @equiv vertex3s(X,Y,Z) @@ -1864,7 +1894,7 @@ vertex3sv({X,Y,Z}) -> vertex3s(X,Y,Z). %% @spec (X::float(),Y::float(),Z::float(),W::float()) -> ok %% @doc See external documentation. vertex4d(X,Y,Z,W) -> - wxe_util:cast(5308, <>). + cast(5308, <>). %% @spec ({X,Y,Z,W}) -> ok %% @equiv vertex4d(X,Y,Z,W) @@ -1873,7 +1903,7 @@ vertex4dv({X,Y,Z,W}) -> vertex4d(X,Y,Z,W). %% @spec (X::float(),Y::float(),Z::float(),W::float()) -> ok %% @doc See external documentation. vertex4f(X,Y,Z,W) -> - wxe_util:cast(5309, <>). + cast(5309, <>). %% @spec ({X,Y,Z,W}) -> ok %% @equiv vertex4f(X,Y,Z,W) @@ -1882,7 +1912,7 @@ vertex4fv({X,Y,Z,W}) -> vertex4f(X,Y,Z,W). %% @spec (X::integer(),Y::integer(),Z::integer(),W::integer()) -> ok %% @doc See external documentation. vertex4i(X,Y,Z,W) -> - wxe_util:cast(5310, <>). + cast(5310, <>). %% @spec ({X,Y,Z,W}) -> ok %% @equiv vertex4i(X,Y,Z,W) @@ -1891,7 +1921,7 @@ vertex4iv({X,Y,Z,W}) -> vertex4i(X,Y,Z,W). %% @spec (X::integer(),Y::integer(),Z::integer(),W::integer()) -> ok %% @doc See external documentation. vertex4s(X,Y,Z,W) -> - wxe_util:cast(5311, <>). + cast(5311, <>). %% @spec ({X,Y,Z,W}) -> ok %% @equiv vertex4s(X,Y,Z,W) @@ -1900,127 +1930,127 @@ vertex4sv({X,Y,Z,W}) -> vertex4s(X,Y,Z,W). %% @spec (Size::integer(),Type::enum(),Stride::integer(),Pointer::offset()|binary()) -> ok %% @doc See external documentation. vertexPointer(Size,Type,Stride,Pointer) when is_integer(Pointer) -> - wxe_util:cast(5312, <>); + cast(5312, <>); vertexPointer(Size,Type,Stride,Pointer) -> - wxe_util:send_bin(Pointer), - wxe_util:cast(5313, <>). + send_bin(Pointer), + cast(5313, <>). %% @spec (X::integer(),Y::integer(),Width::integer(),Height::integer()) -> ok %% @doc See external documentation. viewport(X,Y,Width,Height) -> - wxe_util:cast(5314, <>). + cast(5314, <>). %% @spec (Red::clamp(),Green::clamp(),Blue::clamp(),Alpha::clamp()) -> ok %% @doc See external documentation. blendColor(Red,Green,Blue,Alpha) -> - wxe_util:cast(5315, <>). + cast(5315, <>). %% @spec (Mode::enum()) -> ok %% @doc See external documentation. blendEquation(Mode) -> - wxe_util:cast(5316, <>). + cast(5316, <>). %% @spec (Mode::enum(),Start::integer(),End::integer(),Count::integer(),Type::enum(),Indices::offset()|binary()) -> ok %% @doc See external documentation. drawRangeElements(Mode,Start,End,Count,Type,Indices) when is_integer(Indices) -> - wxe_util:cast(5317, <>); + cast(5317, <>); drawRangeElements(Mode,Start,End,Count,Type,Indices) -> - wxe_util:send_bin(Indices), - wxe_util:cast(5318, <>). + send_bin(Indices), + cast(5318, <>). %% @spec (Target::enum(),Level::integer(),Internalformat::integer(),Width::integer(),Height::integer(),Depth::integer(),Border::integer(),Format::enum(),Type::enum(),Pixels::offset()|binary()) -> ok %% @doc See external documentation. texImage3D(Target,Level,Internalformat,Width,Height,Depth,Border,Format,Type,Pixels) when is_integer(Pixels) -> - wxe_util:cast(5319, <>); + cast(5319, <>); texImage3D(Target,Level,Internalformat,Width,Height,Depth,Border,Format,Type,Pixels) -> - wxe_util:send_bin(Pixels), - wxe_util:cast(5320, <>). + send_bin(Pixels), + cast(5320, <>). %% @spec (Target::enum(),Level::integer(),Xoffset::integer(),Yoffset::integer(),Zoffset::integer(),Width::integer(),Height::integer(),Depth::integer(),Format::enum(),Type::enum(),Pixels::offset()|binary()) -> ok %% @doc See external documentation. texSubImage3D(Target,Level,Xoffset,Yoffset,Zoffset,Width,Height,Depth,Format,Type,Pixels) when is_integer(Pixels) -> - wxe_util:cast(5321, <>); + cast(5321, <>); texSubImage3D(Target,Level,Xoffset,Yoffset,Zoffset,Width,Height,Depth,Format,Type,Pixels) -> - wxe_util:send_bin(Pixels), - wxe_util:cast(5322, <>). + send_bin(Pixels), + cast(5322, <>). %% @spec (Target::enum(),Level::integer(),Xoffset::integer(),Yoffset::integer(),Zoffset::integer(),X::integer(),Y::integer(),Width::integer(),Height::integer()) -> ok %% @doc See external documentation. copyTexSubImage3D(Target,Level,Xoffset,Yoffset,Zoffset,X,Y,Width,Height) -> - wxe_util:cast(5323, <>). + cast(5323, <>). %% @spec (Target::enum(),Internalformat::enum(),Width::integer(),Format::enum(),Type::enum(),Table::offset()|binary()) -> ok %% @doc See external documentation. colorTable(Target,Internalformat,Width,Format,Type,Table) when is_integer(Table) -> - wxe_util:cast(5324, <>); + cast(5324, <>); colorTable(Target,Internalformat,Width,Format,Type,Table) -> - wxe_util:send_bin(Table), - wxe_util:cast(5325, <>). + send_bin(Table), + cast(5325, <>). %% @spec (Target::enum(),Pname::enum(),Params::{float()}) -> ok %% @doc See external documentation. colorTableParameterfv(Target,Pname,{P1,P2,P3,P4}) -> - wxe_util:cast(5326, <>). + cast(5326, <>). %% @spec (Target::enum(),Pname::enum(),Params::{integer()}) -> ok %% @doc See external documentation. colorTableParameteriv(Target,Pname,{P1,P2,P3,P4}) -> - wxe_util:cast(5327, <>). + cast(5327, <>). %% @spec (Target::enum(),Internalformat::enum(),X::integer(),Y::integer(),Width::integer()) -> ok %% @doc See external documentation. copyColorTable(Target,Internalformat,X,Y,Width) -> - wxe_util:cast(5328, <>). + cast(5328, <>). -%% @spec (Target::enum(),Format::enum(),Type::enum(),Table::wx:wx_mem()) -> ok +%% @spec (Target::enum(),Format::enum(),Type::enum(),Table::mem()) -> ok %% @doc See external documentation. getColorTable(Target,Format,Type,Table) -> - wxe_util:send_bin(Table#wx_mem.bin), - wxe_util:call(5329, <>). + send_bin(Table), + call(5329, <>). %% @spec (Target::enum(),Pname::enum()) -> {float()} %% @doc See external documentation. getColorTableParameterfv(Target,Pname) -> - wxe_util:call(5330, <>). + call(5330, <>). %% @spec (Target::enum(),Pname::enum()) -> {integer()} %% @doc See external documentation. getColorTableParameteriv(Target,Pname) -> - wxe_util:call(5331, <>). + call(5331, <>). %% @spec (Target::enum(),Start::integer(),Count::integer(),Format::enum(),Type::enum(),Data::offset()|binary()) -> ok %% @doc See external documentation. colorSubTable(Target,Start,Count,Format,Type,Data) when is_integer(Data) -> - wxe_util:cast(5332, <>); + cast(5332, <>); colorSubTable(Target,Start,Count,Format,Type,Data) -> - wxe_util:send_bin(Data), - wxe_util:cast(5333, <>). + send_bin(Data), + cast(5333, <>). %% @spec (Target::enum(),Start::integer(),X::integer(),Y::integer(),Width::integer()) -> ok %% @doc See external documentation. copyColorSubTable(Target,Start,X,Y,Width) -> - wxe_util:cast(5334, <>). + cast(5334, <>). %% @spec (Target::enum(),Internalformat::enum(),Width::integer(),Format::enum(),Type::enum(),Image::offset()|binary()) -> ok %% @doc See external documentation. convolutionFilter1D(Target,Internalformat,Width,Format,Type,Image) when is_integer(Image) -> - wxe_util:cast(5335, <>); + cast(5335, <>); convolutionFilter1D(Target,Internalformat,Width,Format,Type,Image) -> - wxe_util:send_bin(Image), - wxe_util:cast(5336, <>). + send_bin(Image), + cast(5336, <>). %% @spec (Target::enum(),Internalformat::enum(),Width::integer(),Height::integer(),Format::enum(),Type::enum(),Image::offset()|binary()) -> ok %% @doc See external documentation. convolutionFilter2D(Target,Internalformat,Width,Height,Format,Type,Image) when is_integer(Image) -> - wxe_util:cast(5337, <>); + cast(5337, <>); convolutionFilter2D(Target,Internalformat,Width,Height,Format,Type,Image) -> - wxe_util:send_bin(Image), - wxe_util:cast(5338, <>). + send_bin(Image), + cast(5338, <>). %% @spec (Target::enum(),Pname::enum(),Params::{float()}) -> ok %% @doc See external documentation. convolutionParameterf(Target,Pname,Params) -> - wxe_util:cast(5339, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>). %% @spec (Target,Pname,{Params}) -> ok @@ -2030,7 +2060,7 @@ convolutionParameterfv(Target,Pname,{Params}) -> convolutionParameterf(Target,P %% @spec (Target::enum(),Pname::enum(),Params::{integer()}) -> ok %% @doc See external documentation. convolutionParameteri(Target,Pname,Params) -> - wxe_util:cast(5340, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>). %% @spec (Target,Pname,{Params}) -> ok @@ -2040,163 +2070,163 @@ convolutionParameteriv(Target,Pname,{Params}) -> convolutionParameteri(Target,P %% @spec (Target::enum(),Internalformat::enum(),X::integer(),Y::integer(),Width::integer()) -> ok %% @doc See external documentation. copyConvolutionFilter1D(Target,Internalformat,X,Y,Width) -> - wxe_util:cast(5341, <>). + cast(5341, <>). %% @spec (Target::enum(),Internalformat::enum(),X::integer(),Y::integer(),Width::integer(),Height::integer()) -> ok %% @doc See external documentation. copyConvolutionFilter2D(Target,Internalformat,X,Y,Width,Height) -> - wxe_util:cast(5342, <>). + cast(5342, <>). -%% @spec (Target::enum(),Format::enum(),Type::enum(),Image::wx:wx_mem()) -> ok +%% @spec (Target::enum(),Format::enum(),Type::enum(),Image::mem()) -> ok %% @doc See external documentation. getConvolutionFilter(Target,Format,Type,Image) -> - wxe_util:send_bin(Image#wx_mem.bin), - wxe_util:call(5343, <>). + send_bin(Image), + call(5343, <>). %% @spec (Target::enum(),Pname::enum()) -> {float()} %% @doc See external documentation. getConvolutionParameterfv(Target,Pname) -> - wxe_util:call(5344, <>). + call(5344, <>). %% @spec (Target::enum(),Pname::enum()) -> {integer()} %% @doc See external documentation. getConvolutionParameteriv(Target,Pname) -> - wxe_util:call(5345, <>). + call(5345, <>). %% @spec (Target::enum(),Internalformat::enum(),Width::integer(),Height::integer(),Format::enum(),Type::enum(),Row::offset()|binary(),Column::offset()|binary()) -> ok %% @doc See external documentation. separableFilter2D(Target,Internalformat,Width,Height,Format,Type,Row,Column) when is_integer(Row), is_integer(Column) -> - wxe_util:cast(5346, <>); + cast(5346, <>); separableFilter2D(Target,Internalformat,Width,Height,Format,Type,Row,Column) -> - wxe_util:send_bin(Row), - wxe_util:send_bin(Column), - wxe_util:cast(5347, <>). + send_bin(Row), + send_bin(Column), + cast(5347, <>). -%% @spec (Target::enum(),Reset::0|1,Format::enum(),Type::enum(),Values::wx:wx_mem()) -> ok +%% @spec (Target::enum(),Reset::0|1,Format::enum(),Type::enum(),Values::mem()) -> ok %% @doc See external documentation. getHistogram(Target,Reset,Format,Type,Values) -> - wxe_util:send_bin(Values#wx_mem.bin), - wxe_util:call(5348, <>). + send_bin(Values), + call(5348, <>). %% @spec (Target::enum(),Pname::enum()) -> {float()} %% @doc See external documentation. getHistogramParameterfv(Target,Pname) -> - wxe_util:call(5349, <>). + call(5349, <>). %% @spec (Target::enum(),Pname::enum()) -> {integer()} %% @doc See external documentation. getHistogramParameteriv(Target,Pname) -> - wxe_util:call(5350, <>). + call(5350, <>). -%% @spec (Target::enum(),Reset::0|1,Format::enum(),Type::enum(),Values::wx:wx_mem()) -> ok +%% @spec (Target::enum(),Reset::0|1,Format::enum(),Type::enum(),Values::mem()) -> ok %% @doc See external documentation. getMinmax(Target,Reset,Format,Type,Values) -> - wxe_util:send_bin(Values#wx_mem.bin), - wxe_util:call(5351, <>). + send_bin(Values), + call(5351, <>). %% @spec (Target::enum(),Pname::enum()) -> {float()} %% @doc See external documentation. getMinmaxParameterfv(Target,Pname) -> - wxe_util:call(5352, <>). + call(5352, <>). %% @spec (Target::enum(),Pname::enum()) -> {integer()} %% @doc See external documentation. getMinmaxParameteriv(Target,Pname) -> - wxe_util:call(5353, <>). + call(5353, <>). %% @spec (Target::enum(),Width::integer(),Internalformat::enum(),Sink::0|1) -> ok %% @doc See external documentation. histogram(Target,Width,Internalformat,Sink) -> - wxe_util:cast(5354, <>). + cast(5354, <>). %% @spec (Target::enum(),Internalformat::enum(),Sink::0|1) -> ok %% @doc See external documentation. minmax(Target,Internalformat,Sink) -> - wxe_util:cast(5355, <>). + cast(5355, <>). %% @spec (Target::enum()) -> ok %% @doc See external documentation. resetHistogram(Target) -> - wxe_util:cast(5356, <>). + cast(5356, <>). %% @spec (Target::enum()) -> ok %% @doc See external documentation. resetMinmax(Target) -> - wxe_util:cast(5357, <>). + cast(5357, <>). %% @spec (Texture::enum()) -> ok %% @doc See external documentation. activeTexture(Texture) -> - wxe_util:cast(5358, <>). + cast(5358, <>). %% @spec (Value::clamp(),Invert::0|1) -> ok %% @doc See external documentation. sampleCoverage(Value,Invert) -> - wxe_util:cast(5359, <>). + cast(5359, <>). %% @spec (Target::enum(),Level::integer(),Internalformat::enum(),Width::integer(),Height::integer(),Depth::integer(),Border::integer(),ImageSize::integer(),Data::offset()|binary()) -> ok %% @doc See external documentation. compressedTexImage3D(Target,Level,Internalformat,Width,Height,Depth,Border,ImageSize,Data) when is_integer(Data) -> - wxe_util:cast(5360, <>); + cast(5360, <>); compressedTexImage3D(Target,Level,Internalformat,Width,Height,Depth,Border,ImageSize,Data) -> - wxe_util:send_bin(Data), - wxe_util:cast(5361, <>). + send_bin(Data), + cast(5361, <>). %% @spec (Target::enum(),Level::integer(),Internalformat::enum(),Width::integer(),Height::integer(),Border::integer(),ImageSize::integer(),Data::offset()|binary()) -> ok %% @doc See external documentation. compressedTexImage2D(Target,Level,Internalformat,Width,Height,Border,ImageSize,Data) when is_integer(Data) -> - wxe_util:cast(5362, <>); + cast(5362, <>); compressedTexImage2D(Target,Level,Internalformat,Width,Height,Border,ImageSize,Data) -> - wxe_util:send_bin(Data), - wxe_util:cast(5363, <>). + send_bin(Data), + cast(5363, <>). %% @spec (Target::enum(),Level::integer(),Internalformat::enum(),Width::integer(),Border::integer(),ImageSize::integer(),Data::offset()|binary()) -> ok %% @doc See external documentation. compressedTexImage1D(Target,Level,Internalformat,Width,Border,ImageSize,Data) when is_integer(Data) -> - wxe_util:cast(5364, <>); + cast(5364, <>); compressedTexImage1D(Target,Level,Internalformat,Width,Border,ImageSize,Data) -> - wxe_util:send_bin(Data), - wxe_util:cast(5365, <>). + send_bin(Data), + cast(5365, <>). %% @spec (Target::enum(),Level::integer(),Xoffset::integer(),Yoffset::integer(),Zoffset::integer(),Width::integer(),Height::integer(),Depth::integer(),Format::enum(),ImageSize::integer(),Data::offset()|binary()) -> ok %% @doc See external documentation. compressedTexSubImage3D(Target,Level,Xoffset,Yoffset,Zoffset,Width,Height,Depth,Format,ImageSize,Data) when is_integer(Data) -> - wxe_util:cast(5366, <>); + cast(5366, <>); compressedTexSubImage3D(Target,Level,Xoffset,Yoffset,Zoffset,Width,Height,Depth,Format,ImageSize,Data) -> - wxe_util:send_bin(Data), - wxe_util:cast(5367, <>). + send_bin(Data), + cast(5367, <>). %% @spec (Target::enum(),Level::integer(),Xoffset::integer(),Yoffset::integer(),Width::integer(),Height::integer(),Format::enum(),ImageSize::integer(),Data::offset()|binary()) -> ok %% @doc See external documentation. compressedTexSubImage2D(Target,Level,Xoffset,Yoffset,Width,Height,Format,ImageSize,Data) when is_integer(Data) -> - wxe_util:cast(5368, <>); + cast(5368, <>); compressedTexSubImage2D(Target,Level,Xoffset,Yoffset,Width,Height,Format,ImageSize,Data) -> - wxe_util:send_bin(Data), - wxe_util:cast(5369, <>). + send_bin(Data), + cast(5369, <>). %% @spec (Target::enum(),Level::integer(),Xoffset::integer(),Width::integer(),Format::enum(),ImageSize::integer(),Data::offset()|binary()) -> ok %% @doc See external documentation. compressedTexSubImage1D(Target,Level,Xoffset,Width,Format,ImageSize,Data) when is_integer(Data) -> - wxe_util:cast(5370, <>); + cast(5370, <>); compressedTexSubImage1D(Target,Level,Xoffset,Width,Format,ImageSize,Data) -> - wxe_util:send_bin(Data), - wxe_util:cast(5371, <>). + send_bin(Data), + cast(5371, <>). -%% @spec (Target::enum(),Level::integer(),Img::wx:wx_mem()) -> ok +%% @spec (Target::enum(),Level::integer(),Img::mem()) -> ok %% @doc See external documentation. getCompressedTexImage(Target,Level,Img) -> - wxe_util:send_bin(Img#wx_mem.bin), - wxe_util:call(5372, <>). + send_bin(Img), + call(5372, <>). %% @spec (Texture::enum()) -> ok %% @doc See external documentation. clientActiveTexture(Texture) -> - wxe_util:cast(5373, <>). + cast(5373, <>). %% @spec (Target::enum(),S::float()) -> ok %% @doc See external documentation. multiTexCoord1d(Target,S) -> - wxe_util:cast(5374, <>). + cast(5374, <>). %% @spec (Target,{S}) -> ok %% @equiv multiTexCoord1d(Target,S) @@ -2205,7 +2235,7 @@ multiTexCoord1dv(Target,{S}) -> multiTexCoord1d(Target,S). %% @spec (Target::enum(),S::float()) -> ok %% @doc See external documentation. multiTexCoord1f(Target,S) -> - wxe_util:cast(5375, <>). + cast(5375, <>). %% @spec (Target,{S}) -> ok %% @equiv multiTexCoord1f(Target,S) @@ -2214,7 +2244,7 @@ multiTexCoord1fv(Target,{S}) -> multiTexCoord1f(Target,S). %% @spec (Target::enum(),S::integer()) -> ok %% @doc See external documentation. multiTexCoord1i(Target,S) -> - wxe_util:cast(5376, <>). + cast(5376, <>). %% @spec (Target,{S}) -> ok %% @equiv multiTexCoord1i(Target,S) @@ -2223,7 +2253,7 @@ multiTexCoord1iv(Target,{S}) -> multiTexCoord1i(Target,S). %% @spec (Target::enum(),S::integer()) -> ok %% @doc See external documentation. multiTexCoord1s(Target,S) -> - wxe_util:cast(5377, <>). + cast(5377, <>). %% @spec (Target,{S}) -> ok %% @equiv multiTexCoord1s(Target,S) @@ -2232,7 +2262,7 @@ multiTexCoord1sv(Target,{S}) -> multiTexCoord1s(Target,S). %% @spec (Target::enum(),S::float(),T::float()) -> ok %% @doc See external documentation. multiTexCoord2d(Target,S,T) -> - wxe_util:cast(5378, <>). + cast(5378, <>). %% @spec (Target,{S,T}) -> ok %% @equiv multiTexCoord2d(Target,S,T) @@ -2241,7 +2271,7 @@ multiTexCoord2dv(Target,{S,T}) -> multiTexCoord2d(Target,S,T). %% @spec (Target::enum(),S::float(),T::float()) -> ok %% @doc See external documentation. multiTexCoord2f(Target,S,T) -> - wxe_util:cast(5379, <>). + cast(5379, <>). %% @spec (Target,{S,T}) -> ok %% @equiv multiTexCoord2f(Target,S,T) @@ -2250,7 +2280,7 @@ multiTexCoord2fv(Target,{S,T}) -> multiTexCoord2f(Target,S,T). %% @spec (Target::enum(),S::integer(),T::integer()) -> ok %% @doc See external documentation. multiTexCoord2i(Target,S,T) -> - wxe_util:cast(5380, <>). + cast(5380, <>). %% @spec (Target,{S,T}) -> ok %% @equiv multiTexCoord2i(Target,S,T) @@ -2259,7 +2289,7 @@ multiTexCoord2iv(Target,{S,T}) -> multiTexCoord2i(Target,S,T). %% @spec (Target::enum(),S::integer(),T::integer()) -> ok %% @doc See external documentation. multiTexCoord2s(Target,S,T) -> - wxe_util:cast(5381, <>). + cast(5381, <>). %% @spec (Target,{S,T}) -> ok %% @equiv multiTexCoord2s(Target,S,T) @@ -2268,7 +2298,7 @@ multiTexCoord2sv(Target,{S,T}) -> multiTexCoord2s(Target,S,T). %% @spec (Target::enum(),S::float(),T::float(),R::float()) -> ok %% @doc See external documentation. multiTexCoord3d(Target,S,T,R) -> - wxe_util:cast(5382, <>). + cast(5382, <>). %% @spec (Target,{S,T,R}) -> ok %% @equiv multiTexCoord3d(Target,S,T,R) @@ -2277,7 +2307,7 @@ multiTexCoord3dv(Target,{S,T,R}) -> multiTexCoord3d(Target,S,T,R). %% @spec (Target::enum(),S::float(),T::float(),R::float()) -> ok %% @doc See external documentation. multiTexCoord3f(Target,S,T,R) -> - wxe_util:cast(5383, <>). + cast(5383, <>). %% @spec (Target,{S,T,R}) -> ok %% @equiv multiTexCoord3f(Target,S,T,R) @@ -2286,7 +2316,7 @@ multiTexCoord3fv(Target,{S,T,R}) -> multiTexCoord3f(Target,S,T,R). %% @spec (Target::enum(),S::integer(),T::integer(),R::integer()) -> ok %% @doc See external documentation. multiTexCoord3i(Target,S,T,R) -> - wxe_util:cast(5384, <>). + cast(5384, <>). %% @spec (Target,{S,T,R}) -> ok %% @equiv multiTexCoord3i(Target,S,T,R) @@ -2295,7 +2325,7 @@ multiTexCoord3iv(Target,{S,T,R}) -> multiTexCoord3i(Target,S,T,R). %% @spec (Target::enum(),S::integer(),T::integer(),R::integer()) -> ok %% @doc See external documentation. multiTexCoord3s(Target,S,T,R) -> - wxe_util:cast(5385, <>). + cast(5385, <>). %% @spec (Target,{S,T,R}) -> ok %% @equiv multiTexCoord3s(Target,S,T,R) @@ -2304,7 +2334,7 @@ multiTexCoord3sv(Target,{S,T,R}) -> multiTexCoord3s(Target,S,T,R). %% @spec (Target::enum(),S::float(),T::float(),R::float(),Q::float()) -> ok %% @doc See external documentation. multiTexCoord4d(Target,S,T,R,Q) -> - wxe_util:cast(5386, <>). + cast(5386, <>). %% @spec (Target,{S,T,R,Q}) -> ok %% @equiv multiTexCoord4d(Target,S,T,R,Q) @@ -2313,7 +2343,7 @@ multiTexCoord4dv(Target,{S,T,R,Q}) -> multiTexCoord4d(Target,S,T,R,Q). %% @spec (Target::enum(),S::float(),T::float(),R::float(),Q::float()) -> ok %% @doc See external documentation. multiTexCoord4f(Target,S,T,R,Q) -> - wxe_util:cast(5387, <>). + cast(5387, <>). %% @spec (Target,{S,T,R,Q}) -> ok %% @equiv multiTexCoord4f(Target,S,T,R,Q) @@ -2322,7 +2352,7 @@ multiTexCoord4fv(Target,{S,T,R,Q}) -> multiTexCoord4f(Target,S,T,R,Q). %% @spec (Target::enum(),S::integer(),T::integer(),R::integer(),Q::integer()) -> ok %% @doc See external documentation. multiTexCoord4i(Target,S,T,R,Q) -> - wxe_util:cast(5388, <>). + cast(5388, <>). %% @spec (Target,{S,T,R,Q}) -> ok %% @equiv multiTexCoord4i(Target,S,T,R,Q) @@ -2331,7 +2361,7 @@ multiTexCoord4iv(Target,{S,T,R,Q}) -> multiTexCoord4i(Target,S,T,R,Q). %% @spec (Target::enum(),S::integer(),T::integer(),R::integer(),Q::integer()) -> ok %% @doc See external documentation. multiTexCoord4s(Target,S,T,R,Q) -> - wxe_util:cast(5389, <>). + cast(5389, <>). %% @spec (Target,{S,T,R,Q}) -> ok %% @equiv multiTexCoord4s(Target,S,T,R,Q) @@ -2340,69 +2370,69 @@ multiTexCoord4sv(Target,{S,T,R,Q}) -> multiTexCoord4s(Target,S,T,R,Q). %% @spec (M::{float()}) -> ok %% @doc See external documentation. loadTransposeMatrixf({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16}) -> - wxe_util:cast(5390, <>); + cast(5390, <>); loadTransposeMatrixf({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12}) -> - wxe_util:cast(5390, <>). + cast(5390, <>). %% @spec (M::{float()}) -> ok %% @doc See external documentation. loadTransposeMatrixd({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16}) -> - wxe_util:cast(5391, <>); + cast(5391, <>); loadTransposeMatrixd({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12}) -> - wxe_util:cast(5391, <>). + cast(5391, <>). %% @spec (M::{float()}) -> ok %% @doc See external documentation. multTransposeMatrixf({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16}) -> - wxe_util:cast(5392, <>); + cast(5392, <>); multTransposeMatrixf({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12}) -> - wxe_util:cast(5392, <>). + cast(5392, <>). %% @spec (M::{float()}) -> ok %% @doc See external documentation. multTransposeMatrixd({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16}) -> - wxe_util:cast(5393, <>); + cast(5393, <>); multTransposeMatrixd({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12}) -> - wxe_util:cast(5393, <>). + cast(5393, <>). %% @spec (SfactorRGB::enum(),DfactorRGB::enum(),SfactorAlpha::enum(),DfactorAlpha::enum()) -> ok %% @doc See external documentation. blendFuncSeparate(SfactorRGB,DfactorRGB,SfactorAlpha,DfactorAlpha) -> - wxe_util:cast(5394, <>). + cast(5394, <>). %% @spec (Mode::enum(),First::[integer()],Count::[integer()]) -> ok %% @doc See external documentation. multiDrawArrays(Mode,First,Count) -> - wxe_util:cast(5395, <> || C <- First>>)/binary,0:(((length(First)) rem 2)*32),(length(Count)):?GLuint, (<< <> || C <- Count>>)/binary,0:(((1+length(Count)) rem 2)*32)>>). %% @spec (Pname::enum(),Param::float()) -> ok %% @doc See external documentation. pointParameterf(Pname,Param) -> - wxe_util:cast(5396, <>). + cast(5396, <>). %% @spec (Pname::enum(),Params::{float()}) -> ok %% @doc See external documentation. pointParameterfv(Pname,Params) -> - wxe_util:cast(5397, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((0+size(Params)) rem 2)*32)>>). %% @spec (Pname::enum(),Param::integer()) -> ok %% @doc See external documentation. pointParameteri(Pname,Param) -> - wxe_util:cast(5398, <>). + cast(5398, <>). %% @spec (Pname::enum(),Params::{integer()}) -> ok %% @doc See external documentation. pointParameteriv(Pname,Params) -> - wxe_util:cast(5399, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((0+size(Params)) rem 2)*32)>>). %% @spec (Coord::float()) -> ok %% @doc See external documentation. fogCoordf(Coord) -> - wxe_util:cast(5400, <>). + cast(5400, <>). %% @spec ({Coord}) -> ok %% @equiv fogCoordf(Coord) @@ -2411,7 +2441,7 @@ fogCoordfv({Coord}) -> fogCoordf(Coord). %% @spec (Coord::float()) -> ok %% @doc See external documentation. fogCoordd(Coord) -> - wxe_util:cast(5401, <>). + cast(5401, <>). %% @spec ({Coord}) -> ok %% @equiv fogCoordd(Coord) @@ -2420,15 +2450,15 @@ fogCoorddv({Coord}) -> fogCoordd(Coord). %% @spec (Type::enum(),Stride::integer(),Pointer::offset()|binary()) -> ok %% @doc See external documentation. fogCoordPointer(Type,Stride,Pointer) when is_integer(Pointer) -> - wxe_util:cast(5402, <>); + cast(5402, <>); fogCoordPointer(Type,Stride,Pointer) -> - wxe_util:send_bin(Pointer), - wxe_util:cast(5403, <>). + send_bin(Pointer), + cast(5403, <>). %% @spec (Red::integer(),Green::integer(),Blue::integer()) -> ok %% @doc See external documentation. secondaryColor3b(Red,Green,Blue) -> - wxe_util:cast(5404, <>). + cast(5404, <>). %% @spec ({Red,Green,Blue}) -> ok %% @equiv secondaryColor3b(Red,Green,Blue) @@ -2437,7 +2467,7 @@ secondaryColor3bv({Red,Green,Blue}) -> secondaryColor3b(Red,Green,Blue). %% @spec (Red::float(),Green::float(),Blue::float()) -> ok %% @doc See external documentation. secondaryColor3d(Red,Green,Blue) -> - wxe_util:cast(5405, <>). + cast(5405, <>). %% @spec ({Red,Green,Blue}) -> ok %% @equiv secondaryColor3d(Red,Green,Blue) @@ -2446,7 +2476,7 @@ secondaryColor3dv({Red,Green,Blue}) -> secondaryColor3d(Red,Green,Blue). %% @spec (Red::float(),Green::float(),Blue::float()) -> ok %% @doc See external documentation. secondaryColor3f(Red,Green,Blue) -> - wxe_util:cast(5406, <>). + cast(5406, <>). %% @spec ({Red,Green,Blue}) -> ok %% @equiv secondaryColor3f(Red,Green,Blue) @@ -2455,7 +2485,7 @@ secondaryColor3fv({Red,Green,Blue}) -> secondaryColor3f(Red,Green,Blue). %% @spec (Red::integer(),Green::integer(),Blue::integer()) -> ok %% @doc See external documentation. secondaryColor3i(Red,Green,Blue) -> - wxe_util:cast(5407, <>). + cast(5407, <>). %% @spec ({Red,Green,Blue}) -> ok %% @equiv secondaryColor3i(Red,Green,Blue) @@ -2464,7 +2494,7 @@ secondaryColor3iv({Red,Green,Blue}) -> secondaryColor3i(Red,Green,Blue). %% @spec (Red::integer(),Green::integer(),Blue::integer()) -> ok %% @doc See external documentation. secondaryColor3s(Red,Green,Blue) -> - wxe_util:cast(5408, <>). + cast(5408, <>). %% @spec ({Red,Green,Blue}) -> ok %% @equiv secondaryColor3s(Red,Green,Blue) @@ -2473,7 +2503,7 @@ secondaryColor3sv({Red,Green,Blue}) -> secondaryColor3s(Red,Green,Blue). %% @spec (Red::integer(),Green::integer(),Blue::integer()) -> ok %% @doc See external documentation. secondaryColor3ub(Red,Green,Blue) -> - wxe_util:cast(5409, <>). + cast(5409, <>). %% @spec ({Red,Green,Blue}) -> ok %% @equiv secondaryColor3ub(Red,Green,Blue) @@ -2482,7 +2512,7 @@ secondaryColor3ubv({Red,Green,Blue}) -> secondaryColor3ub(Red,Green,Blue). %% @spec (Red::integer(),Green::integer(),Blue::integer()) -> ok %% @doc See external documentation. secondaryColor3ui(Red,Green,Blue) -> - wxe_util:cast(5410, <>). + cast(5410, <>). %% @spec ({Red,Green,Blue}) -> ok %% @equiv secondaryColor3ui(Red,Green,Blue) @@ -2491,7 +2521,7 @@ secondaryColor3uiv({Red,Green,Blue}) -> secondaryColor3ui(Red,Green,Blue). %% @spec (Red::integer(),Green::integer(),Blue::integer()) -> ok %% @doc See external documentation. secondaryColor3us(Red,Green,Blue) -> - wxe_util:cast(5411, <>). + cast(5411, <>). %% @spec ({Red,Green,Blue}) -> ok %% @equiv secondaryColor3us(Red,Green,Blue) @@ -2500,15 +2530,15 @@ secondaryColor3usv({Red,Green,Blue}) -> secondaryColor3us(Red,Green,Blue). %% @spec (Size::integer(),Type::enum(),Stride::integer(),Pointer::offset()|binary()) -> ok %% @doc See external documentation. secondaryColorPointer(Size,Type,Stride,Pointer) when is_integer(Pointer) -> - wxe_util:cast(5412, <>); + cast(5412, <>); secondaryColorPointer(Size,Type,Stride,Pointer) -> - wxe_util:send_bin(Pointer), - wxe_util:cast(5413, <>). + send_bin(Pointer), + cast(5413, <>). %% @spec (X::float(),Y::float()) -> ok %% @doc See external documentation. windowPos2d(X,Y) -> - wxe_util:cast(5414, <>). + cast(5414, <>). %% @spec ({X,Y}) -> ok %% @equiv windowPos2d(X,Y) @@ -2517,7 +2547,7 @@ windowPos2dv({X,Y}) -> windowPos2d(X,Y). %% @spec (X::float(),Y::float()) -> ok %% @doc See external documentation. windowPos2f(X,Y) -> - wxe_util:cast(5415, <>). + cast(5415, <>). %% @spec ({X,Y}) -> ok %% @equiv windowPos2f(X,Y) @@ -2526,7 +2556,7 @@ windowPos2fv({X,Y}) -> windowPos2f(X,Y). %% @spec (X::integer(),Y::integer()) -> ok %% @doc See external documentation. windowPos2i(X,Y) -> - wxe_util:cast(5416, <>). + cast(5416, <>). %% @spec ({X,Y}) -> ok %% @equiv windowPos2i(X,Y) @@ -2535,7 +2565,7 @@ windowPos2iv({X,Y}) -> windowPos2i(X,Y). %% @spec (X::integer(),Y::integer()) -> ok %% @doc See external documentation. windowPos2s(X,Y) -> - wxe_util:cast(5417, <>). + cast(5417, <>). %% @spec ({X,Y}) -> ok %% @equiv windowPos2s(X,Y) @@ -2544,7 +2574,7 @@ windowPos2sv({X,Y}) -> windowPos2s(X,Y). %% @spec (X::float(),Y::float(),Z::float()) -> ok %% @doc See external documentation. windowPos3d(X,Y,Z) -> - wxe_util:cast(5418, <>). + cast(5418, <>). %% @spec ({X,Y,Z}) -> ok %% @equiv windowPos3d(X,Y,Z) @@ -2553,7 +2583,7 @@ windowPos3dv({X,Y,Z}) -> windowPos3d(X,Y,Z). %% @spec (X::float(),Y::float(),Z::float()) -> ok %% @doc See external documentation. windowPos3f(X,Y,Z) -> - wxe_util:cast(5419, <>). + cast(5419, <>). %% @spec ({X,Y,Z}) -> ok %% @equiv windowPos3f(X,Y,Z) @@ -2562,7 +2592,7 @@ windowPos3fv({X,Y,Z}) -> windowPos3f(X,Y,Z). %% @spec (X::integer(),Y::integer(),Z::integer()) -> ok %% @doc See external documentation. windowPos3i(X,Y,Z) -> - wxe_util:cast(5420, <>). + cast(5420, <>). %% @spec ({X,Y,Z}) -> ok %% @equiv windowPos3i(X,Y,Z) @@ -2571,7 +2601,7 @@ windowPos3iv({X,Y,Z}) -> windowPos3i(X,Y,Z). %% @spec (X::integer(),Y::integer(),Z::integer()) -> ok %% @doc See external documentation. windowPos3s(X,Y,Z) -> - wxe_util:cast(5421, <>). + cast(5421, <>). %% @spec ({X,Y,Z}) -> ok %% @equiv windowPos3s(X,Y,Z) @@ -2580,384 +2610,384 @@ windowPos3sv({X,Y,Z}) -> windowPos3s(X,Y,Z). %% @spec (N::integer()) -> [integer()] %% @doc See external documentation. genQueries(N) -> - wxe_util:call(5422, <>). + call(5422, <>). %% @spec (Ids::[integer()]) -> ok %% @doc See external documentation. deleteQueries(Ids) -> - wxe_util:cast(5423, <<(length(Ids)):?GLuint, + cast(5423, <<(length(Ids)):?GLuint, (<< <> || C <- Ids>>)/binary,0:(((1+length(Ids)) rem 2)*32)>>). %% @spec (Id::integer()) -> 0|1 %% @doc See external documentation. isQuery(Id) -> - wxe_util:call(5424, <>). + call(5424, <>). %% @spec (Target::enum(),Id::integer()) -> ok %% @doc See external documentation. beginQuery(Target,Id) -> - wxe_util:cast(5425, <>). + cast(5425, <>). %% @spec (Target::enum()) -> ok %% @doc See external documentation. endQuery(Target) -> - wxe_util:cast(5426, <>). + cast(5426, <>). %% @spec (Target::enum(),Pname::enum()) -> integer() %% @doc See external documentation. getQueryiv(Target,Pname) -> - wxe_util:call(5427, <>). + call(5427, <>). %% @spec (Id::integer(),Pname::enum()) -> integer() %% @doc See external documentation. getQueryObjectiv(Id,Pname) -> - wxe_util:call(5428, <>). + call(5428, <>). %% @spec (Id::integer(),Pname::enum()) -> integer() %% @doc See external documentation. getQueryObjectuiv(Id,Pname) -> - wxe_util:call(5429, <>). + call(5429, <>). %% @spec (Target::enum(),Buffer::integer()) -> ok %% @doc See external documentation. bindBuffer(Target,Buffer) -> - wxe_util:cast(5430, <>). + cast(5430, <>). %% @spec (Buffers::[integer()]) -> ok %% @doc See external documentation. deleteBuffers(Buffers) -> - wxe_util:cast(5431, <<(length(Buffers)):?GLuint, + cast(5431, <<(length(Buffers)):?GLuint, (<< <> || C <- Buffers>>)/binary,0:(((1+length(Buffers)) rem 2)*32)>>). %% @spec (N::integer()) -> [integer()] %% @doc See external documentation. genBuffers(N) -> - wxe_util:call(5432, <>). + call(5432, <>). %% @spec (Buffer::integer()) -> 0|1 %% @doc See external documentation. isBuffer(Buffer) -> - wxe_util:call(5433, <>). + call(5433, <>). %% @spec (Target::enum(),Size::integer(),Data::offset()|binary(),Usage::enum()) -> ok %% @doc See external documentation. bufferData(Target,Size,Data,Usage) when is_integer(Data) -> - wxe_util:cast(5434, <>); + cast(5434, <>); bufferData(Target,Size,Data,Usage) -> - wxe_util:send_bin(Data), - wxe_util:cast(5435, <>). + send_bin(Data), + cast(5435, <>). %% @spec (Target::enum(),Offset::integer(),Size::integer(),Data::offset()|binary()) -> ok %% @doc See external documentation. bufferSubData(Target,Offset,Size,Data) when is_integer(Data) -> - wxe_util:cast(5436, <>); + cast(5436, <>); bufferSubData(Target,Offset,Size,Data) -> - wxe_util:send_bin(Data), - wxe_util:cast(5437, <>). + send_bin(Data), + cast(5437, <>). -%% @spec (Target::enum(),Offset::integer(),Size::integer(),Data::wx:wx_mem()) -> ok +%% @spec (Target::enum(),Offset::integer(),Size::integer(),Data::mem()) -> ok %% @doc See external documentation. getBufferSubData(Target,Offset,Size,Data) -> - wxe_util:send_bin(Data#wx_mem.bin), - wxe_util:call(5438, <>). + send_bin(Data), + call(5438, <>). %% @spec (Target::enum(),Pname::enum()) -> integer() %% @doc See external documentation. getBufferParameteriv(Target,Pname) -> - wxe_util:call(5439, <>). + call(5439, <>). %% @spec (ModeRGB::enum(),ModeAlpha::enum()) -> ok %% @doc See external documentation. blendEquationSeparate(ModeRGB,ModeAlpha) -> - wxe_util:cast(5440, <>). + cast(5440, <>). %% @spec (Bufs::[enum()]) -> ok %% @doc See external documentation. drawBuffers(Bufs) -> - wxe_util:cast(5441, <<(length(Bufs)):?GLuint, + cast(5441, <<(length(Bufs)):?GLuint, (<< <> || C <- Bufs>>)/binary,0:(((1+length(Bufs)) rem 2)*32)>>). %% @spec (Face::enum(),Sfail::enum(),Dpfail::enum(),Dppass::enum()) -> ok %% @doc See external documentation. stencilOpSeparate(Face,Sfail,Dpfail,Dppass) -> - wxe_util:cast(5442, <>). + cast(5442, <>). %% @spec (Frontfunc::enum(),Backfunc::enum(),Ref::integer(),Mask::integer()) -> ok %% @doc See external documentation. stencilFuncSeparate(Frontfunc,Backfunc,Ref,Mask) -> - wxe_util:cast(5443, <>). + cast(5443, <>). %% @spec (Face::enum(),Mask::integer()) -> ok %% @doc See external documentation. stencilMaskSeparate(Face,Mask) -> - wxe_util:cast(5444, <>). + cast(5444, <>). %% @spec (Program::integer(),Shader::integer()) -> ok %% @doc See external documentation. attachShader(Program,Shader) -> - wxe_util:cast(5445, <>). + cast(5445, <>). %% @spec (Program::integer(),Index::integer(),Name::string()) -> ok %% @doc See external documentation. bindAttribLocation(Program,Index,Name) -> - wxe_util:cast(5446, <>). + cast(5446, <>). %% @spec (Shader::integer()) -> ok %% @doc See external documentation. compileShader(Shader) -> - wxe_util:cast(5447, <>). + cast(5447, <>). %% @spec () -> integer() %% @doc See external documentation. createProgram() -> - wxe_util:call(5448, <<>>). + call(5448, <<>>). %% @spec (Type::enum()) -> integer() %% @doc See external documentation. createShader(Type) -> - wxe_util:call(5449, <>). + call(5449, <>). %% @spec (Program::integer()) -> ok %% @doc See external documentation. deleteProgram(Program) -> - wxe_util:cast(5450, <>). + cast(5450, <>). %% @spec (Shader::integer()) -> ok %% @doc See external documentation. deleteShader(Shader) -> - wxe_util:cast(5451, <>). + cast(5451, <>). %% @spec (Program::integer(),Shader::integer()) -> ok %% @doc See external documentation. detachShader(Program,Shader) -> - wxe_util:cast(5452, <>). + cast(5452, <>). %% @spec (Index::integer()) -> ok %% @doc See external documentation. disableVertexAttribArray(Index) -> - wxe_util:cast(5453, <>). + cast(5453, <>). %% @spec (Index::integer()) -> ok %% @doc See external documentation. enableVertexAttribArray(Index) -> - wxe_util:cast(5454, <>). + cast(5454, <>). %% @spec (Program::integer(),Index::integer(),BufSize::integer()) -> {Size::integer(),Type::enum(),Name::string()} %% @doc See external documentation. getActiveAttrib(Program,Index,BufSize) -> - wxe_util:call(5455, <>). + call(5455, <>). %% @spec (Program::integer(),Index::integer(),BufSize::integer()) -> {Size::integer(),Type::enum(),Name::string()} %% @doc See external documentation. getActiveUniform(Program,Index,BufSize) -> - wxe_util:call(5456, <>). + call(5456, <>). %% @spec (Program::integer(),MaxCount::integer()) -> [integer()] %% @doc See external documentation. getAttachedShaders(Program,MaxCount) -> - wxe_util:call(5457, <>). + call(5457, <>). %% @spec (Program::integer(),Name::string()) -> integer() %% @doc See external documentation. getAttribLocation(Program,Name) -> - wxe_util:call(5458, <>). + call(5458, <>). %% @spec (Program::integer(),Pname::enum()) -> integer() %% @doc See external documentation. getProgramiv(Program,Pname) -> - wxe_util:call(5459, <>). + call(5459, <>). %% @spec (Program::integer(),BufSize::integer()) -> string() %% @doc See external documentation. getProgramInfoLog(Program,BufSize) -> - wxe_util:call(5460, <>). + call(5460, <>). %% @spec (Shader::integer(),Pname::enum()) -> integer() %% @doc See external documentation. getShaderiv(Shader,Pname) -> - wxe_util:call(5461, <>). + call(5461, <>). %% @spec (Shader::integer(),BufSize::integer()) -> string() %% @doc See external documentation. getShaderInfoLog(Shader,BufSize) -> - wxe_util:call(5462, <>). + call(5462, <>). %% @spec (Shader::integer(),BufSize::integer()) -> string() %% @doc See external documentation. getShaderSource(Shader,BufSize) -> - wxe_util:call(5463, <>). + call(5463, <>). %% @spec (Program::integer(),Name::string()) -> integer() %% @doc See external documentation. getUniformLocation(Program,Name) -> - wxe_util:call(5464, <>). + call(5464, <>). %% @spec (Program::integer(),Location::integer()) -> {float()} %% @doc See external documentation. getUniformfv(Program,Location) -> - wxe_util:call(5465, <>). + call(5465, <>). %% @spec (Program::integer(),Location::integer()) -> {integer()} %% @doc See external documentation. getUniformiv(Program,Location) -> - wxe_util:call(5466, <>). + call(5466, <>). %% @spec (Index::integer(),Pname::enum()) -> {float()} %% @doc See external documentation. getVertexAttribdv(Index,Pname) -> - wxe_util:call(5467, <>). + call(5467, <>). %% @spec (Index::integer(),Pname::enum()) -> {float()} %% @doc See external documentation. getVertexAttribfv(Index,Pname) -> - wxe_util:call(5468, <>). + call(5468, <>). %% @spec (Index::integer(),Pname::enum()) -> {integer()} %% @doc See external documentation. getVertexAttribiv(Index,Pname) -> - wxe_util:call(5469, <>). + call(5469, <>). %% @spec (Program::integer()) -> 0|1 %% @doc See external documentation. isProgram(Program) -> - wxe_util:call(5470, <>). + call(5470, <>). %% @spec (Shader::integer()) -> 0|1 %% @doc See external documentation. isShader(Shader) -> - wxe_util:call(5471, <>). + call(5471, <>). %% @spec (Program::integer()) -> ok %% @doc See external documentation. linkProgram(Program) -> - wxe_util:cast(5472, <>). + cast(5472, <>). %% @spec (Shader::integer(),String::[string()]) -> ok %% @doc See external documentation. shaderSource(Shader,String) -> StringTemp = list_to_binary([[Str|[0]] || Str <- String ]), - wxe_util:cast(5473, <>). + cast(5473, <>). %% @spec (Program::integer()) -> ok %% @doc See external documentation. useProgram(Program) -> - wxe_util:cast(5474, <>). + cast(5474, <>). %% @spec (Location::integer(),V0::float()) -> ok %% @doc See external documentation. uniform1f(Location,V0) -> - wxe_util:cast(5475, <>). + cast(5475, <>). %% @spec (Location::integer(),V0::float(),V1::float()) -> ok %% @doc See external documentation. uniform2f(Location,V0,V1) -> - wxe_util:cast(5476, <>). + cast(5476, <>). %% @spec (Location::integer(),V0::float(),V1::float(),V2::float()) -> ok %% @doc See external documentation. uniform3f(Location,V0,V1,V2) -> - wxe_util:cast(5477, <>). + cast(5477, <>). %% @spec (Location::integer(),V0::float(),V1::float(),V2::float(),V3::float()) -> ok %% @doc See external documentation. uniform4f(Location,V0,V1,V2,V3) -> - wxe_util:cast(5478, <>). + cast(5478, <>). %% @spec (Location::integer(),V0::integer()) -> ok %% @doc See external documentation. uniform1i(Location,V0) -> - wxe_util:cast(5479, <>). + cast(5479, <>). %% @spec (Location::integer(),V0::integer(),V1::integer()) -> ok %% @doc See external documentation. uniform2i(Location,V0,V1) -> - wxe_util:cast(5480, <>). + cast(5480, <>). %% @spec (Location::integer(),V0::integer(),V1::integer(),V2::integer()) -> ok %% @doc See external documentation. uniform3i(Location,V0,V1,V2) -> - wxe_util:cast(5481, <>). + cast(5481, <>). %% @spec (Location::integer(),V0::integer(),V1::integer(),V2::integer(),V3::integer()) -> ok %% @doc See external documentation. uniform4i(Location,V0,V1,V2,V3) -> - wxe_util:cast(5482, <>). + cast(5482, <>). %% @spec (Location::integer(),Value::[float()]) -> ok %% @doc See external documentation. uniform1fv(Location,Value) -> - wxe_util:cast(5483, <> || C <- Value>>)/binary,0:(((length(Value)) rem 2)*32)>>). %% @spec (Location::integer(),Value::[{float()}]) -> ok %% @doc See external documentation. uniform2fv(Location,Value) -> - wxe_util:cast(5484, <> || {V1,V2} <- Value>>)/binary>>). %% @spec (Location::integer(),Value::[{float()}]) -> ok %% @doc See external documentation. uniform3fv(Location,Value) -> - wxe_util:cast(5485, <> || {V1,V2,V3} <- Value>>)/binary>>). %% @spec (Location::integer(),Value::[{float()}]) -> ok %% @doc See external documentation. uniform4fv(Location,Value) -> - wxe_util:cast(5486, <> || {V1,V2,V3,V4} <- Value>>)/binary>>). %% @spec (Location::integer(),Value::[integer()]) -> ok %% @doc See external documentation. uniform1iv(Location,Value) -> - wxe_util:cast(5487, <> || C <- Value>>)/binary,0:(((length(Value)) rem 2)*32)>>). %% @spec (Location::integer(),Value::[{integer()}]) -> ok %% @doc See external documentation. uniform2iv(Location,Value) -> - wxe_util:cast(5488, <> || {V1,V2} <- Value>>)/binary>>). %% @spec (Location::integer(),Value::[{integer()}]) -> ok %% @doc See external documentation. uniform3iv(Location,Value) -> - wxe_util:cast(5489, <> || {V1,V2,V3} <- Value>>)/binary>>). %% @spec (Location::integer(),Value::[{integer()}]) -> ok %% @doc See external documentation. uniform4iv(Location,Value) -> - wxe_util:cast(5490, <> || {V1,V2,V3,V4} <- Value>>)/binary>>). %% @spec (Location::integer(),Transpose::0|1,Value::[{float()}]) -> ok %% @doc See external documentation. uniformMatrix2fv(Location,Transpose,Value) -> - wxe_util:cast(5491, <> || {V1,V2,V3,V4} <- Value>>)/binary>>). %% @spec (Location::integer(),Transpose::0|1,Value::[{float()}]) -> ok %% @doc See external documentation. uniformMatrix3fv(Location,Transpose,Value) -> - wxe_util:cast(5492, <> || {V1,V2,V3,V4,V5,V6,V7,V8,V9} <- Value>>)/binary>>). %% @spec (Location::integer(),Transpose::0|1,Value::[{float()}]) -> ok %% @doc See external documentation. uniformMatrix4fv(Location,Transpose,Value) -> - wxe_util:cast(5493, <> || {V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16} <- Value>>)/binary>>). %% @spec (Program::integer()) -> ok %% @doc See external documentation. validateProgram(Program) -> - wxe_util:cast(5494, <>). + cast(5494, <>). %% @spec (Index::integer(),X::float()) -> ok %% @doc See external documentation. vertexAttrib1d(Index,X) -> - wxe_util:cast(5495, <>). + cast(5495, <>). %% @spec (Index,{X}) -> ok %% @equiv vertexAttrib1d(Index,X) @@ -2966,7 +2996,7 @@ vertexAttrib1dv(Index,{X}) -> vertexAttrib1d(Index,X). %% @spec (Index::integer(),X::float()) -> ok %% @doc See external documentation. vertexAttrib1f(Index,X) -> - wxe_util:cast(5496, <>). + cast(5496, <>). %% @spec (Index,{X}) -> ok %% @equiv vertexAttrib1f(Index,X) @@ -2975,7 +3005,7 @@ vertexAttrib1fv(Index,{X}) -> vertexAttrib1f(Index,X). %% @spec (Index::integer(),X::integer()) -> ok %% @doc See external documentation. vertexAttrib1s(Index,X) -> - wxe_util:cast(5497, <>). + cast(5497, <>). %% @spec (Index,{X}) -> ok %% @equiv vertexAttrib1s(Index,X) @@ -2984,7 +3014,7 @@ vertexAttrib1sv(Index,{X}) -> vertexAttrib1s(Index,X). %% @spec (Index::integer(),X::float(),Y::float()) -> ok %% @doc See external documentation. vertexAttrib2d(Index,X,Y) -> - wxe_util:cast(5498, <>). + cast(5498, <>). %% @spec (Index,{X,Y}) -> ok %% @equiv vertexAttrib2d(Index,X,Y) @@ -2993,7 +3023,7 @@ vertexAttrib2dv(Index,{X,Y}) -> vertexAttrib2d(Index,X,Y). %% @spec (Index::integer(),X::float(),Y::float()) -> ok %% @doc See external documentation. vertexAttrib2f(Index,X,Y) -> - wxe_util:cast(5499, <>). + cast(5499, <>). %% @spec (Index,{X,Y}) -> ok %% @equiv vertexAttrib2f(Index,X,Y) @@ -3002,7 +3032,7 @@ vertexAttrib2fv(Index,{X,Y}) -> vertexAttrib2f(Index,X,Y). %% @spec (Index::integer(),X::integer(),Y::integer()) -> ok %% @doc See external documentation. vertexAttrib2s(Index,X,Y) -> - wxe_util:cast(5500, <>). + cast(5500, <>). %% @spec (Index,{X,Y}) -> ok %% @equiv vertexAttrib2s(Index,X,Y) @@ -3011,7 +3041,7 @@ vertexAttrib2sv(Index,{X,Y}) -> vertexAttrib2s(Index,X,Y). %% @spec (Index::integer(),X::float(),Y::float(),Z::float()) -> ok %% @doc See external documentation. vertexAttrib3d(Index,X,Y,Z) -> - wxe_util:cast(5501, <>). + cast(5501, <>). %% @spec (Index,{X,Y,Z}) -> ok %% @equiv vertexAttrib3d(Index,X,Y,Z) @@ -3020,7 +3050,7 @@ vertexAttrib3dv(Index,{X,Y,Z}) -> vertexAttrib3d(Index,X,Y,Z). %% @spec (Index::integer(),X::float(),Y::float(),Z::float()) -> ok %% @doc See external documentation. vertexAttrib3f(Index,X,Y,Z) -> - wxe_util:cast(5502, <>). + cast(5502, <>). %% @spec (Index,{X,Y,Z}) -> ok %% @equiv vertexAttrib3f(Index,X,Y,Z) @@ -3029,7 +3059,7 @@ vertexAttrib3fv(Index,{X,Y,Z}) -> vertexAttrib3f(Index,X,Y,Z). %% @spec (Index::integer(),X::integer(),Y::integer(),Z::integer()) -> ok %% @doc See external documentation. vertexAttrib3s(Index,X,Y,Z) -> - wxe_util:cast(5503, <>). + cast(5503, <>). %% @spec (Index,{X,Y,Z}) -> ok %% @equiv vertexAttrib3s(Index,X,Y,Z) @@ -3038,22 +3068,22 @@ vertexAttrib3sv(Index,{X,Y,Z}) -> vertexAttrib3s(Index,X,Y,Z). %% @spec (Index::integer(),V::{integer()}) -> ok %% @doc See external documentation. vertexAttrib4Nbv(Index,{V1,V2,V3,V4}) -> - wxe_util:cast(5504, <>). + cast(5504, <>). %% @spec (Index::integer(),V::{integer()}) -> ok %% @doc See external documentation. vertexAttrib4Niv(Index,{V1,V2,V3,V4}) -> - wxe_util:cast(5505, <>). + cast(5505, <>). %% @spec (Index::integer(),V::{integer()}) -> ok %% @doc See external documentation. vertexAttrib4Nsv(Index,{V1,V2,V3,V4}) -> - wxe_util:cast(5506, <>). + cast(5506, <>). %% @spec (Index::integer(),X::integer(),Y::integer(),Z::integer(),W::integer()) -> ok %% @doc See external documentation. vertexAttrib4Nub(Index,X,Y,Z,W) -> - wxe_util:cast(5507, <>). + cast(5507, <>). %% @spec (Index,{X,Y,Z,W}) -> ok %% @equiv vertexAttrib4Nub(Index,X,Y,Z,W) @@ -3062,22 +3092,22 @@ vertexAttrib4Nubv(Index,{X,Y,Z,W}) -> vertexAttrib4Nub(Index,X,Y,Z,W). %% @spec (Index::integer(),V::{integer()}) -> ok %% @doc See external documentation. vertexAttrib4Nuiv(Index,{V1,V2,V3,V4}) -> - wxe_util:cast(5508, <>). + cast(5508, <>). %% @spec (Index::integer(),V::{integer()}) -> ok %% @doc See external documentation. vertexAttrib4Nusv(Index,{V1,V2,V3,V4}) -> - wxe_util:cast(5509, <>). + cast(5509, <>). %% @spec (Index::integer(),V::{integer()}) -> ok %% @doc See external documentation. vertexAttrib4bv(Index,{V1,V2,V3,V4}) -> - wxe_util:cast(5510, <>). + cast(5510, <>). %% @spec (Index::integer(),X::float(),Y::float(),Z::float(),W::float()) -> ok %% @doc See external documentation. vertexAttrib4d(Index,X,Y,Z,W) -> - wxe_util:cast(5511, <>). + cast(5511, <>). %% @spec (Index,{X,Y,Z,W}) -> ok %% @equiv vertexAttrib4d(Index,X,Y,Z,W) @@ -3086,7 +3116,7 @@ vertexAttrib4dv(Index,{X,Y,Z,W}) -> vertexAttrib4d(Index,X,Y,Z,W). %% @spec (Index::integer(),X::float(),Y::float(),Z::float(),W::float()) -> ok %% @doc See external documentation. vertexAttrib4f(Index,X,Y,Z,W) -> - wxe_util:cast(5512, <>). + cast(5512, <>). %% @spec (Index,{X,Y,Z,W}) -> ok %% @equiv vertexAttrib4f(Index,X,Y,Z,W) @@ -3095,12 +3125,12 @@ vertexAttrib4fv(Index,{X,Y,Z,W}) -> vertexAttrib4f(Index,X,Y,Z,W). %% @spec (Index::integer(),V::{integer()}) -> ok %% @doc See external documentation. vertexAttrib4iv(Index,{V1,V2,V3,V4}) -> - wxe_util:cast(5513, <>). + cast(5513, <>). %% @spec (Index::integer(),X::integer(),Y::integer(),Z::integer(),W::integer()) -> ok %% @doc See external documentation. vertexAttrib4s(Index,X,Y,Z,W) -> - wxe_util:cast(5514, <>). + cast(5514, <>). %% @spec (Index,{X,Y,Z,W}) -> ok %% @equiv vertexAttrib4s(Index,X,Y,Z,W) @@ -3109,304 +3139,304 @@ vertexAttrib4sv(Index,{X,Y,Z,W}) -> vertexAttrib4s(Index,X,Y,Z,W). %% @spec (Index::integer(),V::{integer()}) -> ok %% @doc See external documentation. vertexAttrib4ubv(Index,{V1,V2,V3,V4}) -> - wxe_util:cast(5515, <>). + cast(5515, <>). %% @spec (Index::integer(),V::{integer()}) -> ok %% @doc See external documentation. vertexAttrib4uiv(Index,{V1,V2,V3,V4}) -> - wxe_util:cast(5516, <>). + cast(5516, <>). %% @spec (Index::integer(),V::{integer()}) -> ok %% @doc See external documentation. vertexAttrib4usv(Index,{V1,V2,V3,V4}) -> - wxe_util:cast(5517, <>). + cast(5517, <>). %% @spec (Index::integer(),Size::integer(),Type::enum(),Normalized::0|1,Stride::integer(),Pointer::offset()|binary()) -> ok %% @doc See external documentation. vertexAttribPointer(Index,Size,Type,Normalized,Stride,Pointer) when is_integer(Pointer) -> - wxe_util:cast(5518, <>); + cast(5518, <>); vertexAttribPointer(Index,Size,Type,Normalized,Stride,Pointer) -> - wxe_util:send_bin(Pointer), - wxe_util:cast(5519, <>). + send_bin(Pointer), + cast(5519, <>). %% @spec (Location::integer(),Transpose::0|1,Value::[{float()}]) -> ok %% @doc See external documentation. uniformMatrix2x3fv(Location,Transpose,Value) -> - wxe_util:cast(5520, <> || {V1,V2,V3,V4,V5,V6} <- Value>>)/binary>>). %% @spec (Location::integer(),Transpose::0|1,Value::[{float()}]) -> ok %% @doc See external documentation. uniformMatrix3x2fv(Location,Transpose,Value) -> - wxe_util:cast(5521, <> || {V1,V2,V3,V4,V5,V6} <- Value>>)/binary>>). %% @spec (Location::integer(),Transpose::0|1,Value::[{float()}]) -> ok %% @doc See external documentation. uniformMatrix2x4fv(Location,Transpose,Value) -> - wxe_util:cast(5522, <> || {V1,V2,V3,V4,V5,V6,V7,V8} <- Value>>)/binary>>). %% @spec (Location::integer(),Transpose::0|1,Value::[{float()}]) -> ok %% @doc See external documentation. uniformMatrix4x2fv(Location,Transpose,Value) -> - wxe_util:cast(5523, <> || {V1,V2,V3,V4,V5,V6,V7,V8} <- Value>>)/binary>>). %% @spec (Location::integer(),Transpose::0|1,Value::[{float()}]) -> ok %% @doc See external documentation. uniformMatrix3x4fv(Location,Transpose,Value) -> - wxe_util:cast(5524, <> || {V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12} <- Value>>)/binary>>). %% @spec (Location::integer(),Transpose::0|1,Value::[{float()}]) -> ok %% @doc See external documentation. uniformMatrix4x3fv(Location,Transpose,Value) -> - wxe_util:cast(5525, <> || {V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12} <- Value>>)/binary>>). %% @spec (Index::integer(),R::0|1,G::0|1,B::0|1,A::0|1) -> ok %% @doc See external documentation. colorMaski(Index,R,G,B,A) -> - wxe_util:cast(5526, <>). + cast(5526, <>). %% @spec (Target::enum(),Index::integer()) -> [0|1] %% @doc See external documentation. getBooleani_v(Target,Index) -> - wxe_util:call(5527, <>). + call(5527, <>). %% @spec (Target::enum(),Index::integer()) -> [integer()] %% @doc See external documentation. getIntegeri_v(Target,Index) -> - wxe_util:call(5528, <>). + call(5528, <>). %% @spec (Target::enum(),Index::integer()) -> ok %% @doc See external documentation. enablei(Target,Index) -> - wxe_util:cast(5529, <>). + cast(5529, <>). %% @spec (Target::enum(),Index::integer()) -> ok %% @doc See external documentation. disablei(Target,Index) -> - wxe_util:cast(5530, <>). + cast(5530, <>). %% @spec (Target::enum(),Index::integer()) -> 0|1 %% @doc See external documentation. isEnabledi(Target,Index) -> - wxe_util:call(5531, <>). + call(5531, <>). %% @spec (PrimitiveMode::enum()) -> ok %% @doc See external documentation. beginTransformFeedback(PrimitiveMode) -> - wxe_util:cast(5532, <>). + cast(5532, <>). %% @spec () -> ok %% @doc See external documentation. endTransformFeedback() -> - wxe_util:cast(5533, <<>>). + cast(5533, <<>>). %% @spec (Target::enum(),Index::integer(),Buffer::integer(),Offset::integer(),Size::integer()) -> ok %% @doc See external documentation. bindBufferRange(Target,Index,Buffer,Offset,Size) -> - wxe_util:cast(5534, <>). + cast(5534, <>). %% @spec (Target::enum(),Index::integer(),Buffer::integer()) -> ok %% @doc See external documentation. bindBufferBase(Target,Index,Buffer) -> - wxe_util:cast(5535, <>). + cast(5535, <>). %% @spec (Program::integer(),Varyings::[string()],BufferMode::enum()) -> ok %% @doc See external documentation. transformFeedbackVaryings(Program,Varyings,BufferMode) -> VaryingsTemp = list_to_binary([[Str|[0]] || Str <- Varyings ]), - wxe_util:cast(5536, <>). + cast(5536, <>). %% @spec (Program::integer(),Index::integer(),BufSize::integer()) -> {Size::integer(),Type::enum(),Name::string()} %% @doc See external documentation. getTransformFeedbackVarying(Program,Index,BufSize) -> - wxe_util:call(5537, <>). + call(5537, <>). %% @spec (Target::enum(),Clamp::enum()) -> ok %% @doc See external documentation. clampColor(Target,Clamp) -> - wxe_util:cast(5538, <>). + cast(5538, <>). %% @spec (Id::integer(),Mode::enum()) -> ok %% @doc See external documentation. beginConditionalRender(Id,Mode) -> - wxe_util:cast(5539, <>). + cast(5539, <>). %% @spec () -> ok %% @doc See external documentation. endConditionalRender() -> - wxe_util:cast(5540, <<>>). + cast(5540, <<>>). %% @spec (Index::integer(),Size::integer(),Type::enum(),Stride::integer(),Pointer::offset()|binary()) -> ok %% @doc See external documentation. vertexAttribIPointer(Index,Size,Type,Stride,Pointer) when is_integer(Pointer) -> - wxe_util:cast(5541, <>); + cast(5541, <>); vertexAttribIPointer(Index,Size,Type,Stride,Pointer) -> - wxe_util:send_bin(Pointer), - wxe_util:cast(5542, <>). + send_bin(Pointer), + cast(5542, <>). %% @spec (Index::integer(),Pname::enum()) -> {integer()} %% @doc See external documentation. getVertexAttribIiv(Index,Pname) -> - wxe_util:call(5543, <>). + call(5543, <>). %% @spec (Index::integer(),Pname::enum()) -> {integer()} %% @doc See external documentation. getVertexAttribIuiv(Index,Pname) -> - wxe_util:call(5544, <>). + call(5544, <>). %% @spec (Program::integer(),Location::integer()) -> {integer()} %% @doc See external documentation. getUniformuiv(Program,Location) -> - wxe_util:call(5545, <>). + call(5545, <>). %% @spec (Program::integer(),Color::integer(),Name::string()) -> ok %% @doc See external documentation. bindFragDataLocation(Program,Color,Name) -> - wxe_util:cast(5546, <>). + cast(5546, <>). %% @spec (Program::integer(),Name::string()) -> integer() %% @doc See external documentation. getFragDataLocation(Program,Name) -> - wxe_util:call(5547, <>). + call(5547, <>). %% @spec (Location::integer(),V0::integer()) -> ok %% @doc See external documentation. uniform1ui(Location,V0) -> - wxe_util:cast(5548, <>). + cast(5548, <>). %% @spec (Location::integer(),V0::integer(),V1::integer()) -> ok %% @doc See external documentation. uniform2ui(Location,V0,V1) -> - wxe_util:cast(5549, <>). + cast(5549, <>). %% @spec (Location::integer(),V0::integer(),V1::integer(),V2::integer()) -> ok %% @doc See external documentation. uniform3ui(Location,V0,V1,V2) -> - wxe_util:cast(5550, <>). + cast(5550, <>). %% @spec (Location::integer(),V0::integer(),V1::integer(),V2::integer(),V3::integer()) -> ok %% @doc See external documentation. uniform4ui(Location,V0,V1,V2,V3) -> - wxe_util:cast(5551, <>). + cast(5551, <>). %% @spec (Location::integer(),Value::[integer()]) -> ok %% @doc See external documentation. uniform1uiv(Location,Value) -> - wxe_util:cast(5552, <> || C <- Value>>)/binary,0:(((length(Value)) rem 2)*32)>>). %% @spec (Location::integer(),Value::[{integer()}]) -> ok %% @doc See external documentation. uniform2uiv(Location,Value) -> - wxe_util:cast(5553, <> || {V1,V2} <- Value>>)/binary>>). %% @spec (Location::integer(),Value::[{integer()}]) -> ok %% @doc See external documentation. uniform3uiv(Location,Value) -> - wxe_util:cast(5554, <> || {V1,V2,V3} <- Value>>)/binary>>). %% @spec (Location::integer(),Value::[{integer()}]) -> ok %% @doc See external documentation. uniform4uiv(Location,Value) -> - wxe_util:cast(5555, <> || {V1,V2,V3,V4} <- Value>>)/binary>>). %% @spec (Target::enum(),Pname::enum(),Params::{integer()}) -> ok %% @doc See external documentation. texParameterIiv(Target,Pname,Params) -> - wxe_util:cast(5556, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>). %% @spec (Target::enum(),Pname::enum(),Params::{integer()}) -> ok %% @doc See external documentation. texParameterIuiv(Target,Pname,Params) -> - wxe_util:cast(5557, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>). %% @spec (Target::enum(),Pname::enum()) -> {integer()} %% @doc See external documentation. getTexParameterIiv(Target,Pname) -> - wxe_util:call(5558, <>). + call(5558, <>). %% @spec (Target::enum(),Pname::enum()) -> {integer()} %% @doc See external documentation. getTexParameterIuiv(Target,Pname) -> - wxe_util:call(5559, <>). + call(5559, <>). %% @spec (Buffer::enum(),Drawbuffer::integer(),Value::{integer()}) -> ok %% @doc See external documentation. clearBufferiv(Buffer,Drawbuffer,Value) -> - wxe_util:cast(5560, <> ||C <- tuple_to_list(Value)>>)/binary,0:(((1+size(Value)) rem 2)*32)>>). %% @spec (Buffer::enum(),Drawbuffer::integer(),Value::{integer()}) -> ok %% @doc See external documentation. clearBufferuiv(Buffer,Drawbuffer,Value) -> - wxe_util:cast(5561, <> ||C <- tuple_to_list(Value)>>)/binary,0:(((1+size(Value)) rem 2)*32)>>). %% @spec (Buffer::enum(),Drawbuffer::integer(),Value::{float()}) -> ok %% @doc See external documentation. clearBufferfv(Buffer,Drawbuffer,Value) -> - wxe_util:cast(5562, <> ||C <- tuple_to_list(Value)>>)/binary,0:(((1+size(Value)) rem 2)*32)>>). %% @spec (Buffer::enum(),Drawbuffer::integer(),Depth::float(),Stencil::integer()) -> ok %% @doc See external documentation. clearBufferfi(Buffer,Drawbuffer,Depth,Stencil) -> - wxe_util:cast(5563, <>). + cast(5563, <>). %% @spec (Name::enum(),Index::integer()) -> string() %% @doc See external documentation. getStringi(Name,Index) -> - wxe_util:call(5564, <>). + call(5564, <>). %% @spec (Index::integer(),X::integer()) -> ok %% @doc See external documentation. vertexAttribI1i(Index,X) -> - wxe_util:cast(5565, <>). + cast(5565, <>). %% @spec (Index::integer(),X::integer(),Y::integer()) -> ok %% @doc See external documentation. vertexAttribI2i(Index,X,Y) -> - wxe_util:cast(5566, <>). + cast(5566, <>). %% @spec (Index::integer(),X::integer(),Y::integer(),Z::integer()) -> ok %% @doc See external documentation. vertexAttribI3i(Index,X,Y,Z) -> - wxe_util:cast(5567, <>). + cast(5567, <>). %% @spec (Index::integer(),X::integer(),Y::integer(),Z::integer(),W::integer()) -> ok %% @doc See external documentation. vertexAttribI4i(Index,X,Y,Z,W) -> - wxe_util:cast(5568, <>). + cast(5568, <>). %% @spec (Index::integer(),X::integer()) -> ok %% @doc See external documentation. vertexAttribI1ui(Index,X) -> - wxe_util:cast(5569, <>). + cast(5569, <>). %% @spec (Index::integer(),X::integer(),Y::integer()) -> ok %% @doc See external documentation. vertexAttribI2ui(Index,X,Y) -> - wxe_util:cast(5570, <>). + cast(5570, <>). %% @spec (Index::integer(),X::integer(),Y::integer(),Z::integer()) -> ok %% @doc See external documentation. vertexAttribI3ui(Index,X,Y,Z) -> - wxe_util:cast(5571, <>). + cast(5571, <>). %% @spec (Index::integer(),X::integer(),Y::integer(),Z::integer(),W::integer()) -> ok %% @doc See external documentation. vertexAttribI4ui(Index,X,Y,Z,W) -> - wxe_util:cast(5572, <>). + cast(5572, <>). %% @spec (Index,{X}) -> ok %% @equiv vertexAttribI1i(Index,X) @@ -3443,553 +3473,553 @@ vertexAttribI4uiv(Index,{X,Y,Z,W}) -> vertexAttribI4ui(Index,X,Y,Z,W). %% @spec (Index::integer(),V::{integer()}) -> ok %% @doc See external documentation. vertexAttribI4bv(Index,{V1,V2,V3,V4}) -> - wxe_util:cast(5573, <>). + cast(5573, <>). %% @spec (Index::integer(),V::{integer()}) -> ok %% @doc See external documentation. vertexAttribI4sv(Index,{V1,V2,V3,V4}) -> - wxe_util:cast(5574, <>). + cast(5574, <>). %% @spec (Index::integer(),V::{integer()}) -> ok %% @doc See external documentation. vertexAttribI4ubv(Index,{V1,V2,V3,V4}) -> - wxe_util:cast(5575, <>). + cast(5575, <>). %% @spec (Index::integer(),V::{integer()}) -> ok %% @doc See external documentation. vertexAttribI4usv(Index,{V1,V2,V3,V4}) -> - wxe_util:cast(5576, <>). + cast(5576, <>). %% @spec (Mode::enum(),First::integer(),Count::integer(),Primcount::integer()) -> ok %% @doc See external documentation. drawArraysInstanced(Mode,First,Count,Primcount) -> - wxe_util:cast(5577, <>). + cast(5577, <>). %% @spec (Mode::enum(),Count::integer(),Type::enum(),Indices::offset()|binary(),Primcount::integer()) -> ok %% @doc See external documentation. drawElementsInstanced(Mode,Count,Type,Indices,Primcount) when is_integer(Indices) -> - wxe_util:cast(5578, <>); + cast(5578, <>); drawElementsInstanced(Mode,Count,Type,Indices,Primcount) -> - wxe_util:send_bin(Indices), - wxe_util:cast(5579, <>). + send_bin(Indices), + cast(5579, <>). %% @spec (Target::enum(),Internalformat::enum(),Buffer::integer()) -> ok %% @doc See external documentation. texBuffer(Target,Internalformat,Buffer) -> - wxe_util:cast(5580, <>). + cast(5580, <>). %% @spec (Index::integer()) -> ok %% @doc See external documentation. primitiveRestartIndex(Index) -> - wxe_util:cast(5581, <>). + cast(5581, <>). %% @spec (M::{float()}) -> ok %% @doc See external documentation. loadTransposeMatrixfARB({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16}) -> - wxe_util:cast(5582, <>); + cast(5582, <>); loadTransposeMatrixfARB({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12}) -> - wxe_util:cast(5582, <>). + cast(5582, <>). %% @spec (M::{float()}) -> ok %% @doc See external documentation. loadTransposeMatrixdARB({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16}) -> - wxe_util:cast(5583, <>); + cast(5583, <>); loadTransposeMatrixdARB({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12}) -> - wxe_util:cast(5583, <>). + cast(5583, <>). %% @spec (M::{float()}) -> ok %% @doc See external documentation. multTransposeMatrixfARB({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16}) -> - wxe_util:cast(5584, <>); + cast(5584, <>); multTransposeMatrixfARB({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12}) -> - wxe_util:cast(5584, <>). + cast(5584, <>). %% @spec (M::{float()}) -> ok %% @doc See external documentation. multTransposeMatrixdARB({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16}) -> - wxe_util:cast(5585, <>); + cast(5585, <>); multTransposeMatrixdARB({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12}) -> - wxe_util:cast(5585, <>). + cast(5585, <>). %% @spec (Weights::[integer()]) -> ok %% @doc See external documentation. weightbvARB(Weights) -> - wxe_util:cast(5586, <<(length(Weights)):?GLuint, + cast(5586, <<(length(Weights)):?GLuint, (<< <> || C <- Weights>>)/binary,0:((8-((length(Weights)+ 4) rem 8)) rem 8)>>). %% @spec (Weights::[integer()]) -> ok %% @doc See external documentation. weightsvARB(Weights) -> - wxe_util:cast(5587, <<(length(Weights)):?GLuint, + cast(5587, <<(length(Weights)):?GLuint, (<< <> || C <- Weights>>)/binary,0:((8-((length(Weights)*2+ 4) rem 8)) rem 8)>>). %% @spec (Weights::[integer()]) -> ok %% @doc See external documentation. weightivARB(Weights) -> - wxe_util:cast(5588, <<(length(Weights)):?GLuint, + cast(5588, <<(length(Weights)):?GLuint, (<< <> || C <- Weights>>)/binary,0:(((1+length(Weights)) rem 2)*32)>>). %% @spec (Weights::[float()]) -> ok %% @doc See external documentation. weightfvARB(Weights) -> - wxe_util:cast(5589, <<(length(Weights)):?GLuint, + cast(5589, <<(length(Weights)):?GLuint, (<< <> || C <- Weights>>)/binary,0:(((1+length(Weights)) rem 2)*32)>>). %% @spec (Weights::[float()]) -> ok %% @doc See external documentation. weightdvARB(Weights) -> - wxe_util:cast(5590, <<(length(Weights)):?GLuint,0:32, + cast(5590, <<(length(Weights)):?GLuint,0:32, (<< <> || C <- Weights>>)/binary>>). %% @spec (Weights::[integer()]) -> ok %% @doc See external documentation. weightubvARB(Weights) -> - wxe_util:cast(5591, <<(length(Weights)):?GLuint, + cast(5591, <<(length(Weights)):?GLuint, (<< <> || C <- Weights>>)/binary,0:((8-((length(Weights)+ 4) rem 8)) rem 8)>>). %% @spec (Weights::[integer()]) -> ok %% @doc See external documentation. weightusvARB(Weights) -> - wxe_util:cast(5592, <<(length(Weights)):?GLuint, + cast(5592, <<(length(Weights)):?GLuint, (<< <> || C <- Weights>>)/binary,0:((8-((length(Weights)*2+ 4) rem 8)) rem 8)>>). %% @spec (Weights::[integer()]) -> ok %% @doc See external documentation. weightuivARB(Weights) -> - wxe_util:cast(5593, <<(length(Weights)):?GLuint, + cast(5593, <<(length(Weights)):?GLuint, (<< <> || C <- Weights>>)/binary,0:(((1+length(Weights)) rem 2)*32)>>). %% @spec (Count::integer()) -> ok %% @doc See external documentation. vertexBlendARB(Count) -> - wxe_util:cast(5594, <>). + cast(5594, <>). %% @spec (Index::integer()) -> ok %% @doc See external documentation. currentPaletteMatrixARB(Index) -> - wxe_util:cast(5595, <>). + cast(5595, <>). %% @spec (Indices::[integer()]) -> ok %% @doc See external documentation. matrixIndexubvARB(Indices) -> - wxe_util:cast(5596, <<(length(Indices)):?GLuint, + cast(5596, <<(length(Indices)):?GLuint, (<< <> || C <- Indices>>)/binary,0:((8-((length(Indices)+ 4) rem 8)) rem 8)>>). %% @spec (Indices::[integer()]) -> ok %% @doc See external documentation. matrixIndexusvARB(Indices) -> - wxe_util:cast(5597, <<(length(Indices)):?GLuint, + cast(5597, <<(length(Indices)):?GLuint, (<< <> || C <- Indices>>)/binary,0:((8-((length(Indices)*2+ 4) rem 8)) rem 8)>>). %% @spec (Indices::[integer()]) -> ok %% @doc See external documentation. matrixIndexuivARB(Indices) -> - wxe_util:cast(5598, <<(length(Indices)):?GLuint, + cast(5598, <<(length(Indices)):?GLuint, (<< <> || C <- Indices>>)/binary,0:(((1+length(Indices)) rem 2)*32)>>). %% @spec (Target::enum(),Format::enum(),String::string()) -> ok %% @doc See external documentation. programStringARB(Target,Format,String) -> - wxe_util:cast(5599, <>). + cast(5599, <>). %% @spec (Target::enum(),Program::integer()) -> ok %% @doc See external documentation. bindProgramARB(Target,Program) -> - wxe_util:cast(5600, <>). + cast(5600, <>). %% @spec (Programs::[integer()]) -> ok %% @doc See external documentation. deleteProgramsARB(Programs) -> - wxe_util:cast(5601, <<(length(Programs)):?GLuint, + cast(5601, <<(length(Programs)):?GLuint, (<< <> || C <- Programs>>)/binary,0:(((1+length(Programs)) rem 2)*32)>>). %% @spec (N::integer()) -> [integer()] %% @doc See external documentation. genProgramsARB(N) -> - wxe_util:call(5602, <>). + call(5602, <>). %% @spec (Target::enum(),Index::integer(),X::float(),Y::float(),Z::float(),W::float()) -> ok %% @doc See external documentation. programEnvParameter4dARB(Target,Index,X,Y,Z,W) -> - wxe_util:cast(5603, <>). + cast(5603, <>). %% @spec (Target::enum(),Index::integer(),Params::{float()}) -> ok %% @doc See external documentation. programEnvParameter4dvARB(Target,Index,{P1,P2,P3,P4}) -> - wxe_util:cast(5604, <>). + cast(5604, <>). %% @spec (Target::enum(),Index::integer(),X::float(),Y::float(),Z::float(),W::float()) -> ok %% @doc See external documentation. programEnvParameter4fARB(Target,Index,X,Y,Z,W) -> - wxe_util:cast(5605, <>). + cast(5605, <>). %% @spec (Target::enum(),Index::integer(),Params::{float()}) -> ok %% @doc See external documentation. programEnvParameter4fvARB(Target,Index,{P1,P2,P3,P4}) -> - wxe_util:cast(5606, <>). + cast(5606, <>). %% @spec (Target::enum(),Index::integer(),X::float(),Y::float(),Z::float(),W::float()) -> ok %% @doc See external documentation. programLocalParameter4dARB(Target,Index,X,Y,Z,W) -> - wxe_util:cast(5607, <>). + cast(5607, <>). %% @spec (Target::enum(),Index::integer(),Params::{float()}) -> ok %% @doc See external documentation. programLocalParameter4dvARB(Target,Index,{P1,P2,P3,P4}) -> - wxe_util:cast(5608, <>). + cast(5608, <>). %% @spec (Target::enum(),Index::integer(),X::float(),Y::float(),Z::float(),W::float()) -> ok %% @doc See external documentation. programLocalParameter4fARB(Target,Index,X,Y,Z,W) -> - wxe_util:cast(5609, <>). + cast(5609, <>). %% @spec (Target::enum(),Index::integer(),Params::{float()}) -> ok %% @doc See external documentation. programLocalParameter4fvARB(Target,Index,{P1,P2,P3,P4}) -> - wxe_util:cast(5610, <>). + cast(5610, <>). %% @spec (Target::enum(),Index::integer()) -> {float()} %% @doc See external documentation. getProgramEnvParameterdvARB(Target,Index) -> - wxe_util:call(5611, <>). + call(5611, <>). %% @spec (Target::enum(),Index::integer()) -> {float()} %% @doc See external documentation. getProgramEnvParameterfvARB(Target,Index) -> - wxe_util:call(5612, <>). + call(5612, <>). %% @spec (Target::enum(),Index::integer()) -> {float()} %% @doc See external documentation. getProgramLocalParameterdvARB(Target,Index) -> - wxe_util:call(5613, <>). + call(5613, <>). %% @spec (Target::enum(),Index::integer()) -> {float()} %% @doc See external documentation. getProgramLocalParameterfvARB(Target,Index) -> - wxe_util:call(5614, <>). + call(5614, <>). -%% @spec (Target::enum(),Pname::enum(),String::wx:wx_mem()) -> ok +%% @spec (Target::enum(),Pname::enum(),String::mem()) -> ok %% @doc See external documentation. getProgramStringARB(Target,Pname,String) -> - wxe_util:send_bin(String#wx_mem.bin), - wxe_util:call(5615, <>). + send_bin(String), + call(5615, <>). %% @spec (Obj::integer()) -> ok %% @doc See external documentation. deleteObjectARB(Obj) -> - wxe_util:cast(5616, <>). + cast(5616, <>). %% @spec (Pname::enum()) -> integer() %% @doc See external documentation. getHandleARB(Pname) -> - wxe_util:call(5617, <>). + call(5617, <>). %% @spec (ContainerObj::integer(),AttachedObj::integer()) -> ok %% @doc See external documentation. detachObjectARB(ContainerObj,AttachedObj) -> - wxe_util:cast(5618, <>). + cast(5618, <>). %% @spec (ShaderType::enum()) -> integer() %% @doc See external documentation. createShaderObjectARB(ShaderType) -> - wxe_util:call(5619, <>). + call(5619, <>). %% @spec (ShaderObj::integer(),String::[string()]) -> ok %% @doc See external documentation. shaderSourceARB(ShaderObj,String) -> StringTemp = list_to_binary([[Str|[0]] || Str <- String ]), - wxe_util:cast(5620, <>). + cast(5620, <>). %% @spec (ShaderObj::integer()) -> ok %% @doc See external documentation. compileShaderARB(ShaderObj) -> - wxe_util:cast(5621, <>). + cast(5621, <>). %% @spec () -> integer() %% @doc See external documentation. createProgramObjectARB() -> - wxe_util:call(5622, <<>>). + call(5622, <<>>). %% @spec (ContainerObj::integer(),Obj::integer()) -> ok %% @doc See external documentation. attachObjectARB(ContainerObj,Obj) -> - wxe_util:cast(5623, <>). + cast(5623, <>). %% @spec (ProgramObj::integer()) -> ok %% @doc See external documentation. linkProgramARB(ProgramObj) -> - wxe_util:cast(5624, <>). + cast(5624, <>). %% @spec (ProgramObj::integer()) -> ok %% @doc See external documentation. useProgramObjectARB(ProgramObj) -> - wxe_util:cast(5625, <>). + cast(5625, <>). %% @spec (ProgramObj::integer()) -> ok %% @doc See external documentation. validateProgramARB(ProgramObj) -> - wxe_util:cast(5626, <>). + cast(5626, <>). %% @spec (Obj::integer(),Pname::enum()) -> float() %% @doc See external documentation. getObjectParameterfvARB(Obj,Pname) -> - wxe_util:call(5627, <>). + call(5627, <>). %% @spec (Obj::integer(),Pname::enum()) -> integer() %% @doc See external documentation. getObjectParameterivARB(Obj,Pname) -> - wxe_util:call(5628, <>). + call(5628, <>). %% @spec (Obj::integer(),MaxLength::integer()) -> string() %% @doc See external documentation. getInfoLogARB(Obj,MaxLength) -> - wxe_util:call(5629, <>). + call(5629, <>). %% @spec (ContainerObj::integer(),MaxCount::integer()) -> [integer()] %% @doc See external documentation. getAttachedObjectsARB(ContainerObj,MaxCount) -> - wxe_util:call(5630, <>). + call(5630, <>). %% @spec (ProgramObj::integer(),Name::string()) -> integer() %% @doc See external documentation. getUniformLocationARB(ProgramObj,Name) -> - wxe_util:call(5631, <>). + call(5631, <>). %% @spec (ProgramObj::integer(),Index::integer(),MaxLength::integer()) -> {Size::integer(),Type::enum(),Name::string()} %% @doc See external documentation. getActiveUniformARB(ProgramObj,Index,MaxLength) -> - wxe_util:call(5632, <>). + call(5632, <>). %% @spec (ProgramObj::integer(),Location::integer()) -> {float()} %% @doc See external documentation. getUniformfvARB(ProgramObj,Location) -> - wxe_util:call(5633, <>). + call(5633, <>). %% @spec (ProgramObj::integer(),Location::integer()) -> {integer()} %% @doc See external documentation. getUniformivARB(ProgramObj,Location) -> - wxe_util:call(5634, <>). + call(5634, <>). %% @spec (Obj::integer(),MaxLength::integer()) -> string() %% @doc See external documentation. getShaderSourceARB(Obj,MaxLength) -> - wxe_util:call(5635, <>). + call(5635, <>). %% @spec (ProgramObj::integer(),Index::integer(),Name::string()) -> ok %% @doc See external documentation. bindAttribLocationARB(ProgramObj,Index,Name) -> - wxe_util:cast(5636, <>). + cast(5636, <>). %% @spec (ProgramObj::integer(),Index::integer(),MaxLength::integer()) -> {Size::integer(),Type::enum(),Name::string()} %% @doc See external documentation. getActiveAttribARB(ProgramObj,Index,MaxLength) -> - wxe_util:call(5637, <>). + call(5637, <>). %% @spec (ProgramObj::integer(),Name::string()) -> integer() %% @doc See external documentation. getAttribLocationARB(ProgramObj,Name) -> - wxe_util:call(5638, <>). + call(5638, <>). %% @spec (Renderbuffer::integer()) -> 0|1 %% @doc See external documentation. isRenderbuffer(Renderbuffer) -> - wxe_util:call(5639, <>). + call(5639, <>). %% @spec (Target::enum(),Renderbuffer::integer()) -> ok %% @doc See external documentation. bindRenderbuffer(Target,Renderbuffer) -> - wxe_util:cast(5640, <>). + cast(5640, <>). %% @spec (Renderbuffers::[integer()]) -> ok %% @doc See external documentation. deleteRenderbuffers(Renderbuffers) -> - wxe_util:cast(5641, <<(length(Renderbuffers)):?GLuint, + cast(5641, <<(length(Renderbuffers)):?GLuint, (<< <> || C <- Renderbuffers>>)/binary,0:(((1+length(Renderbuffers)) rem 2)*32)>>). %% @spec (N::integer()) -> [integer()] %% @doc See external documentation. genRenderbuffers(N) -> - wxe_util:call(5642, <>). + call(5642, <>). %% @spec (Target::enum(),Internalformat::enum(),Width::integer(),Height::integer()) -> ok %% @doc See external documentation. renderbufferStorage(Target,Internalformat,Width,Height) -> - wxe_util:cast(5643, <>). + cast(5643, <>). %% @spec (Target::enum(),Pname::enum()) -> integer() %% @doc See external documentation. getRenderbufferParameteriv(Target,Pname) -> - wxe_util:call(5644, <>). + call(5644, <>). %% @spec (Framebuffer::integer()) -> 0|1 %% @doc See external documentation. isFramebuffer(Framebuffer) -> - wxe_util:call(5645, <>). + call(5645, <>). %% @spec (Target::enum(),Framebuffer::integer()) -> ok %% @doc See external documentation. bindFramebuffer(Target,Framebuffer) -> - wxe_util:cast(5646, <>). + cast(5646, <>). %% @spec (Framebuffers::[integer()]) -> ok %% @doc See external documentation. deleteFramebuffers(Framebuffers) -> - wxe_util:cast(5647, <<(length(Framebuffers)):?GLuint, + cast(5647, <<(length(Framebuffers)):?GLuint, (<< <> || C <- Framebuffers>>)/binary,0:(((1+length(Framebuffers)) rem 2)*32)>>). %% @spec (N::integer()) -> [integer()] %% @doc See external documentation. genFramebuffers(N) -> - wxe_util:call(5648, <>). + call(5648, <>). %% @spec (Target::enum()) -> enum() %% @doc See external documentation. checkFramebufferStatus(Target) -> - wxe_util:call(5649, <>). + call(5649, <>). %% @spec (Target::enum(),Attachment::enum(),Textarget::enum(),Texture::integer(),Level::integer()) -> ok %% @doc See external documentation. framebufferTexture1D(Target,Attachment,Textarget,Texture,Level) -> - wxe_util:cast(5650, <>). + cast(5650, <>). %% @spec (Target::enum(),Attachment::enum(),Textarget::enum(),Texture::integer(),Level::integer()) -> ok %% @doc See external documentation. framebufferTexture2D(Target,Attachment,Textarget,Texture,Level) -> - wxe_util:cast(5651, <>). + cast(5651, <>). %% @spec (Target::enum(),Attachment::enum(),Textarget::enum(),Texture::integer(),Level::integer(),Zoffset::integer()) -> ok %% @doc See external documentation. framebufferTexture3D(Target,Attachment,Textarget,Texture,Level,Zoffset) -> - wxe_util:cast(5652, <>). + cast(5652, <>). %% @spec (Target::enum(),Attachment::enum(),Renderbuffertarget::enum(),Renderbuffer::integer()) -> ok %% @doc See external documentation. framebufferRenderbuffer(Target,Attachment,Renderbuffertarget,Renderbuffer) -> - wxe_util:cast(5653, <>). + cast(5653, <>). %% @spec (Target::enum(),Attachment::enum(),Pname::enum()) -> integer() %% @doc See external documentation. getFramebufferAttachmentParameteriv(Target,Attachment,Pname) -> - wxe_util:call(5654, <>). + call(5654, <>). %% @spec (Target::enum()) -> ok %% @doc See external documentation. generateMipmap(Target) -> - wxe_util:cast(5655, <>). + cast(5655, <>). %% @spec (SrcX0::integer(),SrcY0::integer(),SrcX1::integer(),SrcY1::integer(),DstX0::integer(),DstY0::integer(),DstX1::integer(),DstY1::integer(),Mask::integer(),Filter::enum()) -> ok %% @doc See external documentation. blitFramebuffer(SrcX0,SrcY0,SrcX1,SrcY1,DstX0,DstY0,DstX1,DstY1,Mask,Filter) -> - wxe_util:cast(5656, <>). + cast(5656, <>). %% @spec (Target::enum(),Samples::integer(),Internalformat::enum(),Width::integer(),Height::integer()) -> ok %% @doc See external documentation. renderbufferStorageMultisample(Target,Samples,Internalformat,Width,Height) -> - wxe_util:cast(5657, <>). + cast(5657, <>). %% @spec (Target::enum(),Attachment::enum(),Texture::integer(),Level::integer(),Layer::integer()) -> ok %% @doc See external documentation. framebufferTextureLayer(Target,Attachment,Texture,Level,Layer) -> - wxe_util:cast(5658, <>). + cast(5658, <>). %% @spec (Program::integer(),Pname::enum(),Value::integer()) -> ok %% @doc See external documentation. programParameteriARB(Program,Pname,Value) -> - wxe_util:cast(5659, <>). + cast(5659, <>). %% @spec (Target::enum(),Attachment::enum(),Texture::integer(),Level::integer()) -> ok %% @doc See external documentation. framebufferTextureARB(Target,Attachment,Texture,Level) -> - wxe_util:cast(5660, <>). + cast(5660, <>). %% @spec (Target::enum(),Attachment::enum(),Texture::integer(),Level::integer(),Face::enum()) -> ok %% @doc See external documentation. framebufferTextureFaceARB(Target,Attachment,Texture,Level,Face) -> - wxe_util:cast(5661, <>). + cast(5661, <>). %% @spec (Index::integer(),Divisor::integer()) -> ok %% @doc See external documentation. vertexAttribDivisorARB(Index,Divisor) -> - wxe_util:cast(5662, <>). + cast(5662, <>). %% @spec (Target::enum(),Offset::integer(),Length::integer()) -> ok %% @doc See external documentation. flushMappedBufferRange(Target,Offset,Length) -> - wxe_util:cast(5663, <>). + cast(5663, <>). %% @spec (Array::integer()) -> ok %% @doc See external documentation. bindVertexArray(Array) -> - wxe_util:cast(5664, <>). + cast(5664, <>). %% @spec (Arrays::[integer()]) -> ok %% @doc See external documentation. deleteVertexArrays(Arrays) -> - wxe_util:cast(5665, <<(length(Arrays)):?GLuint, + cast(5665, <<(length(Arrays)):?GLuint, (<< <> || C <- Arrays>>)/binary,0:(((1+length(Arrays)) rem 2)*32)>>). %% @spec (N::integer()) -> [integer()] %% @doc See external documentation. genVertexArrays(N) -> - wxe_util:call(5666, <>). + call(5666, <>). %% @spec (Array::integer()) -> 0|1 %% @doc See external documentation. isVertexArray(Array) -> - wxe_util:call(5667, <>). + call(5667, <>). %% @spec (Program::integer(),UniformNames::[string()]) -> [integer()] %% @doc See external documentation. getUniformIndices(Program,UniformNames) -> UniformNamesTemp = list_to_binary([[Str|[0]] || Str <- UniformNames ]), - wxe_util:call(5668, <>). + call(5668, <>). %% @spec (Program::integer(),UniformIndices::[integer()],Pname::enum()) -> [integer()] %% @doc See external documentation. getActiveUniformsiv(Program,UniformIndices,Pname) -> - wxe_util:call(5669, <> || C <- UniformIndices>>)/binary,0:(((length(UniformIndices)) rem 2)*32),Pname:?GLenum>>). %% @spec (Program::integer(),UniformIndex::integer(),BufSize::integer()) -> string() %% @doc See external documentation. getActiveUniformName(Program,UniformIndex,BufSize) -> - wxe_util:call(5670, <>). + call(5670, <>). %% @spec (Program::integer(),UniformBlockName::string()) -> integer() %% @doc See external documentation. getUniformBlockIndex(Program,UniformBlockName) -> - wxe_util:call(5671, <>). + call(5671, <>). -%% @spec (Program::integer(),UniformBlockIndex::integer(),Pname::enum(),Params::wx:wx_mem()) -> ok +%% @spec (Program::integer(),UniformBlockIndex::integer(),Pname::enum(),Params::mem()) -> ok %% @doc See external documentation. getActiveUniformBlockiv(Program,UniformBlockIndex,Pname,Params) -> - wxe_util:send_bin(Params#wx_mem.bin), - wxe_util:call(5672, <>). + send_bin(Params), + call(5672, <>). %% @spec (Program::integer(),UniformBlockIndex::integer(),BufSize::integer()) -> string() %% @doc See external documentation. getActiveUniformBlockName(Program,UniformBlockIndex,BufSize) -> - wxe_util:call(5673, <>). + call(5673, <>). %% @spec (Program::integer(),UniformBlockIndex::integer(),UniformBlockBinding::integer()) -> ok %% @doc See external documentation. uniformBlockBinding(Program,UniformBlockIndex,UniformBlockBinding) -> - wxe_util:cast(5674, <>). + cast(5674, <>). %% @spec (ReadTarget::enum(),WriteTarget::enum(),ReadOffset::integer(),WriteOffset::integer(),Size::integer()) -> ok %% @doc See external documentation. copyBufferSubData(ReadTarget,WriteTarget,ReadOffset,WriteOffset,Size) -> - wxe_util:cast(5675, <>). + cast(5675, <>). %% @spec () -> ok %% @doc See external documentation. resizeBuffersMESA() -> - wxe_util:cast(5676, <<>>). + cast(5676, <<>>). %% @spec (X::float(),Y::float(),Z::float(),W::float()) -> ok %% @doc See external documentation. windowPos4dMESA(X,Y,Z,W) -> - wxe_util:cast(5677, <>). + cast(5677, <>). %% @spec ({X,Y,Z,W}) -> ok %% @equiv windowPos4dMESA(X,Y,Z,W) @@ -3998,7 +4028,7 @@ windowPos4dvMESA({X,Y,Z,W}) -> windowPos4dMESA(X,Y,Z,W). %% @spec (X::float(),Y::float(),Z::float(),W::float()) -> ok %% @doc See external documentation. windowPos4fMESA(X,Y,Z,W) -> - wxe_util:cast(5678, <>). + cast(5678, <>). %% @spec ({X,Y,Z,W}) -> ok %% @equiv windowPos4fMESA(X,Y,Z,W) @@ -4007,7 +4037,7 @@ windowPos4fvMESA({X,Y,Z,W}) -> windowPos4fMESA(X,Y,Z,W). %% @spec (X::integer(),Y::integer(),Z::integer(),W::integer()) -> ok %% @doc See external documentation. windowPos4iMESA(X,Y,Z,W) -> - wxe_util:cast(5679, <>). + cast(5679, <>). %% @spec ({X,Y,Z,W}) -> ok %% @equiv windowPos4iMESA(X,Y,Z,W) @@ -4016,7 +4046,7 @@ windowPos4ivMESA({X,Y,Z,W}) -> windowPos4iMESA(X,Y,Z,W). %% @spec (X::integer(),Y::integer(),Z::integer(),W::integer()) -> ok %% @doc See external documentation. windowPos4sMESA(X,Y,Z,W) -> - wxe_util:cast(5680, <>). + cast(5680, <>). %% @spec ({X,Y,Z,W}) -> ok %% @equiv windowPos4sMESA(X,Y,Z,W) @@ -4025,10 +4055,10 @@ windowPos4svMESA({X,Y,Z,W}) -> windowPos4sMESA(X,Y,Z,W). %% @spec (Zmin::clamp(),Zmax::clamp()) -> ok %% @doc See external documentation. depthBoundsEXT(Zmin,Zmax) -> - wxe_util:cast(5681, <>). + cast(5681, <>). %% @spec (StencilTagBits::integer(),StencilClearTag::integer()) -> ok %% @doc See external documentation. stencilClearTagEXT(StencilTagBits,StencilClearTag) -> - wxe_util:cast(5682, <>). + cast(5682, <>). diff --git a/lib/wx/src/gen/glu.erl b/lib/wx/src/gen/glu.erl index d410c4663d..fc8bfbf8e6 100644 --- a/lib/wx/src/gen/glu.erl +++ b/lib/wx/src/gen/glu.erl @@ -25,14 +25,13 @@ %% %% Booleans are represented by integers 0 and 1. -%% @type wx_mem(). see wx.erl on memory allocation functions +%% @type mem(). memory block %% @type enum(). An integer defined in gl.hrl %% @type offset(). An integer which is an offset in an array %% @type clamp(). A float clamped between 0.0 - 1.0 -module(glu). -compile(inline). --include("wxe.hrl"). -define(GLenum,32/native-unsigned). -define(GLboolean,8/native-unsigned). -define(GLbitfield,32/native-unsigned). @@ -59,7 +58,7 @@ quadricDrawStyle/2,quadricNormals/2,quadricOrientation/2,quadricTexture/2, scaleImage/9,sphere/4,unProject/6,unProject4/9]). - +-import(gl, [call/2,cast/2,send_bin/1]). %% API %% @spec (Vec3, [Vec3]) -> {Triangles, VertexPos} @@ -73,7 +72,7 @@ %% vertex positions, it starts with the vertices in Vs and %% may contain newly created vertices in the end. tesselate({Nx,Ny,Nz}, Vs) -> - wxe_util:call(5000, <<(length(Vs)):32/native,0:32, + call(5000, <<(length(Vs)):32/native,0:32, Nx:?GLdouble,Ny:?GLdouble,Nz:?GLdouble, (<< <> || {Vx,Vy,Vz} <- Vs>>)/binary >>). @@ -81,151 +80,151 @@ tesselate({Nx,Ny,Nz}, Vs) -> %% @spec (Target::enum(),InternalFormat::integer(),Width::integer(),Format::enum(),Type::enum(),Level::integer(),Base::integer(),Max::integer(),Data::binary()) -> integer() %% @doc See external documentation. build1DMipmapLevels(Target,InternalFormat,Width,Format,Type,Level,Base,Max,Data) -> - wxe_util:send_bin(Data), - wxe_util:call(5010, <>). + send_bin(Data), + call(5010, <>). %% @spec (Target::enum(),InternalFormat::integer(),Width::integer(),Format::enum(),Type::enum(),Data::binary()) -> integer() %% @doc See external documentation. build1DMipmaps(Target,InternalFormat,Width,Format,Type,Data) -> - wxe_util:send_bin(Data), - wxe_util:call(5011, <>). + send_bin(Data), + call(5011, <>). %% @spec (Target::enum(),InternalFormat::integer(),Width::integer(),Height::integer(),Format::enum(),Type::enum(),Level::integer(),Base::integer(),Max::integer(),Data::binary()) -> integer() %% @doc See external documentation. build2DMipmapLevels(Target,InternalFormat,Width,Height,Format,Type,Level,Base,Max,Data) -> - wxe_util:send_bin(Data), - wxe_util:call(5012, <>). + send_bin(Data), + call(5012, <>). %% @spec (Target::enum(),InternalFormat::integer(),Width::integer(),Height::integer(),Format::enum(),Type::enum(),Data::binary()) -> integer() %% @doc See external documentation. build2DMipmaps(Target,InternalFormat,Width,Height,Format,Type,Data) -> - wxe_util:send_bin(Data), - wxe_util:call(5013, <>). + send_bin(Data), + call(5013, <>). %% @spec (Target::enum(),InternalFormat::integer(),Width::integer(),Height::integer(),Depth::integer(),Format::enum(),Type::enum(),Level::integer(),Base::integer(),Max::integer(),Data::binary()) -> integer() %% @doc See external documentation. build3DMipmapLevels(Target,InternalFormat,Width,Height,Depth,Format,Type,Level,Base,Max,Data) -> - wxe_util:send_bin(Data), - wxe_util:call(5014, <>). + send_bin(Data), + call(5014, <>). %% @spec (Target::enum(),InternalFormat::integer(),Width::integer(),Height::integer(),Depth::integer(),Format::enum(),Type::enum(),Data::binary()) -> integer() %% @doc See external documentation. build3DMipmaps(Target,InternalFormat,Width,Height,Depth,Format,Type,Data) -> - wxe_util:send_bin(Data), - wxe_util:call(5015, <>). + send_bin(Data), + call(5015, <>). %% @spec (ExtName::[integer()],ExtString::[integer()]) -> 0|1 %% @doc See external documentation. checkExtension(ExtName,ExtString) -> - wxe_util:call(5016, <<(length(ExtName)):?GLuint, + call(5016, <<(length(ExtName)):?GLuint, (<< <> || C <- ExtName>>)/binary,0:((8-((length(ExtName)+ 4) rem 8)) rem 8),(length(ExtString)):?GLuint, (<< <> || C <- ExtString>>)/binary,0:((8-((length(ExtString)+ 4) rem 8)) rem 8)>>). %% @spec (Quad::integer(),Base::float(),Top::float(),Height::float(),Slices::integer(),Stacks::integer()) -> ok %% @doc See external documentation. cylinder(Quad,Base,Top,Height,Slices,Stacks) -> - wxe_util:cast(5017, <>). + cast(5017, <>). %% @spec (Quad::integer()) -> ok %% @doc See external documentation. deleteQuadric(Quad) -> - wxe_util:cast(5018, <>). + cast(5018, <>). %% @spec (Quad::integer(),Inner::float(),Outer::float(),Slices::integer(),Loops::integer()) -> ok %% @doc See external documentation. disk(Quad,Inner,Outer,Slices,Loops) -> - wxe_util:cast(5019, <>). + cast(5019, <>). %% @spec (Error::enum()) -> string() %% @doc See external documentation. errorString(Error) -> - wxe_util:call(5020, <>). + call(5020, <>). %% @spec (Name::enum()) -> string() %% @doc See external documentation. getString(Name) -> - wxe_util:call(5021, <>). + call(5021, <>). %% @spec (EyeX::float(),EyeY::float(),EyeZ::float(),CenterX::float(),CenterY::float(),CenterZ::float(),UpX::float(),UpY::float(),UpZ::float()) -> ok %% @doc See external documentation. lookAt(EyeX,EyeY,EyeZ,CenterX,CenterY,CenterZ,UpX,UpY,UpZ) -> - wxe_util:cast(5022, <>). + cast(5022, <>). %% @spec () -> integer() %% @doc See external documentation. newQuadric() -> - wxe_util:call(5023, <<>>). + call(5023, <<>>). %% @spec (Left::float(),Right::float(),Bottom::float(),Top::float()) -> ok %% @doc See external documentation. ortho2D(Left,Right,Bottom,Top) -> - wxe_util:cast(5024, <>). + cast(5024, <>). %% @spec (Quad::integer(),Inner::float(),Outer::float(),Slices::integer(),Loops::integer(),Start::float(),Sweep::float()) -> ok %% @doc See external documentation. partialDisk(Quad,Inner,Outer,Slices,Loops,Start,Sweep) -> - wxe_util:cast(5025, <>). + cast(5025, <>). %% @spec (Fovy::float(),Aspect::float(),ZNear::float(),ZFar::float()) -> ok %% @doc See external documentation. perspective(Fovy,Aspect,ZNear,ZFar) -> - wxe_util:cast(5026, <>). + cast(5026, <>). %% @spec (X::float(),Y::float(),DelX::float(),DelY::float(),Viewport::{integer()}) -> ok %% @doc See external documentation. pickMatrix(X,Y,DelX,DelY,{V1,V2,V3,V4}) -> - wxe_util:cast(5027, <>). + cast(5027, <>). %% @spec (ObjX::float(),ObjY::float(),ObjZ::float(),Model::{float()},Proj::{float()},View::{integer()}) -> {integer(),WinX::float(),WinY::float(),WinZ::float()} %% @doc See external documentation. project(ObjX,ObjY,ObjZ,{M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16},{P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16},{V1,V2,V3,V4}) -> - wxe_util:call(5028, <>); + call(5028, <>); project(ObjX,ObjY,ObjZ,{M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12},{P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12},{V1,V2,V3,V4}) -> - wxe_util:call(5028, <>). + call(5028, <>). %% @spec (Quad::integer(),Draw::enum()) -> ok %% @doc See external documentation. quadricDrawStyle(Quad,Draw) -> - wxe_util:cast(5029, <>). + cast(5029, <>). %% @spec (Quad::integer(),Normal::enum()) -> ok %% @doc See external documentation. quadricNormals(Quad,Normal) -> - wxe_util:cast(5030, <>). + cast(5030, <>). %% @spec (Quad::integer(),Orientation::enum()) -> ok %% @doc See external documentation. quadricOrientation(Quad,Orientation) -> - wxe_util:cast(5031, <>). + cast(5031, <>). %% @spec (Quad::integer(),Texture::0|1) -> ok %% @doc See external documentation. quadricTexture(Quad,Texture) -> - wxe_util:cast(5032, <>). + cast(5032, <>). -%% @spec (Format::enum(),WIn::integer(),HIn::integer(),TypeIn::enum(),DataIn::binary(),WOut::integer(),HOut::integer(),TypeOut::enum(),DataOut::wx:wx_mem()) -> integer() +%% @spec (Format::enum(),WIn::integer(),HIn::integer(),TypeIn::enum(),DataIn::binary(),WOut::integer(),HOut::integer(),TypeOut::enum(),DataOut::mem()) -> integer() %% @doc See external documentation. scaleImage(Format,WIn,HIn,TypeIn,DataIn,WOut,HOut,TypeOut,DataOut) -> - wxe_util:send_bin(DataIn), - wxe_util:send_bin(DataOut#wx_mem.bin), - wxe_util:call(5033, <>). + send_bin(DataIn), + send_bin(DataOut), + call(5033, <>). %% @spec (Quad::integer(),Radius::float(),Slices::integer(),Stacks::integer()) -> ok %% @doc See external documentation. sphere(Quad,Radius,Slices,Stacks) -> - wxe_util:cast(5034, <>). + cast(5034, <>). %% @spec (WinX::float(),WinY::float(),WinZ::float(),Model::{float()},Proj::{float()},View::{integer()}) -> {integer(),ObjX::float(),ObjY::float(),ObjZ::float()} %% @doc See external documentation. unProject(WinX,WinY,WinZ,{M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16},{P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16},{V1,V2,V3,V4}) -> - wxe_util:call(5035, <>); + call(5035, <>); unProject(WinX,WinY,WinZ,{M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12},{P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12},{V1,V2,V3,V4}) -> - wxe_util:call(5035, <>). + call(5035, <>). %% @spec (WinX::float(),WinY::float(),WinZ::float(),ClipW::float(),Model::{float()},Proj::{float()},View::{integer()},NearVal::float(),FarVal::float()) -> {integer(),ObjX::float(),ObjY::float(),ObjZ::float(),ObjW::float()} %% @doc See external documentation. unProject4(WinX,WinY,WinZ,ClipW,{M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16},{P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16},{V1,V2,V3,V4},NearVal,FarVal) -> - wxe_util:call(5036, <>); + call(5036, <>); unProject4(WinX,WinY,WinZ,ClipW,{M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12},{P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12},{V1,V2,V3,V4},NearVal,FarVal) -> - wxe_util:call(5036, <>). + call(5036, <>). diff --git a/lib/wx/src/gen/wxGLCanvas.erl b/lib/wx/src/gen/wxGLCanvas.erl index 3e0d1bd9ae..ed5430dae1 100644 --- a/lib/wx/src/gen/wxGLCanvas.erl +++ b/lib/wx/src/gen/wxGLCanvas.erl @@ -105,6 +105,7 @@ new(#wx_ref{type=ParentT,ref=ParentRef}, Options) ({palette, #wx_ref{type=PaletteT,ref=PaletteRef}}, Acc) -> ?CLASS(PaletteT,wxPalette),[<<7:32/?UI,PaletteRef:32/?UI>>|Acc]; (BadOpt, _) -> erlang:error({badoption, BadOpt}) end, BinOpt = list_to_binary(lists:foldl(MOpts, [<<0:32>>], Options)), + wxe_master:init_opengl(), wxe_util:construct(?wxGLCanvas_new_2, <>). @@ -130,6 +131,7 @@ new(#wx_ref{type=ParentT,ref=ParentRef},#wx_ref{type=SharedT,ref=SharedRef}, Opt ({palette, #wx_ref{type=PaletteT,ref=PaletteRef}}, Acc) -> ?CLASS(PaletteT,wxPalette),[<<7:32/?UI,PaletteRef:32/?UI>>|Acc]; (BadOpt, _) -> erlang:error({badoption, BadOpt}) end, BinOpt = list_to_binary(lists:foldl(MOpts, [<<0:32>>], Options)), + wxe_master:init_opengl(), wxe_util:construct(SharedOP, <>). diff --git a/lib/wx/src/wx.erl b/lib/wx/src/wx.erl index 14abd0d817..9d76f3bc42 100644 --- a/lib/wx/src/wx.erl +++ b/lib/wx/src/wx.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2008-2009. All Rights Reserved. +%% Copyright Ericsson AB 2008-2010. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -96,7 +96,8 @@ new() -> %% @doc Starts a wx server. %% Option may be {debug, Level}, see debug/1. new(Options) when is_list(Options) -> - #wx_env{} = wxe_server:start(), + #wx_env{port=Port} = wxe_server:start(), + put(opengl_port, Port), Debug = proplists:get_value(debug, Options, 0), debug(Debug), null(). @@ -121,8 +122,9 @@ get_env() -> %% @spec (wx_env()) -> ok %% @doc Sets the process wx environment, allows this process to use %% another process wx environment. -set_env(#wx_env{sv=Pid} = Env) -> - put(?WXE_IDENTIFIER, Env), +set_env(#wx_env{sv=Pid, port=Port} = Env) -> + put(?WXE_IDENTIFIER, Env), + put(opengl_port, Port), %% wxe_util:cast(?REGISTER_PID, <<>>), wxe_server:register_me(Pid), ok. diff --git a/lib/wx/src/wxe.hrl b/lib/wx/src/wxe.hrl index bb70a03bfe..bd34b13385 100644 --- a/lib/wx/src/wxe.hrl +++ b/lib/wx/src/wxe.hrl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2008-2009. All Rights Reserved. +%% Copyright Ericsson AB 2008-2010. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -50,6 +50,8 @@ -define(WXE_CB_START, 8). %% Used for event-callback start -define(WXE_DEBUG_DRIVER, 9). %% Set debug %%-define(WXE_DEBUG_PING, 10). %% debug ping (when using debugger it's needed) --define(WXE_BIN_INCR, 5001). %% Binary refc incr --define(WXE_BIN_DECR, 5002). %% Binary refc decr +-define(WXE_BIN_INCR, 11). %% Binary refc incr +-define(WXE_BIN_DECR, 12). %% Binary refc decr +-define(WXE_INIT_OPENGL, 13). %% Binary refc decr + -include("gen/wxe_funcs.hrl"). diff --git a/lib/wx/src/wxe_master.erl b/lib/wx/src/wxe_master.erl index 5ab76a77cf..bd9511e94d 100644 --- a/lib/wx/src/wxe_master.erl +++ b/lib/wx/src/wxe_master.erl @@ -28,7 +28,7 @@ -behaviour(gen_server). %% API --export([start/0, init_port/0]). +-export([start/0, init_port/0, init_opengl/0]). %% gen_server callbacks -export([init/1, handle_call/3, handle_cast/2, handle_info/2, @@ -38,6 +38,7 @@ users, %% List of wx servers, needed ?? driver}). %% Driver name so wx_server can create it's own port +-include("wxe.hrl"). -include("gen/wxe_debug.hrl"). -include("gen/gl_debug.hrl"). @@ -74,6 +75,24 @@ init_port() -> receive wx_port_initiated -> ok end, {Port, CBport}. + +%%-------------------------------------------------------------------- +%% Function: start_link() -> {ok,Pid} | ignore | {error,Error} +%% Description: Starts the server +%%-------------------------------------------------------------------- +init_opengl() -> + PrivDir = priv_dir(), + DynLib0 = "erl_gl", + DynLib = case os:type() of + {win32,_} -> + DynLib0 ++ ".dll\0"; + _ -> + DynLib0 ++ ".so\0" + end, + GLLib = filename:join(PrivDir, DynLib), + + wxe_util:call(?WXE_INIT_OPENGL, list_to_binary(GLLib)). + %%==================================================================== %% gen_server callbacks %%==================================================================== -- cgit v1.2.3