ebiten/graphicscontext.go
2014-12-09 22:19:30 +09:00

41 lines
865 B
Go

package ebiten
// A Rect represents a rectangle.
type Rect struct {
X int
Y int
Width int
Height int
}
// A TexturePart represents a part of a texture.
type TexturePart struct {
LocationX int
LocationY int
Source Rect
}
// A Drawer is the interface that draws itself.
type Drawer interface {
Draw(parts []TexturePart, geo GeometryMatrix, color ColorMatrix)
}
// DrawWhole draws the whole texture.
func DrawWhole(drawer Drawer, width, height int, geo GeometryMatrix, color ColorMatrix) {
parts := []TexturePart{
{0, 0, Rect{0, 0, width, height}},
}
drawer.Draw(parts, geo, color)
}
// A Context is the interface that means a context of rendering.
type GraphicsContext interface {
Clear()
Fill(r, g, b uint8)
Texture(id TextureID) Drawer
RenderTarget(id RenderTargetID) Drawer
ResetOffscreen()
SetOffscreen(id RenderTargetID)
}