Skip to content

Commit

Permalink
Package README
Browse files Browse the repository at this point in the history
  • Loading branch information
IsaacMarovitz committed Mar 18, 2024
1 parent 5db4562 commit 06f4d5b
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 1 deletion.
19 changes: 19 additions & 0 deletions Package_README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
## Why?

The .NET ecosystem is very much lacking a good Metal binding package. Existing options are outdated or don't integrate well into cross-platform projects. This project aims to be a complete, up-to-date package that stays true to the original API while making the API easy to use and integrate into C#.

## What can you make with it?

Progress is underway to build a full set of working reimplementations of the metal-cpp samples. Thanks to the generator, the entire Metal API, from compute shaders to raytracing, should be available, although specific things may take further tweaking.

## I want to contribute!

Wonderful! SharpMetal is built with .NET 8.0, and follows a couple of specific guidelines:
- Block Namespaces
- Source Generated P/Invokes
- `LibraryImport` not `DllImport`
- Use C# types where possible
- `NSInteger` -> `long`
- `NSUInteger` -> `ulong`
- Mark structs and classes with `SupportedOSPlatform` attribute
- SharpMetal is built for macOS primarily, so when there are platform-specific differences, use the macOS option
2 changes: 1 addition & 1 deletion src/SharpMetal/SharpMetal.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<RepositoryType>git</RepositoryType>
<PackageTags>Metal Graphics macOS</PackageTags>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageReadmeFile>Package_README.md</PackageReadmeFile>
<Title>SharpMetal</Title>
<Authors>Isaac Marovitz</Authors>
</PropertyGroup>
Expand Down

0 comments on commit 06f4d5b

Please sign in to comment.