FLTK logo

[Library] r7363 - branches/branch-1.3/src

FLTK matrix user chat room
(using Element browser app)   FLTK gitter user chat room   GitHub FLTK Project   FLTK News RSS Feed  
  FLTK Apps      FLTK Library      Forums      Links     Login 
 All Forums  |  Back to fltk.commit  ]
 
Previous Message ]Next Message ]

[Library] r7363 - branches/branch-1.3/src fltk-dev Mar 30, 2010  
 
Author: manolo
Date: 2010-03-30 04:18:45 -0700 (Tue, 30 Mar 2010)
New Revision: 7363
Log:
fl_copy_offscreen_with_alpha: when non-display output, asks if alpha-blending is possible

Modified:
   branches/branch-1.3/src/Fl_Double_Window.cxx

Modified: branches/branch-1.3/src/Fl_Double_Window.cxx
===================================================================
--- branches/branch-1.3/src/Fl_Double_Window.cxx	2010-03-30 11:11:53 UTC (rev 7362)
+++ branches/branch-1.3/src/Fl_Double_Window.cxx	2010-03-30 11:18:45 UTC (rev 7363)
@@ -142,15 +142,23 @@
   DeleteDC(new_gc);
 }
 
+#if(WINVER < 0x0500)
+#define SHADEBLENDCAPS 120
+#define SB_PIXEL_ALPHA 0x02
+#endif
 void fl_copy_offscreen_with_alpha(int x,int y,int w,int h,HBITMAP bitmap,int srcx,int srcy) {
   HDC new_gc = CreateCompatibleDC(fl_gc);
   int save = SaveDC(new_gc);
   SelectObject(new_gc, bitmap);
   BOOL alpha_ok = 0;
   // first try to alpha blend
-  if (fl_can_do_alpha_blending())
+  int to_display = Fl_Device::current()->type() < 256; // true iff display output
+  if ( !to_display) { // ask if non-display device can alpha-blend pixel by pixel
+    alpha_ok = (GetDeviceCaps(fl_gc, SHADEBLENDCAPS) == SB_PIXEL_ALPHA);
+    }
+  if (alpha_ok || (to_display && fl_can_do_alpha_blending()))
     alpha_ok = fl_alpha_blend(fl_gc, x, y, w, h, new_gc, srcx, srcy, w, h, blendfunc);
-  // if that failed (it shouldn,t), still copy the bitmap over, but now alpha is 1
+  // if that failed (it shouldn't), still copy the bitmap over, but now alpha is 1
   if (!alpha_ok)
     BitBlt(fl_gc, x, y, w, h, new_gc, srcx, srcy, SRCCOPY);
   RestoreDC(new_gc, save);

Direct Link to Message ]
 
     
Previous Message ]Next Message ]
 
 

Comments are owned by the poster. All other content is copyright 1998-2024 by Bill Spitzak and others. This project is hosted by The FLTK Team. Please report site problems to 'erco@seriss.com'.