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
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