add load_shaders method
This commit is contained in:
parent
2c9c89e16b
commit
10faaa37b6
43
example.rb
43
example.rb
@ -14,6 +14,48 @@ class Example
|
||||
create_window
|
||||
end
|
||||
|
||||
def load_shaders
|
||||
v_id = glCreateShader(GL_VERTEX_SHADER)
|
||||
glShaderSource(v_id, <<-EOS)
|
||||
attribute vec2 pos;
|
||||
varying vec4 pos_i;
|
||||
|
||||
void main()
|
||||
{
|
||||
pos_i = vec4(pos, 0, 1);
|
||||
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)
|
||||
varying vec4 pos_i;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_FragColor = pos_i;
|
||||
}
|
||||
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
|
||||
|
||||
glUseProgram(p_id)
|
||||
end
|
||||
|
||||
def create_window
|
||||
if @fullscreen
|
||||
@window.create(VideoMode.get_desktop_mode, TITLE, Style::Fullscreen)
|
||||
@ -22,6 +64,7 @@ class Example
|
||||
end
|
||||
|
||||
glClearColor(1, 0.5, 0, 0)
|
||||
load_shaders
|
||||
end
|
||||
|
||||
def run
|
||||
|
Loading…
x
Reference in New Issue
Block a user