back  Return to list

WGL_NV_render_texture_rectangle
homeprevnext Name
  
    NV_render_texture_rectangle  
  
homeprevnext Name Strings
  
    WGL_NV_render_texture_rectangle  
  
homeprevnext Contact
  
    Pat Brown, NVIDIA Corporation (pbrown 'at' nvidia.com)  
  
homeprevnext Notice
  
    Copyright NVIDIA Corporation, 2001, 2002.  
  
homeprevnext Status
  
    Shipping, March 2002.  
  
homeprevnext Version
  
    Last Modified Date:  $Date: 2003/01/08 $  
    NVIDIA Revision:  $Revision: #7 $  
  
homeprevnext Number
  
    264  
  
homeprevnext 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.   
  
homeprevnext 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.  
  
homeprevnext 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.  
  
homeprevnext New Procedures and Functions
  
    None.  
  
homeprevnext New Tokens
  
    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  
  
homeprevnext Additions to Chapter 2 of the OpenGL 1.2.1 Specification (OpenGL Operation)
  
    None.   
  
homeprevnext Additions to Chapter 3 of the OpenGL 1.2.1 Specification (Rasterization)
  
    None.   
  
homeprevnext Additions to Chapter 4 of the OpenGL 1.2.1 Specification (Per-Fragment Operations and the Frame Buffer)
  
    None.   
  
homeprevnext Additions to Chapter 5 of the OpenGL 1.2.1 Specification (Special Functions)
  
    None.   
  
homeprevnext Additions to Chapter 6 of the OpenGL 1.2.1 Specification (State and State Requests)
  
    None.   
  
homeprevnext 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.  
  
  
homeprevnext New State
  
    None   
  
homeprevnext Revision History
  
    None  
    None  
Valid XHTML 1.1! Valid CSS! Last update: November 14, 2006.
Cette page doit être lue avec un navigateur récent respectant le standard XHTML 1.1.