144 lines
2.3 KiB
Go
144 lines
2.3 KiB
Go
// +build js
|
|
|
|
package raylib
|
|
|
|
import (
|
|
"unsafe"
|
|
|
|
"github.com/gopherjs/gopherjs/js"
|
|
)
|
|
|
|
// InitWindow - Initialize Window and OpenGL Graphics
|
|
func InitWindow(width int32, height int32, t interface{}) {
|
|
js.Global.Get("Module").Call("_InitWindow", width, height, t.(string))
|
|
}
|
|
|
|
// SetCallbackFunc - Sets callback function
|
|
func SetCallbackFunc(func(unsafe.Pointer)) {
|
|
}
|
|
|
|
// SetMainLoop - Sets main loop function
|
|
func SetMainLoop(fn func(), fps int, infinite bool) {
|
|
js.Global.Get("Module").Call("_emscripten_set_main_loop", fn, fps, infinite)
|
|
}
|
|
|
|
// ShowCursor - Shows cursor
|
|
func ShowCursor() {
|
|
}
|
|
|
|
// HideCursor - Hides cursor
|
|
func HideCursor() {
|
|
}
|
|
|
|
// IsCursorHidden - Returns true if cursor is not visible
|
|
func IsCursorHidden() bool {
|
|
return false
|
|
}
|
|
|
|
// EnableCursor - Enables cursor
|
|
func EnableCursor() {
|
|
}
|
|
|
|
// DisableCursor - Disables cursor
|
|
func DisableCursor() {
|
|
}
|
|
|
|
// IsFileDropped - Check if a file have been dropped into window
|
|
func IsFileDropped() bool {
|
|
return false
|
|
}
|
|
|
|
// GetDroppedFiles - Retrieve dropped files into window
|
|
func GetDroppedFiles(count *int32) (f []string) {
|
|
return
|
|
}
|
|
|
|
// ClearDroppedFiles - Clear dropped files paths buffer
|
|
func ClearDroppedFiles() {
|
|
}
|
|
|
|
// OpenAsset - Open asset
|
|
func OpenAsset(name string) (a Asset, err error) {
|
|
defer func() {
|
|
e := recover()
|
|
|
|
if e == nil {
|
|
return
|
|
}
|
|
|
|
if e, ok := e.(*js.Error); ok {
|
|
err = e
|
|
} else {
|
|
panic(e)
|
|
}
|
|
}()
|
|
|
|
ptr := js.Global.Get("FS").Call("open", name, "r")
|
|
a = &asset{ptr, 0}
|
|
|
|
return
|
|
}
|
|
|
|
type asset struct {
|
|
ptr *js.Object
|
|
offset int64
|
|
}
|
|
|
|
func (a *asset) Read(p []byte) (n int, err error) {
|
|
defer func() {
|
|
e := recover()
|
|
|
|
if e == nil {
|
|
return
|
|
}
|
|
|
|
if e, ok := e.(*js.Error); ok {
|
|
err = e
|
|
} else {
|
|
panic(e)
|
|
}
|
|
}()
|
|
|
|
js.Global.Get("FS").Call("read", a.ptr, p, 0, cap(p), a.offset)
|
|
n = len(p)
|
|
return
|
|
}
|
|
|
|
func (a *asset) Seek(offset int64, whence int) (off int64, err error) {
|
|
defer func() {
|
|
e := recover()
|
|
|
|
if e == nil {
|
|
return
|
|
}
|
|
|
|
if e, ok := e.(*js.Error); ok {
|
|
err = e
|
|
} else {
|
|
panic(e)
|
|
}
|
|
}()
|
|
|
|
off = js.Global.Get("FS").Call("llseek", a.ptr, int(offset), int(whence)).Int64()
|
|
a.offset = off
|
|
return
|
|
}
|
|
|
|
func (a *asset) Close() (err error) {
|
|
defer func() {
|
|
e := recover()
|
|
|
|
if e == nil {
|
|
return
|
|
}
|
|
|
|
if e, ok := e.(*js.Error); ok {
|
|
err = e
|
|
} else {
|
|
panic(e)
|
|
}
|
|
}()
|
|
|
|
js.Global.Get("FS").Call("close", a.ptr)
|
|
return nil
|
|
}
|