首页 >Swift

基于OpenGL实现的手写签批

2017-09-07 14:44 编辑: 四门三连 分类:Swift 来源:
  • 本文为CocoaChina网友Babywolf投稿

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

项目地址:WFSignatureView

效果图

2248583-b499a9a4f5e3b0ee.png

timg (7).jpg

简单介绍一下实现过程,在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)


搜索CocoaChina微信公众号:CocoaChina
微信扫一扫
订阅每日移动开发及APP推广热点资讯
公众号:
CocoaChina
我要投稿   收藏文章
上一篇:[译] MVVM, Coordinators 和 RxSwift 的抽丝剥茧
我来说两句
发表评论
您还没有登录!请登录注册
所有评论(0

综合评论

相关帖子

sina weixin mail 回到顶部