Revert "internal/atlas: move some functions in internal/restorable to internal/atlas"

This reverts commit 3651d73e0b.

Updates #3083
This commit is contained in:
Hajime Hoshi 2024-09-06 14:29:37 +09:00
parent a324cfd3b6
commit c2c5480878
3 changed files with 39 additions and 10 deletions

View File

@ -141,8 +141,6 @@ var (
imagesUsedAsDestination smallImageSet imagesUsedAsDestination smallImageSet
graphicsDriverInitialized bool
deferred []func() deferred []func()
// deferredM is a mutex for the slice operations. This must not be used for other usages. // deferredM is a mutex for the slice operations. This must not be used for other usages.
@ -655,10 +653,6 @@ func (i *Image) finalize() {
} }
func (i *Image) allocate(forbiddenBackends []*backend, asSource 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 { if i.backend != nil {
panic("atlas: the image is already allocated") panic("atlas: the image is already allocated")
} }
@ -821,7 +815,7 @@ func BeginFrame(graphicsDriver graphicsdriver.Graphics) error {
var err error var err error
initOnce.Do(func() { initOnce.Do(func() {
err = graphicscommand.InitializeGraphicsDriverState(graphicsDriver) err = restorable.InitializeGraphicsDriverState(graphicsDriver)
if err != nil { if err != nil {
return return
} }
@ -837,10 +831,8 @@ func BeginFrame(graphicsDriver graphicsdriver.Graphics) error {
minDestinationSize = 16 minDestinationSize = 16
} }
if maxSize == 0 { if maxSize == 0 {
maxSize = floorPowerOf2(graphicscommand.MaxImageSize(graphicsDriver)) maxSize = floorPowerOf2(restorable.MaxImageSize(graphicsDriver))
} }
graphicsDriverInitialized = true
}) })
if err != nil { if err != nil {
return err return err

View File

@ -52,6 +52,10 @@ type Image struct {
// //
// Note that Dispose is not called automatically. // Note that Dispose is not called automatically.
func NewImage(width, height int, imageType ImageType) *Image { func NewImage(width, height int, imageType ImageType) *Image {
if !graphicsDriverInitialized {
panic("restorable: graphics driver must be ready at NewImage but not")
}
i := &Image{ i := &Image{
Image: graphicscommand.NewImage(width, height, imageType == ImageTypeScreen), Image: graphicscommand.NewImage(width, height, imageType == ImageTypeScreen),
width: width, width: width,

View File

@ -0,0 +1,33 @@
// 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)
}