Question: I was looking for a way to detect the browser extension I am building from my website and I need to alert my users in-case they are viewing my site without it. I have been able to do this in firefox, but I want to know is there a way I can do this in Google Chrome? Even if there is a hack to get this going I am fine.

Answer: 
Let's cover all the bases here.

First, a direct answer: yes, there is such a function. It's called `glDrawPixels`. I'm not kidding.

`glDrawPixels` can certainly read from GPU memory, provided that [you are using buffer objects as their source data](http://www.opengl.org/wiki/Pixel_Buffer_Object) (commonly called "pixel buffer objects"). `glDrawPixels` can use pixel buffer objects as the source for pixel data. Buffer objects are (theoretically, at least) in GPU memory, so they qualify.

However, you add onto this "Either a texture of a frame buffer object". Under this qualification, you're asking, "is there a way to copy pixel data from one texture/framebuffer to the current framebuffer?"

Yes. [`glBlitFramebuffer`](http://www.opengl.org/wiki/GLAPI/glBlitFramebuffer) can do that. It blits from the `GL_READ_FRAMEBUFFER` to the `GL_DRAW_FRAMEBUFFER`. And since you can add images from textures to FBOs, you can copy from images just fine. You can even copy from the default framebuffer to some renderbuffer or texture.

You can also employ [`glCopyImageSubData`](http://www.opengl.org/wiki/GLAPI/glCopyImageSubData), which copies pixel rectangles from one image to another. It's a lot more convenient than `glBlitFramebuffer` if all you're doing is copying pixel data. This is quite new at present (GL 4.3, or [ARB\_copy\_image](http://www.opengl.org/registry/specs/ARB/copy_image.txt)). It cannot be used to copy data to the default framebuffer.
If it is in a texture:

* set up orthographic frustum
* disable blending, depth test, etc.
* bind texture
* draw screen-aligned textured quad with correct texture coordinates

I use this in for example in [Compositor::\_drawPixels](http://www.equalizergraphics.com/cgi-bin/viewvc.cgi/trunk/src/lib/client/compositor.cpp?revision=4207&view=markup)