15bd8deadSopenharmony_ciName 
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    NV_render_texture_rectangle
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings 
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    WGL_NV_render_texture_rectangle
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContact 
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Pat Brown, NVIDIA Corporation (pbrown 'at' nvidia.com)
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ciNotice
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ci    Copyright NVIDIA Corporation, 2001, 2002.
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ciStatus 
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ci    Shipping, March 2002.
205bd8deadSopenharmony_ci
215bd8deadSopenharmony_ciVersion 
225bd8deadSopenharmony_ci
235bd8deadSopenharmony_ci    Last Modified Date:  2003/01/08
245bd8deadSopenharmony_ci    NVIDIA Revision:     7
255bd8deadSopenharmony_ci
265bd8deadSopenharmony_ciNumber 
275bd8deadSopenharmony_ci
285bd8deadSopenharmony_ci    264
295bd8deadSopenharmony_ci
305bd8deadSopenharmony_ciDependencies 
315bd8deadSopenharmony_ci
325bd8deadSopenharmony_ci    OpenGL 1.1 is required. 
335bd8deadSopenharmony_ci
345bd8deadSopenharmony_ci    WGL_ARB_render_texture is required.
355bd8deadSopenharmony_ci
365bd8deadSopenharmony_ci    GL_NV_texture_rectangle is required.
375bd8deadSopenharmony_ci
385bd8deadSopenharmony_ci    The extension is written against the OpenGL 1.2.1 Specification. 
395bd8deadSopenharmony_ci
405bd8deadSopenharmony_ciOverview 
415bd8deadSopenharmony_ci
425bd8deadSopenharmony_ci    This extension allows a color buffer with non-power-of-two dimensions to
435bd8deadSopenharmony_ci    be used for both rendering and texturing.  It is built upon the
445bd8deadSopenharmony_ci    ARB_render_texture extension; the only addition in this extension is the
455bd8deadSopenharmony_ci    ability to bind a texture to a texture rectangle target, as provided
465bd8deadSopenharmony_ci    through the NV_texture_rectangle extension.
475bd8deadSopenharmony_ci
485bd8deadSopenharmony_ciIssues 
495bd8deadSopenharmony_ci
505bd8deadSopenharmony_ci    What is the interaction of this spec and the WGL_MIPMAP_TEXTURE_ARB
515bd8deadSopenharmony_ci    attribute?
525bd8deadSopenharmony_ci
535bd8deadSopenharmony_ci      RESOLVED:  NV_texture_rectangle doesn't support mipmaps, so it's kind of
545bd8deadSopenharmony_ci      stupid to allocate them.  Trying will result in an error.
555bd8deadSopenharmony_ci
565bd8deadSopenharmony_ci    Should there be separate pixel format attributes for
575bd8deadSopenharmony_ci    BIND_TO_TEXTURE_RECTANGLE_RGB and RGBA?  Or is a simple
585bd8deadSopenharmony_ci    BIND_TO_TEXTURE_RECTANGLE attribute sufficient?
595bd8deadSopenharmony_ci
605bd8deadSopenharmony_ci      RESOLVED:  Separate capabilities.  There may be pixel formats where
615bd8deadSopenharmony_ci      rendered texture rectangles are supported, but conventional textures are
625bd8deadSopenharmony_ci      not.  If a single BIND_TO_TEXTURE_RECTANGLE attribute were used, there
635bd8deadSopenharmony_ci      would be no cue for RGB/RGBA binding support, and the existing
645bd8deadSopenharmony_ci      attributes would signal the ability to render to conventional textures.
655bd8deadSopenharmony_ci
665bd8deadSopenharmony_ci      Alternately, pixel formats could be constrained so that the only
675bd8deadSopenharmony_ci      render-texture capable formats are those that support all allowable
685bd8deadSopenharmony_ci      targets.
695bd8deadSopenharmony_ci
705bd8deadSopenharmony_ciImplementation Notes
715bd8deadSopenharmony_ci
725bd8deadSopenharmony_ci    None.
735bd8deadSopenharmony_ci
745bd8deadSopenharmony_ciNew Procedures and Functions 
755bd8deadSopenharmony_ci
765bd8deadSopenharmony_ci    None.
775bd8deadSopenharmony_ci
785bd8deadSopenharmony_ciNew Tokens 
795bd8deadSopenharmony_ci
805bd8deadSopenharmony_ci    Accepted by the <piAttributes> parameter of wglGetPixelFormatAttribivARB,
815bd8deadSopenharmony_ci    wglGetPixelFormatAttribfvARB, and the <piAttribIList> and <pfAttribIList>
825bd8deadSopenharmony_ci    parameters of wglChoosePixelFormatARB:
835bd8deadSopenharmony_ci
845bd8deadSopenharmony_ci        WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV           0x20A0
855bd8deadSopenharmony_ci        WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV          0x20A1
865bd8deadSopenharmony_ci
875bd8deadSopenharmony_ci    Accepted as a value in the <piAttribList> parameter of wglCreatePbufferARB
885bd8deadSopenharmony_ci    and returned in the value parameter of wglQueryPbufferARB when
895bd8deadSopenharmony_ci    <iAttribute> is WGL_TEXTURE_TARGET_ARB:
905bd8deadSopenharmony_ci
915bd8deadSopenharmony_ci        WGL_TEXTURE_RECTANGLE_NV                       0x20A2
925bd8deadSopenharmony_ci
935bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL 1.2.1 Specification (OpenGL Operation) 
945bd8deadSopenharmony_ci
955bd8deadSopenharmony_ci    None. 
965bd8deadSopenharmony_ci
975bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL 1.2.1 Specification (Rasterization) 
985bd8deadSopenharmony_ci
995bd8deadSopenharmony_ci    None. 
1005bd8deadSopenharmony_ci
1015bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL 1.2.1 Specification (Per-Fragment 
1025bd8deadSopenharmony_ciOperations and the Frame Buffer) 
1035bd8deadSopenharmony_ci
1045bd8deadSopenharmony_ci    None. 
1055bd8deadSopenharmony_ci
1065bd8deadSopenharmony_ciAdditions to Chapter 5 of the OpenGL 1.2.1 Specification (Special Functions) 
1075bd8deadSopenharmony_ci
1085bd8deadSopenharmony_ci    None. 
1095bd8deadSopenharmony_ci
1105bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL 1.2.1 Specification (State and State 
1115bd8deadSopenharmony_ciRequests) 
1125bd8deadSopenharmony_ci
1135bd8deadSopenharmony_ci    None. 
1145bd8deadSopenharmony_ci
1155bd8deadSopenharmony_ciAdditions to the WGL Specification 
1165bd8deadSopenharmony_ci
1175bd8deadSopenharmony_ci    First, close your eyes and pretend that a WGL specification actually
1185bd8deadSopenharmony_ci    existed.  Maybe if we all concentrate hard enough, one will magically
1195bd8deadSopenharmony_ci    appear.
1205bd8deadSopenharmony_ci
1215bd8deadSopenharmony_ci    These modifications are relative to the ARB_render_texture spec.
1225bd8deadSopenharmony_ci
1235bd8deadSopenharmony_ci    Add to the description of <piAttributes> in wglGetPixelFormatAttribivARB 
1245bd8deadSopenharmony_ci    and <pfAttributes> in wglGetPixelFormatfv: 
1255bd8deadSopenharmony_ci
1265bd8deadSopenharmony_ci        WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV
1275bd8deadSopenharmony_ci        WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV
1285bd8deadSopenharmony_ci
1295bd8deadSopenharmony_ci        True if the color buffers can be bound as RGB/RGBA textures using the
1305bd8deadSopenharmony_ci        texture rectangle target.  Currently only pbuffers can be bound as
1315bd8deadSopenharmony_ci        textures so this attribute will only be TRUE if WGL_DRAW_TO_PBUFFER is
1325bd8deadSopenharmony_ci        also TRUE. It is possible to bind a RGBA visual to a RGB texture in
1335bd8deadSopenharmony_ci        which case the values in the alpha component of the visual are ignored
1345bd8deadSopenharmony_ci        when the color buffer is used as a RGB texture.
1355bd8deadSopenharmony_ci
1365bd8deadSopenharmony_ci    Add new table entries to match criteria in description of 
1375bd8deadSopenharmony_ci    wglChoosePixelFormatARB: 
1385bd8deadSopenharmony_ci
1395bd8deadSopenharmony_ci        Attribute                               Type        Match Criteria 
1405bd8deadSopenharmony_ci
1415bd8deadSopenharmony_ci        WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV    boolean         exact
1425bd8deadSopenharmony_ci        WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV   boolean         exact
1435bd8deadSopenharmony_ci
1445bd8deadSopenharmony_ci    Modify wglCreatePbufferARB: 
1455bd8deadSopenharmony_ci
1465bd8deadSopenharmony_ci        The following attributes are supported by wglCreatePbufferARB: 
1475bd8deadSopenharmony_ci
1485bd8deadSopenharmony_ci        ...
1495bd8deadSopenharmony_ci
1505bd8deadSopenharmony_ci        WGL_TEXTURE_TARGET_ARB 
1515bd8deadSopenharmony_ci
1525bd8deadSopenharmony_ci        This attribute indicates the target for the texture that will be
1535bd8deadSopenharmony_ci        created when the pbuffer is created with a texture format other than
1545bd8deadSopenharmony_ci        WGL_NO_TEXTURE_ARB.  This attribute can be set to WGL_NO_TEXTURE_ARB,
1555bd8deadSopenharmony_ci        WGL_TEXTURE_1D_ARB, WGL_TEXTURE_2D_ARB, WGL_TEXTURE_CUBE_MAP_ARB, or
1565bd8deadSopenharmony_ci        WGL_TEXTURE_RECTANGLE_NV. The default value is WGL_NO_TEXTURE_ARB.
1575bd8deadSopenharmony_ci
1585bd8deadSopenharmony_ci    (Modify power-of-two error for wglCreatePbufferARB)
1595bd8deadSopenharmony_ci
1605bd8deadSopenharmony_ci        ERROR_INVALID_DATA     The pixel format attribute 
1615bd8deadSopenharmony_ci                               WGL_TEXTURE_TARGET_ARB is WGL_TEXTURE_1D_ARB,
1625bd8deadSopenharmony_ci                               WGL_TEXTURE_2D_ARB, or
1635bd8deadSopenharmony_ci                               WGL_TEXTURE_CUBE_MAP_ARB, and WGL_PBUFFER_WIDTH
1645bd8deadSopenharmony_ci                               and/or WGL_PBUFFER_HEIGHT is not a power of
1655bd8deadSopenharmony_ci                               two.
1665bd8deadSopenharmony_ci
1675bd8deadSopenharmony_ci    (Add new wglCreatePbufferARB error)
1685bd8deadSopenharmony_ci
1695bd8deadSopenharmony_ci        ERROR_INVALID_DATA     WGL_TEXTURE_TARGET_ARB is
1705bd8deadSopenharmony_ci                               WGL_TEXTURE_RECTANGLE_NV
1715bd8deadSopenharmony_ci                               and WGL_MIPMAP_TEXTURE_ARB is non-zero.
1725bd8deadSopenharmony_ci
1735bd8deadSopenharmony_ci    (Add wglCreatePbufferARB errors missing from the ARB_render_texture spec)
1745bd8deadSopenharmony_ci
1755bd8deadSopenharmony_ci        ERROR_INVALID_DATA     WGL_TEXTURE_FORMAT_ARB is WGL_TEXTURE_RGB_NV,
1765bd8deadSopenharmony_ci                               WGL_TEXTURE_TARGET_ARB is
1775bd8deadSopenharmony_ci                               WGL_TEXTURE_RECTANGLE_NV, and the
1785bd8deadSopenharmony_ci                               WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV attribute
1795bd8deadSopenharmony_ci                               is not set in the pixel format.
1805bd8deadSopenharmony_ci
1815bd8deadSopenharmony_ci        ERROR_INVALID_DATA     WGL_TEXTURE_FORMAT_ARB is WGL_TEXTURE_RGB_NV,
1825bd8deadSopenharmony_ci                               WGL_TEXTURE_TARGET_ARB is not
1835bd8deadSopenharmony_ci                               WGL_TEXTURE_RECTANGLE_NV, and the
1845bd8deadSopenharmony_ci                               WGL_BIND_TO_TEXTURE_RGB_NV attribute is not set
1855bd8deadSopenharmony_ci                               in the pixel format.
1865bd8deadSopenharmony_ci
1875bd8deadSopenharmony_ci        ERROR_INVALID_DATA     WGL_TEXTURE_FORMAT_ARB is WGL_TEXTURE_RGBA_NV,
1885bd8deadSopenharmony_ci                               WGL_TEXTURE_TARGET_ARB is
1895bd8deadSopenharmony_ci                               WGL_TEXTURE_RECTANGLE_NV, and the
1905bd8deadSopenharmony_ci                               WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV attribute
1915bd8deadSopenharmony_ci                               is not set in the pixel format.
1925bd8deadSopenharmony_ci
1935bd8deadSopenharmony_ci        ERROR_INVALID_DATA     WGL_TEXTURE_FORMAT_ARB is WGL_TEXTURE_RGBA_NV,
1945bd8deadSopenharmony_ci                               WGL_TEXTURE_TARGET_ARB is not
1955bd8deadSopenharmony_ci                               WGL_TEXTURE_RECTANGLE_NV, and the
1965bd8deadSopenharmony_ci                               WGL_BIND_TO_TEXTURE_RGBA_NV attribute is not
1975bd8deadSopenharmony_ci                               set in the pixel format.
1985bd8deadSopenharmony_ci
1995bd8deadSopenharmony_ci    Modify wglBindTexImageARB (only adding verbiage for supporting texture
2005bd8deadSopenharmony_ci    rectangles):
2015bd8deadSopenharmony_ci
2025bd8deadSopenharmony_ci        The command 
2035bd8deadSopenharmony_ci
2045bd8deadSopenharmony_ci        BOOL wglBindTexImageARB (HPBUFFERARB hPbuffer, int iBuffer)
2055bd8deadSopenharmony_ci
2065bd8deadSopenharmony_ci        defines a one-dimensional texture image, a two-dimensional 
2075bd8deadSopenharmony_ci        texture image, a two-dimensional texture rectangle image, or a set of
2085bd8deadSopenharmony_ci        two-dimensional cube map texture images...
2095bd8deadSopenharmony_ci
2105bd8deadSopenharmony_ci        The texture targets are derived...  If the texture target is
2115bd8deadSopenharmony_ci        WGL_TEXTURE_2D_ARB, then <iBuffer> defines a 2D texture for the
2125bd8deadSopenharmony_ci        current 2D texture object.  If the texture target is
2135bd8deadSopenharmony_ci        WGL_TEXTURE_RECTANGLE_NV, then <iBuffer> defines a texture rectangle
2145bd8deadSopenharmony_ci        for the current texture rectangle object.  If the texture target is
2155bd8deadSopenharmony_ci        WGL_TEXTURE_1D_ARB, then <iBuffer> defines a 1D texture for the
2165bd8deadSopenharmony_ci        current 1D texture object.
2175bd8deadSopenharmony_ci
2185bd8deadSopenharmony_ci
2195bd8deadSopenharmony_ciNew State 
2205bd8deadSopenharmony_ci
2215bd8deadSopenharmony_ci    None 
2225bd8deadSopenharmony_ci
2235bd8deadSopenharmony_ciRevision History 
2245bd8deadSopenharmony_ci
2255bd8deadSopenharmony_ci    None
226