GithubHelp home page GithubHelp logo

kaliburliegh / osutk Goto Github PK

View Code? Open in Web Editor NEW

This project forked from timoliver/osutk

0.0 0.0 0.0 65.93 MB

A fork of OpenTK for use with osu/osu-framework. Adds .net standard, iOS and android support.

License: Other

C# 97.28% Tcl 0.35% Python 0.95% Ruby 1.41%

osutk's Introduction

osuTK

Note about this fork

This fork is maintained mainly for compatibility purposes for osu-framework. It adds .NET core compatibility to OpenTK 2.x. There is an ongoing effort to modernise OpenTK over at their repository but it is largely API incompatible with the 2.x releases.

If you are looking to start a fresh project, please consider checking their ongoing effort rather than using this. We maintain this package as a migration option for 2.x users that are looking to target .NET core.

The project has been renamed from "opentk" mainly to allow for iOS compatibility.

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 osuTK 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.github.io/

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
  • Write once run everywhere

osuTK 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, ...)

Download binaries or NuGet packages

Instructions

The simplest way to use osuTK in your project is to install the NuGet package. If you want to try out the latest development build from the develop branch, we also have a MyGet feed.

Note what installing NuGet package will add reference to osuTK.dll, but osuTK.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).

To build osuTK from source, do the following once:

git clone https://github.com/opentk/opentk   # Download source code from git
cd opentk                                    # Enter the source directory
./build.cmd                                  # Build on .Net (Windows)
./build.sh                                   # Build on Mono (Linux / Mac OS X)

After this is done at least once, you can build osuTK normally through your IDE.

News

2017-05-08

A pre-release package is available.

https://www.nuget.org/packages/osuTK/3.0.0-pre

https://www.nuget.org/packages/osuTK.GLControl/3.0.0-pre

2016-09-23

osuTK 2.0.0 is now available for download from Nuget.

Aside from being a maintenance release to bring the current package closer in-line with develop, this the project's first release since adopting a new build system.

Release notes:

  • Moved to new FAKE/Paket based build system
  • Removed superfluous release configurations
  • Numerous other fixes and enhancements

We would welcome any feedback on the package, so please open a GitHub issue if you require assistance or experience difficulties.

2016-07-19

The new osuTK website is live. You can view it at opentk.github.io

We are currently looking for contributors for tutorials and other resources.

2016-07-13

A pre-release package is available.

https://www.nuget.org/packages/osuTK.Next/1.2.2336.6514-pre https://www.nuget.org/packages/osuTK.Next.GLControl/1.2.2336.6514-pre

*The osuTK.Next package id will no longer be used for future releases.

2014-07-24

osuTK 1.1.4c was released on 24 July 2014.

This is a hotfix release that improves stability on Mac OS X. Moreover, it synchronizes the GamePad configuration database with SDL 2.0.4 and fixes an invalid GUID introduced in 1.1.4b.

2014-07-21

osuTK 1.1.4 was released on 21 July 2014.

This release resolves a number of identified issues, adds experimental support for Linux/KMS and synchronizes the OpenGL and OpenGL ES bindings with the July 2014 Khronos specifications.

Changelog:

  1. Fixed a memory leak in OpenGL functions accepting a string array.
  2. Fixed an issue where MakeCurrent() might fail on Linux/X11 when using the Nvidia closed-source drivers.
  3. Fixed an issue where GameWindow might remain open on Linux/X11 after calling Close() or Dispose().
  4. Fixed a potential crash on Mac OS X systems without hardware acceleration (e.g. virtual machines).
  5. Fixed function parameters for the OES_byte_coordinates extension.
  6. Fixed an issue where osuTK would always perform a full rebuild even when a partial rebuild could work.
  7. Fixed all compilation warnings on VS2013 and Mono 3.4.0.
  8. Improved OpenGL and OpenGL ES documentation on 'count' parameters.
  9. New platform: Linux/KMS. You can now run osuTK applications on a Linux terminal without an X11 display server.
  10. New OpenGL ES extensions:
  • ANDROID_extension_pack_es31a

osuTK 1.1.4 is backwards compatible with 1.1.3. Users of previous versions are strongly encouraged to upgrade.

Known issues

  1. The SDL2 backend has a number of limitations compared to the native platform backends. In particular, SDL2 does not support:
    • osuTK.GLControl. osuTK 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. osuTK.Input.GamePad.SetVibration is currently not implemented. This API will be implemented in a future release.

Contributing

  1. Install git and a C# IDE (see requirements section below)
  2. Fork the develop branch of https://github.com/opentk/opentk
  3. Commit your changes in small, incremental steps with clear descriptions
  4. When ready, issue a Pull Request (PR) against the develop branch of https://github.com/opentk/opentk

For details on coding style and best practices, refer to https://github.com/opentk/opentk/wiki/Contributing

Some areas we could really use your help:

  • Tutorials for OpenGL 3.x and 4.x. Inspiration here
  • New platforms:
    • Native Client (NaCL)
    • Blackberry
    • Wayland
    • Mir
    • WinRT (via ANGLE)
  • New features:
    • Multitouch
    • Force feedback
    • Improved joystick support (HID backend for Windows, Linux)

Further ideas for improvement are always welcome!

Requirements

  • Windows (XP/Vista/7/8), 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, Xamarin Studio, MonoDevelop or SharpDevelop
  • To develop Android applications: Xamarin Studio or the Xamarin Extensions for Visual Studio
  • To develop iOS applications: Xamarin Studio and XCode

Documentation

Your favorite IDE will display inline documentation for all osuTK APIs. Additional information can be found in the osuTK Manual.

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

Need Help?

Post your questions at the osuTK forums.

Report bugs at https://github.com/opentk/opentk/issues

License

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

http://www.opentk.com/project/license

API compatibility

osuTK 1.1.4 is backwards compatible with 1.1.3.

osuTK 1.1.3 is backwards compatible with 1.1.2.

osuTK 1.1.2 is backwards compatible with 1.1.1.

osuTK 1.1.1 is backwards compatible with 1.1.0.

osuTK 1.1.0 is not backwards compatible with 1.0. Most projects will be able to upgrade without any modifications. Projects using the following signatures will have to implement the suggested changes:

Namespace osuTK.Graphics.OpenGL Change signature:

  • GL.MultiDrawArrays (out -> ref)
  • GL.Amd.DeletePerfMonitors (out -> ref)

Change signature (may cause crash):

  • GL.Apple.ObjectPurgeable (returns AppleObjectPurgeable instead of IntPtr)
  • GL.Ext.SeparableFilter2D
  • GL.Ibm.EdgeFlagPointerList (bool[] -> bool*[])
  • GL.NV.TransformFeedbackVaryings (string[] -> int[])

Change return type:

  • GL.WaitSync (returns WaitSyncFlags instead of ArbSync)

Namespace osuTK.Graphics.ES11 Change return type:

  • GL.GetError (ErrorCode instead of All)

Change ref parameters to out:

  • GL.GenBuffers
  • GL.GenTextures
  • GL.GetBoolean
  • GL.GetBufferParameter
  • GL.GetClipPlane
  • GL.GetClipPlanex
  • GL.GetFixed
  • GL.GetFloat
  • GL.GetInteger
  • GL.GetLight
  • GL.GetLightx
  • GL.GetMaterial
  • GL.GetMaterialx
  • GL.GetTexEnv
  • GL.GetTexEnvx
  • GL.GetTexParameter
  • GL.GetTexParameterx
  • GL.Oes.GenFramebuffers
  • GL.Oes.GetClipPlane
  • GL.Oes.GetClipPlanex
  • GL.Oes.GetFixed
  • GL.Oes.GetFramebufferAttachmentParameter
  • GL.Oes.GetLightx
  • GL.Oes.GetMaterialx
  • GL.Oes.GetRenderbufferParameter
  • GL.Oes.GetTexEnvx
  • GL.Oes.GetTexGen
  • GL.Oes.GetTexGenx
  • GL.Oes.GetTexParameterx
  • GL.Oes.QueryMatrixx
  • GL.NV.GenFences
  • GL.NV.GetFence

Change namespace:

  • GL.ClipPlanefIMG -> GL.Img.ClipPlane
  • GL.DisableDriverControlQCOM -> GL.Qcom.DisableDriverControl

Namespace osuTK.Graphics.ES20.GL Change signature (may cause crash):

  • GL.NV.GetFence now takes three parameters instead of two

Change ref parameters to out:

  • GL.GetActiveAttrib
  • GL.GetActiveUniform
  • GL.GetAttachedShaders
  • GL.GetProgramInfoLog
  • GL.GetShaderInfoLog
  • GL.GetShaderSource
  • GL.Amd.GetPerfMonitorCounterData
  • GL.Amd.GetPerfMonitorCounters
  • GL.Amd.GetPerfMonitorCounterString
  • GL.Amd.GetPerfMonitorGroup
  • GL.Amd.GetPerfMonitorGroupString
  • GL.Amd.SelectPerfMonitorCounters

Change namespace:

  • GL.DisableDriverControlQCOM -> GL.Qcom.DisableDriverControl
  • GL.GetDriverControlsQCOM -> GL.Qcom.GetDriverControls
  • GL.GetDriverControlStringQCOM -> GL.Qcom.GetDriverControlString

See also

Delta Engine, a high-level, open-source game engine. MonoGame, an open-source, cross-platform implementation of XNA.

osutk's People

Contributors

andykorth avatar artfunkel avatar copygirl avatar ekrctb avatar frassle avatar galister avatar game4all avatar harry-cpp avatar jeske avatar leezer3 avatar malcolmstill avatar mewh avatar morguldir avatar mrhelmut avatar nihlus avatar ollhax avatar paulcscharf avatar peppy avatar robmaister avatar smoogipoo avatar swoolcock avatar tangalbert919 avatar thefiddler avatar thomasd13 avatar tom94 avatar tzachshabtay avatar unknownshadow200 avatar varon avatar vperus avatar xen2 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.