代码如下~
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中似乎没有这个常量来的。
求各位大大指点~