Skip to content
Snippets Groups Projects
Verified Commit f4826b9f authored by v-lafeychine's avatar v-lafeychine
Browse files

Add example binding

parent 76fef0e7
No related branches found
No related tags found
1 merge request!4Resolve "Found graphics module"
import scalanative.unsafe.*
import scalanative.unsigned.*
object SFMLSystem {
type sfBool = CInt
type sfInt8 = CChar
type sfUint8 = CUnsignedChar
type sfInt16 = CShort
type sfUint16 = CUnsignedShort
type sfInt32 = CInt
type sfUint32 = CUnsignedInt
type sfInt64 = CLongLong
type sfUint64 = CUnsignedLongLong
val sfFalse: sfBool = 0
val sfTrue: sfBool = 1
}
@link("csfml-graphics")
@link("csfml-window")
@extern
object SFML {
import SFMLSystem.*
type sfVideoMode = CStruct3[CUnsignedInt, CUnsignedInt, CUnsignedInt]
type sfColor = CStruct4[sfUint8, sfUint8, sfUint8, sfUint8]
type sfRenderWindow
type sfContextSettings
def sfRenderWindow_create(
mode: Ptr[sfVideoMode],
title: CString,
style: sfUint32,
settings: Ptr[sfContextSettings]
): Ptr[sfRenderWindow] = extern
def sfRenderWindow_clear(
renderWindow: Ptr[sfRenderWindow],
color: Ptr[sfColor]
): Unit = extern
def sfRenderWindow_destroy(
renderWindow: Ptr[sfRenderWindow]
): Unit = extern
def sfRenderWindow_display(
renderWindow: Ptr[sfRenderWindow]
): Unit = extern
def sfRenderWindow_isOpen(
sfRenderWindow: Ptr[sfRenderWindow]
): sfBool = extern
}
import SFML.*
object HelloWorld extends App {
val videomode = stackalloc[sfVideoMode]()
videomode._1 = 1080.toUInt
videomode._2 = 720.toUInt
videomode._3 = 32.toUInt
val sfBlack = stackalloc[sfColor]()
sfBlack._1 = 0.toUByte
sfBlack._2 = 0.toUByte
sfBlack._3 = 0.toUByte
sfBlack._4 = 0.toUByte
var window = sfRenderWindow_create(videomode, c"Hello World", 0.toUInt, null)
while true do {
sfRenderWindow_clear(window, sfBlack)
sfRenderWindow_display(window)
}
sfRenderWindow_destroy(window)
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment