OpenTK disponible en version 1.1
La bibliothèque OpenGL pour le C# revient avec le support d'OpenGL 4 et OpenGL ES 3

Le , par LittleWhite, Responsable 2D/3D/Jeux
OpenTK est une bibliothèque permettant de réaliser des applications OpenGL/OpenAL/OpenCL en C#. La bibliothèque revient après de long mois sans activité apparente. Toutefois, il faut se rassurer de la situation, car cette nouvelle version annonce une progression très nette dans le support des nouvelles spécifications d'OpenGL, mais aussi car la bibliothèque est grandement utilisée notamment dans le projet MonoGame.


Cette version 1.1 apporte :
  • le support d'OpenGL 4.4 et OpenGL ES 3.0 ;
  • des énumérations au typage fort pour OpenGL ES 2.0 et 3.0 ;
  • une nouvelle surcharge d'OpenGL plus rapide et optimisée manuellement ;
  • un nouveau backend SDL 2 pour une meilleure compatibilité avec les plateformes supportées ;
  • de nouveaux modules Joystick et GamePad disponibles dans le namespace OpenTK.Input ;
  • une amélioration du temps de démarrage et une diminution de la consommation mémoire ;
  • une documentation intégrée pour toutes les fonctions cœur OpenGL et OpenGL ES ;
  • une bibliothèque mathématique étendue ;
  • de nombreuses corrections de bogues pour Mac OS X, Windows 8 et Linux ;
  • une intégration de ANGLE pour les systèmes Windows qui n'ont pas de support d'OpenGL ;
  • le support des moniteurs Retina ;
  • une utilisation de l'éditeur de lien de mono pour réduire la taille de OpenTK.dll ;
  • des binaires précompilées pour les dépendances supplémentaires (SDL 2, OpenAL...).


Les développeurs cherchent maintenant à rajouter le support d'Android (Xamarin) et iOS. La transition entre OpenTK 1.0 et 1.1 ne devrait pas poser de problème pour la majorité des projets. Toutefois, de nombreuses signatures de fonctions ont été modifiées dans cette version, pour suivre la spécification. Normalement, ces cas devraient générer des erreurs de compilation, toutefois, il est recommandé de suivre les modifications suivantes :

Namespace OpenTK.Graphics.OpenGL
Changement de signature :
- GL.MultiDrawArrays (`out` -> `ref`)
- GL.Amd.DeletePerfMonitors (`out` -> `ref`)

Changement de signature (peut provoquer un crashe) :
- GL.Apple.ObjectPurgeable (retourne `AppleObjectPurgeable` au lieu de `IntPtr`)
- GL.Ext.SeparableFilter2D
- GL.Ibm.EdgeFlagPointerList (`bool[]` -> `bool*[]`)
- GL.NV.TransformFeedbackVaryings (`string[]` -> `int[]`)

Changement du type de retour :
- GL.WaitSync (returns `WaitSyncFlags` instead of `ArbSync`)

Namespace OpenTK.Graphics.ES11
Changement du type de retour :
- GL.GetError (`ErrorCode` instead of `All`)

Changement de paramètres `ref` en `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

Changement de namespace :
- GL.ClipPlanefIMG -> GL.Img.ClipPlane
- GL.DisableDriverControlQCOM -> GL.Qcom.DisableDriverControl

Namespace OpenTK.Graphics.ES20.GL
Changement signature (peut provoquer un crashe) :
- GL.NV.GetFence prend maintenant trois paramètres au lieu de deux

Changement de paramètres `ref` en `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

Changement de namespace:
- GL.DisableDriverControlQCOM -> GL.Qcom.DisableDriverControl
- GL.GetDriverControlsQCOM -> GL.Qcom.GetDriverControls
- GL.GetDriverControlStringQCOM -> GL.Qcom.GetDriverControlString

Vous pouvez télécharger OpenTK sur la page SourceForge ou consulter le code source.

Votre opinion

Pensez-vous le support d'OpenGL nécessaire au C# ? Quel en est votre intérêt ?
Avez-vous déjà utilisé OpenTK ? L'avez-vous abandonné à cause de l'inactivité du projet ?
Montrez-nous vos applications réalisées avec OpenTK !

Source

Annonce officielle


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :
Offres d'emploi IT
Ingénieur étude et développement java senior h/f
Silkhom - Rhône Alpes - Grenoble (38000)
Ingénieur logiciel r&d /expert ihm
ORCHESTRA NETWORKS - Ile de France - Paris (75000)
Développeur/se mobile ios senior h/f
1000MERCIS - Ile de France - Paris (75000)

Voir plus d'offres Voir la carte des offres IT
Responsable bénévole de la rubrique 2D - 3D - Jeux : LittleWhite -