FLTK logo

[Library] r4777 - trunk/src/x11

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

[Library] r4777 - trunk/src/x11 fltk-dev Jan 26, 2006  
 
Author: spitzak
Date: 2006-01-27 01:47:27 -0500 (Fri, 27 Jan 2006)
New Revision: 4777

Modified:
   trunk/src/x11/drawimage.cxx
Log:
X drawimage alpha code relied on gcc dynamic arrays, changed to use
a malloc'd static array.


Modified: trunk/src/x11/drawimage.cxx
===================================================================
--- trunk/src/x11/drawimage.cxx	2006-01-27 06:46:36 UTC (rev 4776)
+++ trunk/src/x11/drawimage.cxx	2006-01-27 06:47:27 UTC (rev 4777)
@@ -462,9 +462,21 @@
 // true for any transparency other than 255 and 0:
 static bool mixbg;
 
+static U32* getbuffer(int w) {
+  static U32* b = 0;
+  static int len = 0;
+  if (w > len) {
+    delete[] b;
+    len = 2*len;
+    if (len < w) len = w;
+    b = new U32[len];
+  }
+  return b;
+}
+
 static void mask_converter(const uchar* from, uchar* to, int w)
 {
-  U32 buffer[w];
+  U32* buffer = getbuffer(w);
   U32* bp = buffer;
   uchar* ap = alphapointer;
   uchar aaccum = 0;
@@ -497,7 +509,7 @@
 }
 
 static void rgba_converter(const uchar* from, uchar* to, int w) {
-  U32 buffer[w];
+  U32* buffer = getbuffer(w);
   U32* bp = buffer;
   uchar* ap = alphapointer;
   uchar aaccum = 0;
@@ -531,7 +543,7 @@
 }
 
 static void argb32_converter(const uchar* from, uchar* to, int w) {
-  U32 buffer[w];
+  U32* buffer = getbuffer(w);
   U32* bp = buffer;
   const U32* f = (const U32*)from;
   uchar* ap = alphapointer;

Direct Link to Message ]
 
     
Previous Message ]Next Message ]
 
 

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