HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 在Swift中调用glDrawElements而不是在Objective-C中调用OpenGL EXC_BAD_ACCESS大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在研究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更加冗长……我和其他人一样都是新手.

本图文内容来源于网友网络收集整理提供,作为学习参使用,版权属于原作者。

大佬总结

以上是大佬教程为你收集整理的ios – 在Swift中调用glDrawElements而不是在Objective-C中调用OpenGL EXC_BAD_ACCESS全部内容,希望文章能够帮你解决ios – 在Swift中调用glDrawElements而不是在Objective-C中调用OpenGL EXC_BAD_ACCESS所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。