# Functions
ImageToNRGBA takes a given `image.Image` and converts it into an `image.NRGBA`.
LoadedSprite loads the texture-reference from `engo.Files`, and wraps it in a `*Texture`.
LoadShader takes a Vertex-shader and Fragment-shader, compiles them and attaches them to a newly created glProgram.
NewAnimationComponent creates an AnimationComponent containing all given drawables.
NewAsymmetricSpritesheetFromFile creates a new AsymmetricSpriteSheet from a file name.
NewAsymmetricSpritesheetFromTexture creates a new AsymmetricSpriteSheet from a TextureResource.
NewImageObject creates a new ImageObject given the image.NRGBA reference.
NewKeyboardScroller creates a new KeyboardScroller system using the provided scrollSpeed, and horizontal and vertical axes.
NewSpritesheetFromFile is a simple handler for creating a new spritesheet from a file textureName is the name of a texture already preloaded with engo.Files.Add.
NewSpritesheetFromTexture creates a new spritesheet from a texture resource.
NewSpritesheetWithBorderFromFile creates a new spritesheet from a file This sheet has sprites of a uniform width and height, but also have borders around each sprite to prevent bleeding over.
NewSpritesheetWithBorderFromTexture creates a new spritesheet from a texture resource.
NewTextureResource sends the image to the GPU and returns a `TextureResource` for easy access.
NewTextureSingle sends the image to the GPU and returns a `Texture` with a viewport for single-sprite images.
SetBackground sets the OpenGL ClearColor to the provided color.
UploadTexture sends the image to the GPU, to be kept in GPU RAM.
# Constants
Angle is the angle the camera is rotated by.
ClampToBorder stretches the texture to the border of the viewpport.
ClampToEdge stretches the texture to the edge of the viewport.
EdgeScrollerPriority is the priority for the EdgeScrollerSystem.
EntityScrollerPriority is the priority for the EntityScrollerSystem.
FilterLinear is a bilinear interpolation algorithm.
FilterNearest is a simple nearest neighbor algorithm.
KeyboardScrollerPriority is the priority for the KeyboardScrollerSystem.
MirroredRepeat repeats a mirror image of the texture until the border of the viewport.
MouseRotatorPriority is the priority for the MouseRotatorSystem.
MouseZoomerPriority is the priority for he MouseZoomerSystem.
NoRepeat does not repeat the texture.
RenderSystemPriority is the priority of the RenderSystem.
Repeat repeats the texture until the border of the viewport.
TriangleIsosceles indicates a Triangle where two sides have equal length.
TriangleRight indicates a Triangles where one angle is at 90 degrees.
XAxis is the x-axis of the camera.
YAxis is the y-axis of the camera.
ZAxis is the z-axis of the camera.
# Variables
CameraBounds is the bounding box of the camera.
DefaultShader is the shader picked when no other shader is used.
HUDShader is the shader used for HUD elements.
LegacyHUDShader is the shader used for drawing shapes on the HUD.
LegacyShader is the shader used for drawing shapes.
MaxZoom is the farthest the camera position can be relative to the rendered surface.
MinZoom is the closest the camera position can be relative to the rendered surface.
TextHUDShader is the shader used to draw fonts from a FontAtlas on the HUD.
TextShader is the shader used to draw fonts from a FontAtlas.
UnicodeCap is the amount of unicode characters the fonts will be able to use, starting from index 0.
# Structs
Animation represents properties of an animation.
AnimationComponent tracks animations of an entity it is part of.
AnimationSystem tracks AnimationComponents, advancing their current animation.
CameraMessage is a message that can be sent to the Camera (and other Systemers), to indicate movement.
CameraSystem is a System that manages the state of the virtual camera.
Circle is a basic circular form; the dimensions / radius are controlled via the `SpaceComponent`.
ComplexTriangles is a complex form, made out of triangles.
EdgeScroller is a System that allows for scrolling when the cursor is near the edges of the window.
EntityScroller scrolls the camera to the position of a entity using its space component.
Font keeps track of a specific Font.
A FontAtlas is a representation of some of the Font characters, as an image.
FontResource is a wrapper for `*truetype.Font` which is being passed by the the `engo.Files.Resource` method in the case of `.ttf` files.
FragmentShaderCompilationError is returned whenever the `LoadShader` method was unable to compile your Fragment-shader (GLSL).
ImageLayer contains a list of its images plus all default Tiled attributes.
ImageObject is a pure Go implementation of a `Drawable`.
KeyboardScroller is a System that allows for scrolling when certain keys are pressed.
Level is a parsed TMX level containing all layers and default Tiled attributes.
MouseRotator is a System that allows for rotating the camera based on pressing down the scroll wheel.
MouseZoomer is a System that allows for zooming when the scroll wheel is used.
NewCameraMessage is a message that is sent out whenever the camera system changes, such as when a new world is created or scenes are switched.
NotAnimationComponent is used to flag an entity as not in the AnimationSystem even if it has the proper components.
NotRenderComponent is used to flag an entity as not in the RenderSystem even if it has the proper components.
Object is a standard TMX object with all its default Tiled attributes.
ObjectLayer contains a list of its standard objects as well as a list of all its polyline objects.
Property is any custom property.
Rectangle is a basic rectangular form; the dimensions are controlled via the `SpaceComponent`.
RenderComponent is the component needed to render an entity.
RenderSystem is the system that draws entities on the OpenGL surface.
SpriteRegion holds the position data for each sprite on the sheet.
Spritesheet is a class that stores a set of tiles from a file, used by tilemaps and animations.
Text represents a string drawn onto the screen, as used by the `TextShader`.
Texture represents a texture loaded in the GPU RAM (by using OpenGL), which defined dimensions and viewport.
TextureResource is the resource used by the RenderSystem.
Tile represents a tile in the TMX map.
TileLayer contains a list of its tiles plus all default Tiled attributes.
TMXCircle is a circle from the tmx map TODO: create a tile instead using the Shape (maybe a render component?).
TMXLine is a line from the tmx map TODO: create a tile or render coponent instead?.
TMXResource contains a level created from a Tile Map XML.
TMXText is text associated with a Tiled Map.
Triangle is a basic triangular form; the "point" of the triangle is pointing to the top.
VertexShaderCompilationError is returned whenever the `LoadShader` method was unable to compile your Vertex-shader (GLSL).
# Interfaces
Animationable is the required interface for AnimationSystem.AddByInterface method.
AnimationFace allows typesafe Access to an Annonymous child AnimationComponent.
Drawable is that which can be rendered to OpenGL.
Image holds data and properties of an .jpg, .gif, or .png file.
NotAnimationable is an interface used to flag an entity as not in the AnimationSystem even if it has the proper components.
NotRenderable is an interface used to flag an entity as not in the Rendersystem even if it has the proper components.
Renderable is the required interface for the RenderSystem.AddByInterface method.
RenderFace allows typesafe access to an anonymous RenderComponent.
Shader when implemented can be used in the RenderSystem as an OpenGl Shader.
# Type aliases
CameraAxis is the axis at which the Camera can/has to move.
TextureRepeating is the method used to repeat a texture in OpenGL.
TriangleType is the type of triangle: Right or Isosceles.
ZoomFilter is a filter used when zooming in or out of a texture.