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)