home *** CD-ROM | disk | FTP | other *** search
- This is dim-screen code. Needs checks added, such as viewport still existing
- at UnBlank time.
-
- #define MAX_COLORS 32
- UWORD origcolors[MAX_COLORS], dimcolors[MAX_COLORS];
- UWORD dimfactor = 5; /* 0..10 */
- static struct Screen *dimscr;
-
- /* blank display, by putting up a black screen */
- void
- BlankScreen()
- {
- struct ViewPort *vp;
- ULONG lock;
- UWORD i, r, g, b;
-
- lock = LockIBase(0);
- dimscr = IntuitionBase->FirstScreen;
- vp = &dimscr->ViewPort;
- UnlockIBase(lock);
-
- for (i = 0; i < MAX_COLORS; i++)
- {
- origcolors[i] = dimcolors[i] = GetRGB4(vp->ColorMap, i);
-
- r = dimfactor*(dimcolors[i] & 0x0f00);
- g = dimfactor*(dimcolors[i] & 0x00f0);
- b = dimfactor*(dimcolors[i] & 0x000f);
-
- r = (r/10) & 0x0f00;
- g = (g/10) & 0x00f0;
- b = (b/10) & 0x000f;
-
- dimcolors[i] = r | g | b;
- }
- LoadRGB4(vp, dimcolors, MAX_COLORS);
- blanked = TRUE;
- }
-
- /* unblank display, i.e. close our screen */
- void
- UnBlankScreen()
- {
- if (dimscr && FindScreen(dimscr))
- {
- LoadRGB4(&dimscr->ViewPort, origcolors, MAX_COLORS);
- dimscr = FALSE;
- blanked = FALSE;
- }
- }
-
-