如何使用带有c ++的marmalade截取屏幕截图?

时间:2014-04-28 19:39:00

标签: c++ screenshot marmalade

我搜索了文档并没有发现任何内容,然后在谷歌搜索后我发现了这个glReadPixels,我想我可以拍摄截图。

我需要创建一个带有图像的facebookdialog,所以即时通讯使用以下行:

static s3eFBRequest* req = s3eFBRequest_WithGraphPath(MultiLoginScene::getSession(), "me/photos", "POST");
s3eFBRequest_AddParamString(req, "picture", XXX);

XXX是一个const char *,这是我需要拍摄的截图,然后我会发送请求。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

Marmalade网站已经不见了。不幸的是,答案没有发布在这里,但简单地说:

int w = s3eSurfaceGetInt(S3E_SURFACE_WIDTH);
int h = s3eSurfaceGetInt(S3E_SURFACE_HEIGHT);

int dataSize = w * h * 3;
unsigned char *framebuffer = (unsigned char *) malloc(dataSize * sizeof(unsigned char));
glReadPixels(0, 0, w, h, GL_RGB, GL_UNSIGNED_BYTE, framebuffer);
flipVertical(framebuffer, w, h);

CIwImage image;
image.SetFormat(CIwImage::BGR_888);
image.SetWidth(w);
image.SetHeight(h);
image.SetBuffers(framebuffer, dataSize);
image.SavePng(filename);

free(framebuffer);

答案 1 :(得分:0)

您必须首先在橘子酱网站上搜索这些功能。已经有了很好的书面答案here

PS:请停止发出多个问同样的问题。