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

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

example/example.dart

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

// Example extracted component for the render world
class ExtractedSprite with ExtractedData {
  final double x;
  final double y;
  final int textureId;

  const ExtractedSprite({
    required this.x,
    required this.y,
    required this.textureId,
  });
}

// Game world components
class Position {
  double x, y;
  Position(this.x, this.y);
}

class Sprite {
  final int textureId;
  Sprite(this.textureId);
}

// Extractor copies data from main world to render world
class SpriteExtractor extends Extractor {
  @override
  void extract(World mainWorld, RenderWorld renderWorld) {
    for (final (_, pos, sprite)
        in mainWorld.query2<Position, Sprite>().iter()) {
      renderWorld.spawn().insert(ExtractedSprite(
            x: pos.x,
            y: pos.y,
            textureId: sprite.textureId,
          ));
    }
  }
}

void main() {
  final world = World();
  final renderWorld = RenderWorld();

  // Register extractors as a resource
  final extractors = Extractors()..register(SpriteExtractor());
  world.insertResource(extractors);

  // Spawn a game entity
  world.spawn()
    ..insert(Position(100, 200))
    ..insert(Sprite(1));

  // Extract to render world (happens each frame)
  final extractSystem = ExtractSystem();
  extractSystem.run(world, renderWorld);

  // Query render world for drawing
  for (final (_, sprite) in renderWorld.query1<ExtractedSprite>().iter()) {
    // ignore: avoid_print
    print('Draw sprite ${sprite.textureId} at (${sprite.x}, ${sprite.y})');
  }
}
0
likes
0
points
641
downloads

Publisher

verified publisherfledge-framework.dev

Weekly Downloads

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

Homepage
Repository (GitHub)
View/report issues

Topics

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

License

unknown (license)

Dependencies

fledge_ecs, meta

More

Packages that depend on fledge_render