fledge_render 0.1.10 copy "fledge_render: ^0.1.10" to clipboard
fledge_render: ^0.1.10 copied to clipboard

Core render infrastructure for Fledge - render graph, two-world architecture, render layers, and render scheduling.

fledge_render #

Core render infrastructure for Fledge - render graph, two-world architecture, and render scheduling.

pub package

Features #

  • Two-World Architecture: Separate game logic from rendering
  • Render World: GPU-optimized data structures rebuilt each frame
  • Extractors: Transform game data to render data
  • Render Layers: Organize rendering into composable layers
  • Render Graph: Modular render pipeline definition
  • RenderPlugin: Automatic extraction system setup

Installation #

dependencies:
  fledge_render: ^0.1.0

Quick Start #

Use RenderPlugin to set up the extraction system automatically:

import 'package:fledge_ecs/fledge_ecs.dart';
import 'package:fledge_render/fledge_render.dart';

void main() {
  final app = App()
    .addPlugin(TimePlugin())
    .addPlugin(RenderPlugin());  // Sets up Extractors, RenderWorld, and extraction system

  // Register your extractors
  final extractors = app.world.getResource<Extractors>()!;
  extractors.register(SpriteExtractor());
  extractors.register(TilemapExtractor());

  app.run();
}

The RenderPlugin provides:

  • Extractors resource for registering component extractors
  • RenderWorld resource for storing extracted render data
  • RenderExtractionSystem that runs at CoreStage.last

Two-World Architecture #

Fledge separates game logic (Main World) from rendering (Render World):

// Main World: Game entities with components
world.spawn()
  ..insert(Position(100, 200))
  ..insert(Sprite(texture: heroTexture));

// Extractors copy data to Render World each frame
class SpriteExtractor extends Extractor {
  @override
  void extract(World mainWorld, RenderWorld renderWorld) {
    for (final (_, sprite, transform) in
        mainWorld.query2<Sprite, GlobalTransform2D>().iter()) {
      renderWorld.spawn().insert(ExtractedSprite(
        texture: sprite.texture,
        transform: transform.matrix,
      ));
    }
  }
}

Documentation #

See the Two-World Architecture Guide for detailed documentation.

License #

Apache 2.0 - See LICENSE for details.

0
likes
160
points
611
downloads

Publisher

verified publisherfledge-framework.dev

Weekly Downloads

Core render infrastructure for Fledge - render graph, two-world architecture, render layers, and render scheduling.

Homepage
Repository (GitHub)
View/report issues
Contributing

Topics

#ecs #game-engine #rendering #game-development

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

fledge_ecs, flutter, meta, vector_math

More

Packages that depend on fledge_render