Class: Rugl::Backends::OpenGLBindingsGL
Constant Summary
collapse
- RESOURCE_METHODS =
{
GenBuffers: :glGenBuffers,
DeleteBuffers: :glDeleteBuffers,
GenTextures: :glGenTextures,
DeleteTextures: :glDeleteTextures,
GenRenderbuffers: :glGenRenderbuffers,
DeleteRenderbuffers: :glDeleteRenderbuffers,
GenFramebuffers: :glGenFramebuffers,
DeleteFramebuffers: :glDeleteFramebuffers,
GenVertexArrays: :glGenVertexArrays,
DeleteVertexArrays: :glDeleteVertexArrays
}.freeze
Class Method Summary
collapse
Instance Method Summary
collapse
#const_defined?, #const_get, #method_missing, #respond_to_missing?
Constructor Details
Returns a new instance of OpenGLBindingsGL.
115
116
117
|
# File 'lib/rugl/backends/opengl_bindings.rb', line 115
def initialize(target)
super(target: target, method_prefix: "gl", constant_prefix: "GL")
end
|
Class Method Details
.load ⇒ Object
109
110
111
112
113
|
# File 'lib/rugl/backends/opengl_bindings.rb', line 109
def self.load
require "opengl"
OpenGL.extend(OpenGL)
new(OpenGL)
end
|
Instance Method Details
#GetIntegerv(pname, storage) ⇒ Object
131
132
133
134
135
|
# File 'lib/rugl/backends/opengl_bindings.rb', line 131
def GetIntegerv(pname, storage)
fill_integer_storage(storage) do |buffer|
target.glGetIntegerv(pname, buffer)
end
end
|
#GetProgramInfoLog(program_id) ⇒ Object
155
156
157
158
159
|
# File 'lib/rugl/backends/opengl_bindings.rb', line 155
def GetProgramInfoLog(program_id)
read_info_log(log_length_for_program(program_id)) do |buffer_size, length_buffer, log_buffer|
target.glGetProgramInfoLog(program_id, buffer_size, length_buffer, log_buffer)
end
end
|
#GetProgramiv(program_id, pname, storage) ⇒ Object
143
144
145
146
147
|
# File 'lib/rugl/backends/opengl_bindings.rb', line 143
def GetProgramiv(program_id, pname, storage)
fill_integer_storage(storage) do |buffer|
target.glGetProgramiv(program_id, pname, buffer)
end
end
|
#GetShaderInfoLog(shader_id) ⇒ Object
149
150
151
152
153
|
# File 'lib/rugl/backends/opengl_bindings.rb', line 149
def GetShaderInfoLog(shader_id)
read_info_log(log_length_for_shader(shader_id)) do |buffer_size, length_buffer, log_buffer|
target.glGetShaderInfoLog(shader_id, buffer_size, length_buffer, log_buffer)
end
end
|
#GetShaderiv(shader_id, pname, storage) ⇒ Object
137
138
139
140
141
|
# File 'lib/rugl/backends/opengl_bindings.rb', line 137
def GetShaderiv(shader_id, pname, storage)
fill_integer_storage(storage) do |buffer|
target.glGetShaderiv(shader_id, pname, buffer)
end
end
|
#load_lib(*args) ⇒ Object
119
120
121
|
# File 'lib/rugl/backends/opengl_bindings.rb', line 119
def load_lib(*args)
target.load_lib(*args)
end
|
#ShaderSource(shader_id, source) ⇒ Object
123
124
125
126
127
128
129
|
# File 'lib/rugl/backends/opengl_bindings.rb', line 123
def ShaderSource(shader_id, source)
source_buffer = source.to_s
source_buffer = "#{source_buffer}\0" unless source_buffer.end_with?("\0")
source_pointer = Fiddle::Pointer[source_buffer]
target.glShaderSource(shader_id, 1, [source_pointer.to_i].pack("J"), nil)
end
|