Panda3D.Framework.Scheduling 0.1.0-preview.13

This is a prerelease version of Panda3D.Framework.Scheduling.
dotnet add package Panda3D.Framework.Scheduling --version 0.1.0-preview.13
                    
NuGet\Install-Package Panda3D.Framework.Scheduling -Version 0.1.0-preview.13
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Panda3D.Framework.Scheduling" Version="0.1.0-preview.13" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Panda3D.Framework.Scheduling" Version="0.1.0-preview.13" />
                    
Directory.Packages.props
<PackageReference Include="Panda3D.Framework.Scheduling" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Panda3D.Framework.Scheduling --version 0.1.0-preview.13
                    
#r "nuget: Panda3D.Framework.Scheduling, 0.1.0-preview.13"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Panda3D.Framework.Scheduling@0.1.0-preview.13
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Panda3D.Framework.Scheduling&version=0.1.0-preview.13&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Panda3D.Framework.Scheduling&version=0.1.0-preview.13&prerelease
                    
Install as a Cake Tool

Panda3D.Framework.Scheduling

The gameplay-facing scheduling and timing seams, distinct from the host pump. IFrameScheduler replaces taskMgr with explicit sort ordering and disposable handles; IGameClock wraps the engine's global clock; and this package owns clock configuration (pacing and which source ticks the clock) that the host loop relies on. Replaces direct's taskMgr / doMethodLater and globalClock.

Provides

  • AddScheduler() — registers IFrameScheduler (and an IGameClock for it to read).
  • AddClock(o => …) — configures clock pacing and ticking via ClockOptions, and registers IGameClock.
  • IFrameSchedulerAddFrameTask, AddTimed (doMethodLater), AddFixedStep(hz, step) (deterministic fixed-timestep accumulator), DelayFrames(n); each registration returns a disposable IScheduledTask.
  • IGameClock — read-only Dt / FrameTime / RealTime / FrameCount (the contract lives in Abstractions; the working implementation is here).
  • ClockOptionsLimitFrameRate / MaxFps / MaxDt / TickClock.
  • AddFrameTask(name, sort, …) (on IServiceCollection) — setup-time native sorted-task registration bracketed to the host lifetime.
  • PandaFrameTask — the low-level primitive: a managed callback registered as a native sorted task on a chain at an explicit sort (advanced).
builder.Services.AddClock(o => { o.LimitFrameRate = true; o.MaxFps = 60; });
builder.Services.AddScheduler();

// later, from a coroutine or resolved service:
var scheduler = app.Services.GetRequiredService<IFrameScheduler>();
using var tick = scheduler.AddFrameTask(ctx =>
{
    Advance(ctx.Dt);
    return TaskResult.Continue;
}, sort: FrameSlots.Gameplay);   // dispose the handle to remove the task

The global clock advances once per epoch from exactly one source: RenderFrame in rendered builds (Rendering registers an IClockTickSource), or the "default" task chain headlessly (ClockOptions.TickClock, on by default). AddClock won't enable chain ticking when a tick source is already present, avoiding a double-advance. Scheduler tasks and the host's setup-time tasks are the same native task-manager tasks, so they share one FrameSlots ordering space.

Part of Panda3D.Framework; the Panda3D.Framework umbrella package pulls in every library plus the bindings and native runtimes.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (9)

Showing the top 5 NuGet packages that depend on Panda3D.Framework.Scheduling:

Package Downloads
Panda3D.Framework.Events

The C#/Panda event seam: the per-frame queue-drain pump replacing direct's messenger, plus INamedEventBus and IObservable notifications.

Panda3D.Framework.Rendering

The Panda3D rendering chain as DI services: engine/pipe/GSG, per-output views (window or offscreen), camera rigs, the 2D overlay, and the igLoop render task.

Panda3D.Framework.Intervals

Cutscene/tween timelines on Panda's native CInterval system: Sequence/Parallel/Lerp, node lerps, managed intervals, awaitable playback.

Panda3D.Framework.Audio

Audio lifecycle, 3-D attachment tracking, and awaitable sound completion over Panda's native AudioManager and AudioSound bindings.

Panda3D.Framework.Particles

Panda's built-in particle system as a framework subsystem: a managed ParticleEffect and a timeline ParticleInterval over the native ParticleSystemManager.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-preview.13 109 8/3/2026
0.1.0-preview.11 114 8/1/2026
0.1.0-preview.5 99 7/20/2026