android下的glScissor运行怪异

  • 本帖最后由 drsbcocosx 于 2012-8-16 16:27 编辑 *

void MySprit::visit()
{

glEnable(GL_SCISSOR_TEST);
//glScissor(x, y, w, h);
glScissor(0, 0, 320,480);
CCSprite::visit();
glDisable(GL_SCISSOR_TEST);
}

win32下跑的好好的,编到android上sprite显示不出来

尝试 glScissor(0, 0, screenWidth,screenHeight); 把裁剪区域设为全屏,但没效果

help~~~

— Begin quote from ____

skoky 发表于 2012-8-16 21:31 url

已上传,链接在下面
http://cocos2d.cocoachina.com/bbs/forum.php?mod=viewthread&tid=4110&extra=

— End quote

谢谢,非常受用!{:3_48:}

— Begin quote from ____

drsbcocosx 发表于 2012-8-16 18:13 url

是的,后来我也看到glScissor设定的时候,传入的是opengl画图的绝对坐标。

试图通过touch事件的location …

— End quote

已上传,链接在下面
http://cocos2d.cocoachina.com/bbs/forum.php?mod=viewthread&tid=4110&extra=

— Begin quote from ____

drsbcocosx 发表于 2012-8-16 22:12 url

用CCDirector::sharedDirector()->getOpenGLView()->setScissorInPoints(x, y,w, h);代替glScissor(x, y, w …

— End quote

{:soso_e165:}{:soso_e165:}{:soso_e165:}{:soso_e179:}{:soso_e179:}{:soso_e179:}

用CCDirector::sharedDirector()->getOpenGLView()->setScissorInPoints(x, y,w, h);代替glScissor(x, y, w, h);

这个问题 牵扯得有点多, glScissor 里面的参数可以说是精确到像素的,而cocos2d里面
不是以像素为单位而是以CCPoint为单位。

涉及到的东西有 缩放,横竖屏,坐标转换。 楼主急的话可以去网上找找现成的。

晚上看能不能记得,发个分享帖子出来,把之前封装的一些代码传上来。

— Begin quote from ____

skoky 发表于 2012-8-16 17:30 url

这个问题 牵扯得有点多, glScissor 里面的参数可以说是精确到像素的,而cocos2d里面
不是以像素为单位而 …

— End quote

是的,后来我也看到glScissor设定的时候,传入的是opengl画图的绝对坐标。

试图通过touch事件的locationInView方法 ,来逆转view里的坐标到屏幕坐标,不简单。

如果有实现的就太好了

— Begin quote from ____

drsbcocosx 发表于 2012-8-16 22:12 url

用CCDirector::sharedDirector()->getOpenGLView()->setScissorInPoints(x, y,w, h);代替glScissor(x, y, w …

— End quote

{:soso_e165:}{:soso_e165:}{:soso_e165:}{:soso_e179:}{:soso_e179:}{:soso_e179:}