fixes #2316
This commit is contained in:
parent
0543784eb4
commit
6dbd41e875
2 changed files with 55 additions and 1 deletions
54
tests/init/tuninit2.nim
Normal file
54
tests/init/tuninit2.nim
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
# bug #2316
|
||||
|
||||
type
|
||||
EventType = enum
|
||||
QuitEvent = 5
|
||||
AppMain* = ref object of RootObj
|
||||
width: int
|
||||
height: int
|
||||
title: string
|
||||
running: bool
|
||||
event_type: EventType
|
||||
App* = ref object of AppMain
|
||||
draw_proc: proc(app: AppMain): void {.closure.}
|
||||
events_proc: proc(app: AppMain): void {.closure.}
|
||||
update_proc: proc(app: AppMain, dt: float): void {.closure.}
|
||||
load_proc: proc(app: AppMain): void {.closure.}
|
||||
|
||||
|
||||
proc initApp*(t: string, w, h: int): App =
|
||||
App(width: w, height: h, title: t, event_type: EventType.QuitEvent)
|
||||
|
||||
|
||||
method getTitle*(self: AppMain): string = self.title
|
||||
method getWidth*(self: AppMain): int = self.width
|
||||
method getHeight*(self: AppMain): int = self.height
|
||||
|
||||
|
||||
method draw*(self: App, draw: proc(app: AppMain)): void =
|
||||
self.draw_proc = draw
|
||||
|
||||
method load*(self: App, load: proc(a: AppMain)): void =
|
||||
self.load_proc = load
|
||||
|
||||
method events*(self: App, events: proc(app: AppMain)): void =
|
||||
self.events_proc = events
|
||||
|
||||
method update*(self: App, update: proc(app: AppMain, delta: float)): void =
|
||||
self.update_proc = update
|
||||
|
||||
method run*(self: App): void = discard
|
||||
|
||||
var mygame = initApp("Example", 800, 600)
|
||||
|
||||
mygame.load(proc(app: AppMain): void =
|
||||
echo app.getTitle()
|
||||
echo app.getWidth()
|
||||
echo app.getHeight()
|
||||
)
|
||||
|
||||
mygame.events(proc(app: AppMain): void =
|
||||
discard
|
||||
)
|
||||
|
||||
mygame.run()
|
||||
Loading…
Add table
Add a link
Reference in a new issue