Rakugo-Dialogue-System icon indicating copy to clipboard operation
Rakugo-Dialogue-System copied to clipboard

Using Nim for GDNative stuff.

Open Jeremi360 opened this issue 2 years ago • 0 comments

I propose to use Nim instead of C++ for GDNative parts for Rakugo, as it is more similar to Python. There are nim-godot, but looks to be abandon. But there is another way to use C++ inside nim, example from main page:

{.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>".}
{.push importcpp.}

proc videoMode*(modeWidth, modeHeight: cuint,
                modeBitsPerPixel: cuint = 32): VideoMode
proc newRenderWindow*(mode: VideoMode, title: cstring): RenderWindow
proc pollEvent*(window: RenderWindow, event: var Event): bool
proc newColor*(red, green, blue, alpha: uint8): Color
proc clear*(window: RenderWindow, color: Color)
proc display*(window: RenderWindow)

More is here in docs: https://nim-lang.org/docs/manual.html#implementation-specific-pragmas-importcpp-pragma

Jeremi360 avatar May 10 '22 15:05 Jeremi360