What is Birdie?

Birdie patches the system so that patterns can be used in the window borders instead of the normal solid colors. Click on the picture to see a screenshot of Birdie in action. It's written by Trond Werner Hansen. The current version is 1.5.


Here you can download Birdie15.lha.


version 1.5 (12.jan.98)
- PUBSCREENS option for multiple pubscreen support. Be sure to
  have screennotify.library installed. Note that when a screen
  opens, the patterns must be loaded and remapped for that screen, which
  can cause unpleasant delays. You could keep your patterns in RAM:
  to save some time and annoying hd access. This "problem" does
  NOT happen to those with gfxcards that use hicolor and truecolor
  screens. Birdie will in this case share bitmaps among the screens
  if the screens have same pixelformat, ie. either 15, 16, 24 or 32bit.
- EXCLUDE option to define what pubscreens should not be affected.
  example EXCLUDE=Workbench (workbench not affected) or
  EXCLUDE=(Workbench|MyPubScreen) (workbench nor mypubscreen affected)
- Note on startup usage: run it after IPrefs somewhere like this:
  c:run <>NIL: c:birdie <options>

version 1.5 alpha (xmas edition) (24.des.98)
- Special release.. some stuff from real 1.5 version above.
- Xmas card gag worked, but didn't have time to write any
  real text for it. To see it, launch Birdie so that card.jpg
  (included in archive) is found (same dir).

version 1.4 (2.des.97)
- Changed a certain aspect of a patch which I think caused problems
  with DiskSalv, Arq and other specific stuff. Please retest
  if you had problems before.
- Added FLOODMASKMWB to make the NOICONBORDER patch more complete.
  If enabled, icons with 16 colors or less (which usually is mwb
  style or old standard amiga style) will have their masks generated
  by flooding pen0 around the border. If you used NOICONBORDER
  before you would notice that the background color of the icon
  always becomes transparent. This looks good for newicons, but
  for mwb and other old style icons it doesn't look good because
  they rely on the background color as a part of their design.
  However there is a solution for this which gives nice results.
  Instead of making pen 0 transparent everywhere, only those pen 0
  pixels which are reachable from the border becomes transparent.
  I advice everyone which are using Workbench (and not some 
  replacement like Scalos or DOpus) to try out NOICONBORDER and 
  FLOODMASKMWB (specify both). Use this feature *instead* of 
  all other noborder hacks like the one in newicons (disable it in
  newicons prefs).

  NOTE: The flood mask routine uses a handmade Flood() routine in
  100% ASM so you don't suffer from slow loading.

- Now caches already masked icons too and draw them correctly.
- NOICONBORDER should now work on interleaved AGA screens which
  at last makes it usable for AGA users.
- Added some code so that all windowframes are redrawn when
  Birdie starts/exits.
- All bitmap cache is now flushed if you quit Birdie.
- Now supports screennotify.library so you can change screenmode
  while Birdie is running. This will cause Birdie to reload pattern
  ofcourse, which might take a second or two.

version 1.3 (8.oct.97)
- Birdie no longer needs CGX/Superlayers.
- ACTIVECOLOR now works with all hi/truecolor pixelformats.

version 1.2 (6.oct.97)
- Rewrote bitmap stuff.
- Baked a chococake (not included in archive).

version 1.1
- Added proper DrawInfo usage.
- Added NOBITMAPS switch.
- Fixed problems with dual-layered GZZ windows.

version 1.0
First public release. 95% rewrite.

version -13 (jan/feb 97)
internal weird-thing (tm).


Birdie mini FAQ.

What is Birdie?
Birdie is a hack that gives you datatypes loaded patterns in the window
border of windows open on the default public screen (WB). Current version
is V1.5.

Where can I get it?

How does it work?
It redirects border rendering calls to own fast pattern fill routines.
If the screen is hicolor, also shine and shadow pens (white and black)
will be replaced with a shine and shadow versions of the pattern. This
light effect is currently precalc'ed, so each pattern is stored
in 3 versions, eating up memory if big patterns are used. In 8bit
only the normal fill color is changed. In 1.2 you can control how
it works somewhat more.

Is birdie safe to use? Will it crash?
Maybe. You just have to try it. There ARE problems, but many people
including myself don't have any of them. This makes it difficult for
me to debug it, but I'm doing my best to try to figure out what is

It doesn't work here, is there anything I can do?
Maybe. First try disabling ALL hacks and patches. Try to break
your startup right after IPrefs is loaded. Then start birdie, and see
if it works. If it does, you could try to nail down what other thing is
causing Birdie to crash by reenabling other hacks. If you discover
something neat, please mail me. (see address below)

Are there any known problems with other hacks?
I haven't actually verified all of this, but people have mentioned
the following:
- disable PatchControl. At least for testing Birdie once.
- check if you're using a weird adddatetypes replacement.
(I doubt this means anything, but you never know).
- disable Arq if you use it and try.
- try running StackAttack and give all tasks some more stack.

again, if you somehow can verify anything, please mail me.

Birdie disables the NoBorder hack in NewIcons. What's up?
Patch conflict, caused by NI being more dirty than it needs
to. I'm gonna do my own NoBorder patch within Birdie, so that
people don't have to run patch on patch on patch... It will
be faster too, I hope :)

NOTE: in 1.2 birdie has a new NOICONBORDER option which you
should use instead of the NI options.

Does Birdie make my system slower?
Yes. But only by a tiny amount. You will probably never see it
yourself, but if you run WSpeed or similiar progs, you can
discover a tiny slowdown, at least in the Draw Hor/Vert 
test I think. 

DON'T be scared by this. In fact, for Gfxcard owners,
Birdie can actually make your border draw
faster!!! How that is possible? You see, the system gadgets
are normally in planar mode, and even when running sysihack
they are planar. Technically, this is due to that
when BOOPSI images are created, they get a DrawInfo
structure to peek at for rendering info. But this 
structure was designed for planar AOS displays
and does not contain a bitmap pointer or any other source of
info so that the BOOPSI class can tell what custom CGX
pixelformat the screen is. Therefore, such images
ends up being planar. This means that everytime intuition
redraws a border, all the system gadgets must be converted
from, say, 8bit planar to 16bit hicolor, which is VERY
SLOW. With birdie, a pattern filled copy of the image
is quickly drawn because it is in hicolor already!

Any last words?
Well, Birdie was developed with the aid of chocolate. Author
is Trond Werner Hansen, 
It was made just for fun and for all cgx users to enjoy.

Birdie software and documentation are © 1997-1998 Trond Werner Hansen, Triumph Software. All rights reserved.