mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-11-10 04:57:26 +01:00
Replace DrawWhole with DrawWholeTexture and DrawWholeRenderTarget
This commit is contained in:
parent
f3e4d1703d
commit
0e673670c0
@ -45,8 +45,6 @@ func NewGameScene() *GameScene {
|
||||
}
|
||||
}
|
||||
|
||||
const emptyWidth = 16
|
||||
const emptyHeight = 16
|
||||
const fieldWidth = blockWidth * fieldBlockNumX
|
||||
const fieldHeight = blockHeight * fieldBlockNumY
|
||||
|
||||
@ -115,10 +113,11 @@ func (s *GameScene) Draw(context ebiten.GraphicsContext, textures *Textures) {
|
||||
context.Fill(0xff, 0xff, 0xff)
|
||||
|
||||
field := textures.GetTexture("empty")
|
||||
geoMat := ebiten.ScaleGeometry(float64(fieldWidth)/float64(emptyWidth), float64(fieldHeight)/float64(emptyHeight))
|
||||
w, h := field.Size()
|
||||
geoMat := ebiten.ScaleGeometry(float64(fieldWidth)/float64(w), float64(fieldHeight)/float64(h))
|
||||
geoMat.Concat(ebiten.TranslateGeometry(20, 20)) // TODO: magic number?
|
||||
colorMat := ebiten.ScaleColor(color.RGBA{0, 0, 0, 0x80})
|
||||
ebiten.DrawWhole(context.Texture(field), emptyWidth, emptyHeight, geoMat, colorMat)
|
||||
ebiten.DrawWholeTexture(context, field, geoMat, colorMat)
|
||||
|
||||
geoMat = ebiten.GeometryMatrixI()
|
||||
geoMat.Concat(ebiten.TranslateGeometry(20, 20))
|
||||
|
@ -78,21 +78,11 @@ func (s *SceneManager) Draw(context ebiten.GraphicsContext, textures *Textures)
|
||||
context.PopRenderTarget()
|
||||
|
||||
color := ebiten.ColorMatrixI()
|
||||
ebiten.DrawWhole(
|
||||
context.RenderTarget(from),
|
||||
ScreenWidth,
|
||||
ScreenHeight,
|
||||
ebiten.GeometryMatrixI(),
|
||||
color)
|
||||
ebiten.DrawWholeRenderTarget(context, from, ebiten.GeometryMatrixI(), color)
|
||||
|
||||
alpha := float64(s.transitionCount) / float64(transitionMaxCount)
|
||||
color.Elements[3][3] = alpha
|
||||
ebiten.DrawWhole(
|
||||
context.RenderTarget(to),
|
||||
ScreenWidth,
|
||||
ScreenHeight,
|
||||
ebiten.GeometryMatrixI(),
|
||||
color)
|
||||
ebiten.DrawWholeRenderTarget(context, to, ebiten.GeometryMatrixI(), color)
|
||||
}
|
||||
|
||||
func (s *SceneManager) GoTo(scene Scene) {
|
||||
|
@ -42,7 +42,7 @@ func (g *Game) Update(gr ebiten.GraphicsContext) error {
|
||||
geo.Concat(ebiten.ScaleGeometry(0.5, 0.5))
|
||||
geo.Concat(ebiten.TranslateGeometry(screenWidth/2, screenHeight/2))
|
||||
clr := ebiten.RotateHue(float64(g.count%180) * 2 * math.Pi / 180)
|
||||
ebiten.DrawWhole(gr.Texture(g.gophersTexture), w, h, geo, clr)
|
||||
ebiten.DrawWholeTexture(gr, g.gophersTexture, geo, clr)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -59,11 +59,11 @@ func (g *Game) Update(gr ebiten.GraphicsContext) error {
|
||||
clr := ebiten.ScaleColor(color.RGBA{0xff, 0x40, 0x40, 0xff})
|
||||
theta := 2.0 * math.Pi * float64(g.count%60) / 60.0
|
||||
clr.Concat(ebiten.RotateHue(theta))
|
||||
ebiten.DrawWhole(gr.RenderTarget(g.brushRenderTarget), 1, 1, geo, clr)
|
||||
ebiten.DrawWholeRenderTarget(gr, g.brushRenderTarget, geo, clr)
|
||||
gr.PopRenderTarget()
|
||||
}
|
||||
|
||||
ebiten.DrawWhole(gr.RenderTarget(g.canvasRenderTarget), screenWidth, screenHeight, ebiten.GeometryMatrixI(), ebiten.ColorMatrixI())
|
||||
ebiten.DrawWholeRenderTarget(gr, g.canvasRenderTarget, ebiten.GeometryMatrixI(), ebiten.ColorMatrixI())
|
||||
|
||||
ebitenutil.DebugPrint(gr, fmt.Sprintf("(%d, %d)", mx, my))
|
||||
return nil
|
||||
|
18
graphics.go
18
graphics.go
@ -41,12 +41,22 @@ type Drawer interface {
|
||||
Draw(parts []TexturePart, geo GeometryMatrix, color ColorMatrix) error
|
||||
}
|
||||
|
||||
// DrawWhole draws the whole texture.
|
||||
func DrawWhole(drawer Drawer, width, height int, geo GeometryMatrix, color ColorMatrix) error {
|
||||
// DrawWholeTexture draws the whole texture.
|
||||
func DrawWholeTexture(g GraphicsContext, texture *Texture, geo GeometryMatrix, color ColorMatrix) error {
|
||||
w, h := texture.Size()
|
||||
parts := []TexturePart{
|
||||
{0, 0, Rect{0, 0, width, height}},
|
||||
{0, 0, Rect{0, 0, w, h}},
|
||||
}
|
||||
return drawer.Draw(parts, geo, color)
|
||||
return g.Texture(texture).Draw(parts, geo, color)
|
||||
}
|
||||
|
||||
// DrawWholeRenderTarget draws the whole render target.
|
||||
func DrawWholeRenderTarget(g GraphicsContext, renderTarget *RenderTarget, geo GeometryMatrix, color ColorMatrix) error {
|
||||
w, h := renderTarget.Size()
|
||||
parts := []TexturePart{
|
||||
{0, 0, Rect{0, 0, w, h}},
|
||||
}
|
||||
return g.RenderTarget(renderTarget).Draw(parts, geo, color)
|
||||
}
|
||||
|
||||
// A GraphicsContext is the interface that means a context of rendering.
|
||||
|
@ -103,7 +103,7 @@ func (c *graphicsContext) postUpdate() {
|
||||
scale := float64(c.screenScale)
|
||||
geo := GeometryMatrixI()
|
||||
geo.Concat(ScaleGeometry(scale, scale))
|
||||
DrawWhole(c.RenderTarget(c.screen), c.screenWidth, c.screenHeight, geo, ColorMatrixI())
|
||||
DrawWholeRenderTarget(c, c.screen, geo, ColorMatrixI())
|
||||
|
||||
gl.Flush()
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user