A few weeks ago I found wxLua
and decided to give it a try. Documentation wasn't great, but at least it had a bunch of simple samples which are enough to figure out how stuff works. One of the things wxLua supports is wxGLCanvas and I wanted to learn OpenGL, so I figured it would be easy to do. First I had to find a way to work with OpenGL in Lua, so after going through a bunch of dead projects I found LuaGL
. Unfortunately, there was no ArchLinux package and I didn't feel like doing it the dirty way, so I made a binary(it was simpler and faster) package
myself. Now I had both and only had to figure out how to make them work together. After a lot of trial and error, I finally got everything to work and made a demo.
Here is an excerpt of code that creates the canvas and preps it for rendering:
-- This is where the GLCanvas is created
canvas = wx.wxGLCanvas(frame, wx.wxID_ANY, wx.wxDefaultPosition, wx.wxDefaultSize, wx.wxEXPAND)
-- A GLContext is created
context = wx.wxGLContext(canvas)
-- Connect the PAINT event to the render function
-- Refresh the canvas so that it gets properly resized and rendered.
And here is the render function that actually uses LuaGL and that we linked to the PAINT event:
gl.ClearColor(0, 0, 0, 0)
gl.Vertex( 0, 0.75, 0)
gl.Vertex(-0.75, -0.75, 0)
gl.Vertex( 0.75, -0.75, 0)
You can download the entire demo here
(make sure to run it with wxlua instead of lua, since wxlua library segfaults with my current lua package). I hope this will be enough to get your OpenGL learning and coding painlessly started. Good luck!