Swift下OpenGL应用

本文由CocoaChina网友babywolf投稿    

iOS开发中关于手写签批的实现已经有很多了,Swift语言也有了几个。大部分基于CAShapeLayer,或者CGContext开发。我今天介绍的这种是基于OpenGL,在GLKView中绘制的效果,感觉效果还可以。喜欢的朋友可以给个star

项目地址:WFSignatureView

效果图:

Swift下OpenGL应用




Swift下OpenGL应用

简单介绍一下实现过程,在tap和pan相应的操作中,把点加入到相应的变量中,然后在更新视图,调用OpenGL的相应接口绑定变量中点的数据,进行绘制。

核心代码展示:

func addVertex( length : inout uint, v : UnsafeRawPointer) {

    if Int(length) >= maxLength {

        return;

    }

    var data : UnsafeMutableRawPointer

    data = glMapBufferOES(UInt32(GL_ARRAY_BUFFER), UInt32(GL_WRITE_ONLY_OES))

    data = data + MemoryLayout.size * Int(length)

    memcpy(data, v, MemoryLayout.size)

    glUnmapBufferOES(GLenum(GL_ARRAY_BUFFER));

    length += 1

}

项目的难点还在于对OpenGL的API的运用:

public func glBindVertexArrayOES(_ array: GLuint)

public func glDrawArrays(_ mode: GLenum, _ first: GLint, _ count: GLsizei)

第一次写文字,希望大家喜欢。

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » Swift下OpenGL应用

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址