现有接口
GLuint onProcess(GLuint textureID, CGFloat width, CGFloat height)
{
//textureID为纹理ID,此纹理已有图片数据,格式为 GL_TEXTURE_2D, RGBA
//width 为图片宽度,height为图片高度
提问:我如何在此处获取 textureID 对应纹理的数据进行矢量运算,再装载回原来的纹理
return textureID;
}
我的做法是:
GLuint onProcess(GLuint textureID, CGFloat width, CGFloat height)
{
static GLubyte buffer[2048*2048*4] = {0};
glBindTexture(GL_TEXTURE_2D, textureID);
glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
int nCount = width * height * 4;
for (int i = 0; i < nCount; i++)
{
buffer[i] = 255;
}
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
return textureID;
}
然后发现没用,请问要怎么做?