Crash when execute c++ builder app

edited February 2019 in Supported devices

I'm testing your Emteria OS, versoin 0.6.1, deploying a simple application made in C++ Builder. The project is a simple multidevice application with one label.

I deploy the application on the emteria box and I reach an exception EContext3DException that said: Cannot activate shader program for 'TContextAndroid'.

The fact is that I try this same application against anothers android devices and it works fine.

Is there any configuration I miss?

Comments

  • RAD Studio doesn't work well with OpenGL ES 2.0. Several bugs were already reported to Embacadero in the past, so we cannot do anything about it. On other devices it probably works because of OpenGL ES 3.0, which isn't supported by RPi's GPU (AFAIK).

  • We ran into the same problem with our Delphi application. We managed to 'fix' it by suppressing the errors by modifying FMX.Context.GLES.pas (I'm assuming you have the same cpp-file). In the GLGetErrorFlags function we changed

    if Flag <> GL_NO_ERROR then

    into

    if (Flag <> GL_NO_ERROR) and (Flag <> GL_INVALID_VALUE) then

  • edited February 2019

    @SanderK said:
    We ran into the same problem with our Delphi application. We managed to 'fix' it by suppressing the errors by modifying FMX.Context.GLES.pas (I'm assuming you have the same cpp-file). In the GLGetErrorFlags function we changed

    if Flag <> GL_NO_ERROR then

    into

    if (Flag <> GL_NO_ERROR) and (Flag <> GL_INVALID_VALUE) then

    Works for me. Thanks SanderK.

    No cpp file because Embarcadero code all the source in Delphi and use a Delphi to C++ compiler generating an object file that is used to compile C++ programs.

    So you need to change the .pas file and then add in your C++ project the modified file to be compiled with your project.

Sign In or Register to comment.