Author: mlytwyn
Date: Tue Mar 11 23:24:20 2014
New Revision: 37743

URL: http://svn.gna.org/viewcvs/gnustep?rev=37743&view=rev
Log:
Update for HDC processing and cairo

Modified:
    libs/back/branches/gnustep_testplant_branch/Source/cairo/Win32CairoGState.m

Modified: 
libs/back/branches/gnustep_testplant_branch/Source/cairo/Win32CairoGState.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/back/branches/gnustep_testplant_branch/Source/cairo/Win32CairoGState.m?rev=37743&r1=37742&r2=37743&view=diff
==============================================================================
--- libs/back/branches/gnustep_testplant_branch/Source/cairo/Win32CairoGState.m 
(original)
+++ libs/back/branches/gnustep_testplant_branch/Source/cairo/Win32CairoGState.m 
Tue Mar 11 23:24:20 2014
@@ -41,11 +41,13 @@
 {
   if (_surface)
     {
-      cairo_surface_flush([_surface surface]);
+      HDC hdc = cairo_win32_surface_get_dc([_surface surface]);
       NSDebugLLog(@"CairoGState",
                   @"%s:_surface: %p hdc: %p\n", __PRETTY_FUNCTION__,
-                  _surface, cairo_win32_surface_get_dc([_surface surface]));
-      return cairo_win32_surface_get_dc([_surface surface]);
+                  _surface, hdc);
+      cairo_surface_flush([_surface surface]);
+      SaveDC(hdc);
+      return hdc;
     }
   NSLog(@"%s:_surface is NULL\n", __PRETTY_FUNCTION__);
   return NULL;
@@ -54,7 +56,17 @@
 - (void) releaseHDC: (HDC)hdc
 {
   if (hdc && _surface)
-    cairo_surface_mark_dirty([_surface surface]);
+    {
+      if (hdc != cairo_win32_surface_get_dc([_surface surface]))
+      {
+        NSLog(@"%s:expHDC: %p recHDC: %p", __PRETTY_FUNCTION__, 
cairo_win32_surface_get_dc([_surface surface]), hdc);
+      }
+      else
+      {
+        RestoreDC(hdc, -1);
+        cairo_surface_mark_dirty([_surface surface]);
+      }
+    }
 }
 
 @end


_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs

Reply via email to