关闭

Texture Buffer Object

Texture Buffer Object(TBO),是这一种特殊的一维纹理。需要和缓存对象关联使用,在着色器中可以访问缓冲对象管理的内存数据。初始化//*********************************************************** //FUNCTION:: void CTBOApp::__createTexturetBufferObject() {...
阅读(255) 评论(0)

Atomic Counter

Atomic Counter是一个缓存对象,存储着一个或者多个unsigned int的变量值。在GLSL着色器有着特定的原子操作(单一的,不可再分的操作)。 atomicCounterIncrement 原子计数+1 atomicCounterDecrement 原子计数-1 Atomic Counter可以用来控制片元的执行,避免对同一块内存区域同时操作。原子计数器表明当前片元在执行任务时,不能...
阅读(141) 评论(0)

Shader Storage Buffer Object

Shader Storage Buffer Object是GLSL着色器的buffer,不同于uniform buffer在着色器不可修改,shader storage buffer是可读可写的。修改的内容给其他着色器调用或者应用程序本身。初始化 m_UniformBlockData.uLightDirectionE = glm::vec4(1, 1, 1, 0); m_Uniform...
阅读(153) 评论(0)

Uniform Buffer Object

uniform 变量是着色器和应用程序之间共享数据的桥梁。uniform buffer是GPU上的内存空间,从应用程序传递数据到GLSL程序。uniform buffer object 主要优势是可以在不同的GLSL着色器中分享数据,注意uniform buffer在GLSL中是只能读不能修改。Uniform Block在shader程序中,定义了一系列的uniform变量,可以把这些变量组合在一起...
阅读(198) 评论(0)

Jekyll 多说评论

Jekyll默认是支持Disqus评论功能,我也比较喜欢Disqus。但是因为国内使用Disqus必须翻墙,其次国内大部分程序员都使用多说,其互动性交流讨论更强。 多说多说评论插件系统可以集成与Wordpress,Hexo,,Jekyll各种网站和博客中。因为集成了微博,QQ,微信,人人网,豆瓣等社交平台,所以用户更多样化,互动评论量也增多。添加步骤多说到Jekyll步骤如下: 注册多说网站站点,...
阅读(473) 评论(0)

Jekyll 自动生成文章

当使用Jekyll写文章的时候,你肯定不想麻烦的创建文本,修改文本后缀名,再加文本头加上yml语法开头。所以这时候你肯定想到的是写个脚本简化操作,程序员不就是为偷懒而写代码吗?可以使用Rake来解决这个问题。RakeRake,即Ruby Make, 使用ruby开发代码构建工具。 安装rake gem install rake,可以先查看gem list rake 是否已经安装rake? 编写Ra...
阅读(131) 评论(0)

Jekyll 组装

初步认识Jekyll之后,需要搭建自己的博客系统。可以fork别人的 jekyll 主题。Jekyll 主题 ,列举了一些美观的主题,任选你满意的一个即可。安装主题 git clone 主题仓库的git cd 目录 jekyll serve 如此简单高效地搭建了一个博客。下面介绍一些必要插件。语法高亮jekyll 使用 pygments 来支持语法高亮,所以你需要安装 gem install pyg...
阅读(139) 评论(0)

初识Jekyll

JekyllJekyll是一个使用Ruby编写的静态站点生成工具,使用Liquid模板渲染引擎,支持Markdown和Textile标记语言,并且可以为所有以 .html、.markdown、.textile扩展名结尾的文件使用YAML配置,内置语法高亮功能。而GitHub的Pages服务可以为每个GitHub主机上的仓库提供静态页面服务,并且Pages服务支持Jekyll。Jekyll和GitHu...
阅读(145) 评论(0)

Jekyll搭建本地环境

Jekyll使用git作为博客存储的搭建工具,Jekyll是一个静态的网站,优势是不担心流量和排版问题。不好的是不存在评论等插件系统,不过后期也可以解决。本文无干货分享,仅记录搭建过程。 安装git::git tools 安装Ruby: ruby 安装RubyGems 安装DevKit:DevKit 在命令窗口下切换到安装目录,并执行以下命令 安装Jekyll和验证 创建jekyll工程目录和开启...
阅读(161) 评论(0)

Boost asio

asio(asynchronous input and output) 表示异步输入输出,是基于操作系统提供的异步机制,异步数据处理表示触发后不需要等待完成,期间可以执行其他任务,而且不要求使用多线程和锁定,有效避免了条件竞争,死锁等。asio主要用于网络通信方面,支持TCP,UDP,ICMP等网络通信协议。asioasio主要分为同步和异步两种方式,同步表示同步等待,比如网络连接时,客户端发出请求...
阅读(1237) 评论(0)

Boost serialization

序列化(serializtion)是指把对象信息转换成可以存储或者通过网络连接传输格式的过程,然后在本地或者在另一个计算机环境中可以重构出原有的对象信息是指反序列化。前言本文只介绍通过boost serialization存储的优势,先通过例子简单明白。假如现在你是一个学校学生系统管理员,你需要保存学生信息,比如学生学好,名字,年龄。当然最简单的方式是通过C++的文本操作解决方案。//*******...
阅读(178) 评论(0)

Boost xpressive 正则表达式

正则表达式能方便处理文本问题,比如验证,匹配,查找,替换等。而boost xpressive提供动态和静态方式,静态方式类似于boost.spirit语法分析器,使用操作符重载生成编译器的表达式对象,可以在编译器进行正则表达式的语法检查。动态方式以字符串作为表达式对象,在运行时进行语法检查和处理。通常我们不必关心那种方式,因为在boost中它们已经融合,所以两者可以混用。正则表达式语法 点号. 单字...
阅读(251) 评论(0)

Boost string_algo

Boost提供了字符串处理算法,如大小写无关比较,修剪,特定模式的子串查找等。而且它处理的对象不一定是string,可以是符合boost.range要求的容器。string_algo 还有一些命名规则: 前缀 i: 表明大小写不敏感 后缀_copy : 算法不变动输入,返回处理结果的复制,否则算法原地处理,输入即输出 后缀_if : 需要一个作为判断式的谓词函数对象,否则使用默认判断准则 大小写转换...
阅读(241) 评论(0)

STL stack

stack栈是一种先进后出的数据结构,记得大学时期的计算器就是使用栈的数据结构实现,当然这种数据结构使用场景居多。Constructor stackstd::stack first; std::stack second(first); std::stack<int, std;:vector> third; //使用vector初始化stack压栈,出栈stack压栈函数...
阅读(104) 评论(0)

STL map

stl中的map和set一样,都是关联性容器,内部实现是红黑树,所以检索速率高效。不同的是,map的数据形式是键值对,即Key-value。而且需要注意的是在map中,key值唯一,并默认会根据key的字典序进行升序排序。数据插入map添加数据可以有四种方式,分别是通过pair组合成键值对的形式,和数组的方式添加。#include #include #incl...
阅读(149) 评论(0)

STL list

STL中的list是序列容器,内部实现方式是双向链表,而链表的优势在于插入和删除元素效率高,但是随机访问元素相比vector数组的形式就低,所以读者在具体实现项目的时候,可以考虑因素选取。函数说明 list explain push_back 增加一元素到链表尾 push_front 增加一元素到链表头 sort 对链表排序,默认升序 merge 合并两个有序链...
阅读(212) 评论(0)

STL set

stl中的set是关联性容器结构,内部实现是采用红黑树的平衡二叉树,在set容器中每个元素的值唯一,即如果插入两个相同的数,后面的会被忽略,不会插入set容器。并且,set的元素会自动排序,默认排序方式从大到小的方式,当然可以自定义排序方式。注意,set容器中元素的值不能直接被修改。插入元素不同于的vector的push_back()方式,set中加入元素的函数是insert()。#include...
阅读(406) 评论(0)

STL vector

STL 最常见使用最多的是vector,它能容纳任何数据类型,因为它是模板实现,所以自定义的结构体,也是可行。内部实现是以数组形式,所以开辟的内存空间是连续的,并且vector中operator了[]符号,可以像数组一样访问数据。但是需要注意的是,这不是安全的,加入超过了vector的实际长度空间,那么取的值就是异常值,解决方法是使用at函数取值,越界会报异常out_of_range。 vecto...
阅读(177) 评论(0)

C++ mutable

mutable 英语翻译是易变的,性情不定的。常看到用来修饰成员函数变量,表示这个函数可以被修改,即使这个变量在const函数中,mutable修饰的变量也能被修改,从而忽略const的限制。#include class CMutable { public: CMutable(void):m_Count(0){} ~CMutable(void){} int...
阅读(184) 评论(0)

C++ volatile

volatile英文的翻译是不稳定的,在C++中关键字声明表明其后变量值可能被改变,但是声明后,每次取值都是都是到内存中取值,从未防止编译器优化。A volatile specifier is a hint to a compiler that an object may change its value in ways not specified by the language so that a...
阅读(137) 评论(0)
25条 共2页1 2 下一页 尾页
    个人资料
    • 访问:6585次
    • 积分:319
    • 等级:
    • 排名:千里之外
    • 原创:25篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类