While it is unfortunately necessary to create a minimum 1x1 native surface in order to use FBO's, you only need one context. This is true at least with EGL/OpenGL ES. I'm not very familiar with WGL.
Note that this is currently not implemented in Firefox, as we create a new pbuffer context for each resize thus losing all previous GL resources. We correctly track that now and throw errors when you try to use them in the future -- this is why things like MeShade don't work. We'll likely switch soon to using FBOs for backbuffer rendering -- the main reason I'm not a fan of that is that it requires you to share resources with a parent GL context that's rendering to the screen, which means you don't get nice cleanup semantics by just destroying a GL context. You have to make sure you delete all objects; I also worry about fragmentation issues with very long lived GL contexts (such as the parent context), with many contexts being created/destroyed that share resources with it... but we'll cross that bridge when we get there. - Vlad
begin:vcard fn:Mark Callow n:Callow;Mark org:HI Corporation;Graphics Lab, Research & Development adr:Higashiyama 1-4-4, Meguro-ku;;Meguro Higashiyama Bldg 5F;Tokyo;;153-0043;Japan email;internet:email@example.com title:Chief Architect tel;work:+81 3 3710 9367 x228 tel;fax:+81 3 5773 8660 x-mozilla-html:TRUE url:http://www.hicorp.co.jp, http://www.mascotcapsule.com version:2.1 end:vcard