初学opengl程序,有以下程序,编译通过,但是一运行就中断,
设置断点以后发现,Encode2RGBA后的pImage_RGBA和读取纹理后,用来存放输出的oImage都没有相应的改变代码如下:
        CxImage image;
image.Destroy();
image.Load(_T("image.bmp"),0); unsigned char *pImage_RGBA=NULL,*oImage=NULL; if(!image.IsValid())
return 0; int sizeX,sizeY;
sizeX=image.GetWidth();
sizeY=image.GetHeight(); long imagesize_RGB=sizeX*sizeY*3; oImage=pImage_RGBA=new unsigned char[imagesize_RGB]; image.Encode2RGBA(pImage_RGBA,imagesize_RGB); glutInit(&argc,argv);
glutCreateWindow("a");
glewInit();


GLuint fb;
glGenFramebuffersEXT(1,&fb);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT,fb);

GLuint tex;
glGenTextures(1,&tex);
glBindTexture(GL_TEXTURE_2D,tex); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP); glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,GL_COLOR_ATTACHMENT0_EXT,GL_TEXTURE_2D,tex,0);
glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,image.GetWidth(),image.GetHeight(),0,GL_RGBA,GL_BITMAP,pImage_RGBA);

        glReadBuffer(GL_COLOR_ATTACHMENT0_EXT);
glReadPixels(0,0,image.GetWidth(),image.GetHeight(),GL_RGBA,GL_BITMAP,oImage);

CxImage imageout;
imageout.Create(sizeX,sizeY,pImage_RGBA,0);
imageout.CreateFromArray(oImage,sizeX,sizeY,24,imagesize_RGB,false);

imageout.Save(_T("imageout.bmp"),0);
        image.FreeMemory(pImage_RGBA);
glDeleteFramebuffersEXT(1,&fb);
glDeleteTextures(1,&tex);
return 0;求高手指点!