Skip to content

Releases: leftger/embedded-3dgfx

v0.7.2

Choose a tag to compare

@github-actions github-actions released this 24 Sep 04:09
b53d5e7

What's Changed

Full Changelog: v0.7.1...v0.7.2

v0.7.1

Choose a tag to compare

@github-actions github-actions released this 18 Sep 17:37
1b13349

Full Changelog: v0.7.0...v0.7.1

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 18 Sep 17:26
a38d892

Full Changelog: v0.6.0...v0.7.0

v0.6.0

Choose a tag to compare

@leftger leftger released this 24 Aug 06:24

Summary

Screen-space reflective water, a picking API, and a leaner public API surface: every crate-root re-export is gone in favor of explicit module paths.

crates.io: https://crates.io/crates/embedded-3dgfx/0.6.0

⚠️ Breaking changes

  • All crate-root re-exports removed. Every type/function previously available as embedded_3dgfx::Foo now lives only at its module path, e.g. embedded_3dgfx::engine::K3dengine, embedded_3dgfx::camera::Camera, embedded_3dgfx::retro::RetroStyle. Nothing was deleted — this is a path change only. Update imports accordingly (use embedded_3dgfx::{engine::K3dengine, camera::Camera, ...}).
  • The FrameBuf/DMACapableFrameBufferBackend/EndianCorrectedBuffer/EndianCorrection convenience re-export from embedded-graphics-framebuf is gone — add embedded-graphics-framebuf as a direct dependency if you use these.
  • The Q16.16 fixed-point re-export (embedded_3dgfx::{Q16, to_q16, from_q16, ...}) is gone — import from embedded-dsp's fixed_point module directly (requires the dsp/fixed-transform feature and an embedded-dsp dependency).
  • embedded-dsp bumped 0.2 → 0.4.0 (restores the fixed-point/quaternion feature split that a 0.3.0 refactor had briefly dropped).

Highlights

SSR water shader & retro effects

  • WaterReflectConfig, WaterReflectShader — screen-space reflective water with animated palette cycling
  • AnimatedPalette, TextureLodConfig in retro
  • New water_reflection_ssr_demo example

Picking & half-width scanout

  • PickQuery, PickResult, execute_commands_with_picking in renderer — screen-space mesh picking
  • HalfWidthDrawTargetAdapter, scanout_half_width_buffer, scanout_half_width_row in bridge
  • DepthInterpolationMode, InterlaceField, draw_zbuffered_with_options in draw — interlaced/depth-interpolation control on the z-buffered path

HUD & sprite compositing

  • HudElement, HudLayer, Sprite2D, SpriteBlendMode in hud
  • New hybrid_hud_sprite_demo example

Rasterization precision & perf

  • Sub-pixel 16.16 center-precision rasterization
  • Optimized fixed-transform projection path

New content

  • Star Striker — a 3D retro space rail shooter example
  • Blender asset exporter add-on (tools/blender_addon) + docs

Upgrade

embedded-3dgfx = "0.6.0"

If you import from the crate root today (use embedded_3dgfx::K3dengine;), switch to the module path (use embedded_3dgfx::engine::K3dengine;) — see Breaking changes above.

v0.4.1

Choose a tag to compare

@leftger leftger released this 30 Jul 18:35

Summary

Async swapchain present APIs, optional Embassy integration, and continued rendering optimizations.

crates.io: https://crates.io/crates/embedded-3dgfx/0.4.1

Highlights

Async DMA present (executor-agnostic)

  • CompletionSlot, WaitTransfer, WaitTransferFuture
  • SwapChain — present_async, present_region_async, wait_for_vsync_async, try_present
  • AsyncDmaTransfer on display backend transfer tokens — standard core::future::Future, no pinned wakers required
  • Works with Embassy, RTIC, bare-metal executors, or any no_std async runtime

Optional Embassy feature

  • Enable with embassy feature (embassy-time + embassy-sync)
  • EmbassyWaitTransfer and FrameClock

Rendering & platform (0.4.x)

  • 6-plane frustum culling and vertex pre-transform cache
  • DMA2D backend improvements
  • Fixed no_std build compatibility for extern Rust function modules
  • CI/docs fixes; embedded-dsp resolved from crates.io

Features

Feature Default Description
triple-buffering off Triple-buffered swapchain APIs
embassy off Embassy wakers + FrameClock

Upgrade

embedded-3dgfx = "0.4.1"

Pair with embedded-gui 0.1.5 for shared async present patterns and GUI dirty-region helpers.