![java lwjgl gui java lwjgl gui](https://i.imgur.com/hIOukBb.png)
Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Oracle Corporation Java Version: 1.8.0-internal, Oracle Corporation Operating System: Linux (aarch64) version Android-8.1.0
JAVA LWJGL GUI CODE
I provided the other methods' source code examples to give you an idea as to generally how most games do 3D world scene and GUI drawing order.// I bet Cylons wouldn't have this problem. Overall you're most likely just interested in what the ready2D() method is doing. So that when we draw a line from (0,0) through (0,9) then the line will actually draw from the top-left and straight down ten pixels total in length and one pixel width.
![java lwjgl gui java lwjgl gui](https://i.stack.imgur.com/clNbv.png)
And glTranslatef() is used to correct for per-pixel accurate positioning. Such as top-left is (0,0) in (X,Y) format while bottom-right is (ViewportWidth-1, ViewportHeight-1). What is special about the ready2D() method is that gluOrtho2D() function is called with arguments that tell it when we draw the GUI primitives we draw them in the screen coordinates specified to match Windows, Mac, and other desktop screen coordinate systems. m_Setup.width and m_Setup.height are just the view port screen dimensions. read圓D() method gets the 3D world projection ready for world scene drawing and ready2D() method gets the 2D ortho scene ready for GUI drawing. So, what I am doing is I draw my 3D world scene first and then I draw my GUI last that way the GUI is always on top of the world scene. SDL_GL_SwapBuffers() // make drawn frame visible GluOrtho2D(0.0f, m_Setup.width, m_Setup.height, 0.0f) Īnd then in the main thread loop I would basically just call the methods in the following order: while(m_drawFrame) GlViewport(0, 0, m_Setup.width, m_Setup.height) Render2D() for the actual 2D GUI drawing.
![java lwjgl gui java lwjgl gui](https://hub.jmonkeyengine.org/uploads/default/original/4X/e/4/6/e468a849b36ae7ff3e6b534f521141b091ed958e.png)
This is from an old OpenGL-based game engine I was trying to write about seven years ago written in C++ so bare with me as I try to explain how I handled 3D world and 2D GUI rendering operations within it.