15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci WGL_ARB_pbuffer 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci WGL_ARB_pbuffer 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContact 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Dale Kirkland, NVIDIA (dkirkland 'at' nvidia.com) 125bd8deadSopenharmony_ci Bimal Poddar, Intel (bimal.poddar 'at' intel.com) 135bd8deadSopenharmony_ci Steve Urquhart, Intelligraphics (steveu 'at' intelligraphics.com) 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ciNotice 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ci Copyright (c) 2000-2013 The Khronos Group Inc. Copyright terms at 185bd8deadSopenharmony_ci http://www.khronos.org/registry/speccopyright.html 195bd8deadSopenharmony_ci 205bd8deadSopenharmony_ciSpecification Update Policy 215bd8deadSopenharmony_ci 225bd8deadSopenharmony_ci Khronos-approved extension specifications are updated in response to 235bd8deadSopenharmony_ci issues and bugs prioritized by the Khronos OpenGL Working Group. For 245bd8deadSopenharmony_ci extensions which have been promoted to a core Specification, fixes will 255bd8deadSopenharmony_ci first appear in the latest version of that core Specification, and will 265bd8deadSopenharmony_ci eventually be backported to the extension document. This policy is 275bd8deadSopenharmony_ci described in more detail at 285bd8deadSopenharmony_ci https://www.khronos.org/registry/OpenGL/docs/update_policy.php 295bd8deadSopenharmony_ci 305bd8deadSopenharmony_ciStatus 315bd8deadSopenharmony_ci 325bd8deadSopenharmony_ci Complete. Approved by ARB on March 15, 2000 335bd8deadSopenharmony_ci 345bd8deadSopenharmony_ciVersion 355bd8deadSopenharmony_ci 365bd8deadSopenharmony_ci Last Modified Date: 03/12/2002 375bd8deadSopenharmony_ci Author Revision: 1.1 385bd8deadSopenharmony_ci 395bd8deadSopenharmony_ci Based on: WGL_EXT_pbuffer specification 405bd8deadSopenharmony_ci Date: 4/21/1999 Version 1.8 415bd8deadSopenharmony_ci 425bd8deadSopenharmony_ciNumber 435bd8deadSopenharmony_ci 445bd8deadSopenharmony_ci ARB Extension #11 455bd8deadSopenharmony_ci 465bd8deadSopenharmony_ciDependencies 475bd8deadSopenharmony_ci 485bd8deadSopenharmony_ci WGL_ARB_extensions_string is required. 495bd8deadSopenharmony_ci WGL_ARB_pixel_format is required. 505bd8deadSopenharmony_ci WGL_ARB_make_current_read affects the definition of this extension. 515bd8deadSopenharmony_ci 525bd8deadSopenharmony_ciOverview 535bd8deadSopenharmony_ci 545bd8deadSopenharmony_ci This extension defines pixel buffers (pbuffer for short). Pbuffers 555bd8deadSopenharmony_ci are additional non-visible rendering buffers for an OpenGL 565bd8deadSopenharmony_ci renderer. Pbuffers are equivalent to a window that has the same 575bd8deadSopenharmony_ci pixel format descriptor with the following exceptions: 585bd8deadSopenharmony_ci 595bd8deadSopenharmony_ci 1. There is no rendering to a pbuffer by GDI. 605bd8deadSopenharmony_ci 615bd8deadSopenharmony_ci 2. The pixel format descriptors used for a pbuffer can only be 625bd8deadSopenharmony_ci those that are supported by the ICD. Generic formats are not 635bd8deadSopenharmony_ci valid. 645bd8deadSopenharmony_ci 655bd8deadSopenharmony_ci 3. The allocation of a pbuffer can fail if there are insufficient 665bd8deadSopenharmony_ci resources (i.e., all the pbuffer memory has been allocated). 675bd8deadSopenharmony_ci 685bd8deadSopenharmony_ci 4. The pixel buffer might be lost if a display mode change occurs. 695bd8deadSopenharmony_ci A query is provided that can be called after a display mode 705bd8deadSopenharmony_ci change to determine the state of the pixel buffer. 715bd8deadSopenharmony_ci 725bd8deadSopenharmony_ci The intent of the pbuffer semantics is to enable implementations to 735bd8deadSopenharmony_ci allocate pbuffers in non-visible frame buffer memory. These 745bd8deadSopenharmony_ci pbuffers are intended to be "static" resources in that a program 755bd8deadSopenharmony_ci will typically allocate them only once rather than as a part of its 765bd8deadSopenharmony_ci rendering loop. (Pbuffers should be deallocated when the program 775bd8deadSopenharmony_ci is no longer using them -- for example, if the program is 785bd8deadSopenharmony_ci iconified.) 795bd8deadSopenharmony_ci 805bd8deadSopenharmony_ci The frame buffer resources that are associated with a pbuffer are 815bd8deadSopenharmony_ci also static and are deallocated when the pbuffer is destroyed or 825bd8deadSopenharmony_ci possibly when a display mode change occurs. 835bd8deadSopenharmony_ci 845bd8deadSopenharmony_ciIP Status 855bd8deadSopenharmony_ci 865bd8deadSopenharmony_ci TBD 875bd8deadSopenharmony_ci 885bd8deadSopenharmony_ciIssues 895bd8deadSopenharmony_ci 905bd8deadSopenharmony_ci 1. Should the OPTIMUM width and heights and PBUFFER_LARGEST_ARB be 915bd8deadSopenharmony_ci taken out of the spec since they may be misleading or hard for 925bd8deadSopenharmony_ci some implementations to support? 935bd8deadSopenharmony_ci 945bd8deadSopenharmony_ci PBUFFER_LARGEST_ARB has been left in the extension. It was 955bd8deadSopenharmony_ci originally requested by an application. The OPTIMUM queries 965bd8deadSopenharmony_ci have been removed to match the GLX pixel buffer specification. 975bd8deadSopenharmony_ci 985bd8deadSopenharmony_ci 995bd8deadSopenharmony_ciNew Procedures and Functions 1005bd8deadSopenharmony_ci 1015bd8deadSopenharmony_ci DECLARE_HANDLE(HPBUFFERARB); 1025bd8deadSopenharmony_ci 1035bd8deadSopenharmony_ci HPBUFFERARB wglCreatePbufferARB(HDC hDC, 1045bd8deadSopenharmony_ci int iPixelFormat, 1055bd8deadSopenharmony_ci int iWidth, 1065bd8deadSopenharmony_ci int iHeight, 1075bd8deadSopenharmony_ci const int *piAttribList); 1085bd8deadSopenharmony_ci 1095bd8deadSopenharmony_ci HDC wglGetPbufferDCARB(HPBUFFERARB hPbuffer); 1105bd8deadSopenharmony_ci 1115bd8deadSopenharmony_ci int wglReleasePbufferDCARB(HPBUFFERARB hPbuffer, 1125bd8deadSopenharmony_ci HDC hDC); 1135bd8deadSopenharmony_ci 1145bd8deadSopenharmony_ci BOOL wglDestroyPbufferARB(HPBUFFERARB hPbuffer); 1155bd8deadSopenharmony_ci 1165bd8deadSopenharmony_ci BOOL wglQueryPbufferARB(HPBUFFERARB hPbuffer, 1175bd8deadSopenharmony_ci int iAttribute, 1185bd8deadSopenharmony_ci int *piValue); 1195bd8deadSopenharmony_ci 1205bd8deadSopenharmony_ciNew Tokens 1215bd8deadSopenharmony_ci 1225bd8deadSopenharmony_ci Accepted by the <attribute> parameter of wglChoosePixelFormatEXT: 1235bd8deadSopenharmony_ci 1245bd8deadSopenharmony_ci WGL_DRAW_TO_PBUFFER_ARB 0x202D 1255bd8deadSopenharmony_ci 1265bd8deadSopenharmony_ci Accepted by the <attribute> parameter of 1275bd8deadSopenharmony_ci wglGetPixelFormatAttribivEXT, and wglGetPixelFormatAttribfvEXT: 1285bd8deadSopenharmony_ci 1295bd8deadSopenharmony_ci WGL_DRAW_TO_PBUFFER_ARB 0x202D 1305bd8deadSopenharmony_ci WGL_MAX_PBUFFER_PIXELS_ARB 0x202E 1315bd8deadSopenharmony_ci WGL_MAX_PBUFFER_WIDTH_ARB 0x202F 1325bd8deadSopenharmony_ci WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030 1335bd8deadSopenharmony_ci 1345bd8deadSopenharmony_ci Accepted by the <piAttribList> parameter of wglCreatePbufferARB: 1355bd8deadSopenharmony_ci 1365bd8deadSopenharmony_ci WGL_PBUFFER_LARGEST_ARB 0x2033 1375bd8deadSopenharmony_ci 1385bd8deadSopenharmony_ci Accepted by the <iAttribute> parameter of wglQueryPbufferARB: 1395bd8deadSopenharmony_ci 1405bd8deadSopenharmony_ci WGL_PBUFFER_WIDTH_ARB 0x2034 1415bd8deadSopenharmony_ci WGL_PBUFFER_HEIGHT_ARB 0x2035 1425bd8deadSopenharmony_ci WGL_PBUFFER_LOST_ARB 0x2036 1435bd8deadSopenharmony_ci 1445bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.2 Specification (OpenGL Operation) 1455bd8deadSopenharmony_ci 1465bd8deadSopenharmony_ci None 1475bd8deadSopenharmony_ci 1485bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.2 Specification (Rasterization) 1495bd8deadSopenharmony_ci 1505bd8deadSopenharmony_ci None 1515bd8deadSopenharmony_ci 1525bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.2 Specification (Per-Fragment Operations 1535bd8deadSopenharmony_ciand the Frame buffer) 1545bd8deadSopenharmony_ci 1555bd8deadSopenharmony_ci None 1565bd8deadSopenharmony_ci 1575bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.2 Specification (Special Functions) 1585bd8deadSopenharmony_ci 1595bd8deadSopenharmony_ci None 1605bd8deadSopenharmony_ci 1615bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.2 Specification (State and State Requests) 1625bd8deadSopenharmony_ci 1635bd8deadSopenharmony_ci None 1645bd8deadSopenharmony_ci 1655bd8deadSopenharmony_ciAdditions to the GLX Specification 1665bd8deadSopenharmony_ci 1675bd8deadSopenharmony_ci This specification is written for WGL. 1685bd8deadSopenharmony_ci 1695bd8deadSopenharmony_ciGLX Protocol 1705bd8deadSopenharmony_ci 1715bd8deadSopenharmony_ci This specification is written for WGL. 1725bd8deadSopenharmony_ci 1735bd8deadSopenharmony_ciAdditions to the WGL Specification 1745bd8deadSopenharmony_ci 1755bd8deadSopenharmony_ci A pixel buffer (pbuffer) can be created with wglCreatePbufferARB 1765bd8deadSopenharmony_ci which returns a handle associated with the pbuffer. 1775bd8deadSopenharmony_ci 1785bd8deadSopenharmony_ci HPBUFFERARB wglCreatePbufferARB(HDC hDC, 1795bd8deadSopenharmony_ci int iPixelFormat, 1805bd8deadSopenharmony_ci int iWidth, 1815bd8deadSopenharmony_ci int iHeight, 1825bd8deadSopenharmony_ci const int *piAttribList); 1835bd8deadSopenharmony_ci 1845bd8deadSopenharmony_ci <hDC> specifies a device context for the device on which the 1855bd8deadSopenharmony_ci pbuffer is created. <iPixelFormat> specifies a non-generic pixel 1865bd8deadSopenharmony_ci format descriptor index. Support for pbuffers may be restricted 1875bd8deadSopenharmony_ci to specific pixel formats. Use wglGetPixelFormatAttribivEXT or 1885bd8deadSopenharmony_ci wglGetPixelFormatAttribfvEXT to query the WGL_DRAW_TO_PBUFFER_ARB 1895bd8deadSopenharmony_ci attribute to determine which pixel formats support the creation of 1905bd8deadSopenharmony_ci pbuffers. 1915bd8deadSopenharmony_ci 1925bd8deadSopenharmony_ci <iWidth> and <iHeight> specify the pixel width and height of the 1935bd8deadSopenharmony_ci rectangular pbuffer. 1945bd8deadSopenharmony_ci 1955bd8deadSopenharmony_ci <piAttribList> is a list of attributes {type, value} pairs 1965bd8deadSopenharmony_ci containing integer attribute values. All of the attributes in the 1975bd8deadSopenharmony_ci <piAttribList> are followed by the corresponding required value. 1985bd8deadSopenharmony_ci The list is terminated with a value of 0. 1995bd8deadSopenharmony_ci 2005bd8deadSopenharmony_ci The following attributes are supported by wglCreatePbufferARB: 2015bd8deadSopenharmony_ci 2025bd8deadSopenharmony_ci WGL_PBUFFER_LARGEST_ARB If this attribute is set to a 2035bd8deadSopenharmony_ci non-zero value, the largest 2045bd8deadSopenharmony_ci available pbuffer is allocated 2055bd8deadSopenharmony_ci when the allocation of the pbuffer 2065bd8deadSopenharmony_ci would otherwise fail due to 2075bd8deadSopenharmony_ci insufficient resources. The width 2085bd8deadSopenharmony_ci or height of the allocated pbuffer 2095bd8deadSopenharmony_ci never exceeds <iWidth> and <iHeight>, 2105bd8deadSopenharmony_ci respectively. Use wglQueryPbufferARB 2115bd8deadSopenharmony_ci to retrieve the dimensions of the 2125bd8deadSopenharmony_ci allocated pbuffer. 2135bd8deadSopenharmony_ci 2145bd8deadSopenharmony_ci The resulting pbuffer will contain color buffers and ancillary 2155bd8deadSopenharmony_ci buffers as specified by <iPixelFormat>. Note that pbuffers use 2165bd8deadSopenharmony_ci framebuffer resources so applications should consider deallocating 2175bd8deadSopenharmony_ci them when they are not in use. 2185bd8deadSopenharmony_ci 2195bd8deadSopenharmony_ci It is possible to create a pbuffer with back buffers and to swap 2205bd8deadSopenharmony_ci the front and back buffers by calling wglSwapLayerBuffers. The 2215bd8deadSopenharmony_ci contents of the back buffers after the swap depends on the 2225bd8deadSopenharmony_ci <iPixelFormat>. (Pbuffers are the same as windows in this respect.) 2235bd8deadSopenharmony_ci 2245bd8deadSopenharmony_ci When wglCreatePbufferARB fails to create a pbuffer, NULL is 2255bd8deadSopenharmony_ci returned. To get extended error information, call GetLastError. 2265bd8deadSopenharmony_ci Possible errors are as follows: 2275bd8deadSopenharmony_ci 2285bd8deadSopenharmony_ci ERROR_INVALID_PIXEL_FORMAT Pixel format is not valid. 2295bd8deadSopenharmony_ci 2305bd8deadSopenharmony_ci ERROR_NO_SYSTEM_RESOURCES Insufficient resources exist. 2315bd8deadSopenharmony_ci 2325bd8deadSopenharmony_ci ERROR_INVALID_DATA <iWidth> or <iHeight> is negative 2335bd8deadSopenharmony_ci or zero. 2345bd8deadSopenharmony_ci 2355bd8deadSopenharmony_ci ERROR_INVALID_DATA <piAttribList> is not a valid 2365bd8deadSopenharmony_ci attribute. 2375bd8deadSopenharmony_ci 2385bd8deadSopenharmony_ci To create a device context for the pbuffer, call 2395bd8deadSopenharmony_ci 2405bd8deadSopenharmony_ci HDC wglGetPbufferDCARB(HPBUFFERARB hPbuffer); 2415bd8deadSopenharmony_ci 2425bd8deadSopenharmony_ci where <hPbuffer> is a handle returned from a previous call to 2435bd8deadSopenharmony_ci wglCreatePbufferARB. A device context is returned by 2445bd8deadSopenharmony_ci wglGetPbufferDCARB which can be used to associate a rendering 2455bd8deadSopenharmony_ci context with the pbuffer. Any rendering context created with 2465bd8deadSopenharmony_ci a wglCreateContext that is "compatible" with the <iPixelFormat> may 2475bd8deadSopenharmony_ci be used to render into the pbuffer. (See the description of 2485bd8deadSopenharmony_ci wglCreateContext, wglMakeCurrent, and wglMakeCurrentReadEXT for a 2495bd8deadSopenharmony_ci definition of "compatible".) 2505bd8deadSopenharmony_ci 2515bd8deadSopenharmony_ci When wglGetPbufferDCARB fails, NULL is returned. To get extended 2525bd8deadSopenharmony_ci error information, call GetLastError. Possible errors are as 2535bd8deadSopenharmony_ci follows: 2545bd8deadSopenharmony_ci 2555bd8deadSopenharmony_ci ERROR_INVALID_HANDLE <hPbuffer> is not a valid handle. 2565bd8deadSopenharmony_ci 2575bd8deadSopenharmony_ci To release a device context obtained from a previous call to 2585bd8deadSopenharmony_ci wglGetPbufferDCARB, call 2595bd8deadSopenharmony_ci 2605bd8deadSopenharmony_ci int wglReleasePbufferDCARB(HPBUFFERARB hPbuffer, 2615bd8deadSopenharmony_ci HDC hDC); 2625bd8deadSopenharmony_ci 2635bd8deadSopenharmony_ci If the return value is a value of 1, the device context was released. 2645bd8deadSopenharmony_ci If the device context was not released, the return value is 0. To 2655bd8deadSopenharmony_ci get extended error information, call GetLastError. Possible errors 2665bd8deadSopenharmony_ci are as follows: 2675bd8deadSopenharmony_ci 2685bd8deadSopenharmony_ci ERROR_INVALID_HANDLE <hPbuffer> is not a valid handle. 2695bd8deadSopenharmony_ci ERROR_DC_NOT_FOUND <hDC> is not a valid DC. 2705bd8deadSopenharmony_ci 2715bd8deadSopenharmony_ci A pbuffer is destroyed by calling 2725bd8deadSopenharmony_ci 2735bd8deadSopenharmony_ci BOOL wglDestroyPbufferARB(HPBUFFERARB hPbuffer); 2745bd8deadSopenharmony_ci 2755bd8deadSopenharmony_ci The pbuffer is destroyed once it is no longer current to any 2765bd8deadSopenharmony_ci rendering context. When a pbuffer is destroyed, any memory 2775bd8deadSopenharmony_ci resources that are attached to it are freed and its handle is no 2785bd8deadSopenharmony_ci longer valid. 2795bd8deadSopenharmony_ci 2805bd8deadSopenharmony_ci If wglDestroyPbufferARB fails, FALSE is returned. To get extended 2815bd8deadSopenharmony_ci error information, call GetLastError. Possible errors are as 2825bd8deadSopenharmony_ci follows: 2835bd8deadSopenharmony_ci 2845bd8deadSopenharmony_ci ERROR_INVALID_HANDLE <hPbuffer> is not a valid handle. 2855bd8deadSopenharmony_ci 2865bd8deadSopenharmony_ci To query the maximum width, height, or number of pixels in any 2875bd8deadSopenharmony_ci given pbuffer for a specific pixel format, use 2885bd8deadSopenharmony_ci wglGetPixelFormatAttribivEXT or wglGetPixelFormatAttribfvEXT with 2895bd8deadSopenharmony_ci <attribute> set to one of WGL_MAX_PBUFFER_WIDTH_ARB, 2905bd8deadSopenharmony_ci WGL_MAX_PBUFFER_HEIGHT_ARB, or WGL_MAX_PBUFFER_PIXELS_ARB. 2915bd8deadSopenharmony_ci 2925bd8deadSopenharmony_ci WGL_MAX_PBUFFER_WIDTH_ARB and WGL_MAX_PBUFFER_HEIGHT_ARB indicate 2935bd8deadSopenharmony_ci the maximum width and height that can be passed into 2945bd8deadSopenharmony_ci wglCreatePbufferARB and WGL_MAX_PBUFFER_PIXELS_ARB indicates the 2955bd8deadSopenharmony_ci maximum number of pixels (width x height) for a pbuffer. Note 2965bd8deadSopenharmony_ci that an implementation may return a value for 2975bd8deadSopenharmony_ci WGL_MAX_PBUFFER_PIXELS_ARB that is less than the maximum width 2985bd8deadSopenharmony_ci times the maximum height. Also, the value for 2995bd8deadSopenharmony_ci WGL_MAX_PBUFFER_PIXELS_ARB is static and assumes that no other 3005bd8deadSopenharmony_ci pbuffers are contending for the framebuffer memory. Thus it may 3015bd8deadSopenharmony_ci not be possible to allocate a pbuffer of the size given by 3025bd8deadSopenharmony_ci WGL_MAX_PBUFFER_PIXELS_ARB. 3035bd8deadSopenharmony_ci 3045bd8deadSopenharmony_ci To query an attribute associated with a specific pbuffer, call 3055bd8deadSopenharmony_ci 3065bd8deadSopenharmony_ci BOOL wglQueryPbufferARB(HPBUFFERARB hPbuffer, 3075bd8deadSopenharmony_ci int iAttribute, 3085bd8deadSopenharmony_ci int *piValue); 3095bd8deadSopenharmony_ci 3105bd8deadSopenharmony_ci with <hPbuffer> set to a previously returned pbuffer handle. 3115bd8deadSopenharmony_ci <iAttribute> must be set to one of WGL_PBUFFER_WIDTH_ARB, 3125bd8deadSopenharmony_ci WGL_PBUFFER_HEIGHT_ARB, or WGL_PBUFFER_LOST_ARB. 3135bd8deadSopenharmony_ci 3145bd8deadSopenharmony_ci The WGL_PBUFFER_LOST_ARB query can be used to determine if the 3155bd8deadSopenharmony_ci pixel buffer memory was lost due to a display mode change. A value 3165bd8deadSopenharmony_ci of TRUE is returned in <iAttribute> if the display mode change lost 3175bd8deadSopenharmony_ci the memory for the pixel buffer. It is not an error to render to 3185bd8deadSopenharmony_ci a pixel buffer in this state, but the effect of rendering to it is 3195bd8deadSopenharmony_ci the same as if the pixel buffer was destroyed: the context state 3205bd8deadSopenharmony_ci will be updated, but the values of the returned pixels are 3215bd8deadSopenharmony_ci undefined. The pixel buffer must be destroyed and recreated if 3225bd8deadSopenharmony_ci the pixel buffer memory has been lost. A value of FALSE is 3235bd8deadSopenharmony_ci returned to indicate that the contents of the pixel buffer are 3245bd8deadSopenharmony_ci unaffected by the display mode change. 3255bd8deadSopenharmony_ci 3265bd8deadSopenharmony_ci If wglQueryPbufferARB fails, FALSE is returned. To get extended 3275bd8deadSopenharmony_ci error information, call GetLastError. Possible errors are as 3285bd8deadSopenharmony_ci follows: 3295bd8deadSopenharmony_ci 3305bd8deadSopenharmony_ci ERROR_INVALID_HANDLE <hPbuffer> is not a valid handle. 3315bd8deadSopenharmony_ci ERROR_INVALID_DATA <iAttribute> is not a valid attribute. 3325bd8deadSopenharmony_ci 3335bd8deadSopenharmony_ciDependencies on WGL_ARB_pixel_format 3345bd8deadSopenharmony_ci 3355bd8deadSopenharmony_ci The WGL_ARB_pixel_format extension must be used to determine a 3365bd8deadSopenharmony_ci pixel format that can be used to create the pixel buffer. 3375bd8deadSopenharmony_ci 3385bd8deadSopenharmony_ciDependencies on WGL_ARB_extensions_string 3395bd8deadSopenharmony_ci 3405bd8deadSopenharmony_ci Because there is no way to extend wgl, these calls are defined in 3415bd8deadSopenharmony_ci the ICD and can be called by obtaining the address with 3425bd8deadSopenharmony_ci wglGetProcAddress. Because this extension is a WGL extension, it 3435bd8deadSopenharmony_ci is not included in the GL_EXTENSIONS string. Its existence can be 3445bd8deadSopenharmony_ci determined with the WGL_ARB_extensions_string extension. 3455bd8deadSopenharmony_ci 3465bd8deadSopenharmony_ciNew State 3475bd8deadSopenharmony_ci 3485bd8deadSopenharmony_ci None 3495bd8deadSopenharmony_ci 3505bd8deadSopenharmony_ciNew Implementation Dependent State 3515bd8deadSopenharmony_ci 3525bd8deadSopenharmony_ci None 3535bd8deadSopenharmony_ci 3545bd8deadSopenharmony_ciConformance Testing 3555bd8deadSopenharmony_ci 3565bd8deadSopenharmony_ci All of the current conformance tests can be run on a pixel buffer 3575bd8deadSopenharmony_ci to validate its conformance. The only change to the conformance 3585bd8deadSopenharmony_ci tests would be to create a context for the pixel buffer. 3595bd8deadSopenharmony_ci 3605bd8deadSopenharmony_ciRevision History 3615bd8deadSopenharmony_ci 3625bd8deadSopenharmony_ci 12/16/1999 0.1 3635bd8deadSopenharmony_ci - First ARB draft based on the EXT specification. 3645bd8deadSopenharmony_ci 3655bd8deadSopenharmony_ci 02/28/2000 0.2 3665bd8deadSopenharmony_ci - Added a query for a damaged pixel buffer due to a display 3675bd8deadSopenharmony_ci mode change. 3685bd8deadSopenharmony_ci 3695bd8deadSopenharmony_ci 03/15/2000 0.3 3705bd8deadSopenharmony_ci - Changed the lost definition of a pixel buffer. 3715bd8deadSopenharmony_ci - Removed the OPTIMAL size queries. 3725bd8deadSopenharmony_ci - Added a dependency on WGL_ARB_pixel_format. 3735bd8deadSopenharmony_ci 3745bd8deadSopenharmony_ci 03/22/2000 1.0 3755bd8deadSopenharmony_ci - Changed "mode change" to "display mode change". 3765bd8deadSopenharmony_ci - Added the condition that the resources associated with a 3775bd8deadSopenharmony_ci pbuffer may be lost due to a display mode change. 3785bd8deadSopenharmony_ci - Fixed issue 1 to address the OPTIMUM values. 3795bd8deadSopenharmony_ci - Added the declaration of HPBUFFERARB in the Procedures and 3805bd8deadSopenharmony_ci Functions section. 3815bd8deadSopenharmony_ci - Changed the wording of "undamaged" to "unaffected" 3825bd8deadSopenharmony_ci - Approved by ARB: 10-0-0. 3835bd8deadSopenharmony_ci 3845bd8deadSopenharmony_ci 03/12/2002 1.1 3855bd8deadSopenharmony_ci - Updated contact information. 386