Repository navigation
Releases: leftger/embedded-3dgfx
Releases · leftger/embedded-3dgfx
Release list
v0.7.2
v0.7.1
v0.7.0
v0.6.0
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::Foonow 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/EndianCorrectionconvenience re-export fromembedded-graphics-framebufis gone — addembedded-graphics-framebufas a direct dependency if you use these. - The Q16.16 fixed-point re-export (
embedded_3dgfx::{Q16, to_q16, from_q16, ...}) is gone — import fromembedded-dsp'sfixed_pointmodule directly (requires thedsp/fixed-transformfeature and anembedded-dspdependency). embedded-dspbumped0.2→0.4.0(restores thefixed-point/quaternionfeature split that a0.3.0refactor had briefly dropped).
Highlights
SSR water shader & retro effects
WaterReflectConfig,WaterReflectShader— screen-space reflective water with animated palette cyclingAnimatedPalette,TextureLodConfiginretro- New
water_reflection_ssr_demoexample
Picking & half-width scanout
PickQuery,PickResult,execute_commands_with_pickinginrenderer— screen-space mesh pickingHalfWidthDrawTargetAdapter,scanout_half_width_buffer,scanout_half_width_rowinbridgeDepthInterpolationMode,InterlaceField,draw_zbuffered_with_optionsindraw— interlaced/depth-interpolation control on the z-buffered path
HUD & sprite compositing
HudElement,HudLayer,Sprite2D,SpriteBlendModeinhud- New
hybrid_hud_sprite_demoexample
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
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,WaitTransferFutureSwapChain—present_async,present_region_async,wait_for_vsync_async,try_presentAsyncDmaTransferon display backend transfer tokens — standardcore::future::Future, no pinned wakers required- Works with Embassy, RTIC, bare-metal executors, or any
no_stdasync runtime
Optional Embassy feature
- Enable with
embassyfeature (embassy-time+embassy-sync) EmbassyWaitTransferandFrameClock
Rendering & platform (0.4.x)
- 6-plane frustum culling and vertex pre-transform cache
- DMA2D backend improvements
- Fixed
no_stdbuild 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.