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