cocos2dx 关于shader高亮使用的问题

cocos2dx 使用shader 制作高亮效果,在Android下,如果手机设置“不保留活动”的话,home出去之后,shader是要被销毁。

会造成一些坐标不对,不能高亮的问题。

解决方法:

捕获重新进游戏,render recreate的事件。

Director::getInstance()->getEventDispatcher()->addCustomEventListener(EVENT_RENDERER_RECREATED, [this](EventCustom*
event){

/** listen the event that renderer was recreated on Android/WP8 */

//reload

this->reload();

});

在reload方法里面,重新load shader。

时间: 2024-10-13 06:52:54

cocos2dx 关于shader高亮使用的问题的相关文章

cocos2dx 编写shader 遇到 溢出问题

在 编程语言中,不论什么 数据类型 都有 各种 的 局限,无法 表示 现实世界中的 不论什么 情况. 比如 int ,char 会 溢出,float 会 有 溢出 以及 精度 不准确的 情况. 所以 我们 在 开发 中 须要 特别 注意 这些事. 近期 须要 在 cocos2dx(2.1.4) 引擎下 用 shader 做一些 效果.遇到 一些 在 windows 上 没有问题,可是 移植到 android 就会 出问题的 现象. 记录 下来.一为  加深印象 .二为 提供 遇到 同类 问题 的

cocos2dx中用shader实现折射效果

目的:给定任意法线贴图,实现折射效果 主要技术:RenderTarget,glsl 提取出一个可供使用的Sprite派生类 计算模型如下: 黑色部分为玻璃切线,红色部分为场景.绿色线为垂直于场景的视线及其延长线,红色为法线.我们求折射光,等于在给定的OB,法线向量下,求取视线经过折射后与场景的交点和视线延长线和场景交点的偏移量.求出偏移量以后,就能非常方便的利用texture2D函数采样rendertexture,得到颜色. 假设法线向量为a,则我们容易得到x, y方向的偏移为: deltaX

cocos2d-x—使用shader使图片背景透明

这里用shader处理了像素,使黑色背景透明,直接上代码 ShaderSprite.h [cpp] view plaincopyprint? #ifndef __TestShader__ShaderSprite__ #define __TestShader__ShaderSprite__ #include "cocos2d.h" USING_NS_CC; class ShaderSprite : public CCSprite { public: static ShaderSprite

基于Cocos2d-x学习OpenGL ES 2.0系列——OpenGL ES渲染之Shader准备(7)

Cocos2d-x底层图形绘制是使用OpenGL ES协议的.OpenGL ES是什么呢? OpenGL ES(OpenGl for Embedded System)是OpenGL三维图形API的子集,针对手机.Pad和游戏主机等嵌入式设备而设计.该API由Khronos集团定义推广,Khronos是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准.OpenGL ES是OpenGL三维图形API的子集,针对手机.Pad和游戏主机等嵌入式设备而设计.Cocos2d-x底层图形渲染使

Cocos2dx引擎11-OpenGLES渲染之Shader准备

Cocos2dx底层图形绘制是使用OpenGL ES协议的.OpenGL ES是什么呢? OpenGL ES(OpenGl for Embedded System)是OpenGL三维图形API的子集,针对手机,PDA和游戏主机等嵌入式设备而设计.该API有Khronos集团定义推广,Khronos是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准. OpenGL ES是从OpenGL剪裁或定制过来了,去除了glBegin/glEnd,四边形(GL_QUADS),多边形(GL_PO

基于Cocos2d-x学习OpenGL ES 2.0系列——你的第一个三角形(1)

[本系列转自]http://cn.cocos2d-x.org/tutorial/lists?id=79 前言 在本系列教程中,我会以当下最流行的2D引擎Cocos2d-x为基础,介绍OpenGL ES 2.0的一些基本用法.本系列教程的宗旨是OpenGL扫盲,让大家在使用Cocos2d-x过程中,知其然,更知其所以然.本系列教程不会涉及非常底层的数学原理,同时也不会过多地提及OpenGL本身的一些细节知识.但是我会在每篇文章的最后给出一些参考链接,大家可以顺藤摸瓜,一举Get OpenGL这个新

使用Sublime编写Shader

平时在unity中写c#代码,都是通过vs2013来的(详见 visual studio 2013 Tools) ,但是对于shader,vs却不提供语法高亮的功能,后来只能用mono,但无奈不习惯mono的风格.只能转战Sublime了. https://bitbucket.org/asmodai/shaderlanguages/  这个网站提供了Sublime 的shader 高亮包.经常更新,支持  HLSL,CG,GLSL,ShaderLab 使用方法: 打开sublime text -

Cocos2d-x 3.x中自定义渲染功能

1.第一种方法针对的是整个图层的渲染         重写visit()函数,并且在visit()函数中直接向CommandQueue添加CustomCommand,设置好回调函数.                  #ifndef __HELLOWORLD_SCENE_H__        #define __HELLOWORLD_SCENE_H__                #include "cocos2d.h"                USING_NS_CC;    

cocos2d-x学习笔记(九)使用shader创建鱼的投影

一. 1.先来看下效果图 貌似效果还可以 2.cocos2d-x的主要程序代码 Size size = Director::getInstance()->getWinSize(); auto sprite = Sprite::create("fish.png");   sprite->setPosition(size.width/2, size.height /2 );     auto shader_program = GLProgram::createWithFilen