exlights man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

exlights(3)			Allegro manual			   exlights(3)

NAME
       exlights	 -  One	 way to do colored lighting effects in a hicolor video
       mode. Allegro game programming library.

SYNOPSIS
       #include <allegro.h>

       Example exlights

DESCRIPTION
       This program shows one way to implement colored lighting effects	 in  a
       hicolor video mode. Warning: it is not for the faint of heart!  This is
       by no means the simplest	 or  easiest  to  understand  method,  I  just
       thought it was a cool concept that would be worth demonstrating.

       The  basic  approach  is to select a 15 or 16 bit screen mode, but then
       draw onto 24 bit memory bitmaps. Since we only need the bottom  5  bits
       of each 8 bit color in order to store 15 bit data within a 24 bit loca‐
       tion, we can fit a light level into the top 3 bits.  The tricky bit  is
       that  these  aren't actually 24 bit images at all: they are implemented
       as 8 bit memory bitmaps, and we just store the red level in one	pixel,
       green  in  the  next,  and  blue in the next, making the total image be
       three times wider than we really wanted.	 This allows us to use all the
       normal  256  color  graphics  routines for drawing onto our memory sur‐
       faces, most importantly the lookup table	 translucency,	which  can  be
       used  to combine the low 5 bits of color and the top 3 bits of light in
       a single drawing operation.  Some trickery is needed  to	 load  24  bit
       data  into this fake 8 bit format, and of course it needs a custom rou‐
       tine to convert the resulting image while  copying  it  across  to  the
       hardware screen.

       This  program  chugs  slightly  on my p133, but not significantly worse
       than any double buffering in what amounts to a 1920x640, 256 color res‐
       olution.	 The light blending doesn't seem to slow it down too badly, so
       I think this technique would be quite usable on faster machines and  in
       lower  resolution  hicolor  modes. The biggest problem is that although
       you keep the full 15 bit color resolution,  you	only  get  3  bits  of
       light, ie. 8 light levels.  You can do some nice colored light patches,
       but smooth gradients aren't going to work too well :-)

SEE ALSO
       BITMAP(3),  COLOR_MAP(3),  END_OF_MAIN(3),   PALETTE(3),	  SCREEN_H(3),
       SCREEN_W(3),   allegro_error(3),	 allegro_init(3),  allegro_message(3),
       bitmap_color_depth(3), blit(3), bmp_unwrite_line(3), bmp_write_line(3),
       circlefill(3),  clear_bitmap(3),	 clear_keybuf(3),  color_map(3),  cre‐
       ate_bitmap_ex(3), destroy_bitmap(3), draw_trans_sprite(3), fixatan2(3),
       fixsqrt(3),   fixtoi(3),	  getb_depth(3),  getg_depth(3),  getpixel(3),
       getr_depth(3),  hsv_to_rgb(3),  install_keyboard(3),  install_mouse(3),
       install_timer(3),  itofix(3), key(3), keypressed(3), line(3), load_bit‐
       map(3),	  makecol(3),	 mouse_x(3),	mouse_y(3),	poll_mouse(3),
       replace_filename(3),  retrace_count(3),	screen(3),  select_palette(3),
       set_color_conversion(3), set_color_depth(3), set_gfx_mode(3)

Allegro				 version 4.4.2			   exlights(3)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net