mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2025-01-11 19:48:54 +01:00
parent
ec6e4a16ce
commit
81f336ac46
@ -154,10 +154,7 @@ func (i *imageDumper) update(screen *Image) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if IsDrawingSkipped() {
|
// TODO: As the screen will be available only from Draw, move this to a drawing function.
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
return i.dump(screen)
|
return i.dump(screen)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
39
run.go
39
run.go
@ -78,19 +78,10 @@ func CurrentFPS() float64 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
isDrawingSkipped = int32(0)
|
|
||||||
isScreenClearedEveryFrame = int32(1)
|
isScreenClearedEveryFrame = int32(1)
|
||||||
currentMaxTPS = int32(DefaultTPS)
|
currentMaxTPS = int32(DefaultTPS)
|
||||||
)
|
)
|
||||||
|
|
||||||
func setDrawingSkipped(skipped bool) {
|
|
||||||
v := int32(0)
|
|
||||||
if skipped {
|
|
||||||
v = 1
|
|
||||||
}
|
|
||||||
atomic.StoreInt32(&isDrawingSkipped, v)
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetScreenClearedEveryFrame enables or disables the clearing of the screen at the beginning of each frame.
|
// SetScreenClearedEveryFrame enables or disables the clearing of the screen at the beginning of each frame.
|
||||||
// The default value is false and the screen is cleared each frame by default.
|
// The default value is false and the screen is cleared each frame by default.
|
||||||
//
|
//
|
||||||
@ -111,36 +102,6 @@ func IsScreenClearedEveryFrame() bool {
|
|||||||
return atomic.LoadInt32(&isScreenClearedEveryFrame) != 0
|
return atomic.LoadInt32(&isScreenClearedEveryFrame) != 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsDrawingSkipped returns true if rendering result is not adopted.
|
|
||||||
// It is recommended to skip drawing images or screen
|
|
||||||
// when IsDrawingSkipped is true.
|
|
||||||
//
|
|
||||||
// The typical code with IsDrawingSkipped is this:
|
|
||||||
//
|
|
||||||
// func update(screen *ebiten.Image) error {
|
|
||||||
//
|
|
||||||
// // Update the state.
|
|
||||||
//
|
|
||||||
// // When IsDrawingSkipped is true, the rendered result is not adopted.
|
|
||||||
// // Skip rendering then.
|
|
||||||
// if ebiten.IsDrawingSkipped() {
|
|
||||||
// return nil
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// // Draw something to the screen.
|
|
||||||
//
|
|
||||||
// return nil
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// IsDrawingSkipped is useful if you use Run function or RunGame function without implementing Game's Draw.
|
|
||||||
// Otherwise, i.e., if you use RunGame function with implementing Game's Draw, IsDrawingSkipped should not be used.
|
|
||||||
// If you use RunGame and Draw, IsDrawingSkipped always returns true.
|
|
||||||
//
|
|
||||||
// IsDrawingSkipped is concurrent-safe.
|
|
||||||
func IsDrawingSkipped() bool {
|
|
||||||
return atomic.LoadInt32(&isDrawingSkipped) != 0
|
|
||||||
}
|
|
||||||
|
|
||||||
type imageDumperGame struct {
|
type imageDumperGame struct {
|
||||||
game Game
|
game Game
|
||||||
d *imageDumper
|
d *imageDumper
|
||||||
|
@ -179,6 +179,7 @@ func (c *uiContext) Draw() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *uiContext) update() error {
|
func (c *uiContext) update() error {
|
||||||
|
// TODO: Move the clock usage to the UI driver side.
|
||||||
updateCount := clock.Update(MaxTPS())
|
updateCount := clock.Update(MaxTPS())
|
||||||
|
|
||||||
// Ensure that Update is called once before Draw so that Update can be used for initialization.
|
// Ensure that Update is called once before Draw so that Update can be used for initialization.
|
||||||
@ -190,9 +191,6 @@ func (c *uiContext) update() error {
|
|||||||
for i := 0; i < updateCount; i++ {
|
for i := 0; i < updateCount; i++ {
|
||||||
c.updateOffscreen()
|
c.updateOffscreen()
|
||||||
|
|
||||||
// TODO: Move the clock usage to the UI driver side.
|
|
||||||
setDrawingSkipped(i < updateCount-1)
|
|
||||||
|
|
||||||
if err := hooks.RunBeforeUpdateHooks(); err != nil {
|
if err := hooks.RunBeforeUpdateHooks(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user