Expand description
rendering subsystem via wgpu
decoupled from game logic. handles 2D sprite and text rendering.
§rendering model
game code does not touch the GPU directly. two paths feed the renderer:
- components (preferred) — spawn entities with
SpriteorTextalongside aTransform. built-in systems enqueue them automatically every frame. - immediate mode (HUD / debug / one-shots) — call
draw_sprite,draw_rect,draw_line,draw_textonRenderQueuefrom inside a system. useful when the thing you’re drawing isn’t a persistent entity.
[DrawCommand] / [DrawKind] / RenderQueue::push are internal plumbing
and not part of the public contract — they’re hidden from rustdoc.
§example: component-driven
ⓘ
use lunar::prelude::*;
fn spawn_player(mut commands: Commands, mut assets: ResMut<AssetServer>) {
commands.spawn((
Transform::from_xy(100.0, 100.0),
Sprite::new(assets.load_texture("player.png")),
));
}§example: immediate mode
ⓘ
fn draw_hud(mut queue: ResMut<RenderQueue>) {
queue.draw_rect(Vec2::ZERO, Vec2::new(200.0, 40.0), Color::rgba(0.0, 0.0, 0.0, 0.6));
}Modules§
- atlas
- texture atlas integration for the render system.
- layers
- built-in layer constants for common rendering needs. lower values are drawn first (behind), higher values are drawn last (in front).
- textbox
- textbox component for rendering text with typewriter animation
Structs§
- Camera
- camera resource, affects how the render queue is projected.
- Camera
Follow2d - drives the camera to track a target entity each frame.
- Color
Tint - draws a semi-transparent colored overlay each frame.
- Debug
Overlay - debug overlay for displaying runtime stats.
- Draw
Context - drawing context for immediate mode rendering.
- Post
Process Stack - ordered stack of post-processing effects applied each frame after the main render.
- Render
Config - rendering configuration.
- Render
Engine - render engine resource, owns all GPU rendering state.
- Render
Info - render info resource, tracks rendering statistics.
- Render
Plugin - render plugin, registers render systems and resources.
- Render
Queue - render queue resource, collects draw commands each frame.
- Render
Target Id - opaque identifier for an offscreen render target created by
RenderEngine::create_render_target. - Render
Target Store - maps
RenderTargetId→Handle<Texture>so game code can retrieve the drawable texture handle for a render target without keeping it separately. - Screen
Flash - draws a fullscreen colored overlay each frame.
- Screen
Shake - camera shake state. insert as a resource to enable shaking.
- Sprite
- renderable 2D sprite component.
- Sprite
Params - parameters for drawing a transformed sprite.
used with
RenderQueue::draw_sprite_transformed_on_layerto avoid too many function arguments. - Text
- renderable text component.
- YSort
- marker component that opts a sprite into y-sort ordering.
Traits§
- Post
Effect - trait for a custom post-processing effect applied each frame after the main render.
- Render
Pass - trait for custom render passes that can be executed by the render engine.