OpenGLAda icon indicating copy to clipboard operation
OpenGLAda copied to clipboard

Problem using Gl.Text.To_Texture

Open rogermc2 opened this issue 4 years ago • 5 comments

I have been trying to use Gl.Text.To_Texture but when I run my program the texture displays on the first iteration of the main loop only. I have been unable to figure out why this happens.

rogermc2 avatar Jun 29 '20 06:06 rogermc2

Can you provide a complete working example including the main loop so that I can build and execute it?

flyx avatar Jun 29 '20 08:06 flyx

I've just realized that the common that I used for the example (now deleted) is a local version that may have something to do with the problem, so you might want to delay any further investigation until I've checked against the current OpenGLAda-examples version which I will do tomorrow. Apologies for any inconvenience.

rogermc2 avatar Jun 29 '20 12:06 rogermc2

Using the debugger on To_Texture, I get three error messages:

  1. fb = <error reading variable fb (No definition of "fb__XRP_gl__objects__framebuffer__XE" in current context.)>
  2. tx = <error reading variable tx (No definition of "tx__XRP_gl__objects__textures_XE" in current context.)>
  3. va = <error reading variable va (No definition of "va__XRP_gl__objects__vertex_arrays_XE" in current context.)>

This occurs on all iterations including the first. As these are renames, this seems to be a debugger bug?

Other than that, I can see no other problems given my limited debugging experience at this level.

rogermc2 avatar Jun 30 '20 03:06 rogermc2

This latest version, with most unneccessary code removed and built in the OpenGLAda-examples environment, produces the same result. I have included a delay in the main loop to emphasise that text is only displayed on the first iteration of the loop.

text_render_test.zip

rogermc2 avatar Jun 30 '20 05:06 rogermc2

I did have a look at this when you first posted it but couldn't figure out what goes wrong. Today I tested this again with proper OpenGL 4.3 debugging (now available via GL.Debug) output enabled to see if anything is wrong on the OpenGL side. There isn't.

I tried to understand what the code does but ultimately I gave up. There is far too much going on with this common stuff it pulls in. As I see it, there are two possibilities:

  • The code is right and it sets something after the first text rendering which prevents GL.Text from rendering the text properly the second time.
  • The code is wrong and does something strange but I can't find it.

The only thing I can say is that all OpenGL calls in both this test code and GL.Text are correct since OpenGL debugging does not return any error.

flyx avatar May 08 '21 00:05 flyx