[Mesa-dev] [PATCH 1/2] wglinfo: query format bitmap, pbuffer GDI rendering ability

Brian Paul brianp at vmware.com
Wed May 3 19:49:39 UTC 2017


Only reported with -v option for now.
---
 src/wgl/wglinfo.c | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/src/wgl/wglinfo.c b/src/wgl/wglinfo.c
index f81978b..faccbb1 100644
--- a/src/wgl/wglinfo.c
+++ b/src/wgl/wglinfo.c
@@ -44,6 +44,7 @@
 
 
 static GLboolean have_WGL_ARB_create_context;
+static GLboolean have_WGL_ARB_pbuffer;
 static GLboolean have_WGL_ARB_pixel_format;
 static GLboolean have_WGL_ARB_multisample;
 static GLboolean have_WGL_ARB_framebuffer_sRGB; /* or EXT version */
@@ -61,6 +62,9 @@ struct format_info {
    int transparency;
    bool floatComponents;
    bool srgb;
+   bool draw_to_bitmap;
+   bool draw_to_pbuffer;
+   bool gdi_drawing;
 };
 
 
@@ -167,6 +171,9 @@ print_screen_info(HDC _hdc, const struct options *opts, GLboolean coreProfile)
 #if defined(WGL_ARB_extensions_string)
       if (wglGetExtensionsStringARB_func) {
          wglExtensions = wglGetExtensionsStringARB_func(hdc);
+         if (extension_supported("WGL_ARB_pbuffer", wglExtensions)) {
+            have_WGL_ARB_pbuffer = GL_TRUE;
+         }
          if (extension_supported("WGL_ARB_pixel_format", wglExtensions)) {
             have_WGL_ARB_pixel_format = GL_TRUE;
          }
@@ -326,10 +333,13 @@ visual_render_type_name(BYTE iPixelType)
 static void
 print_visual_attribs_verbose(int iPixelFormat, const struct format_info *info)
 {
-   printf("Visual ID: %x  generic=%d  native=%d\n",
+   printf("Visual ID: %x generic=%d drawToWindow=%d drawToBitmap=%d drawToPBuffer=%d GDI=%d\n",
           iPixelFormat, 
           info->pfd.dwFlags & PFD_GENERIC_FORMAT ? 1 : 0,
-          info->pfd.dwFlags & PFD_DRAW_TO_WINDOW ? 1 : 0);
+          info->pfd.dwFlags & PFD_DRAW_TO_WINDOW ? 1 : 0,
+          info->draw_to_bitmap,
+          info->draw_to_pbuffer,
+          info->gdi_drawing);
    printf("    bufferSize=%d level=%d renderType=%s doubleBuffer=%d stereo=%d\n",
           0 /* info->pfd.bufferSize */, 0 /* info->pfd.level */,
 	  visual_render_type_name(info->pfd.iPixelType),
@@ -476,6 +486,13 @@ get_format_info(HDC hdc, int pf, struct format_info *info)
       if (get_pf_attrib(hdc, pf, WGL_STEREO_ARB))
          info->pfd.dwFlags |= PFD_STEREO;
 
+      if (get_pf_attrib(hdc, pf, WGL_DRAW_TO_BITMAP_ARB))
+         info->draw_to_bitmap = true;
+      if (have_WGL_ARB_pbuffer && get_pf_attrib(hdc, pf, WGL_DRAW_TO_PBUFFER_ARB))
+         info->draw_to_pbuffer = true;
+      if (get_pf_attrib(hdc, pf, WGL_SUPPORT_GDI_ARB))
+         info->gdi_drawing = true;
+
       swapMethod = get_pf_attrib(hdc, pf, WGL_SWAP_METHOD_ARB);
       if (swapMethod == WGL_SWAP_EXCHANGE_ARB)
          info->pfd.dwFlags |= PFD_SWAP_EXCHANGE;
-- 
1.9.1



More information about the mesa-dev mailing list