mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2025-02-03 22:44:28 +01:00
graphics: Refactoring: Use DrawImageOptions.Filter
This commit is contained in:
parent
1179c12d35
commit
4aa5ee032f
@ -57,12 +57,12 @@ func (c *graphicsContext) SetSize(screenWidth, screenHeight int, screenScale flo
|
|||||||
if c.offscreen2 != nil {
|
if c.offscreen2 != nil {
|
||||||
_ = c.offscreen2.Dispose()
|
_ = c.offscreen2.Dispose()
|
||||||
}
|
}
|
||||||
offscreen := newVolatileImage(screenWidth, screenHeight, FilterNearest)
|
offscreen := newVolatileImage(screenWidth, screenHeight, FilterDefault)
|
||||||
|
|
||||||
intScreenScale := int(math.Ceil(screenScale))
|
intScreenScale := int(math.Ceil(screenScale))
|
||||||
w := screenWidth * intScreenScale
|
w := screenWidth * intScreenScale
|
||||||
h := screenHeight * intScreenScale
|
h := screenHeight * intScreenScale
|
||||||
offscreen2 := newVolatileImage(w, h, FilterLinear)
|
offscreen2 := newVolatileImage(w, h, FilterDefault)
|
||||||
|
|
||||||
w = int(float64(screenWidth) * screenScale)
|
w = int(float64(screenWidth) * screenScale)
|
||||||
h = int(float64(screenHeight) * screenScale)
|
h = int(float64(screenHeight) * screenScale)
|
||||||
@ -87,7 +87,7 @@ func (c *graphicsContext) initializeIfNeeded() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func drawWithFittingScale(dst *Image, src *Image) {
|
func drawWithFittingScale(dst *Image, src *Image, filter Filter) {
|
||||||
wd, hd := dst.Size()
|
wd, hd := dst.Size()
|
||||||
ws, hs := src.Size()
|
ws, hs := src.Size()
|
||||||
sw := float64(wd) / float64(ws)
|
sw := float64(wd) / float64(ws)
|
||||||
@ -95,6 +95,7 @@ func drawWithFittingScale(dst *Image, src *Image) {
|
|||||||
op := &DrawImageOptions{}
|
op := &DrawImageOptions{}
|
||||||
op.GeoM.Scale(sw, sh)
|
op.GeoM.Scale(sw, sh)
|
||||||
op.CompositeMode = CompositeModeCopy
|
op.CompositeMode = CompositeModeCopy
|
||||||
|
op.Filter = filter
|
||||||
_ = dst.DrawImage(src, op)
|
_ = dst.DrawImage(src, op)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,8 +117,8 @@ func (c *graphicsContext) Update(afterFrameUpdate func()) error {
|
|||||||
afterFrameUpdate()
|
afterFrameUpdate()
|
||||||
}
|
}
|
||||||
if 0 < updateCount {
|
if 0 < updateCount {
|
||||||
drawWithFittingScale(c.offscreen2, c.offscreen)
|
drawWithFittingScale(c.offscreen2, c.offscreen, FilterNearest)
|
||||||
drawWithFittingScale(c.screen, c.offscreen2)
|
drawWithFittingScale(c.screen, c.offscreen2, FilterLinear)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := restorable.ResolveStaleImages(); err != nil {
|
if err := restorable.ResolveStaleImages(); err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user