update
[linguofeng.github.com.git] / _posts / 2013-02-04-cocos2d-x-CCRenderTexture.textile
blobd3941a4a2be392247a6857b0a6f125e7eb7afdf6
1 ---
2 layout: post
3 title: Cocos2d-x之CCRenderTexture
4 description: Cocos2dx的画图功能
5 categories: [archive]
6 tags: [cocos2d-x]
7 ---
9 <section>
10     <div class="page-header">
11         <h3>一、如果使用</h3>
12     </div>
13 <pre class="prettyprint">
14 CCRenderTexture *pRender = CCRenderTexture::renderTextureWithWidthAndHeight(width, height);
15 pRender->begin();
17 // 这里可以调用,把相应的东西画在CCRendertexture上,可以画任何东西
18 CCNode::visit();
20 pRender->end(false);
21 </pre>
22 </section>
24 <section>
25     <div class="page-header">
26         <h3>二、使用混合模式</h3>
27     </div>
28     <p>主要是使用 @glBlendFunc()@ 函数,有两个参数,前者表示源因子,后者表示目标因子。</p>
29 <pre class="prettyprint">
30 GL_ZERO                    // 表示使用0.0作为因子,实际上相当于不使用这种颜色参与混合运算。
31 GL_ONE                     // 表示使用1.0作为因子,实际上相当于完全的使用了这种颜色参与混合运算。
32 GL_SRC_ALPHA               // 表示使用源颜色的alpha值来作为因子。
33 GL_DST_ALPHA               // 表示使用目标颜色的alpha值来作为因子。
34 GL_ONE_MINUS_SRC_ALPHA     // 表示用1.0减去源颜色的alpha值来作为因子。
35 GL_ONE_MINUS_DST_ALPHA     // 表示用1.0减去目标颜色的alpha值来作为因子。
36 </pre>
37     <p>如果设置了 @glBlendFunc(GL_ONE, GL_ZERO);@,则表示完全使用源颜色,完全不使用目标颜色,因此画面效果和不使用混合的时候一致。</p>
38     <p>如果设置了 @glBlendFunc(GL_ONE, GL_ONE);@,则表示完全使用源颜色和目标颜色,最终的颜色实际上就是两种颜色的简单相加。</p>
40     <p>参考:http://blog.csdn.net/aurora_mylove/article/details/1700540</p>
41 </section>