Using the fullColorPermit property

Date: Thu Jul  2 14:05:53 MST 1998
From: David Cain
Subject: Using the fullColorPermit property
The fullColorPermit property, available-but-undocumented in Director 5, and available-but-poorly-documented in Director 6 onward, helps you get the speed of 256-color display when the user has the display card set to a colorDepth greater than 8-bits.

This property is only important in 32-bit (Win'95/NT) projectors on Windows. It has no effect on Mac. I haven't tried it out in the various Shockwave environments, nor tested in 16-bit Windows projectors (where it shouldn't matter anyway).

Background:

Director 4 projectors on Windows could only composite graphics in 256 colors. Versions 5 and above of Director have the ability to composite graphics in whatever colorDepth the display is using (we'll call this an "arbitrary colorDepth", because the colorDepth depends upon the display's settings).

If you wish to compsite in arbitrary colorDepths you must create a 32-bit (Win'95/NT) projector. 16-bit (Win 3.1) projectors still composite in 256 colors only.

HOWEVER, there is a downside to compositing in arbitrary colorDepths: If the display is set to a colorDepth greater than 256 colors, compositing will take longer than compositing at 256 colors.

This is because your 256-color artwork is being composited as though it were 16- or 32- bit art (2 or 4 times the data to shove around, respectively, compared to 8-bit), and for no good reason if your art is 256 colors anyway. The delay becomes quite apparent in animations with large sprites or many sprites in motion.

the fullColorPermit property allows you to specify that Director do its compositing in 256 colors for maximum animation speed, regardless of the current colorDepth of the display.

Using the fullColorPermit:

There is only one place where you can use the fullColorPermit and make it work, and not have it crash your system, if my tests are any guide. That place is the LINGO.INI file for your projector. Use of the fullColorPermit property elsewhere will be at best ineffective, at worst cause you to crash.

To place the fullColorPermit command in your LINGO.INI file, first locate the file (you can copy the LINGO.INI file installed with the Director authoring environment if you need a starting point), open it, and add the line:

-- add this line to LINGO.INI for your Projector:
set the fullColorPermit to FALSE

If this is the first time you've used a LINGO.INI file, note that it goes in the same directory as your projector.

You can use the above line in the LINGO.INI file for the Director authoring environment to simulate playback speed on a projector, provided that you realize that the authoring environment will crash when you exit (this use of the fullColorPermit does NOT crash Projectors).

I have added lines to my LINGO.INI file for the authoring environment which turn off the fullColorPermit if you hold down the ALT key while starting Director. Here they are:

-- add these lines to LINGO.INI for Director.exe:
if the optionDown then set the fullColorPermit to FALSE
if the fullColorPermit then
  put "the fullColorPermit = TRUE"
else
  put "the fullColorPermit = FALSE - expect a crash on exit..."
end if

Sidelights:

Obviously if you want to composite in 256 colors, you should dither your artwork to 256 colors (with DeBabelIzer, Photoshop or by using Director's 'Transform Bitmap'); 16- or 32-bit artwork composited in 256 colors will look exactly like crap.

If you are using QuickTime 3 Xtra and you have shut off directToStage, AND if the fullColorPermit is set to FALSE, be aware that QuickTime will now composite in 256 colors, along with the rest of your Director graphics. You'll have to determine for yourself if the look and the performance of this approach work for you. Personally, I recommend leaving QuickTime set to directToStage - that way it will continue to appear in the arbitrary colorDepth of the display, and it will play smoothest.

I haven't experimented with the fullColorPermit and custom palettes yet - it strikes me that this MIGHT be a way to get custom palettes to work right on high-color displays, as well as to get QuickDraw shapes to behave rationally, color-wise. OTOH, maybe not.

As always, YMMV...TETOTOAYTP! Good Luck!