Compare commits

...

1 Commits

Author SHA1 Message Date
0ea4c1d603 use GLUtil functions 2013-06-13 00:16:07 -04:00

View File

@ -2,6 +2,9 @@
require 'sfml/all'
require 'opengl'
require 'glutil'
include GLUtil
class Example
include SFML
@ -15,8 +18,7 @@ class Example
end
def load_shaders
v_id = glCreateShader(GL_VERTEX_SHADER)
glShaderSource(v_id, <<-EOS)
v_shader = GLShader.new(GL_VERTEX_SHADER, <<-EOS)
uniform vec2 offset;
uniform vec2 screen_size;
attribute vec2 pos;
@ -31,13 +33,8 @@ class Example
gl_Position = pos_i;
}
EOS
glCompileShader(v_id)
unless glGetShaderiv(v_id, GL_COMPILE_STATUS)
raise glGetShaderInfoLog(v_id)
end
f_id = glCreateShader(GL_FRAGMENT_SHADER)
glShaderSource(f_id, <<-EOS)
f_shader = GLShader.new(GL_FRAGMENT_SHADER, <<-EOS)
varying vec4 pos_i;
void main()
@ -47,22 +44,11 @@ class Example
0, 1);
}
EOS
glCompileShader(f_id)
unless glGetShaderiv(f_id, GL_COMPILE_STATUS)
raise glGetShaderInfoLog(f_id)
end
p_id = glCreateProgram()
glAttachShader(p_id, v_id)
glAttachShader(p_id, f_id)
glLinkProgram(p_id)
unless glGetProgramiv(p_id, GL_LINK_STATUS)
raise glGetProgramInfoLog(p_id)
end
$offset_loc = glGetUniformLocation(p_id, "offset")
$screen_size_loc = glGetUniformLocation(p_id, "screen_size")
glUseProgram(p_id)
program = GLProgram.new([v_shader, f_shader])
$offset_loc = program.get_uniform_location("offset")
$screen_size_loc = program.get_uniform_location("screen_size")
program.use
end
def create_window
@ -81,9 +67,7 @@ class Example
-0.02, 0.02,
-0.02, -0.02,
0.02, -0.02].pack("f*")
b_id = glGenBuffers(1).first
glBindBuffer(GL_ARRAY_BUFFER, b_id);
glBufferData(GL_ARRAY_BUFFER, 2 * 4 * 4, quad_attrs, GL_STATIC_DRAW);
buffer = GLBuffer.new(GL_ARRAY_BUFFER, GL_STATIC_DRAW, quad_attrs, 2 * 4 * 4)
x, y = 0, 0
while @window.open?