您可以在Mac Visual Studio / Xamarin中调用缺少Opentk方法吗?



Mac的Visual Studio的预览版本使用Opentk 0,0,0,0从软件包xamarin.mac.framework

这缺少我需要的许多电话,

  • gl.bindvertexarray
  • gl.deletevertexarray
  • gl.genvertexarrays

是否有某种方法可以/调用这些方法?您应该如何做?或者,关于如何做的有什么好信息?

我可以从/library/frameworks/xamarin.mac.framework/versions/current/current/lib/mono/xamarin.mac/opentk.dll 目录中删除.dll在其他地方有这些电话?(我不能使用opentkv2开源,因为xamarin具有vector2类型,而其他存储在另一个命名空间中)

我可以从/library/frameworks/xamarin.mac.framework/versions/current/current/lib/mono/mono/xamarin.mac/opentk.dll目录中删除.dll并替换为这些呼叫的其他地方吗?(我不能使用opentkv2开源,因为xamarin具有vector2类型,而其他存储在另一个命名空间中)

不,不安全。从Xamarin内部替换随机组件。MAC不会带来快乐的结果。

是否有某种方法可以/调用这些方法?您应该如何做?或者, 在哪里有关于如何做的好信息?

是的,对于C函数,标准dllimport应该正常工作。您可以在这里找到一些示例。

所以克里斯的答案后,我创建了下面的类

public static class PInvoke
{ 
public const string file = "/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL";
#if __MAC__
[DllImport(file, EntryPoint = "glBindVertexArray", ExactSpelling = true)]
    internal extern static void BindVertexArray(UInt32 array);
#endif
}

然后从使用的另一类

PInvoke.glBindVertexArray((uint) _vertexBuffer._VAO_ID);

它只是有效的而不是

GL.BindVeryexArray((uint) _vertexBuffer._VAO_ID)

最新更新