Added Shader#available? method for checking if a shader useable

This commit is contained in:
2019-08-10 09:42:00 -05:00
parent 1458736f7d
commit 003715f685

View File

@@ -2,14 +2,14 @@ module CyberarmEngine
# Ref: https://github.com/vaiorabbit/ruby-opengl/blob/master/sample/OrangeBook/brick.rb # Ref: https://github.com/vaiorabbit/ruby-opengl/blob/master/sample/OrangeBook/brick.rb
class Shader class Shader
include OpenGL include OpenGL
@@shaders = {}
def self.add(name, instance) def self.add(name, instance)
@shaders ||= {} @@shaders[name] = instance
@shaders[name] = instance
end end
def self.use(name, &block) def self.use(name, &block)
shader = @shaders.dig(name) shader = @@shaders.dig(name)
if shader if shader
shader.use(&block) shader.use(&block)
else else
@@ -17,6 +17,10 @@ module CyberarmEngine
end end
end end
def self.available?(name)
@@shaders.dig(name).is_a?(Shader)
end
def self.active_shader def self.active_shader
@active_shader @active_shader
end end