[gameprogrammer] Re: GL

of course you can do that by using glCopyTextImage1D or glCopyTextImage2D

The *glCopyTexImage2D* function copies pixels from the framebuffer into a
two-dimensional texture image.

*void glCopyTexImage2D(
   GLenum** target**,*
*   GLint** level**,*
*   GLenum** internalFormat**,*
*   GLint** x**,*
*   GLint** y**,*
*   GLsizei** width**,*
*   GLsizei** height**,*
*   GLint** border*
*);*

Parameters *target* The target to which the image data will be changed. Must
have the value GL_TEXTURE_2D. *level* The level-of-detail number. Level 0 is
the base image. Level *n* is the *n*th mipmap reduction image. *
internalFormat* The internal format and resolution of the texture data. The
values 1, 2, 3, and 4 are not accepted for *internalFormat*. The parameter
can assume one of the following symbolic values:  Constant R Bits G Bits B
Bits A Bits L Bits I Bits GL_ALPHA





 GL_ALPHA4


4

 GL_ALPHA8


8

 GL_ALPHA12


12

 GL_ALPHA16


16

 GL_LUMINANCE





 GL_LUMINANCE4



4
 GL_LUMINANCE8



8
 GL_LUMINANCE12



12
 GL_LUMINANCE16



16
 GL_LUMINANCE_ALPHA





 GL_LUMINANCE4_ALPHA4


4 4
 GL_LUMINANCE6_ALPHA2


2 6
 GL_LUMINANCE8_ALPHA8


8 8
 GL_LUMINANCE12_ALPHA4


4 12
 GL_LUMINANCE12_ALPHA12


12 12
 GL_LUMINANCE16_ALPHA16


16 16
 GL_INTENSITY





 GL_INTENSITY4




4 GL_INTENSITY8




8 GL_INTENSITY12




12 GL_INTENSITY16




16 GL_RGB





 GL_R3_G3_B2 3 3 2


 GL_RGB4 4 4 4


 GL_RGB5 5 5 5


 GL_RGB8 8 8 8


 GL_RGB10 10 10 10


 GL_RGB12 12 12 12


 GL_RGB16 16 16 16


 GL_RGBA





 GL_RGBA2 2 2 2 2

 GL_RGBA4 4 4 4 4

 GL_RGB5_A1 5 5 5 1

 GL_RGBA8 8 8 8 8

 GL_RGB10_A2 10 10 10 2

 GL_RGBA12 12 12 12 12

 GL_RGBA16 16 16 16 16


*x*, *y* The window coordinates of the lower-left corner of the rectangular
region of pixels to be copied. *width* The width of the texture image. Must
be 2*n* + 2 * *border* for some integer *n*. *height* The height of the
texture image. Must be 2*n* + 2 * *border* for some integer *n*. *border* The
width of the border. Must be either zero or 1. Remarks

The *glCopyTexImage2D* function defines a two-dimensional texture image
using pixels from the current framebuffer, rather than from main memory as
is the case for *glTexImage2D* <glfunc03_16jo.htm>.

Using the mipmap level specified with *level*, texture arrays are defined as
a rectangle of pixels with the lower-left corner located at the coordinates
*x* and *y*, width equal to *width* + (2 * *border*), and a height equal to
*height* + (2 * *border*). The internal format of the texture array is
specified with the *internalFormat* parameter.

The *glCopyTexImage2D* function processes the pixels in a row in the same
way as *glCopyPixels* <glfunc01_36ur.htm> except that before the final
conversion of the pixels, all pixel component values are clamped to the
range [0, 1] and converted to the texture's internal format for storage in
the texture array. Pixel ordering is determined with lower *x *and
*y*coordinates corresponding to lower
*s* and *t* texture coordinates. If any of the pixels within a specified row
of the current framebuffer are outside the window associated with the
current rendering context, then their values are undefined.

You cannot include calls to *glCopyTexImage2D* in display lists.

*Note*  The *glCopyTexImage2D* function is only available in OpenGL version
1.1 or later.

Texturing has no effect in color-index mode. The
*glPixelStore*<glfunc03_7kdh.htm>and
*glPixelTransfer* <glfunc03_881e.htm> functions affect texture images in
exactly the way they affect *glDrawPixels* <glfunc01_6lbn.htm>.

The following function retrieves information related to *glCopyTexImage2D*:

*glIsEnabled* <glfunc03_7pgk.htm> with argument GL_TEXTURE_2D


On 8/3/07, Alan Wolfe <alan.wolfe@xxxxxxxxx> wrote:
>
> Hey guys,
>
> Does anyone know if theres a way to take part of the screen and make a
> gl texture out of that?
>
> Basically what i'm trying to do is a post processing effect where i
> take whats on the screen and manipulate it.  glreadpixels is going way
> slow and i was thinking i only need to take an image from the screen
> (video memory) and make a texture with it (more video memory) so is
> there a way to do it without having to pull the pixel data into system
> memory?
>
> Thanks!!
> Alan
>
> ---------------------
> To unsubscribe go to http://gameprogrammer.com/mailinglist.html
>
>
>

Other related posts: