diff options
Diffstat (limited to 'lib/wx/c_src/gen')
-rw-r--r-- | lib/wx/c_src/gen/gl_nif.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/lib/wx/c_src/gen/gl_nif.cpp b/lib/wx/c_src/gen/gl_nif.cpp index 57e3196d98..efe09af3f7 100644 --- a/lib/wx/c_src/gen/gl_nif.cpp +++ b/lib/wx/c_src/gen/gl_nif.cpp @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 2008-2021. All Rights Reserved. + * Copyright Ericsson AB 2008-2023. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -11518,15 +11518,13 @@ void ecb_glDebugMessageInsert(ErlNifEnv* env, ErlNifPid *self, ERL_NIF_TERM argv GLenum type; GLuint id; GLenum severity; - GLsizei length; ErlNifBinary buf; if(!enif_get_uint(env, argv[0], &source)) Badarg(5803,"source"); if(!enif_get_uint(env, argv[1], &type)) Badarg(5803,"type"); if(!enif_get_uint(env, argv[2], &id)) Badarg(5803,"id"); if(!enif_get_uint(env, argv[3], &severity)) Badarg(5803,"severity"); - if(!enif_get_int(env, argv[4], &length)) Badarg(5803,"length"); - if(!enif_inspect_binary(env, argv[5], &buf)) Badarg(5803,"buf"); - weglDebugMessageInsert(source,type,id,severity,length,(GLchar *) buf.data); + if(!enif_inspect_binary(env, argv[4], &buf)) Badarg(5803,"buf"); + weglDebugMessageInsert(source,type,id,severity,(GLsizei) buf.size,(GLchar *) buf.data); } void ecb_glGetDebugMessageLog(ErlNifEnv* env, ErlNifPid *self, ERL_NIF_TERM argv[]) @@ -11549,6 +11547,8 @@ void ecb_glGetDebugMessageLog(ErlNifEnv* env, ErlNifPid *self, ERL_NIF_TERM argv std::vector <GLsizei> lengths (count); std::vector <ERL_NIF_TERM> lengths_ts (count); messageLog = (unsigned char *) enif_alloc((int) bufSize*sizeof(GLchar)); + unsigned char *messageLog_ptr = messageLog; + std::vector <ERL_NIF_TERM> messageLog_ts (count); result = weglGetDebugMessageLog(count,bufSize,sources.data(),types.data(),ids.data(),severities.data(),lengths.data(),(GLchar *) messageLog); for(int ri=0; ri < (int) result; ri++) sources_ts[ri] = enif_make_int(env, sources[ri]); @@ -11558,16 +11558,20 @@ void ecb_glGetDebugMessageLog(ErlNifEnv* env, ErlNifPid *self, ERL_NIF_TERM argv ids_ts[ri] = enif_make_int(env, ids[ri]); for(int ri=0; ri < (int) result; ri++) severities_ts[ri] = enif_make_int(env, severities[ri]); + for(int ri=0; ri < (int) result; ri++) { + messageLog_ts[ri] = enif_make_string(env, (const char *) messageLog, ERL_NIF_LATIN1); + messageLog += lengths[ri]; + } reply = enif_make_tuple6(env, enif_make_int(env, result), enif_make_list_from_array(env, sources_ts.data(), result), enif_make_list_from_array(env, types_ts.data(), result), enif_make_list_from_array(env, ids_ts.data(), result), enif_make_list_from_array(env, severities_ts.data(), result), - enif_make_string(env, (const char *) messageLog, ERL_NIF_LATIN1) ); + enif_make_list_from_array(env, messageLog_ts.data(), result) ); enif_send(NULL, self, env, enif_make_tuple2(env, EGL_ATOM_REPLY, reply)); - enif_free(messageLog); + enif_free(messageLog_ptr); } void ecb_glPushDebugGroup(ErlNifEnv* env, ErlNifPid *self, ERL_NIF_TERM argv[]) |