mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-12-26 11:48:55 +01:00
mobile/ebitenmobileview: Bug fix: fix compile errors
This commit is contained in:
parent
9ba113861c
commit
787f2d72c0
@ -18,10 +18,8 @@
|
|||||||
// There is no guarantee of backward compatibility.
|
// There is no guarantee of backward compatibility.
|
||||||
package ebitenmobileview
|
package ebitenmobileview
|
||||||
|
|
||||||
// #include <stdint.h>
|
|
||||||
import "C"
|
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"math"
|
||||||
"runtime"
|
"runtime"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -30,10 +28,32 @@ type ViewRectSetter interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Layout(viewWidth, viewHeight int, viewRectSetter ViewRectSetter) {
|
func Layout(viewWidth, viewHeight int, viewRectSetter ViewRectSetter) {
|
||||||
var x, y, width, height C.int
|
theState.m.Lock()
|
||||||
ebitenLayout(C.int(viewWidth), C.int(viewHeight), &x, &y, &width, &height)
|
defer theState.m.Unlock()
|
||||||
|
|
||||||
|
if theState.game == nil {
|
||||||
|
panic("ebitenmobileview: SetGame must be called before ebitenLayout")
|
||||||
|
}
|
||||||
|
|
||||||
|
w, h := theState.game.Layout(int(viewWidth), int(viewHeight))
|
||||||
|
scaleX := float64(viewWidth) / float64(w)
|
||||||
|
scaleY := float64(viewHeight) / float64(h)
|
||||||
|
scale := math.Min(scaleX, scaleY)
|
||||||
|
|
||||||
|
width := int(math.Ceil(float64(w) * scale))
|
||||||
|
height := int(math.Ceil(float64(h) * scale))
|
||||||
|
x := (viewWidth - width) / 2
|
||||||
|
y := (viewHeight - height) / 2
|
||||||
|
|
||||||
|
if !theState.running {
|
||||||
|
start(theState.game.Update, w, h, scale)
|
||||||
|
theState.running = true
|
||||||
|
} else {
|
||||||
|
// TODO: Change the screen size
|
||||||
|
}
|
||||||
|
|
||||||
if viewRectSetter != nil {
|
if viewRectSetter != nil {
|
||||||
viewRectSetter.SetViewRect(int(x), int(y), int(width), int(height))
|
viewRectSetter.SetViewRect(x, y, width, height)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,9 +68,9 @@ func Update() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func UpdateTouchesOnAndroid(action int, id int, x, y int) {
|
func UpdateTouchesOnAndroid(action int, id int, x, y int) {
|
||||||
ebitenUpdateTouchesOnAndroid((C.int)(action), (C.int)(id), (C.int)(x), (C.int)(y))
|
updateTouchesOnAndroid(action, id, x, y)
|
||||||
}
|
}
|
||||||
|
|
||||||
func UpdateTouchesOnIOS(phase int, ptr int64, x, y int) {
|
func UpdateTouchesOnIOS(phase int, ptr int64, x, y int) {
|
||||||
ebitenUpdateTouchesOnIOS((C.int)(phase), (C.uintptr_t)(ptr), (C.int)(x), (C.int)(y))
|
updateTouchesOnIOSImpl(phase, ptr, x, y)
|
||||||
}
|
}
|
||||||
|
@ -20,8 +20,6 @@ package ebitenmobileview
|
|||||||
import "C"
|
import "C"
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"math"
|
|
||||||
"runtime"
|
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/hajimehoshi/ebiten"
|
"github.com/hajimehoshi/ebiten"
|
||||||
|
Loading…
Reference in New Issue
Block a user