From 0ea4c1d603acb7319a5bd475def77b324fc066da Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Thu, 13 Jun 2013 00:16:07 -0400 Subject: [PATCH] use GLUtil functions --- example.rb | 36 ++++++++++-------------------------- 1 file changed, 10 insertions(+), 26 deletions(-) diff --git a/example.rb b/example.rb index 315bd15..07c3be2 100755 --- a/example.rb +++ b/example.rb @@ -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?