Back to the OpenGL extension cross reference
WGL_NV_render_texture_rectangle
    NV_render_texture_rectangle
Name Strings 
    WGL_NV_render_texture_rectangle
Contact 
    Pat Brown, NVIDIA Corporation (pbrown 'at' nvidia.com)
Notice
    Copyright NVIDIA Corporation, 2001, 2002.
Status 
    Shipping, March 2002.
Version 
    Last Modified Date:  $Date: 2003/01/08 $
    NVIDIA Revision:  $Revision: #7 $
Number 
    264
Dependencies 
    OpenGL 1.1 is required. 
    WGL_ARB_render_texture is required.
    GL_NV_texture_rectangle is required.
    The extension is written against the OpenGL 1.2.1 Specification. 
Overview 
    This extension allows a color buffer with non-power-of-two dimensions to
    be used for both rendering and texturing.  It is built upon the
    ARB_render_texture extension; the only addition in this extension is the
    ability to bind a texture to a texture rectangle target, as provided
    through the NV_texture_rectangle extension.
Issues 
    What is the interaction of this spec and the WGL_MIPMAP_TEXTURE_ARB
    attribute?
      RESOLVED:  NV_texture_rectangle doesn't support mipmaps, so it's kind of
      stupid to allocate them.  Trying will result in an error.
    Should there be separate pixel format attributes for
    BIND_TO_TEXTURE_RECTANGLE_RGB and RGBA?  Or is a simple
    BIND_TO_TEXTURE_RECTANGLE attribute sufficient?
      RESOLVED:  Separate capabilities.  There may be pixel formats where
      rendered texture rectangles are supported, but conventional textures are
      not.  If a single BIND_TO_TEXTURE_RECTANGLE attribute were used, there
      would be no cue for RGB/RGBA binding support, and the existing
      attributes would signal the ability to render to conventional textures.
      Alternately, pixel formats could be constrained so that the only
      render-texture capable formats are those that support all allowable
      targets.
Implementation Notes
    None.
    None.
    Accepted by the <piAttributes> parameter of wglGetPixelFormatAttribivARB,
    wglGetPixelFormatAttribfvARB, and the <piAttribIList> and <pfAttribIList>
    parameters of wglChoosePixelFormatARB:
        WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV           0x20A0
        WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV          0x20A1
    Accepted as a value in the <piAttribList> parameter of wglCreatePbufferARB
    and returned in the value parameter of wglQueryPbufferARB when
    <iAttribute> is WGL_TEXTURE_TARGET_ARB:
        WGL_TEXTURE_RECTANGLE_NV                       0x20A2
Additions to Chapter 2 of the OpenGL 1.2.1 Specification (OpenGL Operation) 
    None. 
Additions to Chapter 3 of the OpenGL 1.2.1 Specification (Rasterization) 
    None. 
Additions to Chapter 4 of the OpenGL 1.2.1 Specification (Per-Fragment 
Operations and the Frame Buffer) 
    None. 
Additions to Chapter 5 of the OpenGL 1.2.1 Specification (Special Functions) 
    None. 
Additions to Chapter 6 of the OpenGL 1.2.1 Specification (State and State 
Requests) 
    None. 
Additions to the WGL Specification 
    First, close your eyes and pretend that a WGL specification actually
    existed.  Maybe if we all concentrate hard enough, one will magically
    appear.
    These modifications are relative to the ARB_render_texture spec.
    Add to the description of <piAttributes> in wglGetPixelFormatAttribivARB 
    and <pfAttributes> in wglGetPixelFormatfv: 
        WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV
        WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV
        True if the color buffers can be bound as RGB/RGBA textures using the
        texture rectangle target.  Currently only pbuffers can be bound as
        textures so this attribute will only be TRUE if WGL_DRAW_TO_PBUFFER is
        also TRUE. It is possible to bind a RGBA visual to a RGB texture in
        which case the values in the alpha component of the visual are ignored
        when the color buffer is used as a RGB texture.
    Add new table entries to match criteria in description of 
    wglChoosePixelFormatARB: 
        Attribute                               Type        Match Criteria 
        WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV    boolean         exact
        WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV   boolean         exact
    Modify wglCreatePbufferARB: 
        The following attributes are supported by wglCreatePbufferARB: 
        ...
        WGL_TEXTURE_TARGET_ARB 
        This attribute indicates the target for the texture that will be
        created when the pbuffer is created with a texture format other than
        WGL_NO_TEXTURE_ARB.  This attribute can be set to WGL_NO_TEXTURE_ARB,
        WGL_TEXTURE_1D_ARB, WGL_TEXTURE_2D_ARB, WGL_TEXTURE_CUBE_MAP_ARB, or
        WGL_TEXTURE_RECTANGLE_NV. The default value is WGL_NO_TEXTURE_ARB.
    (Modify power-of-two error for wglCreatePbufferARB)
        ERROR_INVALID_DATA     The pixel format attribute 
                               WGL_TEXTURE_TARGET_ARB is WGL_TEXTURE_1D_ARB,
                               WGL_TEXTURE_2D_ARB, or
                               WGL_TEXTURE_CUBE_MAP_ARB, and WGL_PBUFFER_WIDTH
                               and/or WGL_PBUFFER_HEIGHT is not a power of
                               two.
    (Add new wglCreatePbufferARB error)
        ERROR_INVALID_DATA     WGL_TEXTURE_TARGET_ARB is
                               WGL_TEXTURE_RECTANGLE_NV
                               and WGL_MIPMAP_TEXTURE_ARB is non-zero.
    (Add wglCreatePbufferARB errors missing from the ARB_render_texture spec)
        ERROR_INVALID_DATA     WGL_TEXTURE_FORMAT_ARB is WGL_TEXTURE_RGB_NV,
                               WGL_TEXTURE_TARGET_ARB is
                               WGL_TEXTURE_RECTANGLE_NV, and the
                               WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV attribute
                               is not set in the pixel format.
        ERROR_INVALID_DATA     WGL_TEXTURE_FORMAT_ARB is WGL_TEXTURE_RGB_NV,
                               WGL_TEXTURE_TARGET_ARB is not
                               WGL_TEXTURE_RECTANGLE_NV, and the
                               WGL_BIND_TO_TEXTURE_RGB_NV attribute is not set
                               in the pixel format.
        ERROR_INVALID_DATA     WGL_TEXTURE_FORMAT_ARB is WGL_TEXTURE_RGBA_NV,
                               WGL_TEXTURE_TARGET_ARB is
                               WGL_TEXTURE_RECTANGLE_NV, and the
                               WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV attribute
                               is not set in the pixel format.
        ERROR_INVALID_DATA     WGL_TEXTURE_FORMAT_ARB is WGL_TEXTURE_RGBA_NV,
                               WGL_TEXTURE_TARGET_ARB is not
                               WGL_TEXTURE_RECTANGLE_NV, and the
                               WGL_BIND_TO_TEXTURE_RGBA_NV attribute is not
                               set in the pixel format.
    Modify wglBindTexImageARB (only adding verbiage for supporting texture
    rectangles):
        The command 
        BOOL wglBindTexImageARB (HPBUFFERARB hPbuffer, int iBuffer)
        defines a one-dimensional texture image, a two-dimensional 
        texture image, a two-dimensional texture rectangle image, or a set of
        two-dimensional cube map texture images...
        The texture targets are derived...  If the texture target is
        WGL_TEXTURE_2D_ARB, then <iBuffer> defines a 2D texture for the
        current 2D texture object.  If the texture target is
        WGL_TEXTURE_RECTANGLE_NV, then <iBuffer> defines a texture rectangle
        for the current texture rectangle object.  If the texture target is
        WGL_TEXTURE_1D_ARB, then <iBuffer> defines a 1D texture for the
        current 1D texture object.
New State 
    None 
Revision History 
    None
Implementation Support
   List of OpenGL implementations supporting the WGL_NV_render_texture_rectangle extension
Original File
   Original text file for the WGL_NV_render_texture_rectangle extension
Page generated on Sun Nov 20 18:39:44 2005