mirror of
https://github.com/exoticorn/microw8.git
synced 2026-01-20 11:16:42 +01:00
39 lines
613 B
Go
39 lines
613 B
Go
package main
|
|
|
|
import (
|
|
"math"
|
|
"unsafe"
|
|
)
|
|
|
|
//go:wasm-module env
|
|
//export atan2
|
|
func atan2(x, y float32) float32
|
|
|
|
//go:wasm-module env
|
|
//export time
|
|
func time() float32
|
|
|
|
func sqrt(v float32) float32 {
|
|
return float32(math.Sqrt(float64(v)))
|
|
}
|
|
|
|
var FRAMEBUFFER = (*[320 * 240]byte)(unsafe.Pointer(uintptr(120)))
|
|
|
|
//export upd
|
|
func upd() {
|
|
var i int
|
|
for i < 320*240 {
|
|
t := time() * 63.0
|
|
x := float32(i%320 - 160)
|
|
y := float32(i/320 - 120)
|
|
d := float32(40000.0) / sqrt(x*x+y*y)
|
|
u := atan2(x, y) * 512.0 / 3.141
|
|
c := uint8((int(d+t*2.0) ^ int(u+t)) >> 4)
|
|
FRAMEBUFFER[i] = c
|
|
i++
|
|
}
|
|
}
|
|
|
|
func main() {
|
|
}
|