See the version list below for details.
dotnet add package Matyasf.Perlin --version 1.1.1
NuGet\Install-Package Matyasf.Perlin -Version 1.1.1
<PackageReference Include="Matyasf.Perlin" Version="1.1.1" />
paket add Matyasf.Perlin --version 1.1.1
#r "nuget: Matyasf.Perlin, 1.1.1"
// Install Matyasf.Perlin as a Cake Addin #addin nuget:?package=Matyasf.Perlin&version=1.1.1 // Install Matyasf.Perlin as a Cake Tool #tool nuget:?package=Matyasf.Perlin&version=1.1.1
Perlin (named from a bird) is a lightweight 2D graphics engine for .NET Core using Veldrid. It's well documented, has a simple architecture and is meant to be more as a base code for your engine than something that does everything out-of-the-box. Currently its working on Windows and OSX, in the near future I plan to get it work on Linux, Android and iOS.
- Thanks for Veldrid it automatically chooses the ideal rendering backend for your PC (Vulkan/Metal/OpenGL/DirectX..)
- Loads images via ImageSharp, so common formats (jpg, png, bmp, gif) are supported.
- Uses the display tree concept (see below) to render your scene.
- Mouse and keyboard handling code included.
- Desktop rendering using Veldrid and SDL2.
- Can display parts of image regions as a simple texture atlas support.
The display tree
Perlin puts the objects to render in a display tree similar to other rendering engines (HTML rendering, Android'd UI, Microsoft's WPF,..). The root of the display tree (called Stage) has children, these can also have children and so on creating a tree data structure. Every object in the display tree is a subclass of DisplayObject, here lie the common properties, like width, height, rotation,... Transformations in the display tree are cumulative, e.g. if you set the transparency/rotation/position/scale of an object its every descendant (child, grandchild,..) will be affected as well.
The Z-order (what is rendered in front of what) is determined based on the position of the display tree. An object will be always behind its children; the order between the children is that the first child will be in the back and the last one in the front.
Copyright 2020- Matyas Forian Szabo and code contributors
Licensed under the Apache License, Version 2.0 (the "License"); you may not use files in this project except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|.NET||net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows|
- SixLabors.ImageSharp (>= 1.0.1)
- SixLabors.ImageSharp.Drawing (>= 1.0.0-beta0010)
- Veldrid (>= 4.8.0)
- Veldrid.ImageSharp (>= 4.8.0)
- Veldrid.SPIRV (>= 1.0.13)
- Veldrid.StartupUtilities (>= 4.8.0)
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
Add ability to specify own GraphicsDeviceOptions on startup