diff --git a/internal/atlas/image.go b/internal/atlas/image.go index 67c378a83..e67a05b3f 100644 --- a/internal/atlas/image.go +++ b/internal/atlas/image.go @@ -126,6 +126,8 @@ var ( imagesToPutOnSourceBackend smallImageSet imagesUsedAsDestination smallImageSet + + graphicsDriverInitialized bool ) type ImageType int @@ -627,6 +629,10 @@ func (i *Image) canBePutOnAtlas() bool { } func (i *Image) allocate(forbiddenBackends []*backend, asSource bool) { + if !graphicsDriverInitialized { + panic("atlas: graphics driver must be ready at allocate but not") + } + if i.backend != nil { panic("atlas: the image is already allocated") } @@ -806,7 +812,7 @@ func BeginFrame(graphicsDriver graphicsdriver.Graphics) error { var err error initOnce.Do(func() { - err = restorable.InitializeGraphicsDriverState(graphicsDriver) + err = graphicscommand.InitializeGraphicsDriverState(graphicsDriver) if err != nil { return } @@ -822,8 +828,10 @@ func BeginFrame(graphicsDriver graphicsdriver.Graphics) error { minDestinationSize = 16 } if maxSize == 0 { - maxSize = floorPowerOf2(restorable.MaxImageSize(graphicsDriver)) + maxSize = floorPowerOf2(graphicscommand.MaxImageSize(graphicsDriver)) } + + graphicsDriverInitialized = true }) if err != nil { return err diff --git a/internal/restorable/image.go b/internal/restorable/image.go index 04fee8acb..16592120e 100644 --- a/internal/restorable/image.go +++ b/internal/restorable/image.go @@ -52,10 +52,6 @@ type Image struct { // // Note that Dispose is not called automatically. func NewImage(width, height int, imageType ImageType) *Image { - if !graphicsDriverInitialized { - panic("restorable: graphics driver must be ready at NewImage but not") - } - i := &Image{ Image: graphicscommand.NewImage(width, height, imageType == ImageTypeScreen), width: width, diff --git a/internal/restorable/images.go b/internal/restorable/images.go deleted file mode 100644 index 03bac0eaa..000000000 --- a/internal/restorable/images.go +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2017 The Ebiten Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package restorable - -import ( - "github.com/hajimehoshi/ebiten/v2/internal/graphicscommand" - "github.com/hajimehoshi/ebiten/v2/internal/graphicsdriver" -) - -var graphicsDriverInitialized bool - -// InitializeGraphicsDriverState initializes the graphics driver state. -func InitializeGraphicsDriverState(graphicsDriver graphicsdriver.Graphics) error { - graphicsDriverInitialized = true - return graphicscommand.InitializeGraphicsDriverState(graphicsDriver) -} - -// MaxImageSize returns the maximum size of an image. -func MaxImageSize(graphicsDriver graphicsdriver.Graphics) int { - return graphicscommand.MaxImageSize(graphicsDriver) -}