首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Doe豆
掘友等级
iOS开发
编程读书电影音乐杂食者
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
12
文章 12
沸点 0
赞
12
返回
|
搜索文章
最新
热门
OC底层原理01:alloc方法底层探索
alloc的源码,需要去苹果的Source Browser下载最新的版本. 可以参考源码编译调试,直接在源码基础上跑起来,方便查看OC方法的底层实现步骤. alloc方法,可以说是最常见的类方法,在我们创建类对象时,是不可避免要使用到alloc,有人可能要质疑了,new不可以创…
OC底层原理06:消息流程分析之快速查找过程
上一篇文章,我们探索了,当实例对象调用实例方法时,方法insert将sel和imp插入到cache的过程。现在我们再来看看,当调用方法时,是如何从cache中将其取出来的,即sel-imp的快速查找。 1. 源码查看 也就是说在Cache writers缓存写入中,会进行cac…
OpenGL纹理及常用API
之前我们已经通过渲染三角形,通过深度计算、颜色混合等方式,模拟出了3D效果,但是为了达到更加真实的效果,还有一种方式:纹理贴图(texture mappint).纹理是一种应用到场景中三角形上的图像数据,通过过滤的纹理单元(相当于基于纹理的像素)填充到实心区域. OpenGL一…
图的遍历
1. 深度优先遍历 深度优先遍历也称为,深度优先搜索,简称为DFS。会先从一个顶点开始,找到其未被访问的邻接点出发,直至所有的顶点都被访问,其实深度优先是一个递归的过程。 创建⼀一个visited 数组,⽤来标识顶点是否已经被遍历过. 进⼊入递归; 打印i 对应的顶点信息. 并…
OC底层原理03-对象的本质
上篇文章提到,OC中对象的本质是结构体,那么这个结论我们要如何去验证呢?这时候我们需要用到Clang。 这里就可以看到,Clang编译后,LGPerson就被编译成了了LGPerson_IMPL的结构体。而且其中初始化就有一个struct NSObject_IMPL NSObj…
OpenGL颜色混合
OpenGL渲染时会把颜色值存在颜色缓冲区中,每个像素点的深度值存在深度缓冲区。 当两个图层中至少有一个的透明度不等于1,即半透明状态时,两个图层重叠在一起的部分,就不可以简单的,根据深度测试的结果,来对颜色缓冲区的的值进行覆盖,而是需要将两个颜色进行混合后,存入颜色缓冲区。 …
EGL&OpenGL着色语言及案例
上篇案例:利用GLKit实现旋转立方体中,使用了苹果提供的GLKit框架,它提供的函数和类,包括提供加载纹理、数学计算、常用着色器、视图、视图控制器等,大大减少了工作量。但是GLKit也存在一定缺陷,着色器代码无法修改,着色器提供的属性变量有上限等。 图形硬件的趋势是在那些变得…
OC底层原理07:消息流程分析之慢速查找过程
当objc_msgSend在缓存cache中找不到方法时,即源码中执行CheckMiss和JumpMiss,就会进行慢速查找。 CheckMiss和JumpMiss源码中,都会因NORMAL而进行__objc_msgSend_uncached的操作。 当查询到_lookUpIm…
OC底层原理02:内存对齐
CPU在读取数据时,首先从内存读取粒度8开始读取,读出了a的数据,然后使用同样的读取粒度读取后边的数据时,发现b、c、d读不到,所以要修改内存读取粒度,从8降到4,这时读取b就包含了c的数据,这是不对的,直到修改内存读取粒度为1时,才能读得到b,接下来读c时,内存读取粒度就不够…
OpenGL向量&矩阵
在OpenGL中,我们总是使用向量来表示带方向的量,例如在3D坐标系中,从原点到一个任意点(x,y,z)的一条带箭头的线段,它有两个重要的值:方向,数量(也可以理解为是长度). 但是如果一个向量并不是单位向量,也可以通过标准化的过程,将它缩放长度为1. 当需要计算出,两个三维向…
下一页
个人成就
文章被点赞
21
文章被阅读
25,024
掘力值
947
关注了
14
关注者
23
收藏集
1
关注标签
12
加入于
2017-11-23