This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
alias Vector4f32 = Boleite::Vector4f32 | |
alias Vector2f32 = Boleite::Vector2f32 | |
struct SimpleVertex < Boleite::Vertex | |
@pos = Vector4f32.zero | |
@color = Vector4f32.zero | |
@uv = Vector2f32.zero | |
def initialize | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "crystal-clear" | |
class FooBar | |
invariants do | |
@val != nil | |
end | |
def initialize(@val = nil) | |
@val = 5 | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "boleite" | |
require "./ego/*" | |
require "./ego/serializers/*" | |
app = EgoApplication.new # Inherits from Boleite::Application, defines how to get the configuration | |
app.state_stack.push GameState.new(app) | |
app.run |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Page | |
# .... | |
private def render_glyph_to_texture(glyph, width, height) : Nil | |
bitmap = @face.value.glyph.value.bitmap | |
buffer = Bytes.new bitmap.buffer, bitmap.width * bitmap.rows | |
show_pixels bitmap.buffer, bitmap.width, bitmap.rows | |
@texture.update(bitmap.buffer, bitmap.width, bitmap.rows, 0, 0, 8) | |
end | |
def show_pixels(pixels, width, height) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
font = Boleite::Font.new app.graphics, "/usr/share/fonts/TTF/arial.ttf" | |
text = Boleite::Text.new font, "Hello world?\nHello new line!" | |
text.size = 150u32 | |
text.default_color = Boleite::Color.blue | |
text.position = Boleite::Vector2f.new 10.0, 10.0 | |
text.formatter.add /(Hello)/, Boleite::Color.green | |
text.formatter.add /(\!|\?)/, Boleite::Color.black | |
renderer.draw text |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Papierkorb suggestion | |
class Foo | |
include CrystalClear | |
requires var > 5 | |
ensures result.query? | |
assert def foo # Apply contract semantics to method | |
# Code | |
end | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Foo | |
include CrystalClear | |
def on_contract_fail(contract, condition, method) # some args with info | |
# Default behaviour but you can overide it in this method | |
raise CrystalClear::ContractError.new("Failed #{self.class} #{contract} contract: #{condition}" | |
end | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
abstract class Container < Widget | |
includes CrystalClear | |
@children = [] of Widget | |
requires child.parent.nil? | |
ensures @children.count child == 1 | |
def add(child) | |
@children << child | |
child.parent = self |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Boleite::GUI | |
abstract class Widget | |
Cute.signal mouse_enter | |
Cute.signal mouse_leave | |
Cute.signal mouse_over(x : Float64, y : Float64) | |
Cute.signal left_click(x : Float64, y : Float64) | |
Cute.signal right_click(x : Float64, y : Float64) | |
Cute.signal key_pressed | |
Cute.signal key_released | |
Cute.signal text_entered |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class WidgetInput < InputReceiver | |
def initialize(widget) | |
register WidgetLeftClick ->widget.left_click.emit | |
end | |
end |