public class SpriteRenderer

  1. Object
  2. SpriteRenderer

ImplementsRenderer

Draws a Scene of Sprites on the GPU, implementing the com.codename1.gpu com.codename1.gpu.Renderer contract so it can be hosted in a com.codename1.gpu.RenderView (which GameView does for you).

Each frame it sets up an orthographic camera that maps one world unit to one pixel with the origin at the top left and y pointing down, then draws every visible sprite as a textured quad: a shared unit quad mesh scaled/rotated/ translated by a per sprite model matrix, with a com.codename1.gpu.Material.Type#SPRITE material (alpha blended, depth test off) whose texture is the sprite’s image and whose color is the sprite’s tint. Images are uploaded to com.codename1.gpu.Textures lazily and cached.

Use it directly for a custom host, or let GameView create and drive one:

SpriteRenderer r = new SpriteRenderer();
r.getScene().add(mySprite);
RenderView view = new RenderView(r).setContinuous(true);
form.add(BorderLayout.CENTER, view);

Constructors

public SpriteRenderer()Creates a renderer with a fresh empty Scene.
public SpriteRenderer(Scene scene)Creates a renderer drawing the given scene.

Methods

public Scene getScene()The scene this renderer draws; add and remove sprites here.
public GameCamera getCamera()The camera this renderer draws through.
public Light getLight()The directional light used to shade lit 3D Models.
public void addModel(Model model)Adds a 3D model to be drawn (in perspective mode) alongside the sprites.
public void removeModel(Model model)Removes a previously added 3D model.
public int getModelCount()The number of 3D models in this renderer.
public void setClearColor(int argb)The ARGB color the framebuffer is cleared to each frame.
public int getClearColor()
public void onInit(GraphicsDevice device)Invoked once after the GPU context and its GraphicsDevice have been created and are current.
public void onResize(GraphicsDevice device, int width, int height)Invoked when the drawable surface size changes, including once after initialization.
public void onFrame(GraphicsDevice device)Invoked once per frame to render the scene.
public void onDispose(GraphicsDevice device)Invoked when the GPU context is being torn down (for example when the view is removed from the UI).

Inherited methods

Constructor details

SpriteRenderer

public SpriteRenderer()
Creates a renderer with a fresh empty Scene.

SpriteRenderer

public SpriteRenderer(Scene scene)
Creates a renderer drawing the given scene.

Method details

getScene

public Scene getScene()
The scene this renderer draws; add and remove sprites here.

getCamera

public GameCamera getCamera()
The camera this renderer draws through. Leave it in its default 2D mode for a classic sprite game, or put it in GameCamera#MODE_PERSPECTIVE to render the sprites as billboards in a 3D world.

getLight

public Light getLight()
The directional light used to shade lit 3D Models. Configure it with com.codename1.gpu.Light#setDirection(float, float, float) etc.

addModel

public void addModel(Model model)
Adds a 3D model to be drawn (in perspective mode) alongside the sprites.

removeModel

public void removeModel(Model model)
Removes a previously added 3D model.

getModelCount

public int getModelCount()
The number of 3D models in this renderer.

setClearColor

public void setClearColor(int argb)
The ARGB color the framebuffer is cleared to each frame.

getClearColor

public int getClearColor()

onInit

public void onInit(GraphicsDevice device)
Invoked once after the GPU context and its GraphicsDevice have been created and are current. Allocate buffers, textures and materials here.

Parameters

device GraphicsDevice
the graphics device bound to this view

onResize

public void onResize(GraphicsDevice device, int width, int height)
Invoked when the drawable surface size changes, including once after initialization. Reconfigure projection matrices and viewports here.

Parameters

device GraphicsDevice
the graphics device bound to this view
width int
the new drawable width in pixels
height int
the new drawable height in pixels

onFrame

public void onFrame(GraphicsDevice device)
Invoked once per frame to render the scene. Issue draw calls against the supplied device.

Parameters

device GraphicsDevice
the graphics device bound to this view

onDispose

public void onDispose(GraphicsDevice device)
Invoked when the GPU context is being torn down (for example when the view is removed from the UI). Release any resources that are not owned by the device. May be invoked with a null device when the context was lost.

Parameters

device GraphicsDevice
the graphics device bound to this view, or null if the context was already lost