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

Updates #805
This commit is contained in:
Hajime Hoshi 2024-01-13 14:05:19 +09:00
parent d7a098d973
commit 3651d73e0b
3 changed files with 10 additions and 39 deletions

View File

@ -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

View File

@ -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,

View File

@ -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)
}