Selaa lähdekoodia

Modify OSX related files due to reflect changes in wgl version. Add additional methods.

Joe Hager 18 vuotta sitten
vanhempi
sitoutus
af99d82411

+ 21 - 4
panda/src/osxdisplay/osxGraphicsStateGuardian.cxx

@@ -387,11 +387,18 @@ describe_pixel_format(FrameBufferProperties &fb_props) {
 //               for atexit.
 ////////////////////////////////////////////////////////////////////
 bool osxGraphicsStateGuardian::
-static_set_gamma(float gamma) {
+static_set_gamma(bool restore, float gamma) {
     bool set;  
-	CGDisplayRestoreColorSyncSettings();
+	
     set = false;
 
+	if (restore) {
+		CGDisplayRestoreColorSyncSettings();
+		set = true;
+		return set;
+	}
+    CGDisplayRestoreColorSyncSettings();
+
 	CGGammaValue gOriginalRedTable[ 256 ];
 	CGGammaValue gOriginalGreenTable[ 256 ];
 	CGGammaValue gOriginalBlueTable[ 256 ];
@@ -443,11 +450,21 @@ bool osxGraphicsStateGuardian::
 set_gamma(float gamma) {
   bool set;
 
-  set = static_set_gamma(gamma);
+  set = static_set_gamma(false, gamma);
 
   return set;
 }
 
+////////////////////////////////////////////////////////////////////
+//     Function: osxGraphicsStateGuardian::restore_gamma
+//       Access: Published
+//  Description: Restore original gamma.
+////////////////////////////////////////////////////////////////////
+void osxGraphicsStateGuardian::
+restore_gamma() {
+  static_set_gamma(true, 1.0f);
+}
+
 ////////////////////////////////////////////////////////////////////
 //     Function: osxGraphicsStateGuardian::atexit_function
 //       Access: Public, Static
@@ -455,7 +472,7 @@ set_gamma(float gamma) {
 ////////////////////////////////////////////////////////////////////
 void osxGraphicsStateGuardian::
 atexit_function(void) {
-  static_set_gamma(1.0);
+  static_set_gamma(true, 1.0);
 }
 
 

+ 2 - 1
panda/src/osxdisplay/osxGraphicsStateGuardian.h

@@ -45,9 +45,10 @@ public:
   void draw_resize_box();
   
 //  static bool get_gamma_table(void);
-  static bool static_set_gamma(float gamma);
+  static bool static_set_gamma(bool restore, float gamma);
   bool set_gamma(float gamma);
   static void atexit_function(void);
+  void restore_gamma();
 	
 protected:
   virtual void *get_extension_func(const char *prefix, const char *name);