Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion _examples/atlas/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ go 1.24.0

replace github.com/firefly-zero/firefly-go => ../../

require github.com/firefly-zero/firefly-go v0.12.0
require github.com/firefly-zero/firefly-go v0.13.0

require github.com/orsinium-labs/tinymath v1.2.0 // indirect
2 changes: 1 addition & 1 deletion _examples/audio_file/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ go 1.24.0

replace github.com/firefly-zero/firefly-go => ../../

require github.com/firefly-zero/firefly-go v0.12.0
require github.com/firefly-zero/firefly-go v0.13.0

require github.com/orsinium-labs/tinymath v1.2.0 // indirect
2 changes: 1 addition & 1 deletion _examples/audio_sine/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ go 1.24.0

replace github.com/firefly-zero/firefly-go => ../../

require github.com/firefly-zero/firefly-go v0.12.0
require github.com/firefly-zero/firefly-go v0.13.0

require github.com/orsinium-labs/tinymath v1.2.0 // indirect
2 changes: 1 addition & 1 deletion _examples/canvas/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ go 1.24.0

replace github.com/firefly-zero/firefly-go => ../../

require github.com/firefly-zero/firefly-go v0.12.0
require github.com/firefly-zero/firefly-go v0.13.0

require github.com/orsinium-labs/tinymath v1.2.0 // indirect
2 changes: 1 addition & 1 deletion _examples/debug/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ go 1.24.0

replace github.com/firefly-zero/firefly-go => ../../

require github.com/firefly-zero/firefly-go v0.12.0
require github.com/firefly-zero/firefly-go v0.13.0

require github.com/orsinium-labs/tinymath v1.2.0 // indirect
2 changes: 1 addition & 1 deletion _examples/image/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ go 1.24.0

replace github.com/firefly-zero/firefly-go => ../../

require github.com/firefly-zero/firefly-go v0.12.0
require github.com/firefly-zero/firefly-go v0.13.0

require github.com/orsinium-labs/tinymath v1.2.0 // indirect
2 changes: 1 addition & 1 deletion _examples/qr/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ go 1.24.0

replace github.com/firefly-zero/firefly-go => ../../

require github.com/firefly-zero/firefly-go v0.12.0
require github.com/firefly-zero/firefly-go v0.13.0

require github.com/orsinium-labs/tinymath v1.2.0 // indirect
2 changes: 1 addition & 1 deletion _examples/scores/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ go 1.24.0

replace github.com/firefly-zero/firefly-go => ../../

require github.com/firefly-zero/firefly-go v0.12.0
require github.com/firefly-zero/firefly-go v0.13.0

require github.com/orsinium-labs/tinymath v1.2.0 // indirect
2 changes: 1 addition & 1 deletion _examples/sprite/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ go 1.24.0

replace github.com/firefly-zero/firefly-go => ../../

require github.com/firefly-zero/firefly-go v0.12.0
require github.com/firefly-zero/firefly-go v0.13.0

require github.com/orsinium-labs/tinymath v1.2.0 // indirect
2 changes: 1 addition & 1 deletion _examples/stash/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ go 1.24.0

replace github.com/firefly-zero/firefly-go => ../../

require github.com/firefly-zero/firefly-go v0.12.0
require github.com/firefly-zero/firefly-go v0.13.0

require github.com/orsinium-labs/tinymath v1.2.0 // indirect
2 changes: 1 addition & 1 deletion _examples/text/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ go 1.24.0

replace github.com/firefly-zero/firefly-go => ../../

require github.com/firefly-zero/firefly-go v0.12.0
require github.com/firefly-zero/firefly-go v0.13.0

require github.com/orsinium-labs/tinymath v1.2.0 // indirect
7 changes: 7 additions & 0 deletions _examples/time/firefly.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
author_id = "demo"
app_id = "go-time"
author_name = "Demo"
app_name = "Time Demo (Go)"

[files]
font = { path = "eg_6x10.fff", url = "https://fonts.fireflyzero.com/fonts/ascii/eg_6x10.fff" }
9 changes: 9 additions & 0 deletions _examples/time/go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
module demotext

go 1.24.0

replace github.com/firefly-zero/firefly-go => ../../

require github.com/firefly-zero/firefly-go v0.13.0

require github.com/orsinium-labs/tinymath v1.2.0 // indirect
2 changes: 2 additions & 0 deletions _examples/time/go.sum
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
github.com/orsinium-labs/tinymath v1.2.0 h1:mxbQzDQz00XQvPqPmIRCgXvYMyPCgCng1kYWfvjXr6M=
github.com/orsinium-labs/tinymath v1.2.0/go.mod h1:WPXX6ei3KSXG7JfA03a+ekCYaY9SWN4I+JRl2p6ck+A=
22 changes: 22 additions & 0 deletions _examples/time/time.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package main

import "github.com/firefly-zero/firefly-go/firefly"

func init() {
firefly.Boot = boot
firefly.Render = render
}

var font firefly.Font

func boot() {
font = firefly.LoadFile("font", nil).Font()
}

func render() {
firefly.ClearScreen(firefly.ColorWhite)
firefly.DrawText(
firefly.GetTime().String(),
font, firefly.Point{X: 10, Y: 60}, firefly.ColorDarkBlue,
)
}
2 changes: 1 addition & 1 deletion _examples/touchpad/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ go 1.24.0

replace github.com/firefly-zero/firefly-go => ../../

require github.com/firefly-zero/firefly-go v0.12.0
require github.com/firefly-zero/firefly-go v0.13.0

require github.com/orsinium-labs/tinymath v1.2.0 // indirect
2 changes: 1 addition & 1 deletion _examples/triangle/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ go 1.24.0

replace github.com/firefly-zero/firefly-go => ../../

require github.com/firefly-zero/firefly-go v0.12.0
require github.com/firefly-zero/firefly-go v0.13.0

require github.com/orsinium-labs/tinymath v1.2.0 // indirect
3 changes: 3 additions & 0 deletions firefly/bindings.go
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,9 @@ func setSeed(seed uint32)
//go:wasmimport misc get_random
func getRandom() uint32

//go:wasmimport misc get_time
func getTime() uint64

//go:wasmimport misc get_name
func getName(index uint32, ptr unsafe.Pointer) uint32

Expand Down
10 changes: 9 additions & 1 deletion firefly/misc.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package firefly

import "unsafe"
import (
"time"
"unsafe"
)

type Language uint16

Expand Down Expand Up @@ -201,6 +204,11 @@ func GetRandom() uint32 {
return getRandom()
}

// Get the time passed since the app was started.
func GetTime() time.Duration {
return time.Duration(getTime()) * time.Microsecond
}

// Get human-readable name of the given peer.
func GetName(p Peer) string {
buf := [16]byte{}
Expand Down
10 changes: 6 additions & 4 deletions firefly/net.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,9 @@ var Combined = Peer{0xFF}
// The list of peers online.
//
// Can be obtained using [GetPeers].
type Peers uint32
type Peers struct {
p uint32
}

// Stash is a serialized binary state of the app that you want to persist
// between app runs and to be available in multiplayer.
Expand Down Expand Up @@ -108,13 +110,13 @@ func (peers Peers) Iter() iter.Seq[Peer] {

// Check if the given [Peer] is online.
func (peers Peers) Contains(peer Peer) bool {
return peers>>peer.raw&1 != 0
return peers.p>>peer.raw&1 != 0
}

// Get how many peers are online.
func (peers Peers) Len() int {
// Should be converted by TinyGo in a single wasm instruction.
return bits.OnesCount32(uint32(peers))
return bits.OnesCount32(peers.p)
}

// Get the peer corresponding to the local device.
Expand All @@ -129,7 +131,7 @@ func GetMe() Me {
// It can be used to detect if multiplayer is active:
// if there is more than 1 peer, you're playing with friends.
func GetPeers() Peers {
return Peers(getPeers())
return Peers{getPeers()}
}

// Save the given [Stash].
Expand Down
Loading