On Mon, May 18, 2009 at 09:57:19AM -0700, John M McIntosh wrote:
I'm wondering if the BitBlt should be part of the main stream VM and integrated into VMMaker, versus being a separate over-riding plugin?
Begin forwarded message:
Thanks, Damien!
Note, on Mac, the VM "Squeak 4.1.1beta2U" does not contain the new BitBlt plugin and hence the fonts are rendered without subpixel antialiasing. To enable this, drop the attached file (this is from the prototype one-click-image that Marcus produced some time ago) in the Resources folder in the VM app.
John, could this be included by default in the VMs you ship?
Cheers, Adrian
I don't really know the background on this, but assuming that this is an incremental change to BitBltSimulation, and that the changes are MIT licensed, and also that they are in need of a home, then adding them to the VMMaker package would be the right thing to do.
Andreas should have veto rights, as I believe that he is the author of BitBltSimulation.
I did a quick smoke test on a 64-bit Linux. I get a working VM but also some compiler warnings associated with the new changes. I can't say if there are functional issues, but I note that warnings about cast from pointer to integer are usually associated with VM crashes on a 64-bit platform, so this might be a problem.
- Dave
Output from a compile on Linux 64 bit:
gcc -g -O2 -DLSB_FIRST=1 -DHAVE_CONFIG_H -DSQUEAK_BUILTIN_PLUGIN -I/home/lewis/squeak/VMM/build32 -I/home/lewis/squeak/VMM/platforms/unix/vm -I/home/lewis/squeak/VMM/platforms/Cross/vm -I/home/lewis/squeak/VMM/src/vm -c -o BitBltPlugin.o /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c: In function ‘copyLoop’: /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c:1556: warning: cast to pointer from integer of different size /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c: In function ‘copyLoopNoSource’: /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c:1728: warning: cast to pointer from integer of different size /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c: In function ‘copyLoopPixMap’: /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c:1840: warning: cast to pointer from integer of different size /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c: In function ‘loadSurfacePlugin’: /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c:3064: warning: assignment makes integer from pointer without a cast /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c:3065: warning: assignment makes integer from pointer without a cast /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c:3066: warning: assignment makes integer from pointer without a cast /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c: In function ‘lockSurfaces’: /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c:3123: warning: cast to pointer from integer of different size /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c:3159: warning: cast to pointer from integer of different size /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c: In function ‘mergewith’: /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c:3202: warning: cast to pointer from integer of different size /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c: In function ‘partitionedRgbComponentAlphadestnBitsnPartitions’: /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c:3595: warning: left shift count >= width of type /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c: In function ‘primitiveWarpBits’: /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c:4304: warning: cast to pointer from integer of different size /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c:4335: warning: cast to pointer from integer of different size /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c: In function ‘queryDestSurface’: /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c:4411: warning: cast to pointer from integer of different size /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c: In function ‘querySourceSurface’: /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c:4429: warning: cast to pointer from integer of different size /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c: In function ‘rgbComponentAlphawith’: /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c:5046: warning: left shift count >= width of type /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c: In function ‘unlockSurfaces’: /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c:5730: warning: cast to pointer from integer of different size /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c: In function ‘warpBits’: /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c:5788: warning: cast to pointer from integer of different size /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c:5819: warning: cast to pointer from integer of different size /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c: In function ‘warpLoop’: /home/lewis/squeak/VMM/src/vm/intplugins/BitBltPlugin/BitBltPlugin.c:5931: warning: cast to pointer from integer of different size