15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci WGL_ARB_pixel_format 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci WGL_ARB_pixel_format 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContact 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Pat Brown, NVIDIA (pbrown 'at' nvidia.com) 125bd8deadSopenharmony_ci Paula Womack 135bd8deadSopenharmony_ci 145bd8deadSopenharmony_ciNotice 155bd8deadSopenharmony_ci 165bd8deadSopenharmony_ci Copyright (c) 2000-2013 The Khronos Group Inc. Copyright terms at 175bd8deadSopenharmony_ci http://www.khronos.org/registry/speccopyright.html 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ciSpecification Update Policy 205bd8deadSopenharmony_ci 215bd8deadSopenharmony_ci Khronos-approved extension specifications are updated in response to 225bd8deadSopenharmony_ci issues and bugs prioritized by the Khronos OpenGL Working Group. For 235bd8deadSopenharmony_ci extensions which have been promoted to a core Specification, fixes will 245bd8deadSopenharmony_ci first appear in the latest version of that core Specification, and will 255bd8deadSopenharmony_ci eventually be backported to the extension document. This policy is 265bd8deadSopenharmony_ci described in more detail at 275bd8deadSopenharmony_ci https://www.khronos.org/registry/OpenGL/docs/update_policy.php 285bd8deadSopenharmony_ci 295bd8deadSopenharmony_ciStatus 305bd8deadSopenharmony_ci 315bd8deadSopenharmony_ci Complete. Approved by ARB on 3/15/2000. 325bd8deadSopenharmony_ci 335bd8deadSopenharmony_ciVersion 345bd8deadSopenharmony_ci 355bd8deadSopenharmony_ci Last Modified Date: March 25, 2009 365bd8deadSopenharmony_ci Author Revision: 1.3 375bd8deadSopenharmony_ci 385bd8deadSopenharmony_ciNumber 395bd8deadSopenharmony_ci 405bd8deadSopenharmony_ci ARB Extension #9 415bd8deadSopenharmony_ci 425bd8deadSopenharmony_ciDependencies 435bd8deadSopenharmony_ci 445bd8deadSopenharmony_ci WGL_ARB_extensions_string is required. 455bd8deadSopenharmony_ci 465bd8deadSopenharmony_ciOverview 475bd8deadSopenharmony_ci 485bd8deadSopenharmony_ci This extension adds functions to query pixel format attributes and 495bd8deadSopenharmony_ci to choose from the list of supported pixel formats. 505bd8deadSopenharmony_ci 515bd8deadSopenharmony_ci These functions treat pixel formats as opaque types: attributes are 525bd8deadSopenharmony_ci specified by name rather than by accessing them directly as fields 535bd8deadSopenharmony_ci in a structure. Thus the list of attributes can be easily extended. 545bd8deadSopenharmony_ci 555bd8deadSopenharmony_ci Attribute names are defined which correspond to all of the values in 565bd8deadSopenharmony_ci the PIXELFORMATDESCRIPTOR and LAYERPLANEDESCRIPTOR data structures. 575bd8deadSopenharmony_ci Additionally this interface allows pixel formats to be supported 585bd8deadSopenharmony_ci which have attributes that cannot be represented using the standard 595bd8deadSopenharmony_ci pixel format functions, i.e. DescribePixelFormat, 605bd8deadSopenharmony_ci DescribeLayerPlane, ChoosePixelFormat, SetPixelFormat, and 615bd8deadSopenharmony_ci GetPixelFormat. 625bd8deadSopenharmony_ci 635bd8deadSopenharmony_ciIP Status 645bd8deadSopenharmony_ci 655bd8deadSopenharmony_ci No issues. 665bd8deadSopenharmony_ci 675bd8deadSopenharmony_ciIssues and Notes 685bd8deadSopenharmony_ci 695bd8deadSopenharmony_ci 1. No provision is made to support extended pixel format attributes in 705bd8deadSopenharmony_ci metafiles. 715bd8deadSopenharmony_ci 2. Should the transparent value pixel format attribute have separate red, 725bd8deadSopenharmony_ci green and blue values? Yes. 735bd8deadSopenharmony_ci 3. What data type should the transparent value be? This is no longer an 745bd8deadSopenharmony_ci issue since the transparent value is no longer a packed pixel value (it 755bd8deadSopenharmony_ci has separate r,g,b,a and index values). 765bd8deadSopenharmony_ci 4. Should we add DONT_CARE values for some of the pixel format attributes? 775bd8deadSopenharmony_ci No we should just ignore attributes that aren't specified in the list 785bd8deadSopenharmony_ci passed to wglChoosePixelFormatARB. 795bd8deadSopenharmony_ci 5. Should wglGetPixelFormatAttrib*vARB ignore the <iLayerPlane> parameter 805bd8deadSopenharmony_ci when the attribute specified only applies to the main planes (e.g., 815bd8deadSopenharmony_ci when the attribute is set to WGL_NUMBER_OVERLAYS) or should it require 825bd8deadSopenharmony_ci <iLayerPlane> to be set to zero? It will just ignore the parameter. 835bd8deadSopenharmony_ci This allows these attributes to be queried at the same time as 845bd8deadSopenharmony_ci attributes of the overlay planes. 855bd8deadSopenharmony_ci 6. Should wglGetPixelFormatAttribivARB convert floating point values to 865bd8deadSopenharmony_ci fixed point? No, wglChoosePixelFormatARB needs a way to accept floating 875bd8deadSopenharmony_ci point values. pfAttribFList accomplishes this. 885bd8deadSopenharmony_ci 7. Should wglChoosePixelFormatARB take an <iLayerPlane> parameter? 895bd8deadSopenharmony_ci Typically <iLayerPlane> would be set to zero and a pixel format would 905bd8deadSopenharmony_ci be selected based on the attributes of the main plane, so there is no 915bd8deadSopenharmony_ci <iLayerPlane> parameter. This should be OK; applications won't 925bd8deadSopenharmony_ci typically select a pixel format on the basis of overlay attributes. 935bd8deadSopenharmony_ci They can always call wglGetPixelFormatAttrib*vARB to get a pixel format 945bd8deadSopenharmony_ci that has the desired overlay values. 955bd8deadSopenharmony_ci 8. Application programmers must check to see if a particular extension is 965bd8deadSopenharmony_ci supported before using any pixel format attributes associated with the 975bd8deadSopenharmony_ci extension. For example, if WGL_ARB_pbuffer is not supported then it is 985bd8deadSopenharmony_ci an error to specify WGL_DRAW_TO_PBUFFER_ARB in the attribute list to 995bd8deadSopenharmony_ci wglGetPixelFormatAttrib*vARB or wglChoosePixelFormatARB. 1005bd8deadSopenharmony_ci 9. Should WGLChoosePixelFormatARB consider pixel formats at other display 1015bd8deadSopenharmony_ci depths? It would be useful to have an argument to 1025bd8deadSopenharmony_ci WGLChoosePixelFormatARB indicating what display depth should be used. 1035bd8deadSopenharmony_ci However, there is no good way to implement this in the ICD since pixel 1045bd8deadSopenharmony_ci format handles are sequential indices and the pixel format for index n 1055bd8deadSopenharmony_ci differs depending on the display mode. 1065bd8deadSopenharmony_ci 10. Should we allow non-displayable pixel formats for pbuffers? Yes, 1075bd8deadSopenharmony_ci although many (most?) implementations will use displayable pixel 1085bd8deadSopenharmony_ci formats for pbuffers, this is a useful feature and the spec should 1095bd8deadSopenharmony_ci allow for it. 1105bd8deadSopenharmony_ci 11. Should we create all new calls for pixel formats, specifically should 1115bd8deadSopenharmony_ci we introduce SetPixelFormatARB? No, this doesn't offer any value over 1125bd8deadSopenharmony_ci the existing SetPixelFormat call. 1135bd8deadSopenharmony_ci 12. Should we add support for triple buffering? No, triple buffering needs 1145bd8deadSopenharmony_ci to be covered by a separate extension. 1155bd8deadSopenharmony_ci 1165bd8deadSopenharmony_ciNew Procedures and Functions 1175bd8deadSopenharmony_ci 1185bd8deadSopenharmony_ci BOOL wglGetPixelFormatAttribivARB(HDC hdc, 1195bd8deadSopenharmony_ci int iPixelFormat, 1205bd8deadSopenharmony_ci int iLayerPlane, 1215bd8deadSopenharmony_ci UINT nAttributes, 1225bd8deadSopenharmony_ci const int *piAttributes, 1235bd8deadSopenharmony_ci int *piValues); 1245bd8deadSopenharmony_ci 1255bd8deadSopenharmony_ci BOOL wglGetPixelFormatAttribfvARB(HDC hdc, 1265bd8deadSopenharmony_ci int iPixelFormat, 1275bd8deadSopenharmony_ci int iLayerPlane, 1285bd8deadSopenharmony_ci UINT nAttributes, 1295bd8deadSopenharmony_ci const int *piAttributes, 1305bd8deadSopenharmony_ci FLOAT *pfValues); 1315bd8deadSopenharmony_ci 1325bd8deadSopenharmony_ci BOOL wglChoosePixelFormatARB(HDC hdc, 1335bd8deadSopenharmony_ci const int *piAttribIList, 1345bd8deadSopenharmony_ci const FLOAT *pfAttribFList, 1355bd8deadSopenharmony_ci UINT nMaxFormats, 1365bd8deadSopenharmony_ci int *piFormats, 1375bd8deadSopenharmony_ci UINT *nNumFormats); 1385bd8deadSopenharmony_ci 1395bd8deadSopenharmony_ciNew Tokens 1405bd8deadSopenharmony_ci 1415bd8deadSopenharmony_ci Accepted in the <piAttributes> parameter array of 1425bd8deadSopenharmony_ci wglGetPixelFormatAttribivARB, and wglGetPixelFormatAttribfvARB, and 1435bd8deadSopenharmony_ci as a type in the <piAttribIList> and <pfAttribFList> parameter 1445bd8deadSopenharmony_ci arrays of wglChoosePixelFormatARB: 1455bd8deadSopenharmony_ci 1465bd8deadSopenharmony_ci WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 1475bd8deadSopenharmony_ci WGL_DRAW_TO_WINDOW_ARB 0x2001 1485bd8deadSopenharmony_ci WGL_DRAW_TO_BITMAP_ARB 0x2002 1495bd8deadSopenharmony_ci WGL_ACCELERATION_ARB 0x2003 1505bd8deadSopenharmony_ci WGL_NEED_PALETTE_ARB 0x2004 1515bd8deadSopenharmony_ci WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 1525bd8deadSopenharmony_ci WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 1535bd8deadSopenharmony_ci WGL_SWAP_METHOD_ARB 0x2007 1545bd8deadSopenharmony_ci WGL_NUMBER_OVERLAYS_ARB 0x2008 1555bd8deadSopenharmony_ci WGL_NUMBER_UNDERLAYS_ARB 0x2009 1565bd8deadSopenharmony_ci WGL_TRANSPARENT_ARB 0x200A 1575bd8deadSopenharmony_ci WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 1585bd8deadSopenharmony_ci WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 1595bd8deadSopenharmony_ci WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 1605bd8deadSopenharmony_ci WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A 1615bd8deadSopenharmony_ci WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B 1625bd8deadSopenharmony_ci WGL_SHARE_DEPTH_ARB 0x200C 1635bd8deadSopenharmony_ci WGL_SHARE_STENCIL_ARB 0x200D 1645bd8deadSopenharmony_ci WGL_SHARE_ACCUM_ARB 0x200E 1655bd8deadSopenharmony_ci WGL_SUPPORT_GDI_ARB 0x200F 1665bd8deadSopenharmony_ci WGL_SUPPORT_OPENGL_ARB 0x2010 1675bd8deadSopenharmony_ci WGL_DOUBLE_BUFFER_ARB 0x2011 1685bd8deadSopenharmony_ci WGL_STEREO_ARB 0x2012 1695bd8deadSopenharmony_ci WGL_PIXEL_TYPE_ARB 0x2013 1705bd8deadSopenharmony_ci WGL_COLOR_BITS_ARB 0x2014 1715bd8deadSopenharmony_ci WGL_RED_BITS_ARB 0x2015 1725bd8deadSopenharmony_ci WGL_RED_SHIFT_ARB 0x2016 1735bd8deadSopenharmony_ci WGL_GREEN_BITS_ARB 0x2017 1745bd8deadSopenharmony_ci WGL_GREEN_SHIFT_ARB 0x2018 1755bd8deadSopenharmony_ci WGL_BLUE_BITS_ARB 0x2019 1765bd8deadSopenharmony_ci WGL_BLUE_SHIFT_ARB 0x201A 1775bd8deadSopenharmony_ci WGL_ALPHA_BITS_ARB 0x201B 1785bd8deadSopenharmony_ci WGL_ALPHA_SHIFT_ARB 0x201C 1795bd8deadSopenharmony_ci WGL_ACCUM_BITS_ARB 0x201D 1805bd8deadSopenharmony_ci WGL_ACCUM_RED_BITS_ARB 0x201E 1815bd8deadSopenharmony_ci WGL_ACCUM_GREEN_BITS_ARB 0x201F 1825bd8deadSopenharmony_ci WGL_ACCUM_BLUE_BITS_ARB 0x2020 1835bd8deadSopenharmony_ci WGL_ACCUM_ALPHA_BITS_ARB 0x2021 1845bd8deadSopenharmony_ci WGL_DEPTH_BITS_ARB 0x2022 1855bd8deadSopenharmony_ci WGL_STENCIL_BITS_ARB 0x2023 1865bd8deadSopenharmony_ci WGL_AUX_BUFFERS_ARB 0x2024 1875bd8deadSopenharmony_ci 1885bd8deadSopenharmony_ci Accepted as a value in the <piAttribIList> and <pfAttribFList> 1895bd8deadSopenharmony_ci parameter arrays of wglChoosePixelFormatARB, and returned in the 1905bd8deadSopenharmony_ci <piValues> parameter array of wglGetPixelFormatAttribivARB, and the 1915bd8deadSopenharmony_ci <pfValues> parameter array of wglGetPixelFormatAttribfvARB: 1925bd8deadSopenharmony_ci 1935bd8deadSopenharmony_ci WGL_NO_ACCELERATION_ARB 0x2025 1945bd8deadSopenharmony_ci WGL_GENERIC_ACCELERATION_ARB 0x2026 1955bd8deadSopenharmony_ci WGL_FULL_ACCELERATION_ARB 0x2027 1965bd8deadSopenharmony_ci 1975bd8deadSopenharmony_ci WGL_SWAP_EXCHANGE_ARB 0x2028 1985bd8deadSopenharmony_ci WGL_SWAP_COPY_ARB 0x2029 1995bd8deadSopenharmony_ci WGL_SWAP_UNDEFINED_ARB 0x202A 2005bd8deadSopenharmony_ci 2015bd8deadSopenharmony_ci WGL_TYPE_RGBA_ARB 0x202B 2025bd8deadSopenharmony_ci WGL_TYPE_COLORINDEX_ARB 0x202C 2035bd8deadSopenharmony_ci 2045bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.2 Specification (OpenGL Operation) 2055bd8deadSopenharmony_ci 2065bd8deadSopenharmony_ci None 2075bd8deadSopenharmony_ci 2085bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.2 Specification (Rasterization) 2095bd8deadSopenharmony_ci 2105bd8deadSopenharmony_ci None 2115bd8deadSopenharmony_ci 2125bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.2 Specification (Per-Fragment Operations and 2135bd8deadSopenharmony_cithe Frame buffer) 2145bd8deadSopenharmony_ci 2155bd8deadSopenharmony_ci None 2165bd8deadSopenharmony_ci 2175bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.2 Specification (Special Functions) 2185bd8deadSopenharmony_ci 2195bd8deadSopenharmony_ci None 2205bd8deadSopenharmony_ci 2215bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.2 Specification (State and State Requests) 2225bd8deadSopenharmony_ci 2235bd8deadSopenharmony_ci None 2245bd8deadSopenharmony_ci 2255bd8deadSopenharmony_ciAdditions to the WGL Specification 2265bd8deadSopenharmony_ci 2275bd8deadSopenharmony_ci Pixel Formats 2285bd8deadSopenharmony_ci 2295bd8deadSopenharmony_ci WGL uses pixel format indices to refer to the pixel formats 2305bd8deadSopenharmony_ci supported by a device. The standard pixel format functions 2315bd8deadSopenharmony_ci DescribePixelFormat, DescribeLayerPlane, ChoosePixelFormat, 2325bd8deadSopenharmony_ci SetPixelFormat, and GetPixelFormat specify pixel format attributes 2335bd8deadSopenharmony_ci using the PIXELFORMATDESCRIPTOR and LAYERPLANEDESCRIPTOR data 2345bd8deadSopenharmony_ci structures. 2355bd8deadSopenharmony_ci 2365bd8deadSopenharmony_ci An additional set of functions may be used to query and specify 2375bd8deadSopenharmony_ci pixel format attributes by name. 2385bd8deadSopenharmony_ci 2395bd8deadSopenharmony_ci Querying Pixel Format Attributes 2405bd8deadSopenharmony_ci 2415bd8deadSopenharmony_ci The following two functions can be used to query pixel format 2425bd8deadSopenharmony_ci attributes by specifying a list of attributes to be queried and 2435bd8deadSopenharmony_ci providing a buffer in which to receive the results from the query. 2445bd8deadSopenharmony_ci These functions can be used to query the attributes of both the main 2455bd8deadSopenharmony_ci plane and layer planes of a given pixel format. 2465bd8deadSopenharmony_ci 2475bd8deadSopenharmony_ci BOOL wglGetPixelFormatAttribivARB(HDC hdc, 2485bd8deadSopenharmony_ci int iPixelFormat, 2495bd8deadSopenharmony_ci int iLayerPlane, 2505bd8deadSopenharmony_ci UINT nAttributes, 2515bd8deadSopenharmony_ci const int *piAttributes, 2525bd8deadSopenharmony_ci int *piValues); 2535bd8deadSopenharmony_ci 2545bd8deadSopenharmony_ci <hdc> specifies the device context on which the pixel format is 2555bd8deadSopenharmony_ci supported. 2565bd8deadSopenharmony_ci 2575bd8deadSopenharmony_ci <iPixelFormat> is an index that specifies the pixel format. The 2585bd8deadSopenharmony_ci pixel formats that a device context supports are identified by 2595bd8deadSopenharmony_ci positive one-based integer indexes. 2605bd8deadSopenharmony_ci 2615bd8deadSopenharmony_ci <iLayerPlane> specifies which plane is being queried. Positive 2625bd8deadSopenharmony_ci values of <iLayerPlane> identify overlay planes, where 1 is the 2635bd8deadSopenharmony_ci first overlay plane over the main plane, 2 is the second overlay 2645bd8deadSopenharmony_ci plane over the first overlay plane, and so on. Negative values 2655bd8deadSopenharmony_ci identify underlay planes, where -1 is the first underlay plane under 2665bd8deadSopenharmony_ci the main plane, -2 is the second underlay plane under the first 2675bd8deadSopenharmony_ci underlay plane and so on. Use zero for the main plane. 2685bd8deadSopenharmony_ci 2695bd8deadSopenharmony_ci <nAttributes> number of attributes being queried. 2705bd8deadSopenharmony_ci 2715bd8deadSopenharmony_ci <piAttributes> list containing an array of pixel format attribute 2725bd8deadSopenharmony_ci identifiers which specify the attributes to be queried. The 2735bd8deadSopenharmony_ci following values are accepted: 2745bd8deadSopenharmony_ci 2755bd8deadSopenharmony_ci WGL_NUMBER_PIXEL_FORMATS_ARB 2765bd8deadSopenharmony_ci The number of pixel formats for the device context. The 2775bd8deadSopenharmony_ci <iLayerPlane> and <iPixelFormat> parameters are ignored if this 2785bd8deadSopenharmony_ci attribute is specified. 2795bd8deadSopenharmony_ci 2805bd8deadSopenharmony_ci WGL_DRAW_TO_WINDOW_ARB 2815bd8deadSopenharmony_ci True if the pixel format can be used with a window. The 2825bd8deadSopenharmony_ci <iLayerPlane> parameter is ignored if this attribute is 2835bd8deadSopenharmony_ci specified. 2845bd8deadSopenharmony_ci 2855bd8deadSopenharmony_ci WGL_DRAW_TO_BITMAP_ARB 2865bd8deadSopenharmony_ci True if the pixel format can be used with a memory bitmap. The 2875bd8deadSopenharmony_ci <iLayerPlane> parameter is ignored if this attribute is 2885bd8deadSopenharmony_ci specified. 2895bd8deadSopenharmony_ci 2905bd8deadSopenharmony_ci WGL_ACCELERATION_ARB 2915bd8deadSopenharmony_ci Indicates whether the pixel format is supported by the driver. 2925bd8deadSopenharmony_ci If this is set to WGL_NO_ACCELERATION_ARB then only the software 2935bd8deadSopenharmony_ci renderer supports this pixel format; if this is set to 2945bd8deadSopenharmony_ci WGL_GENERIC_ACCELERATION_ARB then the pixel format is supported 2955bd8deadSopenharmony_ci by an MCD driver; if this is set to WGL_FULL_ACCELERATION_ARB 2965bd8deadSopenharmony_ci then the pixel format is supported by an ICD driver. 2975bd8deadSopenharmony_ci 2985bd8deadSopenharmony_ci WGL_NEED_PALETTE_ARB 2995bd8deadSopenharmony_ci A logical palette is required to achieve the best results for 3005bd8deadSopenharmony_ci this pixel format. The <iLayerPlane> parameter is ignored if 3015bd8deadSopenharmony_ci this attribute is specified. 3025bd8deadSopenharmony_ci 3035bd8deadSopenharmony_ci WGL_NEED_SYSTEM_PALETTE_ARB 3045bd8deadSopenharmony_ci The hardware supports one hardware palette in 256-color mode 3055bd8deadSopenharmony_ci only. The <iLayerPlane> parameter is ignored if this attribute 3065bd8deadSopenharmony_ci is specified. 3075bd8deadSopenharmony_ci 3085bd8deadSopenharmony_ci WGL_SWAP_LAYER_BUFFERS_ARB 3095bd8deadSopenharmony_ci True if the pixel format supports swapping layer planes 3105bd8deadSopenharmony_ci independently of the main planes. If the pixel format does not 3115bd8deadSopenharmony_ci support a back buffer then this is set to FALSE. The 3125bd8deadSopenharmony_ci <iLayerPlane> parameter is ignored if this attribute is 3135bd8deadSopenharmony_ci specified. 3145bd8deadSopenharmony_ci 3155bd8deadSopenharmony_ci WGL_SWAP_METHOD_ARB 3165bd8deadSopenharmony_ci If the pixel format supports a back buffer, then this indicates 3175bd8deadSopenharmony_ci how they are swapped. If this attribute is set to 3185bd8deadSopenharmony_ci WGL_SWAP_EXCHANGE_ARB then swapping exchanges the front and back 3195bd8deadSopenharmony_ci buffer contents; if it is set to WGL_SWAP_COPY_ARB then swapping 3205bd8deadSopenharmony_ci copies the back buffer contents to the front buffer; if it is 3215bd8deadSopenharmony_ci set to WGL_SWAP_UNDEFINED_ARB then the back buffer contents are 3225bd8deadSopenharmony_ci copied to the front buffer but the back buffer contents are 3235bd8deadSopenharmony_ci undefined after the operation. If the pixel format does not 3245bd8deadSopenharmony_ci support a back buffer then this parameter is set to 3255bd8deadSopenharmony_ci WGL_SWAP_UNDEFINED_ARB. The <iLayerPlane> parameter is ignored 3265bd8deadSopenharmony_ci if this attribute is specified. 3275bd8deadSopenharmony_ci 3285bd8deadSopenharmony_ci WGL_NUMBER_OVERLAYS_ARB 3295bd8deadSopenharmony_ci The number of overlay planes. The <iLayerPlane> parameter is 3305bd8deadSopenharmony_ci ignored if this attribute is specified. 3315bd8deadSopenharmony_ci 3325bd8deadSopenharmony_ci WGL_NUMBER_UNDERLAYS_ARB 3335bd8deadSopenharmony_ci The number of underlay planes. The <iLayerPlane> parameter is 3345bd8deadSopenharmony_ci ignored if this attribute is specified. 3355bd8deadSopenharmony_ci 3365bd8deadSopenharmony_ci WGL_TRANSPARENT_ARB 3375bd8deadSopenharmony_ci True if transparency is supported. 3385bd8deadSopenharmony_ci 3395bd8deadSopenharmony_ci WGL_TRANSPARENT_RED_VALUE_ARB 3405bd8deadSopenharmony_ci Specifies the transparent red color value. Typically this value 3415bd8deadSopenharmony_ci is the same for all layer planes. This value is undefined if 3425bd8deadSopenharmony_ci transparency is not supported. 3435bd8deadSopenharmony_ci 3445bd8deadSopenharmony_ci WGL_TRANSPARENT_GREEN_VALUE_ARB 3455bd8deadSopenharmony_ci Specifies the transparent green value. Typically this value is 3465bd8deadSopenharmony_ci the same for all layer planes. This value is undefined if 3475bd8deadSopenharmony_ci transparency is not supported. 3485bd8deadSopenharmony_ci 3495bd8deadSopenharmony_ci WGL_TRANSPARENT_BLUE_VALUE_ARB 3505bd8deadSopenharmony_ci Specifies the transparent blue color value. Typically this value 3515bd8deadSopenharmony_ci is the same for all layer planes. This value is undefined if 3525bd8deadSopenharmony_ci transparency is not supported. 3535bd8deadSopenharmony_ci 3545bd8deadSopenharmony_ci WGL_TRANSPARENT_ALPHA_VALUE_ARB 3555bd8deadSopenharmony_ci Specifies the transparent alpha value. This is reserved for 3565bd8deadSopenharmony_ci future use. 3575bd8deadSopenharmony_ci 3585bd8deadSopenharmony_ci WGL_TRANSPARENT_INDEX_VALUE_ARB 3595bd8deadSopenharmony_ci Specifies the transparent color index value. Typically this 3605bd8deadSopenharmony_ci value is the same for all layer planes. This value is undefined 3615bd8deadSopenharmony_ci if transparency is not supported. 3625bd8deadSopenharmony_ci 3635bd8deadSopenharmony_ci WGL_SHARE_DEPTH_ARB 3645bd8deadSopenharmony_ci True if the layer plane shares the depth buffer with the main 3655bd8deadSopenharmony_ci planes. If <iLayerPlane> is zero, this is always true. 3665bd8deadSopenharmony_ci 3675bd8deadSopenharmony_ci WGL_SHARE_STENCIL_ARB 3685bd8deadSopenharmony_ci True if the layer plane shares the stencil buffer with the main 3695bd8deadSopenharmony_ci planes. If <iLayerPlane> is zero, this is always true. 3705bd8deadSopenharmony_ci 3715bd8deadSopenharmony_ci WGL_SHARE_ACCUM_ARB 3725bd8deadSopenharmony_ci True if the layer plane shares the accumulation buffer with the 3735bd8deadSopenharmony_ci main planes. If <iLayerPlane> is zero, this is always true. 3745bd8deadSopenharmony_ci 3755bd8deadSopenharmony_ci WGL_SUPPORT_GDI_ARB 3765bd8deadSopenharmony_ci True if GDI rendering is supported. 3775bd8deadSopenharmony_ci 3785bd8deadSopenharmony_ci WGL_SUPPORT_OPENGL_ARB 3795bd8deadSopenharmony_ci True if OpenGL is supported. 3805bd8deadSopenharmony_ci 3815bd8deadSopenharmony_ci WGL_DOUBLE_BUFFER_ARB 3825bd8deadSopenharmony_ci True if the color buffer has back/front pairs. 3835bd8deadSopenharmony_ci 3845bd8deadSopenharmony_ci WGL_STEREO_ARB 3855bd8deadSopenharmony_ci True if the color buffer has left/right pairs. 3865bd8deadSopenharmony_ci 3875bd8deadSopenharmony_ci WGL_PIXEL_TYPE_ARB 3885bd8deadSopenharmony_ci The type of pixel data. This can be set to WGL_TYPE_RGBA_ARB or 3895bd8deadSopenharmony_ci WGL_TYPE_COLORINDEX_ARB. 3905bd8deadSopenharmony_ci 3915bd8deadSopenharmony_ci WGL_COLOR_BITS_ARB 3925bd8deadSopenharmony_ci The number of color bitplanes in each color buffer. For RGBA 3935bd8deadSopenharmony_ci pixel types, it is the size of the color buffer, excluding the 3945bd8deadSopenharmony_ci alpha bitplanes. For color-index pixels, it is the size of the 3955bd8deadSopenharmony_ci color index buffer. 3965bd8deadSopenharmony_ci 3975bd8deadSopenharmony_ci WGL_RED_BITS_ARB 3985bd8deadSopenharmony_ci The number of red bitplanes in each RGBA color buffer. 3995bd8deadSopenharmony_ci 4005bd8deadSopenharmony_ci WGL_RED_SHIFT_ARB 4015bd8deadSopenharmony_ci The shift count for red bitplanes in each RGBA color buffer. 4025bd8deadSopenharmony_ci 4035bd8deadSopenharmony_ci WGL_GREEN_BITS_ARB 4045bd8deadSopenharmony_ci The number of green bitplanes in each RGBA color buffer. 4055bd8deadSopenharmony_ci 4065bd8deadSopenharmony_ci WGL_GREEN_SHIFT_ARB 4075bd8deadSopenharmony_ci The shift count for green bitplanes in each RGBA color buffer. 4085bd8deadSopenharmony_ci 4095bd8deadSopenharmony_ci WGL_BLUE_BITS_ARB 4105bd8deadSopenharmony_ci The number of blue bitplanes in each RGBA color buffer. 4115bd8deadSopenharmony_ci 4125bd8deadSopenharmony_ci WGL_BLUE_SHIFT_ARB 4135bd8deadSopenharmony_ci The shift count for blue bitplanes in each RGBA color buffer. 4145bd8deadSopenharmony_ci 4155bd8deadSopenharmony_ci WGL_ALPHA_BITS_ARB 4165bd8deadSopenharmony_ci The number of alpha bitplanes in each RGBA color buffer. 4175bd8deadSopenharmony_ci 4185bd8deadSopenharmony_ci WGL_ALPHA_SHIFT_ARB 4195bd8deadSopenharmony_ci The shift count for alpha bitplanes in each RGBA color buffer. 4205bd8deadSopenharmony_ci 4215bd8deadSopenharmony_ci WGL_ACCUM_BITS_ARB 4225bd8deadSopenharmony_ci The total number of bitplanes in the accumulation buffer. 4235bd8deadSopenharmony_ci 4245bd8deadSopenharmony_ci WGL_ACCUM_RED_BITS_ARB 4255bd8deadSopenharmony_ci The number of red bitplanes in the accumulation buffer. 4265bd8deadSopenharmony_ci 4275bd8deadSopenharmony_ci WGL_ACCUM_GREEN_BITS_ARB 4285bd8deadSopenharmony_ci The number of green bitplanes in the accumulation buffer. 4295bd8deadSopenharmony_ci 4305bd8deadSopenharmony_ci WGL_ACCUM_BLUE_BITS_ARB 4315bd8deadSopenharmony_ci The number of blue bitplanes in the accumulation buffer. 4325bd8deadSopenharmony_ci 4335bd8deadSopenharmony_ci WGL_ACCUM_ALPHA_BITS_ARB 4345bd8deadSopenharmony_ci The number of alpha bitplanes in the accumulation buffer. 4355bd8deadSopenharmony_ci 4365bd8deadSopenharmony_ci WGL_DEPTH_BITS_ARB 4375bd8deadSopenharmony_ci The depth of the depth (z-axis) buffer. 4385bd8deadSopenharmony_ci 4395bd8deadSopenharmony_ci WGL_STENCIL_BITS_ARB 4405bd8deadSopenharmony_ci The depth of the stencil buffer. 4415bd8deadSopenharmony_ci 4425bd8deadSopenharmony_ci WGL_AUX_BUFFERS_ARB 4435bd8deadSopenharmony_ci The number of auxiliary buffers. 4445bd8deadSopenharmony_ci 4455bd8deadSopenharmony_ci <piValues> points to a buffer into which the results of the query 4465bd8deadSopenharmony_ci will be placed. Floating point attribute values are rounded to the 4475bd8deadSopenharmony_ci nearest integer value. The caller must allocate this array and it 4485bd8deadSopenharmony_ci must have at least <nattributes> entries. 4495bd8deadSopenharmony_ci 4505bd8deadSopenharmony_ci If the function succeeds, the return value is TRUE. If the function 4515bd8deadSopenharmony_ci fails, the return value is FALSE. To get extended error information, 4525bd8deadSopenharmony_ci call GetLastError. 4535bd8deadSopenharmony_ci 4545bd8deadSopenharmony_ci An error is generated if <piAttributes> contains an invalid 4555bd8deadSopenharmony_ci attribute, if <iPixelFormat> is not a positive integer or is larger 4565bd8deadSopenharmony_ci than the number of pixel formats, if <iLayerPlane> doesn't refer to 4575bd8deadSopenharmony_ci an existing layer plane, or if <hdc> is invalid. 4585bd8deadSopenharmony_ci 4595bd8deadSopenharmony_ci If FALSE is returned, the contents of <piValues> are undefined. 4605bd8deadSopenharmony_ci 4615bd8deadSopenharmony_ci BOOL wglGetPixelFormatAttribfvARB(HDC hdc, 4625bd8deadSopenharmony_ci int iPixelFormat, 4635bd8deadSopenharmony_ci int iLayerPlane, 4645bd8deadSopenharmony_ci UINT nAttributes, 4655bd8deadSopenharmony_ci const int *piAttributes, 4665bd8deadSopenharmony_ci FLOAT *pfValues); 4675bd8deadSopenharmony_ci 4685bd8deadSopenharmony_ci <hdc> specifies the device context on which the pixel format is 4695bd8deadSopenharmony_ci supported. 4705bd8deadSopenharmony_ci 4715bd8deadSopenharmony_ci <iPixelFormat> is an index that specifies the pixel format. The 4725bd8deadSopenharmony_ci pixel formats that a device context supports are identified by 4735bd8deadSopenharmony_ci positive one-based integer indexes. 4745bd8deadSopenharmony_ci 4755bd8deadSopenharmony_ci <iLayerPlane> specifies which plane is being queried. Positive 4765bd8deadSopenharmony_ci values of <iLayerPlane> identify overlay planes, where 1 is the 4775bd8deadSopenharmony_ci first overlay plane over the main plane, 2 is the second overlay 4785bd8deadSopenharmony_ci plane over the first overlay plane, and so on. Negative values 4795bd8deadSopenharmony_ci identify underlay planes, where -1 is the first underlay plane under 4805bd8deadSopenharmony_ci the main plane, -2 is the second underlay plane under the first 4815bd8deadSopenharmony_ci underlay plane and so on. Use zero for the main plane. 4825bd8deadSopenharmony_ci 4835bd8deadSopenharmony_ci <nAttributes> number of attributes being queried. 4845bd8deadSopenharmony_ci 4855bd8deadSopenharmony_ci <piAttributes> list containing an array of pixel format attribute 4865bd8deadSopenharmony_ci identifiers which specify the attributes to be queried. The values 4875bd8deadSopenharmony_ci accepted are the same as for wglGetPixelFormatAttribivARB. 4885bd8deadSopenharmony_ci 4895bd8deadSopenharmony_ci <pfValues> is a pointer to a buffer into which the results of the 4905bd8deadSopenharmony_ci query will be placed. Integer attribute values are converted 4915bd8deadSopenharmony_ci floating point The caller must allocate this array and it must have 4925bd8deadSopenharmony_ci at least at least <nAttributes> entries. 4935bd8deadSopenharmony_ci 4945bd8deadSopenharmony_ci If the function succeeds, the return value is TRUE. If the function 4955bd8deadSopenharmony_ci fails, the return value is FALSE. To get extended error information, 4965bd8deadSopenharmony_ci call GetLastError. 4975bd8deadSopenharmony_ci 4985bd8deadSopenharmony_ci An error is generated if <piAttributes> contains an invalid 4995bd8deadSopenharmony_ci attribute, if <iPixelFormat> is not a positive integer or is larger 5005bd8deadSopenharmony_ci than the number of pixel formats, if <iLayerPlane> doesn't refer to 5015bd8deadSopenharmony_ci an existing layer plane, or if <hdc> is invalid. 5025bd8deadSopenharmony_ci 5035bd8deadSopenharmony_ci If FALSE is returned, the contents of <pfValues> are undefined. 5045bd8deadSopenharmony_ci 5055bd8deadSopenharmony_ci Supported Pixel Formats 5065bd8deadSopenharmony_ci 5075bd8deadSopenharmony_ci The maximum index of the pixel formats which can be referenced by 5085bd8deadSopenharmony_ci the standard pixel format functions is returned by a successful call 5095bd8deadSopenharmony_ci to DescribePixelFormat. This may be less than the maximum index of 5105bd8deadSopenharmony_ci the pixel formats which can be referenced by 5115bd8deadSopenharmony_ci wglGetPixelFormatAttribivARB and wglGetPixelFormatAttribfvARB. 5125bd8deadSopenharmony_ci (determined by querying WGL_NUMBER_PIXEL_FORMATS_ARB). 5135bd8deadSopenharmony_ci 5145bd8deadSopenharmony_ci The pixel format of a "displayable" object (e.g. window, bitmap) is 5155bd8deadSopenharmony_ci specified by passing its index to SetPixelFormat. Therefore, pixel 5165bd8deadSopenharmony_ci formats which cannot be referenced by the standard pixel format 5175bd8deadSopenharmony_ci functions are "non displayable". 5185bd8deadSopenharmony_ci 5195bd8deadSopenharmony_ci Indices are assigned to pixel formats in the following order: 5205bd8deadSopenharmony_ci 5215bd8deadSopenharmony_ci 1. Accelerated pixel formats that are displayable 5225bd8deadSopenharmony_ci 5235bd8deadSopenharmony_ci 2. Accelerated pixel formats that are displayable and which have 5245bd8deadSopenharmony_ci extended attributes 5255bd8deadSopenharmony_ci 5265bd8deadSopenharmony_ci 3. Generic pixel formats 5275bd8deadSopenharmony_ci 5285bd8deadSopenharmony_ci 4. Accelerated pixel formats that are non displayable 5295bd8deadSopenharmony_ci 5305bd8deadSopenharmony_ci ChoosePixelFormat will never select pixel formats from either group 5315bd8deadSopenharmony_ci 2 or group 4. Each pixel format in group 2 is required to appear 5325bd8deadSopenharmony_ci identical to some pixel format in group 1 when queried by 5335bd8deadSopenharmony_ci DescribePixelFormat. Consequently, ChoosePixelFormat will always 5345bd8deadSopenharmony_ci select a format from group 1 when it might otherwise have selected a 5355bd8deadSopenharmony_ci format from group 2. Pixel formats in group 4 cannot be accessed by 5365bd8deadSopenharmony_ci ChoosePixelFormat at all. 5375bd8deadSopenharmony_ci 5385bd8deadSopenharmony_ci SetPixelFormat and DescribePixelFormat will only accept pixel 5395bd8deadSopenharmony_ci formats from groups 1-3. If a non-displayable pixel format is 5405bd8deadSopenharmony_ci specified to SetPixelFormat or DescribePixelFormat an error will 5415bd8deadSopenharmony_ci result. These pixel formats are only for use with WGL extensions, 5425bd8deadSopenharmony_ci such as WGLCreatePbufferARB. 5435bd8deadSopenharmony_ci 5445bd8deadSopenharmony_ci The following function may be used to select from among all of the 5455bd8deadSopenharmony_ci available pixel formats (including both accelerated and generic 5465bd8deadSopenharmony_ci formats and non-displayable formats). This function accepts 5475bd8deadSopenharmony_ci attributes for the main planes. A list of pixel formats that match 5485bd8deadSopenharmony_ci the specified attributes is returned with the "best" pixel formats 5495bd8deadSopenharmony_ci at the start of the list (order is device dependent). 5505bd8deadSopenharmony_ci 5515bd8deadSopenharmony_ci BOOL wglChoosePixelFormatARB(HDC hdc, 5525bd8deadSopenharmony_ci const int *piAttribIList, 5535bd8deadSopenharmony_ci const FLOAT *pfAttribFList, 5545bd8deadSopenharmony_ci UINT nMaxFormats, 5555bd8deadSopenharmony_ci int *piFormats, 5565bd8deadSopenharmony_ci UINT *nNumFormats); 5575bd8deadSopenharmony_ci 5585bd8deadSopenharmony_ci <hdc> specifies the device context. 5595bd8deadSopenharmony_ci 5605bd8deadSopenharmony_ci <piAttribIList> specifies a list of attribute {type, value} pairs 5615bd8deadSopenharmony_ci containing integer attribute values. All the attributes in 5625bd8deadSopenharmony_ci <piAttribIList> are followed by the corresponding desired value. The 5635bd8deadSopenharmony_ci list is terminated with 0. If <piAttribList> is NULL then the result 5645bd8deadSopenharmony_ci is the same as if <piAttribList> was empty. 5655bd8deadSopenharmony_ci 5665bd8deadSopenharmony_ci <pfAttribFList> specifies a list of attribute {type, value} pairs 5675bd8deadSopenharmony_ci containing floating point attribute values. All the attributes in 5685bd8deadSopenharmony_ci <pfAttribFList> are followed by the corresponding desired value. The 5695bd8deadSopenharmony_ci list is terminated with 0. If <pfAttribList> is NULL then the result 5705bd8deadSopenharmony_ci is the same as if <pfAttribList> was empty. 5715bd8deadSopenharmony_ci 5725bd8deadSopenharmony_ci <nMaxFormats> specifies the maximum number of pixel formats to be 5735bd8deadSopenharmony_ci returned. 5745bd8deadSopenharmony_ci 5755bd8deadSopenharmony_ci <piFormats> points to an array of returned indices of the matching 5765bd8deadSopenharmony_ci pixel formats. The best pixel formats (i.e., closest match and best 5775bd8deadSopenharmony_ci format for the hardware) are at the head of the list. The caller 5785bd8deadSopenharmony_ci must allocate this array and it must have at least <nMaxFormats> 5795bd8deadSopenharmony_ci entries. 5805bd8deadSopenharmony_ci 5815bd8deadSopenharmony_ci <nNumFormats> returns the number of matching formats. The returned 5825bd8deadSopenharmony_ci value is guaranteed to be no larger than <nMaxFormats>. 5835bd8deadSopenharmony_ci 5845bd8deadSopenharmony_ci If the function succeeds, the return value is TRUE. If the function 5855bd8deadSopenharmony_ci fails the return value is FALSE. To get extended error information, 5865bd8deadSopenharmony_ci call GetLastError. If no matching formats are found then nNumFormats 5875bd8deadSopenharmony_ci is set to zero and the function returns TRUE. 5885bd8deadSopenharmony_ci 5895bd8deadSopenharmony_ci If FALSE is returned, the contents of <piFormats> are undefined. 5905bd8deadSopenharmony_ci 5915bd8deadSopenharmony_ci wglChoosePixelFormatARB selects pixel formats to return based on the 5925bd8deadSopenharmony_ci attribute values specified in <piAttribIList> and <pfAttribFList>. 5935bd8deadSopenharmony_ci Some attribute values must match the pixel format value exactly when 5945bd8deadSopenharmony_ci the attribute is specified while others specify a minimum criteria, 5955bd8deadSopenharmony_ci meaning that the pixel format value must meet or exceed the 5965bd8deadSopenharmony_ci specified value. See the table below for details. 5975bd8deadSopenharmony_ci 5985bd8deadSopenharmony_ci 5995bd8deadSopenharmony_ci Attribute Type Match Criteria 6005bd8deadSopenharmony_ci 6015bd8deadSopenharmony_ci WGL_DRAW_TO_WINDOW_ARB boolean exact 6025bd8deadSopenharmony_ci WGL_DRAW_TO_BITMAP_ARB boolean exact 6035bd8deadSopenharmony_ci WGL_ACCELERATION_ARB enum exact 6045bd8deadSopenharmony_ci WGL_NEED_PALETTE_ARB boolean exact 6055bd8deadSopenharmony_ci WGL_NEED_SYSTEM_PALETTE_ARB boolean exact 6065bd8deadSopenharmony_ci WGL_SWAP_LAYER_BUFFERS_ARB boolean exact 6075bd8deadSopenharmony_ci WGL_SWAP_METHOD_ARB enum exact 6085bd8deadSopenharmony_ci WGL_NUMBER_OVERLAYS_ARB integer minimum 6095bd8deadSopenharmony_ci WGL_NUMBER_UNDERLAYS_ARB integer minimum 6105bd8deadSopenharmony_ci WGL_SHARE_DEPTH_ARB boolean exact 6115bd8deadSopenharmony_ci WGL_SHARE_STENCIL_ARB boolean exact 6125bd8deadSopenharmony_ci WGL_SHARE_ACCUM_ARB boolean exact 6135bd8deadSopenharmony_ci WGL_SUPPORT_GDI_ARB boolean exact 6145bd8deadSopenharmony_ci WGL_SUPPORT_OPENGL_ARB boolean exact 6155bd8deadSopenharmony_ci WGL_DOUBLE_BUFFER_ARB boolean exact 6165bd8deadSopenharmony_ci WGL_STEREO_ARB boolean exact 6175bd8deadSopenharmony_ci WGL_PIXEL_TYPE_ARB enum exact 6185bd8deadSopenharmony_ci WGL_COLOR_BITS_ARB integer minimum 6195bd8deadSopenharmony_ci WGL_RED_BITS_ARB integer minimum 6205bd8deadSopenharmony_ci WGL_GREEN_BITS_ARB integer minimum 6215bd8deadSopenharmony_ci WGL_BLUE_BITS_ARB integer minimum 6225bd8deadSopenharmony_ci WGL_ALPHA_BITS_ARB integer minimum 6235bd8deadSopenharmony_ci WGL_ACCUM_BITS_ARB integer minimum 6245bd8deadSopenharmony_ci WGL_ACCUM_RED_BITS_ARB integer minimum 6255bd8deadSopenharmony_ci WGL_ACCUM_GREEN_BITS_ARB integer minimum 6265bd8deadSopenharmony_ci WGL_ACCUM_BLUE_BITS_ARB integer minimum 6275bd8deadSopenharmony_ci WGL_ACCUM_ALPHA_BITS_ARB integer minimum 6285bd8deadSopenharmony_ci WGL_DEPTH_BITS_ARB integer minimum 6295bd8deadSopenharmony_ci WGL_STENCIL_BITS_ARB integer minimum 6305bd8deadSopenharmony_ci WGL_AUX_BUFFERS_ARB integer minimum 6315bd8deadSopenharmony_ci 6325bd8deadSopenharmony_ci All attributes except WGL_NUMBER_OVERLAYS_ARB, WGL_NUMBER_UNDERLAYS_ARB, 6335bd8deadSopenharmony_ci WGL_SHARE_DEPTH_ARB, WGL_SHARE_STENCIL_ARB, and WGL_SHARE_ACCUM_ARB 6345bd8deadSopenharmony_ci apply to the main planes and not to any layer planes. If 6355bd8deadSopenharmony_ci WGL_SHARE_DEPTH_ARB, WGL_SHARE_STENCIL_ARB, and WGL_SHARE_ACCUM_ARB are 6365bd8deadSopenharmony_ci specified in either <piAttribList> or <pfAttribList>, then a pixel 6375bd8deadSopenharmony_ci format will only be selected if it has no overlays or underlays or if 6385bd8deadSopenharmony_ci all of its overlays and underlays match the specified value. 6395bd8deadSopenharmony_ci Applications that need to find a pixel format that supports a layer 6405bd8deadSopenharmony_ci plane with other buffer attributes (such as WGL_SUPPORT_OPENGL_ARB set 6415bd8deadSopenharmony_ci to TRUE), must go through the list that is returned and call 6425bd8deadSopenharmony_ci wglGetPixelFormatAttrib*vARB to find one with the appropriate 6435bd8deadSopenharmony_ci attributes. 6445bd8deadSopenharmony_ci 6455bd8deadSopenharmony_ci Attributes that are specified in neither <piAttribIList> nor 6465bd8deadSopenharmony_ci <pfAttribFList> are ignored (i.e., they are not looked at during the 6475bd8deadSopenharmony_ci selection process). In addition the following attributes are always 6485bd8deadSopenharmony_ci ignored, even if specified: WGL_NUMBER_PIXEL_FORMATS_ARB, 6495bd8deadSopenharmony_ci WGL_RED_SHIFT_ARB, WGL_GREEN_SHIFT_ARB, WGL_BLUE_SHIFT_ARB, 6505bd8deadSopenharmony_ci WGL_ALPHA_SHIFT_ARB, WGL_TRANSPARENT_ARB, 6515bd8deadSopenharmony_ci WGL_TRANSPARENT_RED_VALUE_ARB,WGL_TRANSPARENT_GREEN_VALUE_ARB, 6525bd8deadSopenharmony_ci WGL_TRANSPARENT_BLUE_VALUE_ARB, WGL_TRANSPARENT_ALPHA_VALUE_ARB, and 6535bd8deadSopenharmony_ci WGL_TRANSPARENT_INDEX_ARB. 6545bd8deadSopenharmony_ci 6555bd8deadSopenharmony_ci If both <piAttribIList> and <pfAttribFList> are NULL or empty then all 6565bd8deadSopenharmony_ci pixel formats for this device are returned. 6575bd8deadSopenharmony_ci 6585bd8deadSopenharmony_ci An error is generated if <piAttribIList> or <pfAttribFList> contain an 6595bd8deadSopenharmony_ci invalid attribute or if <hdc> is invalid. 6605bd8deadSopenharmony_ci 6615bd8deadSopenharmony_ci Although it is not an error, wglChoosePixelFormat and 6625bd8deadSopenharmony_ci wglChoosePixelFormatARB should not be used together. It is not necessary 6635bd8deadSopenharmony_ci to change existing OpenGL programs but application writers should use 6645bd8deadSopenharmony_ci wglChoosePixelFormatARB whenever possible. New pixel format attributes 6655bd8deadSopenharmony_ci introduced by extensions (such as the number of multisample buffers) 6665bd8deadSopenharmony_ci will only be known to the new calls, wglChoosePixelFormatARB and 6675bd8deadSopenharmony_ci wglGetPixelFormatAttrib*vARB.. 6685bd8deadSopenharmony_ci 6695bd8deadSopenharmony_ciNew State 6705bd8deadSopenharmony_ci 6715bd8deadSopenharmony_ci None 6725bd8deadSopenharmony_ci 6735bd8deadSopenharmony_ciNew Implementation Dependent State 6745bd8deadSopenharmony_ci 6755bd8deadSopenharmony_ci None 6765bd8deadSopenharmony_ci 6775bd8deadSopenharmony_ciDependencies on WGL_ARB_extensions_string 6785bd8deadSopenharmony_ci 6795bd8deadSopenharmony_ci Because there is no way to extend WGL, these calls are defined in the 6805bd8deadSopenharmony_ci ICD and can be called by obtaining the address with wglGetProcAddress. 6815bd8deadSopenharmony_ci Because this extension is a WGL extension, it is not included in the 6825bd8deadSopenharmony_ci extension string returned by glGetString. Its existence can be 6835bd8deadSopenharmony_ci determined with the WGL_ARB_extensions_string extension. 6845bd8deadSopenharmony_ci 6855bd8deadSopenharmony_ciRevision History 6865bd8deadSopenharmony_ci 6875bd8deadSopenharmony_ciChanges from EXT_pixel_format: 6885bd8deadSopenharmony_ci 6895bd8deadSopenharmony_ci * Added WGL prefix to name to avoid possible name collisions 6905bd8deadSopenharmony_ci * EXT suffix changed to ARB 6915bd8deadSopenharmony_ci * Updated to new template, adding contact, status and revision sections 6925bd8deadSopenharmony_ci * Version is no longer an RCS version 6935bd8deadSopenharmony_ci * Attribute list passed to wglGetPixelFormatAttrib*v is type const 6945bd8deadSopenharmony_ci * Separate red,green,blue,alpha and index transparent values 6955bd8deadSopenharmony_ci * WGL_SWAP_LAYER_BUFFERS and WGL_SWAP_METHOD values defined for single 6965bd8deadSopenharmony_ci buffered pixel formats 6975bd8deadSopenharmony_ci * Array of return values for wglGetPixelFormatAttrib*v and 6985bd8deadSopenharmony_ci wglChoosePixelFormatARB is undefined if function fails 6995bd8deadSopenharmony_ci * Error returned if iPixelFormat is zero or negative in 7005bd8deadSopenharmony_ci wglGetPixelFormat*v 7015bd8deadSopenharmony_ci * Under "Supported Pixel Formats", indicate that SetPixelFormat and 7025bd8deadSopenharmony_ci DescribePixelFormat do not accept non displayable pixel formats. 7035bd8deadSopenharmony_ci Passing one in results in an error 7045bd8deadSopenharmony_ci * If either piAttribIList of pfAttribFList are NULL when 7055bd8deadSopenharmony_ci wglChoosePixelFormatARB is called then it is as if they were empty 7065bd8deadSopenharmony_ci * Clarify that wglChoosePixelFormatARB returns TRUE even if no matching 7075bd8deadSopenharmony_ci formats found 7085bd8deadSopenharmony_ci * wglChoosePixelFormatARB will only match an overlay attribute (eg, 7095bd8deadSopenharmony_ci WGL_SHARE_DEPTH_ARB) if there are no overlay planes or if all 7105bd8deadSopenharmony_ci overlay/underlay plane attributes match the specified criteria 7115bd8deadSopenharmony_ci * Be careful about using term hardware (change to pixel format where 7125bd8deadSopenharmony_ci appropriate) 7135bd8deadSopenharmony_ci * wglChoosePixelFormatARB now ignores the following attributes (in 7145bd8deadSopenharmony_ci addition to WGL_NUMBER_PIXEL_FORMATS_ARB): WGL_*_SHIFT_ARB, 7155bd8deadSopenharmony_ci WGL_TRANSPARENT_ARB, WGL_TRANSPARENT_*_VALUE_ARB. 7165bd8deadSopenharmony_ci * Clarify that new pixel format attributes (eg, attributes introduced by 7175bd8deadSopenharmony_ci extensions such as multisampling) are only known to the new pixel 7185bd8deadSopenharmony_ci format calls, wglChoosePixelFormatARB and wglGetPixelFormat*vARB. 7195bd8deadSopenharmony_ci * Add dependency on WGL_ARB_extensions_string 7205bd8deadSopenharmony_ci 7215bd8deadSopenharmony_ci 03/12/2002 1.1 7225bd8deadSopenharmony_ci - Updated contact information. 7235bd8deadSopenharmony_ci 7245bd8deadSopenharmony_ci 07/29/2008 1.2 7255bd8deadSopenharmony_ci - Updated contact information. 7265bd8deadSopenharmony_ci 7275bd8deadSopenharmony_ci 03/25/2009 1.3 7285bd8deadSopenharmony_ci - mjk: Fixed <nNumFormats> description 729