Merge remote-tracking branch 'upstream/develop/3.0' into feature/approved
This commit is contained in:
Коммит
39d7ff0262
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
# Summary
|
||||
A summary of the issue you're experiencing.
|
||||
|
||||
# Steps to reproduce
|
||||
- Platform: Mobile/Desktop
|
||||
- Framework Version: .NET Core 3, .NET 4.8, Xamarin Android 8.1
|
||||
- API: Vulkan/OpenGL
|
||||
- API Version: Vulkan 1.2/OpenGL 4.3 Legacy/OpenGL 4.5 Core/OpenGLES 3.2
|
||||
1. First I did this
|
||||
2. Then I did this
|
||||
|
||||
# Comments
|
||||
Add any other context about the problem here.
|
||||
|
||||
**__If you know how to fix this issue, please submit a pull request instead!__**
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
name: Everything else
|
||||
about: If you don't think you issue fits in to any of the categories, use this template.
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
# Summary of feature
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
# Comments
|
||||
|
||||
# Does this have a proposal?
|
||||
Check the documentation/proposals folder. If it doesn't have one, you may need to create one if you're making **massive breaking changes**.
|
|
@ -0,0 +1,7 @@
|
|||
# Summary of the PR
|
||||
A short summary of this PR and what it adds/removes/fixes.
|
||||
|
||||
# Related issues, Discord discussions, or proposals
|
||||
Links go here.
|
||||
|
||||
# Further Comments
|
|
@ -14,7 +14,7 @@
|
|||
<PropertyGroup>
|
||||
<BaseArtifactsPath>$(MSBuildThisFileDirectory)artifacts/</BaseArtifactsPath>
|
||||
<BaseArtifactsPathSuffix>$(ProjectCategory)/$(MSBuildProjectName)</BaseArtifactsPathSuffix>
|
||||
<RepositoryUrl>https://github.com/Perksey/SilkX</RepositoryUrl>
|
||||
<RepositoryUrl>https://github.com/dotnet/Silk.NET</RepositoryUrl>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Default settings that explicitly differ from the Sdk.props defaults -->
|
||||
|
@ -40,8 +40,8 @@
|
|||
<BaseOutputPath>$(BaseArtifactsPath)bin/$(BaseArtifactsPathSuffix)/</BaseOutputPath>
|
||||
<Company>.NET Foundation</Company>
|
||||
<PackageOutputPath>$(BaseArtifactsPath)pkg/$(BaseArtifactsPathSuffix)/$(Configuration)/</PackageOutputPath>
|
||||
<Product>SilkX</Product>
|
||||
<VersionPrefix>0.1.0</VersionPrefix>
|
||||
<Product>Silk.NET</Product>
|
||||
<VersionPrefix>3.0.0</VersionPrefix>
|
||||
<VersionSuffix>alpha</VersionSuffix>
|
||||
</PropertyGroup>
|
||||
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
@ECHO OFF
|
||||
powershell.exe -NoLogo -NoProfile -ExecutionPolicy ByPass -Command "& """%~dp0scripts\build.ps1""" -build %*"
|
||||
EXIT /B %ERRORLEVEL%
|
11
build.sh
11
build.sh
|
@ -1,11 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
SOURCE="${BASH_SOURCE[0]}"
|
||||
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
|
||||
ScriptRoot="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
SOURCE="$(readlink "$SOURCE")"
|
||||
[[ $SOURCE != /* ]] && SOURCE="$ScriptRoot/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
||||
done
|
||||
ScriptRoot="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
|
||||
. "$ScriptRoot/scripts/build.sh" --build "$@"
|
|
@ -1,4 +1,4 @@
|
|||
###############################################################################
|
||||
# Default owner for all files in the repository
|
||||
###############################################################################
|
||||
* @Perksey
|
||||
* @dotnet/silk-dotnet
|
||||
|
|
|
@ -1,75 +1,6 @@
|
|||
# Contributor Covenant Code of Conduct
|
||||
# Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
This project has adopted the code of conduct defined by the Contributor Covenant
|
||||
to clarify expected behavior in our community.
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, gender identity and expression, level of
|
||||
experience, nationality, personal appearance, race, religion, or sexual identity
|
||||
and orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable
|
||||
behavior and are expected to take appropriate and fair corrective action in
|
||||
response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or reject
|
||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||
not aligned to this Code of Conduct, or to ban temporarily or permanently any
|
||||
contributor for other behaviors that they deem inappropriate, threatening,
|
||||
offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces
|
||||
when an individual is representing the project or its community. Examples of
|
||||
representing a project or community include using an official project e-mail
|
||||
address, posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event. Representation of a project may be
|
||||
further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting the project team at [INSERT EMAIL ADDRESS]. All
|
||||
complaints will be reviewed and investigated and will result in a response that
|
||||
is deemed necessary and appropriate to the circumstances. The project team is
|
||||
obligated to maintain confidentiality with regard to the reporter of an
|
||||
incident. Further details of specific enforcement policies may be posted
|
||||
separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||
faith may face temporary or permanent repercussions as determined by other
|
||||
members of the project's leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 1.4, available at
|
||||
https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
For more information, see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct).
|
||||
|
|
|
@ -1,49 +1,63 @@
|
|||
# Contributing to SilkX
|
||||
# Contributing
|
||||
|
||||
The following is a set of guidelines for contributing to SilkX.
|
||||
You can contribute to Silk.NET with issues and PRs. Simply filing issues for problems you encounter is a great way to contribute. Contributing code is also greatly appreciated.
|
||||
|
||||
TODO: Link social media channels here
|
||||
## Considerations
|
||||
The Silk.NET team will merge changes that improve the library significantly. We will not merge changes that have narrowly-defined benefits, or are breaking in some way. All contributions must also follow all other guidelines outlined in this document.
|
||||
|
||||
## Table of Contents
|
||||
## DOs and DON'Ts
|
||||
Please:
|
||||
- **DO** talk to us in #team-talk in the Discord or open a discussion issue if your contribution is sizeable.
|
||||
- **DO** keep the discussions around contributions focused. If you have another matter to discuss, rather than creating a massive tangent in the current discussion, open up a new one.
|
||||
- **DO** follow the code of conduct if discussing on GitHub and/or the Discord #rules if discussing on Discord.
|
||||
- **DON'T** make PRs that don't directly affect the end user, such as style changes. These are best done as part of a PR related to the area in question. Documentation is fine (and encouraged!), as this is useful to the end user.
|
||||
- **DON'T** commit code you didn't write without following its license and following our guidelines for doing so in the Contributor License Agreement. If you are unable to license some code, don't commit it.
|
||||
- **DON'T** surprise us with big pull requests or big API changes without talking to us first!
|
||||
- **DON'T** make PRs for legal or administrative documents, such as the license, file headers, or code of conduct. If you see something off, let us know and we'll change it.
|
||||
|
||||
* [Code of Conduct](#code-of-conduct)
|
||||
* [License](#license)
|
||||
* [What should I know?](#what-should-i-know)
|
||||
* [Pull Requests](#pull-requests)
|
||||
* [Issues](#issues)
|
||||
* [Questions](#questions)
|
||||
## Breaking changes
|
||||
Contributions must maintain API signature and behavioral compatibility. Contributions that include breaking changes will be rejected. There are exceptions to this, such as if the contribution is made against a major/breaking version branch (such as `2.0` instead of `master`), however this is subject to the team's approval. At risk of sounding like a broken record, talk to us about your idea first!
|
||||
|
||||
### Code of Conduct
|
||||
### Generated bindings
|
||||
Sometimes upstream specification changes happen while working on your contribution. Unfortunately, we are not in control of breaking changes created by the upstream spec sources, and if one happens while working on your contribution it is not a cause for concern.
|
||||
|
||||
This project has adopted the code of conduct defined by the [Contributor Covenant](http://contributor-covenant.org/)
|
||||
to clarify expected behavior in our community. For more information, see the [.NET Foundation Code of Conduct](http://www.dotnetfoundation.org/code-of-conduct).
|
||||
If your contribution affects binder output, let us know by commenting on the pull request. If the change isn't as a result of your modifications to the BuildTools (if any), it is recommended that you don't commit the .gen.cs files and instead do this in a separate PR.
|
||||
|
||||
### License
|
||||
## Suggested workflow
|
||||
Silk.NET uses and encourages [Early Pull Requests](https://medium.com/practical-blend/pull-request-first-f6bb667a9b6). Please don't wait until you're done to open a PR!
|
||||
|
||||
Copyright © .NET Foundation and Contributors. Licensed under the MIT License
|
||||
(MIT). See [LICENSE](LICENSE.md) in the repository root for more information.
|
||||
1. Install [Git](https://git-scm.com/downloads) and the [.NET Core SDK](https://www.microsoft.com/net/download)
|
||||
1. [Fork Silk.NET](https://github.com/dotnet/Silk.NET/fork)
|
||||
1. Create a branch on your fork.
|
||||
1. Add an empty commit to start your work off (and let you open a PR): `git commit --allow-empty -m "start of [thing you're working on]"`
|
||||
1. Open a [**draft pull request**](https://github.blog/2019-02-14-introducing-draft-pull-requests/). Do this **before** you actually start working.
|
||||
1. Make your commits in small, incremental steps with clear descriptions.
|
||||
1. Tag a maintainer when you're done and ask for a review!
|
||||
|
||||
### What should I know?
|
||||
## "Help wanted" & "Good first issue"
|
||||
If the core team are unable to champion an issue, they will mark it with a "help wanted" label. This indicates that any external contributor may pick up on this issue and implement it as part of a contribution. However, some "help wanted" issues may require intermediate knowledge of the codebase, area, and/or ecosystem; or may have uncertainty surrounding implementation details (if this is the case talk to us in the Discord or in a discussion issue). Because of this, we also mark some issues with the label "good first issue" which indicates that an issue is straightforward, and is a good place to start if you're interested in contributing but new to the codebase.
|
||||
|
||||
Most of the basics of the project, such as what it is about, and its goals are
|
||||
covered in our [README](docs/README.md).
|
||||
## Contributor License Agreement
|
||||
You must sign a Contributor License Agreement (CLA) before your PR will be merged. This is a one-time requirement for all .NET Foundation projects, and you'll only have to do this once. You can read more about [Contribution License Agreements (CLAs) on Wikipedia](https://en.wikipedia.org/wiki/Contributor_License_Agreement).
|
||||
|
||||
### Pull Requests
|
||||
You don't have to do this up-front. You can simply clone, fork, and submit your pull-request as usual. When your pull-request is created, you'll be notified by the CLA bot of further instructions if necessary.
|
||||
|
||||
All pull requests should follow our
|
||||
[PULL_REQUEST_TEMPLATE](docs/PULL_REQUEST_TEMPALTE.md). It is additionally
|
||||
recommended that an issue be opened, discussed, and approved first to ensure
|
||||
that the change will be accepted. Any pull requests not following pull request
|
||||
template will be requested to be updated. Any pull requests opened without a
|
||||
corresponding issue may be delayed or be required to undergo further changes
|
||||
before being accepted.
|
||||
## File Headers
|
||||
The following file header is used for Silk.NET. Please use it for new files.
|
||||
```cs
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
```
|
||||
|
||||
### Issues
|
||||
## Pull requests
|
||||
### Continuous Integration
|
||||
Our GitHub Actions Continuous Integration (CI) system will automatically perform the required builds, tests, and in some cases changes for Pull Requests (PRs).
|
||||
|
||||
All issues should follow our [ISSUE_TEMPLATE](ISSUE_TEMPLATE.md). It is
|
||||
additionaly recommended to prefix your issue with an appriopriate "tag" such as
|
||||
`[QUESTION]`, `[BUG]`, `[REGRESSION]`, `[IDEA]`, or `[PROPOSAL]`.
|
||||
If the CI build fails for any reason, you can view the logs to find out what the problem is. In some cases, GitHub Actions will highlight the errors inline on the "File Changes" tabs.
|
||||
|
||||
### Questions
|
||||
### Feedback
|
||||
Team and community members will provide feedback on your change. Community feedback is highly valued. You will often see the absence of team feedback if the community has already provided good review feedback.
|
||||
|
||||
Feel free to open an issue prefixed with `[QUESTION]`.
|
||||
One or more team members will review every PR prior to merge.
|
||||
|
||||
There are lots of thoughts and approaches for how to efficiently discuss changes. It is best to be clear and explicit with your feedback. Please be patient with people who might not understand the finer details about your approach to feedback.
|
||||
|
|
|
@ -1,103 +0,0 @@
|
|||
# Issue Template
|
||||
|
||||
Please remove everything except for the template best matching your issue type
|
||||
below. Then ensure you fill in the template, to the best of your abilities
|
||||
before submitting.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
* [Code of Conduct](#code-of-conduct)
|
||||
* [Question](#question)
|
||||
* [Bug](#bug)
|
||||
* [Regression](#regression)
|
||||
* [Idea](#idea)
|
||||
* [Proposal](#proposal)
|
||||
|
||||
### Code of Conduct
|
||||
|
||||
This project has adopted the code of conduct defined by the [Contributor Covenant](http://contributor-covenant.org/)
|
||||
to clarify expected behavior in our community. For more information, see the [.NET Foundation Code of Conduct](http://www.dotnetfoundation.org/code-of-conduct).
|
||||
|
||||
### Question
|
||||
|
||||
Questions are straightforward, just prefix your issue title with `[QUESTION]`
|
||||
and state what you desire to be answered.
|
||||
|
||||
### Bug
|
||||
|
||||
Bugs need to be both reproducible or we need some other mechanism of being able
|
||||
to debug and determine the root cause of failure. Please prefix your issue title
|
||||
with `[BUG]` and fill out the following sections.
|
||||
|
||||
#### Description (optional)
|
||||
|
||||
This section should contain an expanded description of the bug, if the title is
|
||||
not sufficient.
|
||||
|
||||
#### Reproduction Steps
|
||||
|
||||
This section should contain an ordered list of steps that can be used to
|
||||
reproduce the bug. Ideally, you would include as much information about your
|
||||
environment as possible to help use in determining the best fix for the issue.
|
||||
|
||||
#### Expected Behavior
|
||||
|
||||
This section should contain a description of the behavior that is expected.
|
||||
|
||||
#### Actual Behavior
|
||||
|
||||
This section should contain a description of the actual behavior being observed.
|
||||
|
||||
### Regression
|
||||
|
||||
Regressions are similar to bugs but represent functionality that worked in a
|
||||
prior release but is no longer functioning as expected. Please prefix your issue
|
||||
title with `[REGRESSION]` and fill out the same sections as for a [Bug](#bug).
|
||||
|
||||
### Idea
|
||||
|
||||
Requests would ideally always be well thought and come with a full proposal;
|
||||
however, this is not always possible and sometimes you want input from others
|
||||
before actually proposing something. Please prefix your issue title with
|
||||
`[IDEA]` and give a brief summary of what you want.
|
||||
|
||||
### Proposals
|
||||
|
||||
Proposals are generally thought out and discussed ideas that are ready to be
|
||||
proposed for inclusion in the project. Please prefix your issue title with
|
||||
`[PROPOSAL]` and fill out the following sections.
|
||||
|
||||
#### Description (optional)
|
||||
|
||||
This section should contain an expanded description of the proposal, if the
|
||||
title is not sufficient.
|
||||
|
||||
#### Rationale
|
||||
|
||||
This section should contain the reasoning behind the proposal. It should include
|
||||
things like "Why do we need this", "How will it improve a developers quality of
|
||||
life", etc.
|
||||
|
||||
#### Proposed API
|
||||
|
||||
This section should contain the APIs being proposed along with a brief
|
||||
description of what each API does.
|
||||
|
||||
#### Drawbacks
|
||||
|
||||
This should contain any drawbacks for the proposal that came up during the
|
||||
discussions.
|
||||
|
||||
#### Alternatives
|
||||
|
||||
This should contain any alternative proposals that came up during the
|
||||
discussions.
|
||||
|
||||
#### Other thoughts
|
||||
|
||||
This should contain any additional thoughts or footnotes on the proposal.
|
||||
|
||||
#### Discussions (optional)
|
||||
|
||||
This section should contain a link to all discussions related to the proposal
|
||||
that have been made thus far.
|
|
@ -1,37 +0,0 @@
|
|||
# Pull Request Template
|
||||
|
||||
Please remove everything except for the template best matching your pull request
|
||||
type below. Then ensure you fill in the template, to the best of your abilities
|
||||
before submitting.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
* [Code of Conduct](#code-of-conduct)
|
||||
* [Test or Documentation Addition](#test-or-documentation-addition)
|
||||
* [Bug Fix](#bug-fix)
|
||||
* [Proposal Implementation](#proposal-implementation)
|
||||
|
||||
### Code of Conduct
|
||||
|
||||
This project has adopted the code of conduct defined by the [Contributor Covenant](http://contributor-covenant.org/)
|
||||
to clarify expected behavior in our community. For more information, see the [.NET Foundation Code of Conduct](http://www.dotnetfoundation.org/code-of-conduct).
|
||||
|
||||
## Test or Documentation Addition
|
||||
|
||||
These types of additions should just have a brief summary of what they are
|
||||
doing. They do not need an attached issue. They should be prefixed with `[TEST]`
|
||||
or `[DOCS]`.
|
||||
|
||||
## Bug Fix
|
||||
|
||||
Bug fixes should have a brief summary of the change as well as a link to the
|
||||
issue they are resolving. They should be prefixed with `[BUG]` and should
|
||||
include a regression test to ensure the bug is not introduced again in the
|
||||
future.
|
||||
|
||||
## Proposal Implementation
|
||||
|
||||
Proposal implementations should also have a brief summary of the change and a
|
||||
link to the proposal they are implementing. They should be prefixed with
|
||||
`[IMPL]`. Ideally, they will also come with basic unit, functional, or
|
||||
integration tests that validate they work as intended.
|
140
docs/README.md
140
docs/README.md
|
@ -1,25 +1,135 @@
|
|||
# SilkX
|
||||
<!-- Begin exclude from NuGet readme. -->
|
||||
<h1 align="center">
|
||||
<a href="#"><img align="center" src="documentation/readme/silkdotnet_v3_horizontal_96.svg"></a>
|
||||
<br />
|
||||
</h1>
|
||||
<div align="center">
|
||||
|
||||
An experimental rewrite of Silk.NET and by extension SilkTouch - this is by no means 3.0 and if that is no longer the case this repo shall be merged with the main Silk.NET repo.
|
||||
[![NuGet Version](https://img.shields.io/nuget/v/Silk.NET)](https://nuget.org/packages/Silk.NET)
|
||||
[![Preview Feed](https://img.shields.io/badge/nuget-experimental%20feed-yellow)](https://gitlab.com/silkdotnet/Silk.NET/-/packages)
|
||||
[![CI Build](https://github.com/Ultz/Silk.NET/workflows/CI%20Build/badge.svg)](https://github.com/dotnet/Silk.NET/actions/workflows/build.yml)
|
||||
[![Join our Discord](https://img.shields.io/badge/chat%20on-discord-7289DA)](https://discord.gg/DTHHXRt)
|
||||
|
||||
See the main project: https://github.com/dotnet/Silk.NET
|
||||
</div>
|
||||
|
||||
## Table of Contents
|
||||
<div>
|
||||
<!-- End exclude from NuGet readme. -->
|
||||
<!-- Begin include in NuGet readme.
|
||||
![Silk.NET Logo](https://raw.githubusercontent.com/dotnet/Silk.NET/main/documentation/readme/silkdotnet_v3_horizontal_96.svg)
|
||||
End include in NuGet readme. -->
|
||||
|
||||
* [Code of Conduct](#code-of-conduct)
|
||||
* [License](#license)
|
||||
* [Contributing](#contributing)
|
||||
Silk.NET is your one-stop-shop for high-speed .NET multimedia, graphics, and compute; providing bindings to popular low-level APIs such as OpenGL, OpenCL, OpenAL, OpenXR, GLFW, SDL, Vulkan, Assimp, WebGPU, and DirectX.
|
||||
|
||||
### Code of Conduct
|
||||
Use Silk.NET to spruce up applications with cross-platform 3D graphics, audio, compute and haptics!
|
||||
|
||||
This project has adopted the code of conduct defined by the [Contributor Covenant](http://contributor-covenant.org/)
|
||||
to clarify expected behavior in our community. For more information, see the [.NET Foundation Code of Conduct](http://www.dotnetfoundation.org/code-of-conduct).
|
||||
Silk.NET works on any .NET Standard 2.0 compliant platform, including .NET 6.0, Xamarin, .NET Framework 4.6.1+, and .NET Core 2.0+.
|
||||
|
||||
### License
|
||||
</div>
|
||||
<br />
|
||||
<div>
|
||||
<!-- Begin exclude from NuGet readme. -->
|
||||
<a href="https://dotnetfoundation.org" align="right"><img src="https://github.com/dotnet-foundation/swag/blob/main/logo/dotnetfoundation_v4.svg" alt=".NET Foundation" class="logo-footer" width="72" align="left">
|
||||
<!-- End exclude from NuGet readme. -->
|
||||
<!-- Begin include in NuGet readme.
|
||||
![.NET Foundation](https://raw.githubusercontent.com/dotnet/Silk.NET/main/documentation/readme/dotnetfoundation_v4_horizontal_64.svg)
|
||||
End include in NuGet readme. -->
|
||||
</a>
|
||||
<br />
|
||||
|
||||
This project is licensed with the [MIT license](LICENSE.md).
|
||||
SilkX, being associated with the Silk.NET project, is a .NET Foundation project.
|
||||
Proud to be an official project under the benevolent [.NET Foundation](https://dotnetfoundation.org) umbrella.
|
||||
|
||||
### Contributing
|
||||
</div>
|
||||
|
||||
<!-- Package description inserted here automatically. -->
|
||||
|
||||
<h1 align="center">Features</h1>
|
||||
|
||||
### Performance
|
||||
|
||||
Having poured lots of hours into examining generated C# code and its JIT assembly, you can count on us to deliver blazing fast bindings with negligible overhead induced by Silk.NET!
|
||||
|
||||
### Up-to-date
|
||||
|
||||
With an efficient bindings regeneration mechanism, we are committed to ensuring our bindings reflect the latest specifications with frequent updates generated straight from the upstream sources.
|
||||
|
||||
### High-level utilities
|
||||
|
||||
In addition to providing high-speed, direct, and transparent bindings, we provide high-level utilities and wrappers to maximise productivity in common workloads such as platform-agnostic abstractions around Windowing and Input, bringing your apps to a vast number of platforms without changing a single line!
|
||||
|
||||
### Good-to-go
|
||||
|
||||
Silk.NET caters for anything you could need in swift development of multimedia, graphics, compute applications. Silk.NET is an all-in-one solution, complete with Graphics, Compute, Audio, Input, and Windowing.
|
||||
|
||||
<!-- Begin exclude from NuGet readme. -->
|
||||
|
||||
<h1 align="center">The team</h1>
|
||||
|
||||
We currently have the following maintainers:
|
||||
- [Kai Jellinghaus](https://github.com/HurricanKai) [<img src="https://about.twitter.com/etc/designs/about2-twitter/public/img/favicon.ico" alt="Follow Kai on Twitter" width="16" />](https://twitter.com/intent/follow?screen_name=KJellinghaus)
|
||||
- [Thomas Mizrahi](https://github.com/ThomasMiz)
|
||||
- [Beyley Thomas](https://github.com/Beyley)
|
||||
|
||||
In addition, the Silk.NET working group help drive larger user-facing changes providing key consultation from the perspective of dedicated users and professionals.
|
||||
|
||||
<h1 align="center">Building from source</h1>
|
||||
|
||||
Prerequisites
|
||||
- **Must**: .NET 6 SDK
|
||||
- **Should**: [NUKE](https://nuke.build) (build system). Install using `dotnet tool install Nuke.GlobalTool --global`
|
||||
- **Should**: Android, iOS, and MAUI .NET 6 workloads (use `dotnet workload install android ios maccatalyst maui` to install them)
|
||||
- **Should**: Android SDK version 30 with NDK tools installed. On Windows, for best results this should be installed into `C:\ProgramData\Android\android-sdk`.
|
||||
- **Could**: Java JDK (for gradle)
|
||||
- **Could**: Visual Studio 2022 Community version 17.0 or later
|
||||
|
||||
Instructions
|
||||
- Clone the repository (recursively)
|
||||
- Run build.sh, build.cmd, build.ps1, or `nuke compile`.
|
||||
- Use the DLLs. To get nupkgs you can use with NuGet instead, use `nuke pack`.
|
||||
|
||||
There are more advanced build actions you can do too, such as FullBuild, Pack, FullPack, among others which you can view by doing `nuke --plan`.
|
||||
|
||||
Note: Some .NET 6 workloads are only supported on Windows and macOS today.
|
||||
|
||||
<h1 align="center">Contributing</h1>
|
||||
|
||||
Silk.NET uses and encourages [Early Pull Requests](https://medium.com/practical-blend/pull-request-first-f6bb667a9b6). Please don't wait until you're done to open a PR!
|
||||
|
||||
1. [Fork Silk.NET](https://github.com/dotnet/Silk.NET/fork)
|
||||
2. Add an empty commit to a new branch to start your work off: `git commit --allow-empty -m "start of [thing you're working on]"`
|
||||
3. Once you've pushed a commit, open a [**draft pull request**](https://github.blog/2019-02-14-introducing-draft-pull-requests/). Do this **before** you actually start working.
|
||||
4. Make your commits in small, incremental steps with clear descriptions.
|
||||
5. Tag a maintainer when you're done and ask for a review!
|
||||
|
||||
The Silk.NET solution is **very large**. Learn about how you can combat this using our build process in [CONTRIBUTING.md](CONTRIBUTING.md).
|
||||
|
||||
<!-- End exclude from NuGet readme. -->
|
||||
|
||||
<h2 align="center">Funding</h2>
|
||||
Silk.NET requires significant effort to maintain, as such we greatly appreciate any financial support you are able to provide!
|
||||
|
||||
This helps ensure Silk.NET's long term viability, and to help support the developers who maintain Silk.NET in their free time. [Kai](https://github.com/sponsors/HurricanKai) is accepting GitHub Sponsorships.
|
||||
|
||||
<h1 align="center">Further resources</h1>
|
||||
|
||||
- Several examples can be found in the [examples folder](https://github.com/dotnet/Silk.NET/tree/master/examples)
|
||||
- Come chat with us on [Discord](https://discord.gg/DTHHXRt)!
|
||||
|
||||
<h1 align="center">Licensing and governance</h1>
|
||||
|
||||
Silk.NET is distributed under the very permissive MIT/X11 license and all dependencies are distributed under MIT-compatible licenses.
|
||||
|
||||
Silk.NET is a [.NET Foundation](https://www.dotnetfoundation.org/projects) project, and has adopted the code of conduct defined by the [Contributor Covenant](http://contributor-covenant.org/) to clarify expected behavior in our community. For more information, see the [.NET Foundation Code of Conduct](http://www.dotnetfoundation.org/code-of-conduct).
|
||||
|
||||
<!-- Begin exclude from NuGet readme. -->
|
||||
|
||||
---
|
||||
|
||||
<div>
|
||||
<a href="https://www.jetbrains.com/?from=Silk.NET" align="right"><img src="https://raw.githubusercontent.com/dotnet/Silk.NET/main/documentation/readme/jetbrains.svg" alt="JetBrains" class="logo-footer" width="72" align="left">
|
||||
<a><br/>
|
||||
|
||||
Special thanks to [JetBrains](https://www.jetbrains.com/?from=Silk.NET) for supporting us with open-source licenses for their IDEs. </a>
|
||||
</div>
|
||||
|
||||
<!-- End exclude from NuGet readme. -->
|
||||
|
||||
See [CONTRIBUTING.md](CONTRIBUTING.md) for information on contributing to this project.
|
||||
|
|
|
@ -100,7 +100,7 @@ try {
|
|||
$RepoRoot = Join-Path -Path $PSScriptRoot -ChildPath ".."
|
||||
|
||||
if ($solution -eq "") {
|
||||
$solution = Join-Path -Path $RepoRoot -ChildPath "SilkX.sln"
|
||||
$solution = Join-Path -Path $RepoRoot -ChildPath "Silk.NET.sln"
|
||||
}
|
||||
|
||||
$ArtifactsDir = Join-Path -Path $RepoRoot -ChildPath "artifacts"
|
||||
|
|
|
@ -184,7 +184,7 @@ fi
|
|||
RepoRoot="$ScriptRoot/.."
|
||||
|
||||
if [[ -z "$solution" ]]; then
|
||||
solution="$RepoRoot/SilkX.sln"
|
||||
solution="$RepoRoot/Silk.NET.sln"
|
||||
fi
|
||||
|
||||
ArtifactsDir="$RepoRoot/artifacts"
|
||||
|
|
3
pack.cmd
3
pack.cmd
|
@ -1,3 +0,0 @@
|
|||
@ECHO OFF
|
||||
powershell.exe -NoLogo -NoProfile -ExecutionPolicy ByPass -Command "& """%~dp0scripts\build.ps1""" -pack %*"
|
||||
EXIT /B %ERRORLEVEL%
|
11
pack.sh
11
pack.sh
|
@ -1,11 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
SOURCE="${BASH_SOURCE[0]}"
|
||||
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
|
||||
ScriptRoot="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
SOURCE="$(readlink "$SOURCE")"
|
||||
[[ $SOURCE != /* ]] && SOURCE="$ScriptRoot/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
||||
done
|
||||
ScriptRoot="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
|
||||
. "$ScriptRoot/scripts/build.sh" --pack "$@"
|
|
@ -1,3 +0,0 @@
|
|||
@ECHO OFF
|
||||
powershell.exe -NoLogo -NoProfile -ExecutionPolicy ByPass -Command "& """%~dp0scripts\build.ps1""" -restore %*"
|
||||
EXIT /B %ERRORLEVEL%
|
11
restore.sh
11
restore.sh
|
@ -1,11 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
SOURCE="${BASH_SOURCE[0]}"
|
||||
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
|
||||
ScriptRoot="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
SOURCE="$(readlink "$SOURCE")"
|
||||
[[ $SOURCE != /* ]] && SOURCE="$ScriptRoot/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
||||
done
|
||||
ScriptRoot="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
|
||||
. "$ScriptRoot/scripts/build.sh" --restore "$@"
|
|
@ -14,7 +14,7 @@
|
|||
"InputTestRoot": "../../eng/submodules/terrafx.interop.windows/tests/Interop/Windows",
|
||||
"OutputSourceRoot": "../Windows",
|
||||
"OutputTestRoot": "../../tests/Windows",
|
||||
"Solution": "../../SilkX.sln",
|
||||
"Solution": "../../Silk.NET.sln",
|
||||
"Mods": [
|
||||
"ChangeNamespace"
|
||||
],
|
||||
|
@ -32,7 +32,7 @@
|
|||
"InputTestRoot": "../../tests/GLFW",
|
||||
"OutputSourceRoot": "../GLFW",
|
||||
"OutputTestRoot": "../../tests/GLFW",
|
||||
"Solution": "../../SilkX.sln",
|
||||
"Solution": "../../Silk.NET.sln",
|
||||
"Mods": [
|
||||
"AddStdIncludes",
|
||||
"AddOpaqueStructs",
|
||||
|
@ -56,7 +56,7 @@
|
|||
"InputTestRoot": "../../tests/OpenGL",
|
||||
"OutputSourceRoot": "../OpenGL",
|
||||
"OutputTestRoot": "../../tests/OpenGL",
|
||||
"Solution": "../../SilkX.sln",
|
||||
"Solution": "../../Silk.NET.sln",
|
||||
"Mods": [
|
||||
"AddStdIncludes",
|
||||
"AddApiProfiles",
|
||||
|
@ -119,4 +119,4 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
3
test.cmd
3
test.cmd
|
@ -1,3 +0,0 @@
|
|||
@ECHO OFF
|
||||
powershell.exe -NoLogo -NoProfile -ExecutionPolicy ByPass -Command "& """%~dp0scripts\build.ps1""" -test %*"
|
||||
EXIT /B %ERRORLEVEL%
|
11
test.sh
11
test.sh
|
@ -1,11 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
SOURCE="${BASH_SOURCE[0]}"
|
||||
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
|
||||
ScriptRoot="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
SOURCE="$(readlink "$SOURCE")"
|
||||
[[ $SOURCE != /* ]] && SOURCE="$ScriptRoot/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
||||
done
|
||||
ScriptRoot="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
|
||||
. "$ScriptRoot/scripts/build.sh" --test "$@"
|
Загрузка…
Ссылка в новой задаче