render

package
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 20, 2025 License: MIT Imports: 14 Imported by: 0

Documentation

Overview

Package render can be used to render parsed map to image. Currently supports only orthogonal rendering out-of-the-box.

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrUnsupportedOrientation represents an error in the unsupported orientation for rendering.
	ErrUnsupportedOrientation = errors.New("tiled/render: unsupported orientation")
	// ErrUnsupportedRenderOrder represents an error in the unsupported order for rendering.
	ErrUnsupportedRenderOrder = errors.New("tiled/render: unsupported render order")

	// ErrOutOfBounds represents an error that the index is out of bounds
	ErrOutOfBounds = errors.New("tiled/render: index out of bounds")
)

Functions

This section is empty.

Types

type OrthogonalRendererEngine

type OrthogonalRendererEngine struct {
	// contains filtered or unexported fields
}

OrthogonalRendererEngine represents orthogonal rendering engine.

func (*OrthogonalRendererEngine) GetFinalImageSize

func (e *OrthogonalRendererEngine) GetFinalImageSize() (int, int)

GetFinalImageSize returns final image size based on map data.

func (*OrthogonalRendererEngine) GetTileGeometry added in v1.2.0

func (e *OrthogonalRendererEngine) GetTileGeometry(x, y int, tile *tiled.LayerTile) ebiten.GeoM

GetTileGeometry returns the geometry object used to render the tile at the correct position and orientation

func (*OrthogonalRendererEngine) Init

func (e *OrthogonalRendererEngine) Init(m *tiled.Map)

Init initializes rendering engine with provided map options.

type Renderer

type Renderer struct {
	Result *ebiten.Image // The image result after rendering using the Render functions.
	// contains filtered or unexported fields
}

Renderer represents an rendering engine.

func NewRenderer

func NewRenderer(m *tiled.Map) (*Renderer, error)

NewRenderer creates new rendering engine instance.

func NewRendererWithFileSystem

func NewRendererWithFileSystem(m *tiled.Map, fs fs.FS) (*Renderer, error)

NewRendererWithFileSystem creates new rendering engine instance with a custom file system.

func (*Renderer) Clear

func (r *Renderer) Clear()

Clear clears the render result to allow for separation of layers. For example, you can render a layer, make a copy of the render, clear the renderer, and repeat for each layer in the Map.

func (*Renderer) RenderGroup

func (r *Renderer) RenderGroup(groupID int) error

RenderGroup renders single group.

func (*Renderer) RenderGroupLayer

func (r *Renderer) RenderGroupLayer(groupID, layerID int) error

RenderGroupLayer renders single map layer in a certain group.

func (*Renderer) RenderGroupObjectGroup

func (r *Renderer) RenderGroupObjectGroup(groupID, objectGroupID int) error

RenderGroupObjectGroup renders single object group in a certain group.

func (*Renderer) RenderLayer

func (r *Renderer) RenderLayer(id int) error

RenderLayer renders single map layer.

func (*Renderer) RenderObjectGroup

func (r *Renderer) RenderObjectGroup(i int) error

RenderObjectGroup renders a single object group

func (*Renderer) RenderVisibleGroups

func (r *Renderer) RenderVisibleGroups() error

RenderVisibleGroups renders all visible groups

func (*Renderer) RenderVisibleLayers

func (r *Renderer) RenderVisibleLayers() error

RenderVisibleLayers renders all visible map layers.

func (*Renderer) RenderVisibleLayersAndObjectGroups

func (r *Renderer) RenderVisibleLayersAndObjectGroups() error

RenderVisibleLayersAndObjectGroups render all layers and object groups, layer first, objectGroup second so the order may be incorrect, you may put them into different groups, then call RenderVisibleGroups

func (*Renderer) RenderVisibleObjectGroups

func (r *Renderer) RenderVisibleObjectGroups() error

RenderVisibleObjectGroups renders all visible object groups

func (*Renderer) SaveAsGif

func (r *Renderer) SaveAsGif(w io.Writer, options *gif.Options) error

SaveAsGif writes rendered layers as GIF image to provided writer.

func (*Renderer) SaveAsJpeg

func (r *Renderer) SaveAsJpeg(w io.Writer, options *jpeg.Options) error

SaveAsJpeg writes rendered layers as JPEG image to provided writer.

func (*Renderer) SaveAsPng

func (r *Renderer) SaveAsPng(w io.Writer) error

SaveAsPng writes rendered layers as PNG image to provided writer.

func (*Renderer) UseTilesetCache added in v1.2.0

func (r *Renderer) UseTilesetCache(tilesetCache *TilesetCache)

UseTilesetCache is used to set a shared TilesetCache

type RendererEngine

type RendererEngine interface {
	Init(m *tiled.Map)
	GetFinalImageSize() (int, int)
	GetTileGeometry(x, y int, tile *tiled.LayerTile) ebiten.GeoM
}

RendererEngine helps compute the tile geometries

type TilesetCache added in v1.2.0

type TilesetCache struct {
	// contains filtered or unexported fields
}

TilesetCache is used to share tileset images between multiple renderers

func NewTilesetCache added in v1.2.0

func NewTilesetCache(fs fs.FS) *TilesetCache

NewTilesetCache creates a TilesetCache with an optional filesystem (pointing to an embedded tiled project)

func (*TilesetCache) GetTileImage added in v1.2.0

func (t *TilesetCache) GetTileImage(tile *tiled.LayerTile) (image.Image, error)

GetTileImage finds a SubImage from cache

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL