我正在研究Ray Wenderlich的
OpenGL for iOS教程,试图将他的代码从Objective-C转换为Swift.
我是OpenGL和Swift的新手,并且相信我的问题与我如何翻译Objective-C有关.原因如下:
在我的swift文件中设置包含OpenGL内容的视图,在最后的逻辑步骤(调用glDrawElements)上,应用程序将因EXC_BAD_ACCESS警报而崩溃.但是,如果我将此部分代码移动到Objective-C文件,则应用程序将按预期工作.
Swift版本的代码:
var positionDataOffset: Int = 0 glVertexAttribPointer(self.positionSlot,3 as GLint,GL_FLOAT.asUnsigned(),GLboolean.convertFromIntegerLiteral(UInt8(GL_FALSE)),VertexDataSource.sizeOfVertex(),&positionDataOffset) var colorDataOffset = (sizeof(Float) * 3) as AnyObject glVertexAttribPointer(self.positionSlot,4 as GLint,VertexDataSource.vertexBufferOffset()) var vertexOffset: Int = 0 glDrawElements(GL_TRIANGLES.asUnsigned(),VertexDataSource.vertexCount(),GL_UNSIGNED_BYTE.asUnsigned(),&vertexOffset)
这是Objective-C版本:
glVertexAttribPointer(position,3,GL_FLOAT,GL_FALSE,sizeof(Vertex),0); glVertexAttribPointer(color,4,(GLvoid*) (sizeof(float) * 3)); glDrawElements(GL_TRIANGLES,sizeof(Indices)/sizeof(Indices[0]),GL_UNSIGNED_BYTE,0);
正如你所看到的,Swift更加冗长……我和其他人一样都是新手.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。