Limit texture size to 8192x8192 pixels
This commit is contained in:
@@ -155,22 +155,22 @@ func (e *env) getSprite(palette []string, ref maps.ObjRef) (*conv.Sprite, error)
|
||||
return nil, fmt.Errorf("Out-of-index sprite %v requested for %v", ref.Sprite(), name)
|
||||
}
|
||||
|
||||
return &obj.Sprites[ref.Sprite()], nil
|
||||
return obj.Sprites[ref.Sprite()], nil
|
||||
}
|
||||
|
||||
func (s *state) present(pWin *pixelgl.Window) {
|
||||
pWin.Clear(colornames.Black)
|
||||
s.env.batch.Clear()
|
||||
/*
|
||||
center := pWin.Bounds().Center()
|
||||
|
||||
cam := pixel.IM
|
||||
cam = cam.ScaledXY(center, pixel.Vec{1.0, -1.0}) // invert the Y axis
|
||||
cam = cam.Scaled(pixel.ZV, s.zoom) // apply current zoom factor
|
||||
cam = cam.Moved(center.Sub(s.camPos)) // Make it central
|
||||
s.cam = cam
|
||||
pWin.SetMatrix(cam)
|
||||
*/
|
||||
center := pWin.Bounds().Center()
|
||||
|
||||
cam := pixel.IM
|
||||
cam = cam.ScaledXY(center, pixel.Vec{1.0, -1.0}) // invert the Y axis
|
||||
cam = cam.Scaled(center, s.zoom) // apply current zoom factor
|
||||
cam = cam.Moved(center.Sub(s.camPos)) // Make it central
|
||||
s.cam = cam
|
||||
pWin.SetMatrix(cam)
|
||||
|
||||
// TODO: we should be able to perform bounds clipping on these
|
||||
minX := int(s.env.gameMap.MinWidth)
|
||||
maxX := int(s.env.gameMap.MaxWidth)
|
||||
@@ -191,32 +191,32 @@ func (s *state) present(pWin *pixelgl.Window) {
|
||||
pWin.Update()
|
||||
}
|
||||
|
||||
func (s *state) renderCell(x, y, z int, batch *pixel.Batch) {
|
||||
func (s *state) renderCell(x, y, z int, target pixel.Target) {
|
||||
var sprites []*conv.Sprite
|
||||
|
||||
cell := s.env.gameMap.Cells.At(x, y, z)
|
||||
|
||||
if spr, err := s.env.getSprite(s.env.set.Palette, cell.Surface); err != nil {
|
||||
log.Printf("%v %v %v surface: %v", x, y, z, err)
|
||||
} else {
|
||||
} else if spr != nil {
|
||||
sprites = append(sprites, spr)
|
||||
}
|
||||
|
||||
if spr, err := s.env.getSprite(s.env.set.Palette, cell.Center); err != nil {
|
||||
log.Printf("%v %v %v center: %v", x, y, z, err)
|
||||
} else {
|
||||
} else if spr != nil {
|
||||
sprites = append(sprites, spr)
|
||||
}
|
||||
|
||||
if spr, err := s.env.getSprite(s.env.set.Palette, cell.Left); err != nil {
|
||||
log.Printf("%v %v %v left: %v", x, y, z, err)
|
||||
} else {
|
||||
} else if spr != nil {
|
||||
sprites = append(sprites, spr)
|
||||
}
|
||||
|
||||
if spr, err := s.env.getSprite(s.env.set.Palette, cell.Right); err != nil {
|
||||
log.Printf("%v %v %v right: %v", x, y, z, err)
|
||||
} else {
|
||||
} else if spr != nil {
|
||||
sprites = append(sprites, spr)
|
||||
}
|
||||
|
||||
@@ -228,9 +228,7 @@ func (s *state) renderCell(x, y, z int, batch *pixel.Batch) {
|
||||
iso := s.cellToPix(pixel.V(fX, fY))
|
||||
|
||||
for _, sprite := range sprites {
|
||||
if sprite != nil {
|
||||
sprite.Spr.Draw(batch, pixel.IM.Moved(iso))
|
||||
}
|
||||
sprite.Spr.Draw(target, pixel.IM.Moved(iso))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -271,9 +269,12 @@ func (s *state) handleKeys(pWin *pixelgl.Window) {
|
||||
log.Printf("WARNING: z-index not yet taken into account")
|
||||
}
|
||||
|
||||
log.Printf("cam: %#v", s.cam)
|
||||
|
||||
pos := s.pixToCell(s.cam.Unproject(pWin.MousePosition()))
|
||||
cell := s.env.gameMap.Cells.At(int(pos.X), int(pos.Y), s.zIdx)
|
||||
log.Printf("X=%v Y=%v, zIdx=%v", pos.X, pos.Y, s.zIdx)
|
||||
|
||||
cell := s.env.gameMap.Cells.At(int(pos.X), int(pos.Y), s.zIdx)
|
||||
log.Printf("Cell=%#v", cell)
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user