基于OpenGL实现的手写签批

开源项目Babywolf1992 • 于 2017-09-13 14:45:59 +0800 • 297 阅读

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

项目地址:WFSignatureView

效果图

图一:

图二:

简单介绍一下实现过程,在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<WFSignaturePoint>.size * Int(length) memcpy(data, v, MemoryLayout<WFSignaturePoint>.size) glUnmapBufferOES(GLenum(GL_ARRAY_BUFFER)); length += 1 }

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

``` public func glBindVertexArrayOES(_ array: GLuint)

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

回复: 0
暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,见 Emoji cheat sheet
  • @name 会链接到用户页面,并会通知他
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
Ctrl+Enter