Browse Source

add gl-force-pixfmt

cxgeorge 24 years ago
parent
commit
c66b25fb75

+ 1 - 0
panda/src/wgldisplay/config_wgldisplay.cxx

@@ -36,6 +36,7 @@ bool gl_sync_video = config_wgldisplay.GetBool("sync-video", true);
 
 bool gl_show_fps_meter = config_wgldisplay.GetBool("show-fps-meter", false);
 float gl_fps_meter_update_interval = max(0.5,config_wgldisplay.GetFloat("fps-meter-update-interval", 1.7));
+int gl_forced_pixfmt=config_wgldisplay.GetInt("gl-force-pixfmt", 0);
 
 extern void AtExitFn(void);
 

+ 1 - 0
panda/src/wgldisplay/config_wgldisplay.h

@@ -29,6 +29,7 @@ extern Filename get_icon_filename_();
 extern bool gl_show_fps_meter;
 extern float gl_fps_meter_update_interval;
 extern bool gl_sync_video;
+extern int gl_forced_pixfmt;
 
 extern EXPCL_PANDAGL void init_libwgldisplay();
 

+ 8 - 2
panda/src/wgldisplay/wglGraphicsWindow.cxx

@@ -461,13 +461,19 @@ void wglGraphicsWindow::config(void) {
   // Initializes _visual
   int pfnum=choose_visual();
 
+  if(gl_forced_pixfmt!=0) {
+    if(wgldisplay_cat.is_debug())
+      wgldisplay_cat.debug() << "overriding pixfmt choice algorithm with gl-force-pixfmt\n";
+    pfnum=gl_forced_pixfmt;
+  }
+
   //  int pfnum=ChoosePixelFormat(_hdc, _visual);
   if(wgldisplay_cat.is_debug())
      wgldisplay_cat.debug() << "config() - picking pixfmt #"<< pfnum <<endl;
 
   if (!SetPixelFormat(_hdc, pfnum, _visual)) {
     wgldisplay_cat.fatal()
-      << "config() - SetPixelFormat failed after window create" << endl;
+      << "config() - SetPixelFormat("<< pfnum << ") failed after window create" << endl;
     exit(1);
   }
 
@@ -878,7 +884,7 @@ int wglGraphicsWindow::choose_visual(void) {
       wgldisplay_cat.error() << "ERROR: couldn't find HW-accelerated OpenGL pixfmt appropriate for this desktop!!\n";
       wgldisplay_cat.error() << "make sure OpenGL driver is installed, and try reducing the screen size\n";
       if(cur_bpp>16)
-        wgldisplay_cat.error() << "or reducing the screen pixeldepth\n";
+        wgldisplay_cat.error() << "or reducing the desktop screen pixeldepth\n";
       exit(1);
   }