Swift OpenGL类型转换



在swift中创建OpenGL es应用程序时,必须将所有参数转换为等效的gl。例如

func createCamera(screenWidth:Int, screenHeight:Int){
    glViewport(GLint(0), GLint(0), GLsizei(screenWidth), GLsizei(screenHeight));
}

正如您所看到的,我必须将每个glViewPort()参数转换为OpenGL喜欢的数据类型,例如Glint。有更有效的方法吗?我觉得用swift我所做的就是包装所有的东西。

情况就是这样。

您可能会制作一些类型扩展和函数重载,以使Swift中的GL更加流畅。例如,如果您明智地实现extension GLint : IntegerLiteralConvertible,您将能够将整数文本传递给GLAPI,而无需在GLint()转换中包装每个文本。让GL函数采用Swift类型将是一个更高的要求,但这只是因为它们的数量,而不是它们的复杂性。例如:

func glViewport(x: Int, y: Int, width: Int, height: Int) {
    GL.glViewport(GLint(x), GLint(y), GLsizei(width), GLsizei(height)
}

如果有人已经在做这样的事情并出版一个图书馆,我不会感到惊讶,但我还没有听说过任何这样的努力。

最新更新