使用RenderTexture抓取屏幕出现白屏

代码如下~


            local winsize = cc.Director:getInstance():getWinSize()
            print (winsize.width, winsize.height)
            local render_texture = cc.RenderTexture:create(winsize.width, winsize.height, 
                cc.TEXTURE2_D_PIXEL_FORMAT_BGR_A8888, 0x88F0)
            render_texture:setPosition(winsize.width / 2, winsize.height / 2)
            local scene = cc.Director:getInstance():getRunningScene()
            render_texture:begin()
            scene:visit()
            render_texture:endToLua()
            local file_name = string.format("screen_%d.png", os.time())
            print (file_name)
            local res = render_texture:saveToFile(file_name, cc.IMAGE_FORMAT_PNG)
            print (res)

如果render_texture的create方法是两个参数,就会白屏,如果是上面的这几个参数的话,截屏就会出现OpenGL error 0x0506 in C:\Users\zhangchuanwei\Documents\cocos2\PrebuiltRuntimeLua\frameworks\cocos2d-x\cocos\2d\CCDrawNode.cpp cocos2d::DrawNode::onDraw 252 这样的错误提示。

另外 0x88F0应该就是GL_DEPTH24_STENCIL8,在lua中似乎没有这个常量来的。

求各位大大指点~

帮顶。之前也遇到了。后来没用。后来用quick的截图可以用。