As we know changing pbuffers is slow, changing surfaces is fast. But I don’t how to make it work.
(Here I have set the Wgl_Double_Buffer in pbuffer pixel format)
pbuffer->MakeCurrent();
///Front surface
glDrawBuffer(WGL_FRONT_LEFT_ARB);
glBindTexture(GL_TEXTURE_RECTANGLE_NV, tex0_id);
wglReleaseTexImageARB(hpf, WGL_FRONT_LEFT_ARB);
glBindProgramNV(GL_FRAGMENT_PROGRAM_NV, ShaderID);
DrawSomething;
glBindTexture(GL_TEXTURE_RECTANGLE_NV, tex0_id);
wglBindTexImageARB(hpf, WGL_FRONT_LEFT_ARB);
///Back
glDrawBuffer(WGL_BACK_LEFT_ARB);
wglReleaseTexImageARB(hpf, WGL_BACK_LEFT_ARB);
glBindTexture(GL_TEXTURE_RECTANGLE_NV, tex1_id);
wglReleaseTexImageARB(hpf, WGL_BACK_LEFT_ARB);
glBindProgramNV(GL_FRAGMENT_PROGRAM_NV, ShaderID);
DrawSomething;
glBindTexture(GL_TEXTURE_RECTANGLE_NV, tex1_id);
wglBindTexImageARB(hpf, WGL_BACK_LEFT_ARB);
Thank you in advance.