SourceForge.net Logo

BlitPixie

Page Contents:
>Requirements
>Usage & Warranty
>Download
>Documentation
>Bugs & Suggestions
>Software vs. Hardware
>Projects
>BlitPixie on SourceForge
>Credits

 

BlitPixie - fast cross-platform software blitters

BlitPixie is a collection of optimized software blitters, written in assembly language or normal ANSI C. The functions perform a lot of normal pixel moving operations, which means you don't have to write your own code to be able to get top speed. BlitPixie routines all work in 8/16/32-bit depth, for your convenience.

Requirements

Supported compilers:

  • CodeWarrior Pro
  • MPW
  • ProjectBuilder and Xcode

Might still work:

  • CodeWarrior (9 ... 11)
  • THINK C (6 ... 7)

BlitPixie is written in C, with optional inline 68k/PPC assembly in Metrowerks CodeWarrior format. It's also possible to use Apple MPW (Macintosh Programmers Workshop) or the Mac OS X tools, using auto-generated separate assembly files for use with the MPW/GNU assemblers (Asm/PPCAsm/as). These asm files are included in the main download. The 68k library, with inline assembly, can be compiled using the old THINK C environment too.

The blitters come in one or several of four versions:

  • Generic C version (ANSI C, unoptimized)
  • Motorola 680x0 assembly (68k asm, optimized)
  • PowerPC assembly (PPC asm, optimized)

The 68k versions requires a 68020 or better, the PPC version works with any PowerPC from 601 and up. Some blitters have been optimized for AltiVec (G4/G5).

Usage & Warranty

Conditions for use can be found in the LICENSE document, which also comes with the download.

BlitPixie uses the Open Source license known as the "libpng/zlib license". Full source code is included in the download.

Source Download

Download the source code and documentation by HTTP:

This includes all of the blitters, a list can be found in the documentation. There is source code in both C and assembler, and documentation in HTML format.

Current planning version

Current planning version is 1.5,
which will be released with SpriteWorld 3.1

There will be builds for other operating systems, and for other processors.

Current development version

Current development version is 1.4,
released with SpriteWorld 3.0.1 and in 3.0.2

There are now also assembly versions for Mac OS X's GNU "as" assembler.
There are also AltiVec-optimized paths for some blitters, like Rect/Mask

Current stable version

Current stable version is 1.3 (used in SW 3.0),
and 1.0 which was found in SpriteWorld 2.3.1

The major new features are translucency and alpha blending.
There is also a new screen blitter for old computers, plus a few bug fixes.

Online Documentation

The documentation is provided with the above download, but a previous version can also be viewed online if you wish to do so.

Documentation is not yet finished, and will be added to during development. There will also be more demonstration programs and tutorials.

Platforms for testing programs are currently Mac OS 9 (Classic) and Mac OS X (Carbon). The library, however, is completely portable (ANSI C).

Bug Reports & Feature Suggestions

This is a work in progress, and your help is appreciated.

It's helpful if you include as much information about your system as possible (MacsBug StdLog preferred), or that your suggestions for improvement are specific and constructive.

Bug/Feature Tracker

Software vs. Hardware

As you might have gathered, BlitPixie is a collection of software routines for pixel blitting. This involves both simple area copies, and fairly complex effects. On modern graphics hardware, this is better done by the video card than the CPU.
So BlitPixie is nowadays more of a fall-back for supporting old computers, as well as an interesting (and possibly even useful) example of highly optimized code. It will *not ever* use any graphics hardware, besides from the frame buffer.

To use the graphics hardware one utilizes a low-level 3D graphics API to draw textured triangles. Note that the word "3D" has nothing to do with the actual rendering, as screens are inherently two-dimensional anyway.
If you are interested in such modern "blitters", you should check out the Hardwarie sister project!

SpriteWorld 3.0 shows how to use both BlitPixie software and API hardware acceleration side-by-side, depending on what is supported on the current machine.

Projects using BlitPixie

There is currently only one project using BlitPixie:

  • SpriteWorld
    Macintosh programmer's sprite animation library, with tiling and scrolling.

BlitPixie on SourceForge

BlitPixie has a project page on SourceForge.

The project name is: blitpixie
You can view the CVS source code repository online.

Credits and Thanks

Anders F Björklund did the standalone BlitPixie library, and wrote most of the routines including the assembler. BlitPixie as it stands today represents over five years of development.

BlitPixie was originally created for 68k macs by Tony Myles, who also created SpriteWorld. Christofer Åkersten did the 68k AllBit blitters. Brian Roddy started the old PPC blitters, and did some nifty effects like rotating. Karl Bunker and Vern Jensen used BlitPixie extensively with SpriteWorld. Tim Carroll, Cary Farrier and George Warner contributed to the old BlitPixie.

Feedback?

Written by Anders F Björklund <afb@users.sourceforge.net>
© 1995-2005 afb. All rights reserved. Last modified: 16 May 2005