# References:
# * The book OpenGL ES 2.0 Programming Guide
# * https://code.google.com/p/opengles-book-samples/source/browse/trunk/LinuxX11/Chapter_2/Hello_Triangle/Hello_Triangle.c
-module standalone_triangle
+module standalone_triangle is example
import app
import gamnit::display
print "Height: {height}"
# Custom calls to OpenGL ES 2.0
-assert_no_gl_error
+assert glGetError == gl_NO_ERROR
assert gl.shader_compiler else print "Cannot compile shaders"
# GL program
var program = new GLProgram
if not glIsProgram(program) then
print "Program is not ok: {glGetError.to_s}\nLog:"
- print program.info_log
+ print glGetProgramInfoLog(program)
abort
end
-assert_no_gl_error
+assert glGetError == gl_NO_ERROR
# Vertex shader
var vertex_shader = new GLVertexShader
}
"""@glsl_vertex_shader.to_cstring)
glCompileShader vertex_shader
-assert vertex_shader.is_compiled else print "Vertex shader compilation failed with: {vertex_shader.info_log} {program.info_log}"
-assert_no_gl_error
+assert vertex_shader.is_compiled else print "Vertex shader compilation failed with: {glGetShaderInfoLog(vertex_shader)} {glGetProgramInfoLog(program)}"
+assert glGetError == gl_NO_ERROR
# Fragment shader
var fragment_shader = new GLFragmentShader
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
}
"""@glsl_fragment_shader.to_cstring)
-glIsShader fragment_shader
-assert fragment_shader.is_compiled else print "Fragment shader compilation failed with: {fragment_shader.info_log}"
-assert_no_gl_error
+glCompileShader fragment_shader
+assert fragment_shader.is_compiled else print "Fragment shader compilation failed with: {glGetShaderInfoLog(fragment_shader)}"
+assert glGetError == gl_NO_ERROR
# Attach to program
glAttachShader(program, vertex_shader)
glAttachShader(program, fragment_shader)
program.bind_attrib_location(0, "vPosition")
glLinkProgram program
-assert program.is_linked else print "Linking failed: {program.info_log}"
-assert_no_gl_error
+assert program.is_linked else print "Linking failed: {glGetProgramInfoLog(program)}"
+assert glGetError == gl_NO_ERROR
# Draw!
var vertices = [0.0, 0.5, 0.0, -0.5, -0.5, 0.0, 0.5, -0.5, 0.0]
glClearColor(0.5, 0.0, 0.5, 1.0)
for i in [0..1000[ do
printn "."
- assert_no_gl_error
+ assert glGetError == gl_NO_ERROR
glViewport(0, 0, width, height)
glClear gl_COLOR_BUFFER_BIT
glUseProgram program