Sha256: 29437de077a1a8be6f57fc2c2fbbbe3f6b1f98fdee2db50dcebffc672033587a

Contents?: true

Size: 1.36 KB

Versions: 5

Compression:

Stored size: 1.36 KB

Contents

module Gosu
  class Font
    DEFAULT_DRAW_COLOR = Gosu::Color::WHITE

    alias_method :draw_without_hash, :draw
    protected :draw_without_hash
    def draw(*args)
      args, shader = if args.last.is_a?(Hash)
                       [args[0..-2], args.last[:shader]]
                     else
                       [args, nil]
                     end

      z = args[3]

      if shader
        shader.enable z
        $window.gl z do
          glActiveTexture GL_TEXTURE0 # Let's make an assumption :)
          shader.color = args[6].is_a?(Color) ? args[6] : DEFAULT_DRAW_COLOR
        end
      end

      begin
        draw_without_hash(*args)
      ensure
        shader.disable z if shader
      end
    end

    alias_method :draw_rel_without_hash, :draw_rel
    protected :draw_rel_without_hash
    def draw_rel(*args)
      args, shader = if args.last.is_a?(Hash)
                       [args[0..-2], args.last[:shader]]
                     else
                       [args, nil]
                     end

      z = args[3]

      if shader
        shader.enable z
        $window.gl z do
          glActiveTexture GL_TEXTURE0 # Let's make an assumption :)
          shader.color = args[8].is_a?(Color) ? args[8] : DEFAULT_DRAW_COLOR
        end
      end

      begin
        draw_rel_without_hash(*args)
      ensure
        shader.disable z if shader
      end
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ashton-0.1.3 lib/ashton/gosu_ext/font.rb
ashton-0.1.2 lib/ashton/gosu_ext/font.rb
ashton-0.1.1 lib/ashton/gosu_ext/font.rb
ashton-0.1.0 lib/ashton/gosu_ext/font.rb
ashton-0.0.4alpha lib/ashton/gosu_ext/font.rb