mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-12-25 19:28:57 +01:00
Refactoring
This commit is contained in:
parent
e7c7c69dcc
commit
a109c11594
@ -66,19 +66,22 @@ func createFromImage(img *image.NRGBA) (interface{}, error) {
|
||||
}
|
||||
|
||||
func New(width, height int, filter Filter) (*gtexture.Texture, error) {
|
||||
f := func(textureWidth, textureHeight int) (interface{}, error) {
|
||||
return create(textureWidth, textureHeight, filter)
|
||||
native, err := create(gtexture.AdjustSize(width), gtexture.AdjustSize(height), filter)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return gtexture.New(width, height, f)
|
||||
return gtexture.New(native, width, height), nil
|
||||
}
|
||||
|
||||
func NewEmpty(width, height int) (*gtexture.Texture, error) {
|
||||
f := func(textureWidth, textureHeight int) (interface{}, error) {
|
||||
return nil, nil
|
||||
}
|
||||
return gtexture.New(width, height, f)
|
||||
return gtexture.New(nil, width, height), nil
|
||||
}
|
||||
|
||||
func NewFromImage(img image.Image) (*gtexture.Texture, error) {
|
||||
return gtexture.NewFromImage(img, createFromImage)
|
||||
native, err := createFromImage(gtexture.AdjustImage(img))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
size := img.Bounds().Size()
|
||||
return gtexture.New(native, size.X, size.Y), nil
|
||||
}
|
||||
|
@ -23,10 +23,18 @@ type Texture struct {
|
||||
height int
|
||||
}
|
||||
|
||||
func AdjustImage(img image.Image, width, height int) *image.NRGBA {
|
||||
func AdjustSize(size int) int {
|
||||
return int(nextPowerOf2(uint64(size)))
|
||||
}
|
||||
|
||||
func AdjustImage(img image.Image) *image.NRGBA {
|
||||
width, height := img.Bounds().Size().X, img.Bounds().Size().Y
|
||||
adjustedImageBounds := image.Rectangle{
|
||||
image.ZP,
|
||||
image.Point{width, height},
|
||||
image.Point{
|
||||
AdjustSize(width),
|
||||
AdjustSize(height),
|
||||
},
|
||||
}
|
||||
if nrgba := img.(*image.NRGBA); nrgba != nil &&
|
||||
img.Bounds() == adjustedImageBounds {
|
||||
@ -42,56 +50,20 @@ func AdjustImage(img image.Image, width, height int) *image.NRGBA {
|
||||
return adjustedImage
|
||||
}
|
||||
|
||||
func New(width, height int, create func(textureWidth, textureHeight int) (
|
||||
interface{}, error)) (*Texture, error) {
|
||||
texture := &Texture{
|
||||
width: width,
|
||||
height: height,
|
||||
}
|
||||
var err error
|
||||
texture.native, err = create(texture.textureWidth(),
|
||||
texture.textureHeight())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return texture, nil
|
||||
}
|
||||
|
||||
func NewFromImage(img image.Image, create func(img *image.NRGBA) (
|
||||
interface{}, error)) (*Texture, error) {
|
||||
size := img.Bounds().Size()
|
||||
width, height := size.X, size.Y
|
||||
texture := &Texture{
|
||||
width: width,
|
||||
height: height,
|
||||
}
|
||||
adjustedImage := AdjustImage(img, texture.textureWidth(), texture.textureHeight())
|
||||
var err error
|
||||
texture.native, err = create(adjustedImage)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return texture, nil
|
||||
}
|
||||
|
||||
func (texture *Texture) textureWidth() int {
|
||||
return int(nextPowerOf2(uint64(texture.width)))
|
||||
}
|
||||
|
||||
func (texture *Texture) textureHeight() int {
|
||||
return int(nextPowerOf2(uint64(texture.height)))
|
||||
func New(native interface{}, width, height int) *Texture {
|
||||
return &Texture{native, width, height}
|
||||
}
|
||||
|
||||
func (texture *Texture) u(x int) float32 {
|
||||
return float32(x) / float32(texture.textureWidth())
|
||||
return float32(x) / float32(AdjustSize(texture.width))
|
||||
}
|
||||
|
||||
func (texture *Texture) v(y int) float32 {
|
||||
return float32(y) / float32(texture.textureHeight())
|
||||
return float32(y) / float32(AdjustSize(texture.height))
|
||||
}
|
||||
|
||||
func (texture *Texture) SetAsViewport(setter func(x, y, width, height int)) {
|
||||
setter(0, 0, texture.textureWidth(), texture.textureHeight())
|
||||
setter(0, 0, AdjustSize(texture.width), AdjustSize(texture.height))
|
||||
}
|
||||
|
||||
type Quad struct {
|
||||
|
Loading…
Reference in New Issue
Block a user