Re: A few questions about NEIL
- Posted by Pete Eberlein <xseal at HARBORSIDE.COM> May 20, 1999
- 498 views
Tor writes: > I just want everybody to know that I have just started a > brand new world wide organization called "THE PEOPLE'S > MOVEMENT FOR BETTER NEIL DOCUMENTATIONS" > (TPMFBND). Terrific! (This means less work for me, right?> Our long term goal is among other things to get some > answers to questions like these: > 1) What is a blit ? blit is a BLock Image Transfer. blt is also common for plain memory BLock Transfers, but I often confuse it with a certain kind of sandwich.
> 2) Exactly what does these different blit 'kinds': "Blit, Clear_blit, > Mixer_blit, Screen_blit, and Wait_retrace". Blit does an opaque image transfer, meaning the image is transfered byte-for-byte. Clear_blit does almost the same, except it doesn't copy bytes that are zero. Mixer_blit combines the source and destination bytes, using a lookup table you provide. This mixing table must be 65536 bytes long, because there are 256*256 ways to combine two bytes. The calculation is as follows: dest_byte = peek(table + source_byte + dest_byte * 256) for every byte in the image. Screen_blit is is the same as Blit, only it is designed for blitting to video memory. Other blits are not guaranteed to work when used directly to the screen (in banked vesa modes or modex). Wait_retrace can reduce flicker on the screen or it might just slow your program down. Use your own judgement based on your program. 3) What are "safe handles"? Safe handles are actually command handles (and should probably be renamed as such) which are actually atoms. When with type_check is used, the safe_handle type is used to ensure that a valid command_handle is being passed to a function. Since safe_handle has to find() the handle in the sequence of valid command handles, it is highly recommended to turn off type_checking for maximum performance. > 4) What are "Run Length Encoded" sprites? Run length encoded sprites are used like clear_blit, except that each row of opaque pixels is stored and then drawn without having to check for zero bytes. This can mean faster sprites that have lots of see-though space in them. Complex sprites with lots of little holes will probably not benefit. Rle-sprites can also be pixel-perfectly tested against each other for overlap, making collision-detection really easy. > 5) What is a "sub screen"? How is a sub screen different from > other virtual screens? A sub screen is a virtual screen that shares the memory on another virtual screen. A sub screen can be used to set a clipping region on a virtual screen, or it can make a single image easily accessable from a larger bitmap with many images. You create a sub_screen around that single image and use it as if it were its own virtual screen. > 6) What are mixing tables for? Mixing tables are for use with mixer_blit. Used correctly, you can shade images using light maps, or make images semi-transparent, or use just about any function on source and destination pixels. > 7) (Not really Neil related, but still:) What is "vesa" really? It's Video Electronics Standards Association. See http://www.vesa.org. The joke involving VESA/VBE usually goes: "the nice thing about standards is that there are so many to choose from" > How do I know whether I need to use "force vesa" or not?
Only when vesa_mode fails on a mode your are absolutely positive your video hardware can handle. Reasons for failing might be inadequate amount of video ram, or the monitor connected cannot handle the neccessary refresh rate. In short, you should never have to use force vesa. > Best Regards, Good luck with the project and keep them questions coming! > Tor Gausen, > Supreme Secretary General and President, > TPMFBND _______ ______ _______ ______ [ _ \[ _ ][ _ _ ][ _ ] [/| [_] |[/| [_\][/ | | \][/| [_\] | ___/ | _] | | | _] [\| [/] [\| [_/] [\| |/] [\| [_/] [_____] [______] [_____] [______] Supreme Master of Everything in General xseal at harborside.com ICQ:13466657 http://www.harborside.com/home/x/xseal/euphoria/