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