-
OpenGL - GLSL着色器语言
GLSL(OpenGL Shading Language) 是一个以C语言为基础的高阶着色语言作用可用于 OpenGL 可编程管线能够让你对OpenGL渲染其中的一些着色环节来自定义(如顶点着色器,片元着色器)类似UIVIewController的自定义控件固定管线相当于已经封装了的高级API,让你通过传递参数来实现效果自定义环节 顶点着色器: 处理每个顶点,确定位置以及变换 片元着色器: 片元GLSL 数据类型 void – 用于没有返回值的函式 bool – 条件类型,其值可以...…
-
组件化 - 远程私有库
远程私有库相对于本地私有库多了许多配置,对 .spec 文件的配置就显得尤为重要了许多首先,一般采用pod库的形式来集成的远程私有库就需要我们对 cocoapods 的工作有一定的认识。一、 创建远程私有索引库 在git托管平台创建 ChuangSpecs 工程 作为远程索引库 git 地址为 http://10.10.1.18/caolongjian/ChuangSpecs.git 本地创建私有库索引仓库 pod repo add ChuangSpecs htt...…
-
组件化 - 本地私有库创建
创建子工程(测试工程) 方法一: 确定需要抽取的组件,那么势必需要一个将其放到一个工程中能够正常运行,常规可以直接创建一个冲程,然后将需要的组件拖入工程中,创建 .spec 文件: pod spec create [名称] 方法二: 幸运的是 cocoapods 提供了我们快捷创建测试模板工程 1.首先在当前工程目录文件中创建Lib文件,与工程目录同级,执行: pod lib create [名称] 根据命令行...…
-
FastLane - Jenkins + Fastlane 持续集成自动化打包
本文使用 Jenkins 与 Fastlane 结合使用自动编译打包至蒲公英Fastlane 已在上篇文章讲过,是一套使用Ruby写的自动化工具集,用于iOS和Android的自动化打包、发布等工作,可以节省大量的时间。 Jenkins是一款自包含的开源自动化服务器,可用于自动执行与构建,测试和交付或部署软件有关的各种任务。Jenkins 安装 命令行安装 brew install jenkins 若无homebrew,安装homebrewruby -...…
-
FastLane - 上传到蒲公英
安装蒲公英的 Fastlane 插件Fastline使用参看此篇文章 安装蒲公英的 Fastlane 插件 fastlane add_plugin pgyer Fastfile文件中添加Lane,加入蒲公英插件的配置信息lane :beta do build_app(export_method: "ad-hoc") pgyer(api_key: "7f15xxxxxxxxxxxxxxxxxx141", user_key: "4a5bcxxxxxxxxxxxxxxx3a...…
-
Fastlane
简介fastlane是为iOS和Android应用程序自动化测试版部署和发布的最简单方法。🚀它处理所有繁琐的任务,例如生成屏幕截图,处理代码签名以及发布应用程序。您可以从Fastfile存储库中创建一个文件开始,这里定义了您的测试版或App Store发布过程:lane :beta do increment_build_number build_app upload_to_testflightendlane :release do capture_screenshots buil...…
-
OpenGL FrameBuffer Objects,RenderBuffer Objects and Textures
RenderBuffer A renderbuffer object is a 2D image buffer allocated by the application. The renderbuffer can be used to allocate and store color, depth, or stencil values and can be used as a color, depth, or stencil attachment in a framebuffer obj...…
-
OpenGL 与 OpenGL ES
一、什么是图形编程接⼝2D图形编程接⼝: GDI, Skiz, OpenVG 3D图形编程接口: DirectX, OpenGL/OpenGL ES, Embedded Systems二、图形编程接口与图形硬件的关系OpenGL,图形编程的接口GPU 图形硬件,图形处理器简单理解为: 当应用需要图形的绘制以及渲染时,它会通过OpenGL ES框架,向GPU传输相应绘制指令,GPU收到指令后会进行相应操作),最终将渲染结果在屏幕上绘制出来。三、OpenGL 的特点1.跨操作系统平台运⾏2....…
-
OpenGL - 渲染过程
一、基本图形硬件流水线设计==应⽤用程序层 -> 硬件抽象层 -> 硬件层==应⽤层: 游戏和应⽤用层软件开发⼈人员为主体,通过调⽤用API进行上层开发,不需要考虑移植性问题。 硬件抽象层: 抽象出硬件的加速功能,进行有利于应用层开发的封装,并向应⽤层开发API 硬件层: 将硬件驱动提供给抽象层,以实现抽象层加速功能的有效性。二、渲染流水线的具体流程1、应⽤层应⽤程序层主要与内存,CPU打交道,诸如碰撞检测,场景图监理,视锥裁剪等经典算法在此阶段执行。在阶段的末端,几何体的数据...…
-
OpenGL简单介绍及实践
什么是OpenGL (Open Graphics Library)OpenGL 是一种应用程序编程接口(Application Programming Interface,API),用于渲染2D、3D矢量图形。 相关程序库OpenGL被设计为只有输出的,所以它只提供渲染功能。核心API没有窗口系统、音频、打印、键盘/鼠标或其他输入设备的概念。几个库创建在OpenGL之上,提供了OpenGL本身没有的功能: GLU GLUT (能够以可移植的方式提供基本的窗口功能) GLUI ...…
-
架构模式 MVC MVP MVVM
架构模式,也叫架构风格,一个架构模式描述软件系统里的基本的结构组织或纲要。架构模式提供一些呈先定义好的子系统,指定它们的责任,并给出把它们组织在一起的法则和指南。一个架构模式常常可以分解成很多个设计模式的联合使用。MVC模式就属于架构模式。本文就 iOS 中使用 MVC、MVP、MVVM 架构模式表述个人见解。详细使用方法请参见 GitHub DemoMVCMVC 作为iOS开发中较为原始基本的架构模式,它把软件系统分为三个基本的部分:模型Model、视图View以及控制器Contro...…
-
Core ML
Core ML 大大降低了开发者在苹果设备上使用机器学习技术预测模型的门槛和成本。苹果制定了自己的模型文件格式,统一的格式和全新的 API 设计使得 Core ML 支持苹果生态下多个平台。performance primitives : Acccelerate and BNNS、Metal Performance Shaders。前者用于图形学以及数学上的大规模计算,后者用于优化加速图形渲染。ML Framework: Core ML主要有两个职责:导入机器学习模型;生成对应的OC或Sw...…
-
Core ML - Vision
Vison 与 Core ML 的关系Vision 是 Apple 在 WWDC 2017 推出的图像识别框架。Core ML 是 Apple 在 WWDC 2017 推出的机器学习框架。Core ML的作用就是将一个Core ML模型,转换成我们的App工程可以直接使用的对象,就是可以看做是一个模型的转换器。Vision在这里的角色,就是相当于一个用于识别Core ML模型的一个角色. Core ML可以看做一个模型的转换器,可以将一个 ML Model 格式的模型文件自动生成...…
-
Runtime
一、基本概念 RunTime简称运行时,就是系统在运行的时候的一些机制,其中最主要的是消息机制。 对于C语言,函数的调用在编译的时候会决定调用哪个函数,编译完成之后直接顺序执行,无任何二义性。 OC的函数调用成为消息发送。属于动态调用过程。在编译的时候并不能决定真正调用哪个函数(事实证明,在编译阶段,OC可以调用任何函数,即使这个函数并未实现,只要申明过就不会报错。而C语言在编译阶段就会报错)。 只有在真正运行的时候才会根据函数的名称找 到对应的函数来调用。二、Runtime - ...…
-
RunLoop
Runloop 是和线程紧密相关的一个基础组件,是很多线程有关功能的幕后功臣。尽管在平常使用中几乎不太会直接用到,理解 Runloop 有利于我们更加深入地理解 iOS 的多线程模型。目的:保住当前线程的生命,监听事件:触摸、时钟、网络等##RunLoop基本概念RunLoop是什么?顾名思义,说白了就是一种循环,只不过它这种循环比较高级。一般的while循环会导致CPU进入忙等待状态,而Runloop则是一种“闲”等待,这部分可以类比Linux下的epoll。当没事件时,Runloop会...…