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