Module: OpenGLDebug
- Defined in:
- lib/mittsu/renderers/opengl/opengl_debug.rb
Defined Under Namespace
Modules: OpenGLProxy
Classes: DebugShader
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.load_lib ⇒ Object
34
35
36
|
# File 'lib/mittsu/renderers/opengl/opengl_debug.rb', line 34
def self.load_lib
OpenGL.load_lib
end
|
Instance Method Details
#call_debug_method(m, *args) ⇒ Object
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# File 'lib/mittsu/renderers/opengl/opengl_debug.rb', line 42
def call_debug_method m, *args
r = OpenGLProxy.send(m, *args)
if m.to_s.start_with?('glUniform')
uniform_name = @@current_shader.get_uniform_name(args.first)
call = "#{m}('#{uniform_name}',#{args[1..-1].map { |s| s.to_s[0..20] }.join(', ')})"
else
call = "#{m}(#{args.map { |s| s.to_s[0..20] }.join(', ')})"
end
ret = r.nil? ? '' : " => #{r}"
puts "#{call}#{ret} (#{caller[0]})"
e = OpenGLProxy.glGetError
raise "ERROR: #{m} => #{ERROR_STRINGS[e]}" unless e == OpenGL::GL_NO_ERROR
r
end
|
#glCreateProgram ⇒ Object
63
64
65
66
67
68
|
# File 'lib/mittsu/renderers/opengl/opengl_debug.rb', line 63
def glCreateProgram
call_debug_method(:glCreateProgram).tap do |handle|
@@shaders ||= {}
@@shaders[handle] = DebugShader.new(handle)
end
end
|
75
76
77
78
79
|
# File 'lib/mittsu/renderers/opengl/opengl_debug.rb', line 75
def glGetUniformLocation(program, name)
call_debug_method(:glGetUniformLocation, program, name).tap do |handle|
@@shaders[program].set_uniform(handle, name)
end
end
|
#glUseProgram(handle) ⇒ Object
70
71
72
73
|
# File 'lib/mittsu/renderers/opengl/opengl_debug.rb', line 70
def glUseProgram(handle)
@@current_shader = @@shaders[handle]
call_debug_method(:glUseProgram, handle)
end
|