own drawImage / drawLine in OpenGL

Posted by Chrise on Stack Overflow See other posts from Stack Overflow or by Chrise
Published on 2012-06-15T14:27:46Z Indexed on 2012/06/15 15:16 UTC
Read the original article Hit count: 170

Filed under:
|
|
|

I'm implementing some native 2D-draw functions in my graphics engine for android, but now there's another question coming up, when I observe the performance of my program.

At the moment I'm implementing a drawLine/drawImage function. In summary, there are following different values for drawing each different line / image:

  • the color
  • the alpha value
  • the width of the line
  • rotation (only for images)
  • size/scale (also for images)
  • blending method (subrtract, add, normal-alpha)

Now, when an imageLine is drawn, I put the CPU-calculated vertex-positions and uv-values for 6 vertices (2 triangles), into a Floatbuffer and draw it immediately with drawArrays, after passing information for drawing (color,alpha, etc.) via uniforms to the shader. When I draw an image, the pre-set VBO is directly drawn after passing information.

The first fact I recognized, is: of course drawing Images is much faster, than imagelines (beacuse of VBOs), but also: I cannot pre-put vertex-data into a VBO for imageLines, because imageLines have no static shape like normal images (varying linelength, varying linewidth and the vertex positions of x1,y1 and x2,y2 change too often) That's why I use a normal Floatbuffer, instead of a VBO.

So my question is: What's the best way for managing images, and other 2D-graphics functions. For me it's some kind of important, that the user of the engine is able to draw as many images/2D graphics as possible, without loosing to much performance.

You can find the functions for drawing images, imagelines, rects, quads, etc. here: https://github.com/Chrise55/LLama3D/blob/master/Llama3DLibrary/src/com/llama3d/object/graphics/image/ImageBase.java

Here an example how it looks with many images (testing artificial neural networks), it works fine, but already little bit slow with that many images... :( testing artificial neural networks

© Stack Overflow or respective owner

Related posts about android

Related posts about opengl-es