Class: Badline::GUI::Window
- Inherits:
-
Object
- Object
- Badline::GUI::Window
- Defined in:
- lib/badline/gui/window.rb
Constant Summary collapse
- DEFAULT_REFRESH_RATE =
60
Instance Attribute Summary collapse
-
#renderer ⇒ Object
readonly
Returns the value of attribute renderer.
Instance Method Summary collapse
- #draw(panes) ⇒ Object
-
#initialize(title:, width:, height:, scale: 2, vsync: true) ⇒ Window
constructor
A new instance of Window.
- #refresh_rate ⇒ Object
- #title=(title) ⇒ Object
Constructor Details
#initialize(title:, width:, height:, scale: 2, vsync: true) ⇒ Window
Returns a new instance of Window.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/badline/gui/window.rb', line 10 def initialize(title:, width:, height:, scale: 2, vsync: true) SDL2.init(SDL2::INIT_VIDEO | SDL2::INIT_EVENTS) SDL2::Hints["SDL_RENDER_SCALE_QUALITY"] = "0" # nearest-neighbour @window = SDL2::Window.create( title, SDL2::Window::POS_CENTERED, SDL2::Window::POS_CENTERED, width * scale, height * scale, SDL2::Window::Flags::RESIZABLE ) flags = SDL2::Renderer::Flags::ACCELERATED flags |= SDL2::Renderer::Flags::PRESENTVSYNC if vsync @renderer = @window.create_renderer(-1, flags) @renderer.logical_size = [width, height] end |
Instance Attribute Details
#renderer ⇒ Object (readonly)
Returns the value of attribute renderer.
8 9 10 |
# File 'lib/badline/gui/window.rb', line 8 def renderer @renderer end |
Instance Method Details
#draw(panes) ⇒ Object
38 39 40 41 42 43 |
# File 'lib/badline/gui/window.rb', line 38 def draw(panes) @renderer.draw_color = [0, 0, 0] @renderer.clear panes.each { |pane| pane.render(@renderer) } @renderer.present end |
#refresh_rate ⇒ Object
31 32 33 34 35 36 |
# File 'lib/badline/gui/window.rb', line 31 def refresh_rate rate = SDL2::Display.displays.first.current_mode.refresh_rate rate.positive? ? rate : DEFAULT_REFRESH_RATE rescue StandardError DEFAULT_REFRESH_RATE end |
#title=(title) ⇒ Object
27 28 29 |
# File 'lib/badline/gui/window.rb', line 27 def title=(title) @window.title = title end |