[gameprogrammer] Re: GL
- From: "Husam Zakaria" <hzcppff@xxxxxxxxx>
- To: gameprogrammer@xxxxxxxxxxxxx
- Date: Fri, 3 Aug 2007 20:32:01 +0300
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
>
>
>
- Follow-Ups:
- [gameprogrammer] Re: GL
- From: Scott Harper
- [gameprogrammer] Re: GL
- From: Alan Wolfe
- References:
- [gameprogrammer] GL
- From: Alan Wolfe
Other related posts:
- » [gameprogrammer] GL
- » [gameprogrammer] Re: GL
- » [gameprogrammer] Re: GL
- » [gameprogrammer] Re: GL
- [gameprogrammer] Re: GL
- From: Scott Harper
- [gameprogrammer] Re: GL
- From: Alan Wolfe
- [gameprogrammer] GL
- From: Alan Wolfe