Catalyze 0.1.0-alpha.4
Suggested Alternatives
This is a prerelease version of Catalyze.
dotnet add package Catalyze --version 0.1.0-alpha.4
NuGet\Install-Package Catalyze -Version 0.1.0-alpha.4
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="Catalyze" Version="0.1.0-alpha.4" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Catalyze --version 0.1.0-alpha.4
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Catalyze, 0.1.0-alpha.4"
#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 Catalyze as a Cake Addin #addin nuget:?package=Catalyze&version=0.1.0-alpha.4&prerelease // Install Catalyze as a Cake Tool #tool nuget:?package=Catalyze&version=0.1.0-alpha.4&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Catalyze
A thin but opinionated abstraction layer to write Vulkan Code in C# (using Silk.NET) with fewer boilerplate code. (work in progress, see Examples folder for some examples)
Get to the Triangle in about 40 lines of code:
using Catalyze;
using Catalyze.Allocation;
using Catalyze.Applications;
using Catalyze.Pipeline;
using Silk.NET.Windowing;
using TriangleExample;
var builder = Application.CreateBuilder();
builder.Services.AddWindowing(WindowOptions.DefaultVulkan);
builder.Services.RegisterSingleton<IAllocator, PassthroughAllocator>();
var app = builder.Build();
app.UseVulkan(new GraphicsDeviceCreateOptions());
app.AttachLayer<ExampleAppLayer>();
app.Run();
app.Dispose();
namespace TriangleExample
{
internal class ExampleAppLayer : IAppLayer
{
private Renderer _renderer = null!;
private ShaderEffect _shaderEffect;
private ShaderPass _shaderPass;
public void OnAttach()
{
_renderer = Application.GetInstance().GetModule<Renderer>()!;
_shaderEffect = ShaderEffect.BuildEffect(_renderer.Device.VkDevice, "./Shaders/triShader.vert.spv",
"./Shaders/triShader.frag.spv", null);
var passInfo = ShaderPassInfo.Default();
_shaderPass = new ShaderPass(_renderer.Device.VkDevice, _shaderEffect, passInfo, default, _renderer.RenderPass);
}
public void OnUpdate(double deltaTime)
{
_renderer.CurrentCommandBuffer.BindGraphicsPipeline(_shaderPass);
_renderer.CurrentCommandBuffer.Draw(3, 1, 0, 0);
}
public void OnDetach()
{
_shaderEffect.Dispose();
_shaderPass.Dispose();
}
}
}
There are currently examples for:
- Triangle Example
- ImGui Example
- Compute Shader Example
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net7.0 is compatible. 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.
-
net7.0
- ImGui.NET (>= 1.89.7.1)
- Silk.NET.Input (>= 2.17.1)
- Silk.NET.Input.Extensions (>= 2.17.1)
- Silk.NET.Vulkan (>= 2.17.1)
- Silk.NET.Vulkan.Extensions.EXT (>= 2.17.1)
- Silk.NET.Vulkan.Extensions.KHR (>= 2.17.1)
- Silk.NET.Windowing (>= 2.17.1)
- SkiaSharp (>= 2.88.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated | |
---|---|---|---|
0.1.0-alpha.4 | 113 | 9/7/2023 | |
0.1.0-alpha.3 | 111 | 9/6/2023 | |
0.1.0-alpha.2 | 102 | 9/4/2023 | |
0.1.0-alpha.1 | 97 | 9/4/2023 |