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
|
create_window
|
||||||
end
|
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
|
def create_window
|
||||||
if @fullscreen
|
if @fullscreen
|
||||||
@window.create(VideoMode.get_desktop_mode, TITLE, Style::Fullscreen)
|
@window.create(VideoMode.get_desktop_mode, TITLE, Style::Fullscreen)
|
||||||
@ -22,6 +64,7 @@ class Example
|
|||||||
end
|
end
|
||||||
|
|
||||||
glClearColor(1, 0.5, 0, 0)
|
glClearColor(1, 0.5, 0, 0)
|
||||||
|
load_shaders
|
||||||
end
|
end
|
||||||
|
|
||||||
def run
|
def run
|
||||||
|
Loading…
x
Reference in New Issue
Block a user