- 博客(15)
- 收藏
- 关注
转载 iOS 中OpenGL ES 优化 笔记 1
1,避免同步和Flushing操作OpenGL ES的命令执行通常是在command buffer中积累一定量的命令后,再做批处理执行,这样效率会更高;但是一些OpenGL ES命令必须flush command buffer,也有需要同时flush和阻塞直到命令执行完毕,过度调用这类函数会严重影响性能。glFlush 发送命令buffer到图形硬件,一直阻塞直到...
2018-01-27 16:26:00
324
转载 像素缓冲区对象PBO 记录
像素缓冲区对象PBO 记录和所有的缓冲区对象一样,它们都存储在GPU内存中,我们可以访问和填充PBO,方法和其他的缓冲区一样。当一个PBO被绑定到GL_PIXEL_PACK_BUFFER,任何读取像素的OpenGL操作都会从PBO中获取它们的数据,如glReadPixels,glGetTexImage和glGetCompressedTexImage。通常的操作会从FBO或...
2017-06-29 23:05:00
170
转载 H.264格式,iOS硬编解码 以及 iOS 11对HEVC硬编解码的支持
H.264格式,iOS硬编解码 以及 iOS 11对HEVC硬编解码的支持1,H.264格式网络表示层NAL,如图H.264流由一帧一帧的NALU组成;SPS:序列参数集,作用于一系列连续的编码图像;PPS:图像参数集,作用于编码视频序列中一个或多个独立的图像;这两个帧也是独立的NALU。I-Frame:关键帧,帧内编码后的帧,显示比较完全的一帧;P-Fr...
2017-06-21 22:52:00
775
转载 STL的空间配置器std_alloc 笔记
STL的空间配置器std_alloc 笔记C++的内存分配基本操作是 ::operator new(),内存释放是 ::operator delete(),这里两个全局函数相当于C的malloc和free;std::alloc 设计了双层配置器,第一层直接用了malloc和free,内存不足时用函数指针模拟C++中set_new_handler方式进行自定义处理函数;第二层:超...
2017-06-17 09:48:00
148
转载 从deque到std::stack,std::queue,再到iOS 中NSArray(CFArray)
从deque到std::stack,std::queue,再到iOS 中NSArray(CFArray)dequedeque双端队列,分段连续空间数据结构,由中控的map(与其说map,不如说是数组)控制,map中每个槽指向一个固定大小的缓冲(连续的线性空间)。deque的迭代器,关键的四个指针:cur //所指缓冲区中的现元素f...
2017-06-15 00:05:00
133
转载 Effective C++ 深入理解inline
Effective C++ 深入理解inlineinline语义inline本义是将所调用函数用自身的函数本体替换之,免受函数调用所招致的额外开销,比宏还要不易出错;但是实际上inline的受编译器的控制,编译器根据执行语境来对inline函数是否做优化,inline只是对编译器的申请,不是强制命令。inline各种情况1,如果函数体比较大,用inli...
2017-06-14 00:21:00
127
转载 TCP慢启动,拥塞控制,ECN 笔记
TCP慢启动,拥塞控制,ECN 笔记1,TCP慢启动TCP在连接过程的三次握手完成后,开始传数据,并不是一开始向网络通道中发送大量的数据包,这样很容易导致网络中路由器缓存空间耗尽,从而发生拥塞;而是根据初始的cwnd大小逐步增加发送的数据量,cwnd初始化为1个最大报文段(MSS)大小(这个值可配置不一定是1个MSS);每当有一个报文段被确认,cwnd大小指数增长。...
2017-06-12 23:56:00
478
转载 FLAnimatedImageView处理gif过程
FLAnimatedImageView处理gif过程时间控制原理GIF图片每一帧的delayTime可能都不一样;在展示下一帧的时间控制机制,不能根据以第一帧为准;或总动画时长除以帧数来简单做平均值为准,都是不太好的方案。FLAnimatedImageView的控制方式,读取每一帧的delayTime算出最大公约数,...
2017-06-11 03:22:00
1073
转载 GPUImage的filter 响应处理链 的理解笔记
GPUImage的filter的textures处理链式结构两个最重要的的地方:最重要的一个类GPUImageOutput(所有的filter的父类,其他也有继承它的,如GPUImageUIElement,UIKit元素通过CG转gles贴图 等等);协议(或者接口)GPUImageInput。 继承GPUImageOutput且遵循GPUImageInput的...
2017-06-10 14:49:00
366
转载 磁盘文件I/O,SSD结构,局部性原理 笔记
磁盘文件I/O过程进程向内核发起read scene.dat请求;内核根据inode获取对应该进程的address space,在address space查找page_cache,如果没有找到,内核分配一个page加到内存页;第一次拷贝:读取scene.dat文件相应的页填充页缓存中的页 ;第二次拷贝:内核将page_cahce中的page拷贝到用户进程的堆空间内存...
2017-06-08 14:49:00
233
转载 DOUAudioStreamer 中的DOUAudioFileProvider理解笔记
概览DOUAudioFileProvider读取音频文件local,ipod-library,remote audiofile(通过DOUSimpleHTTPRequest封装的CFHTTPMessageCreateRequest简单请求来获取);DOUAudioFileProvider通过三个子类_DOUAudioLocalFileProvider,_DOUAudioRemot...
2017-06-06 11:09:00
163
转载 DOUAudioStreamer 中kqueue的应用
DOUAudioStreamer是一个基于Core Audio的流式音频播放器,其中的DOUAudioEventLoop通过kqueue来控制音频的各种状态。kqueue简介(详情请看官方manual)kqueue的功能类似epoll,多用于后台多个socket连接时的I/O复用,注册感兴趣的event,把描述符链表交给内核,然后就等待。一旦有某个或多个事件发生,内核就把 一个只...
2017-06-04 22:13:00
138
转载 XCode 8.3 Automatically manage signing 问题
记录iOS证书问题无意中选择了Personal team,后台自动生成bundle identifier:com.xxx.project,导致不能在Organization team创建,而且在developer portal界面中看不到Xcode自动创建的app id,创建该id时提示:An App ID with Identifier is not available. Pl...
2017-06-02 15:56:00
333
转载 顶点着色器 学习笔记
顶点着色器shader的三种变量类型uniform变量一般用来表示:变换矩阵,材质,光照参数和颜色等信息;如果在vertex和fragment两者之间声明方式完全一样,则它可以在vertex和fragment共享使用;只读常量数据;attribute变量是只能在vertex shader中使用的变量;一般用attribute变量来表示一些顶点的数据,如:顶点坐标,...
2017-05-29 23:52:00
207
转载 OpenGL ES 2.0 渲染管线 学习笔记
图中展示整个OpenGL ES 2.0可编程管线图中Vertex Shader和Fragment Shader 是可编程管线;Vertex Array/Buffer objects顶点数据来源,这时渲染管线的顶点输入,通常使用 Buffer objects效率更好。Vertex Shader顶点着色器通过矩阵变换位置、计算照明公式来生成逐顶点颜色已经生成或变...
2017-05-29 17:08:00
186
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人