Name ATI_render_texture_rectangle Name Strings WGL_ATI_render_texture_rectangle Contact Rob Mace, ATI Research (mace 'at' ati.com) Status Complete. Version Last Modified Date: September 27, 2018 Revision: 3 Number OpenGL Extension #532 Dependencies OpenGL 1.1 is required. WGL_ARB_render_texture is required. GL_ARB_texture_rectangle or GL_EXT_texture_rectangle is required. The extension is written against the OpenGL 1.5 Specification and the WGL_ARB_render_texture 7/16/01 Specification. Overview This extension builds upon WGL_ARB_render_texture and allows a pbuffer to be bound to a texture rectangle target. Issues 1. Are separate BIND_TO_TEXTURE_RECTANGLE enums needed, or are the BIND_TO_TEXTURE enums defined in WGL_ARB_render_texture sufficient? RESOLUTION: The BIND_TO_TEXTURE enums defined in WGL_ARB_render_texture are sufficient. WGL_ARB_render_texture does not have BIND_TO_TEXTURE_2D, BIND_TO_TEXTURE_CUBE_MAP, etc. enums. It just has the BIND_TO_TEXTURE enums. New Procedures and Functions None New Tokens Accepted as a value in the parameter of wglCreatePbufferARB and returned in the value parameter of wglQueryPbufferARB when is WGL_TEXTURE_TARGET_ARB: WGL_TEXTURE_RECTANGLE_ATI 0x21A5 Additions to Chapter 2 of the OpenGL 1.5 Specification (OpenGL Operation) None Additions to Chapter 3 of the OpenGL 1.5 Specification (Rasterization) None Additions to Chapter 4 of the OpenGL 1.5 Specification (Per-Fragment Operations and the Frame Buffer) None Additions to Chapter 5 of the OpenGL 1.5 Specification (Special Functions) None Additions to Chapter 6 of the OpenGL 1.5 Specification (State and State Requests) None Additions to the WGL Specification Modify wglCreatePbufferARB: HPBUFFERARB wglCreatePbufferARB (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); ... 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 of WGL_TEXTURE_RGB_ARB or WGL_TEXTURE_RGBA_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_ATI. The default value is WGL_NO_TEXTURE_ARB. ... WGL_PBUFFER_LARGEST_ARB If this attribute is set to a non-zero value, the largest available pbuffer is allocated when the allocation of the pbuffer would otherwise fail due to insufficient resources. The width or height of the allocated pbuffer never exceeds and , respectively. Also, if the pbuffer will be used as a texture (i.e., the value of the WGL_TEXTURE_TARGET_ARB attribute is WGL_TEXTURE_1D_ARB, WGL_TEXTURE_2D_ARB, WGL_TEXTURE_CUBE_MAP_ARB, or WGL_TEXTURE_RECTANGLE_ATI and texture format is WGL_TEXTURE_RGB_ARB or WGL_TEXTURE_RGBA_ARB), then the aspect ratio will be preserved and the new width and height will be valid sizes for the corresponding texture target. (e.g. Both the width and height will be a power of 2 if the implementation only supports power of 2 textures. Similarly, the width and height will be equal for a cube map texture). Use wglQueryPbufferARB to retrieve the dimensions of the allocated pbuffer. The default value for this attribute is FALSE. ... ERROR_INVALID_DATA The pixel format attribute WGL_TEXTURE_FORMAT_ARB is WGL_TEXTURE_RGB_ARB or WGL_TEXTURE_RGBA_ARB and WGL_PBUFFER_WIDTH and/or WGL_PBUFFER_HEIGHT specify an invalid size for the implementation (e.g., the texture size is not a power of 2 and WGL_TEXTURE_TARGET_ARB is WGL_TEXTURE_1D_ARB, WGL_TEXTURE_2D_ARB, or WGL_TEXTURE_CUBE_MAP_ARB). ERROR_INVALID_DATA WGL_TEXTURE_TARGET_ARB is WGL_TEXTURE_RECTANGLE_ATI and WGL_MIPMAP_TEXTURE_ARB is non-zero. .... Modify wglBindTexImageARB The command BOOL wglBindTexImageARB (HPBUFFERARB hPbuffer, int iBuffer) defines a one-dimensional texture image, two-dimensional texture image, rectangle texture image, or a set of two-dimensional cube map texture images. The texture image or images consist of the image data in for the specified pbuffer, , and need not be copied. The texture target, the texture format and the size of the texture components are derived from attributes of pbuffer specified by . ... The texture targets are derived from the WGL_TEXTURE_TARGET_ARB attribute of . If the texture target for the pbuffer is WGL_TEXTURE_CUBE_MAP_ARB then defines a set of cubemap images for the cube map texture objects which are bound to the current context (hereafter referred to as the current texture object). Note that when the texture target is WGL_TEXTURE_CUBE_MAP_ARB, all cube map texture targets are defined by a single call to wglBindTexImageARB. If the texture target is WGL_TEXTURE_2D_ARB, then defines a 2D texture for the current 2D texture object. If the texture target is WGL_TEXTURE_1D_ARB, then defines a 1D texture for the current 1D texture object. If the texture target is WGL_TEXTURE_RECTANGLE_ATI, then defines a rectangle texture for the current rectangle texture object. .... Errors None New State None New Implementation Dependent State None Revision History Date: 09/27/2018 Revision: 3 - Assigned extension number & registered the spec (see github.com/KhronosGroup/OpenGL-Registry/issues/192) - For reasons lost to history, the enum value 0x21A5 duplicates the entirely unrelated WGL_GPU_NUM_PIPES_AMD. - This will probably set the alltime record for the time between an extension being created and being registered. Date: 10/11/2004 Revision: 2 - Minor cleanup. - Changed status to Complete. Date: 8/16/2004 Revision: 1 - First draft.