render

package
v0.0.0-...-b6a91a6 Latest Latest
Warning

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

Go to latest
Published: Apr 7, 2024 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() image.Rectangle

GetFinalImageSize returns final image size based on map data.

func (*OrthogonalRendererEngine) GetTilePosition

func (e *OrthogonalRendererEngine) GetTilePosition(x, y int) image.Rectangle

GetTilePosition returns tile position in image.

func (*OrthogonalRendererEngine) Init

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

Init initializes rendering engine with provided map options.

func (*OrthogonalRendererEngine) RotateTileImage

func (e *OrthogonalRendererEngine) RotateTileImage(tile *tiled.LayerTile, img image.Image) image.Image

RotateTileImage rotates provided tile layer.

type Renderer

type Renderer struct {
	Result *image.NRGBA // 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.

type RendererEngine

type RendererEngine interface {
	Init(m *tiled.Map)
	GetFinalImageSize() image.Rectangle
	RotateTileImage(tile *tiled.LayerTile, img image.Image) image.Image
	GetTilePosition(x, y int) image.Rectangle
}

RendererEngine is the interface implemented by objects that provide rendering engine for Tiled maps.

Jump to

Keyboard shortcuts

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