Giter VIP home page Giter VIP logo

opentk's Introduction

OpenTK

OpenTK is a large project. There are many components to work on, and we'd welcome almost any contribution. The community is friendly, welcoming and always ready to help you get your PRs merged!

We have a very active discord server, if you need help, want to help, or are just curious, come join us!

Discord

The Open Toolkit library is a fast, low-level C# binding for OpenGL, OpenGL ES and OpenAL. It runs on all major platforms and powers hundreds of apps, games and scientific research.

Use OpenTK to add cross-platform 3d graphics, audio, compute and haptics to your C# application. Integrate it into your existing user interface or use it standalone without any external dependencies.

Project website: https://opentk.net

Official git repository: https://github.com/opentk/opentk

Build Status

Platform Status
Windows Build status
Mono/Linux Build status

Features

  • Create cutting-edge graphics with OpenGL 4.6 and OpenGL ES 3.0
  • Spice up your GUI with 3d acceleration
  • Improve your code flow with strong types and inline documentation
  • Windowing systems to help get you started
  • Input, and other game essentials.
  • Performant, highly optimized and reliable linear algebra library
  • Write once run everywhere

OpenTK is available for Windows, Linux, Mac OS X, *BSD, SteamOS, Android and iOS. It can be used standalone or integrated into a GUI (Windows.Forms, WPF, GTK+, Qt, VTK, ...)

Instructions

OpenTK is available as a NuGet Package.

Note what installing NuGet package will add reference to OpenTK.dll, but OpenTK.dll.config will not be copied to the project output directory automatically, so you need to add it to your project and then enable the "Copy to Output Directory" option (as in step 3 below).

News

2018-10-19

Work is well underway on OpenTK 4.0, which targets .netstandard 2.0.

We would welcome any contributions!

Click here to view the tracking issue.

2018-06-07

OpenTK 3.0.1 is available.

https://www.nuget.org/packages/OpenTK/3.0.1

https://www.nuget.org/packages/OpenTK.GLControl/3.0.1

2018-01-05

OpenTK 3.0.0 is available.

https://www.nuget.org/packages/OpenTK/3.0.0

https://www.nuget.org/packages/OpenTK.GLControl/3.0.0

Building from source

git clone https://github.com/opentk/opentk   # Download source code from git
cd opentk                                    # Enter the source directory
dotnet build                                 # Build using .Net Core

Contributing

OpenTK uses and encourages Early Pull Requests. Please don't wait until you're done to open a PR!

  1. Install Git and the .Net Core SDK
  2. Fork OpenTK
  3. Create a branch on your fork.
  4. 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]"
  5. Open a Pull request with [WIP] in the title. Do this before you actually start working.
  6. Make your commits in small, incremental steps with clear descriptions.
  7. Tag a maintainer when you're done and ask for a review!

Click here for good first issues.

Click here for everything we need help with.

Requirements

  • Windows (7/8,10), Linux, Mac OS X, *BSD, SteamOS, Android or iOS
  • For graphics, OpenGL drivers or a suitable emulator, such as ANGLE
  • For audio, OpenAL drivers or OpenAL Soft
  • To develop desktop applications: Visual Studio, Rider, or the command line tools.
  • To develop Android applications: Visual Studio and Xamarin
  • To develop iOS applications: Visual Studio, Xamarin and XCode

Known issues

  1. The SDL2 backend has a number of limitations compared to the native platform backends. In particular, SDL2 does not support:
    • OpenTK.GLControl. OpenTK will automatically switch to a native platform backend instead.
    • DisplayDevice.ChangeResolution() without a fullscreen INativeWindow.
    • Switching between WindowBorder.Fixed and WindowBorder.Resizable.
    • High-resolution mouse input. Additionally, it is limited to a single keyboard and mouse device.
  2. OpenTK.Input.GamePad.SetVibration is currently not implemented. This API will be implemented in a future release.

Documentation

API Documentation is available on the official website or inline from favourite IDE.

You can also browse the full API on the official website

Additional information can be found in the OpenTK Manual.

Technical documentation about the implementation of OpenTK can be found in the Technical Wiki.

Need Help?

Come chat with us on Discord.

We're happy to help with anything from learning OpenGL to advanced OpenTK questions.

License

The Open Toolkit is distributed under the permissive MIT/X11 license and is absolutely free.

opentk's People

Contributors

thefiddler avatar nihlus avatar frassle avatar varon avatar andykorth avatar harry-cpp avatar robmaister avatar vperus avatar malcolmstill avatar leezer3 avatar ollhax avatar freezylemon avatar devvoid avatar perksey avatar tzachshabtay avatar unknownshadow200 avatar mewh avatar mrhelmut avatar xen2 avatar thomasd13 avatar jeske avatar artfunkel avatar copygirl avatar paulcscharf avatar benjaminnitschke avatar peppy avatar wcdeich4 avatar tamschi avatar sparkusk avatar goz3rr avatar

Watchers

James Cloos avatar Jaewon Choi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.