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