summary refs log tree commit diff stats
path: root/tests/niminaction/Chapter8/sfml/sfml.nim
blob: fea85fcd4f58806776ef548e432f4227f80e93f8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{.passL: "-lsfml-graphics -lsfml-system -lsfml-window".}

type
  VideoMode* {.importcpp: "sf::VideoMode".} = object
  RenderWindowObj {.importcpp: "sf::RenderWindow".} = object
  RenderWindow* = ptr RenderWindowObj
  Color* {.importcpp: "sf::Color".} = object
  Event* {.importcpp: "sf::Event".} = object

{.push cdecl, header: "<SFML/Graphics.hpp>".}

proc videoMode*(modeWidth, modeHeight: cuint, modeBitsPerPixel: cuint = 32): VideoMode
    {.importcpp: "sf::VideoMode(@)", constructor.}

proc newRenderWindow*(mode: VideoMode, title: cstring): RenderWindow
    {.importcpp: "new sf::RenderWindow(@)", constructor.}

proc pollEvent*(window: RenderWindow, event: var Event): bool
    {.importcpp: "#.pollEvent(@)".}

proc newColor*(red, green, blue, alpha: uint8): Color
    {.importcpp: "sf::Color(@)", constructor.}

proc clear*(window: RenderWindow, color: Color) {.importcpp: "#.clear(@)".}

proc display*(window: RenderWindow) {.importcpp: "#.display()".}