Chroma 0.64.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Chroma --version 0.64.0                
NuGet\Install-Package Chroma -Version 0.64.0                
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="Chroma" Version="0.64.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Chroma --version 0.64.0                
#r "nuget: Chroma, 0.64.0"                
#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.
// Install Chroma as a Cake Addin
#addin nuget:?package=Chroma&version=0.64.0

// Install Chroma as a Cake Tool
#tool nuget:?package=Chroma&version=0.64.0                

Chroma Framework

Chroma is a 2D game development framework focused on quick prototyping.

Change log

Changes in release 0.64.0
  • Game.LoadContent() callback has been refactored to Game.Initialize(IContentPipeline)
  • Game.Content property has been removed. It has been replaced by Game.Initialize(IContentPipeline).
  • HookPoint.LoadContent has been renamed to HookPoint.Initialize.
  • Certain prefix hook methods may now mutate input callback arguments if used with ref modifier.
  • Fixed a bug where initialization hook point was never invoked.
Changes in release 0.63.2
  • Linux natives will now work properly with PulseAudio
Changes in release 0.63.1
  • Linux natives will now initialize properly.
Changes in release 0.63.0 [//! Broken on Linux !//]
  • Natives are now built automatically using GitHub Actions.
  • MacOS support is now ARM64 only. This might change in the future.
  • Updated SDL for all platforms to version 2.30.3
  • Updated FreeType for all platforms do version 2.13.2
  • Added FreeTypeException exception type to classify TTF rendering errors.
  • Added error checks for FreeType native call failures.
Changes in release 0.62.2
  • Window.SaveScreenshot(Stream) no longer destroys the stream after it's done taking a screenshot.
Changes in release 0.62.1
  • Actions returning values can now also use non-reference types.
Changes in release 0.62.0
  • Dispatcher was extended to allow execution of tasks from non-async callers.
  • Actions scheduled to run on main thread can now return values.
Changes in release 0.61.1
  • Game base class now implements IDisposable.
  • Game base class now exposes protected void OnDispose() that is called at the beginning of Dispose() method execution.
Changes in release 0.61.0
  • Added Vector2 and Vector3 constructors for Camera class.
  • Added a convenient way to cut a sub-texture out of a larger texture.
  • Removed obsolete overloads for RenderTo, WithCamera and Batch RenderContext calls.
Changes in release 0.60.1
  • Added extension methods overloading Rumble and RumbleTriggers for ControllerDriver allowing use of float values in range 0.0-1.0.
  • Updated SDL_gpu to draw pixel-perfect lines and rectangles, thanks to Avahe Kellenberger.
  • Linux native dependencies will now properly target the built-in SDL library instead of the system one.
  • Added RenderContext overloads for RenderTo, WithCamera and Batch aiming to reduce closure allocation on call. The old overloads are now obsolete and will be removed in release 0.61.

Usage

Simply reference this package and use the following template to get started:
GameCore.cs

using System.Numerics;
using Chroma;
using Chroma.Graphics;

namespace MyGame
{
  public class GameCore : Game
  {
    public GameCore()
      : base(new(false, false))
    {
    }

    protected override void Draw(RenderContext context)
      => context.DrawString("Hello, world!", new Vector2(16, 16));
  }
}

Program.cs

using System;

namespace MyGame
{
  static class Program
  {
    static void Main(string[] args)
      => new GameCore.Run();
  }
}

Examples of how to use Chroma's can be found in the example repository.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (6)

Showing the top 5 NuGet packages that depend on Chroma:

Package Downloads
Chroma.SabreVGA

VGA emulator for Chroma Framework to aid in creation of text-based games.

Chroma.Audio.Sfxr

Sfxr playback engine for Chroma Framework

Chroma.FlexTerm

Flexible terminal emulator based on the SabreVGA text engine.

Chroma.Shine

Various utilities that make life easier but don't quite fit into the core of Chroma Framework.

Chroma.Commander

Simple, comfortable and powerful debugging console for games made using Chroma Framework.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.65.1 108 10/31/2024
0.65.0 148 7/31/2024
0.64.0 182 5/27/2024
0.63.2 121 5/26/2024
0.63.1 114 5/13/2024
0.63.0 93 5/13/2024
0.62.2 175 3/9/2024
0.62.1 174 1/21/2024
0.62.0 126 1/21/2024
0.61.1 206 1/1/2024
0.61.0 351 9/9/2023
0.60.1 386 8/25/2023
0.60.0 463 8/9/2023
0.57.1 390 12/8/2022
0.57.0 479 8/23/2022
0.56.1 446 8/11/2022
0.56.0 568 8/8/2022
0.54.2 627 4/13/2022
0.54.1 486 4/1/2022
0.54.0 486 4/1/2022 0.54.0 is deprecated.
0.53.0 463 3/23/2022
0.52.2 498 2/17/2022
0.52.1 471 2/1/2022
0.52.0 717 1/6/2022
0.51.0 828 11/10/2021
0.50.0 932 10/6/2021
0.49.4 431 9/9/2021
0.49.3 430 9/9/2021
0.49.1 389 9/2/2021
0.49.0 369 8/31/2021
0.48.0 1,028 8/22/2021
0.47.0 370 8/12/2021
0.46.1 390 8/11/2021
0.46.0 375 8/10/2021
0.45.0 372 8/10/2021
0.44.0 384 7/25/2021
0.43.0 974 7/23/2021
0.42.0 401 7/19/2021
0.41.0 415 6/4/2021
0.40.1 822 3/24/2021
0.40.0 402 3/23/2021
0.39.1 394 3/22/2021
0.39.0 776 3/22/2021
0.38.1 885 3/10/2021
0.38.0 398 3/9/2021
0.37.4 785 3/4/2021
0.37.3 449 2/27/2021
0.37.2 388 2/25/2021
0.37.0 767 2/15/2021
0.36.0 394 2/13/2021
0.35.1 425 2/13/2021
0.35.0 425 2/13/2021
0.34.0 806 2/11/2021
0.33.0 429 2/9/2021
0.32.0 505 2/4/2021
0.31.0 446 1/26/2021
0.30.0 397 1/25/2021
0.29.0 420 1/24/2021
0.28.0 420 1/19/2021
0.27.3 835 12/22/2020
0.27.2 444 12/22/2020
0.27.1 438 12/16/2020
0.27.0 593 12/15/2020 0.27.0 is deprecated because it has critical bugs.
0.26.0 470 11/20/2020
0.25.0 451 11/12/2020
0.24.0 454 11/11/2020
0.23.5 553 11/2/2020
0.23.4 572 11/1/2020
0.23.2 474 11/1/2020
0.23.1 490 11/1/2020
0.23.0 535 11/1/2020
0.22.0 475 10/31/2020
0.21.2 970 10/21/2020
0.21.1 482 10/20/2020
0.21.0 1,034 10/14/2020
0.20.0 1,851 9/19/2020
0.19.0 511 9/18/2020
0.18.0 587 9/18/2020
0.17.1 748 7/29/2020
0.17.0 577 7/25/2020
0.16.2 583 7/19/2020
0.16.1 480 7/16/2020
0.16.0 528 7/14/2020
0.15.0 654 7/11/2020
0.14.0-alpha 395 6/30/2020
0.13.0-alpha 354 6/24/2020
0.12.0-alpha 392 6/23/2020
0.11.0-alpha 373 6/22/2020
0.10.0-alpha 357 6/21/2020
0.9.0-alpha 582 5/31/2020
0.8.1-alpha 379 5/28/2020
0.8.0-alpha 360 5/27/2020
0.7.0-alpha 397 5/25/2020
0.6.0-alpha 381 5/25/2020
0.5.0-alpha 390 5/23/2020
0.4.0-alpha 390 5/19/2020
0.3.2-alpha 390 5/16/2020
0.3.1-alpha 395 5/15/2020
0.3.0-alpha 349 5/12/2020
0.2.1-alpha 519 5/11/2020
0.2.0-alpha 361 5/10/2020
0.1.3-alpha 365 5/10/2020
0.1.2-alpha 374 5/10/2020
0.1.1-alpha 418 5/10/2020
0.1.0-alpha 395 5/10/2020