Worklog for _33
Grid Terminal
Return to Worklogs
| ||
Here you will find the latest redistributable sources package: http://hosted.filefront.com/JackMoore/ email me for assistance on implementing the system for your projects. |
| ||
Grid Terminal has been one of my main projects so far in Blitz3D. I
have spend (from the top of my head), from mid March 07 to June 07 on a
daily basis, then couple days here and there since then, and a little
more time lately (july 08). It's source code is (by my standards)
pretty big ;currently a little more than 10K lines. The main goals of this Terminal system: - Provide means for creating a robust console on a 3D graphics layer - Multi-page, multi-layered, extensive character mapping device, with all the bells and whistles possible - Most common relatively useful ANSI and VT commands known (compatible with DOS ANSi ART. - Extremely fast interface, capable of shuffling thousands of characters and many fonts at various texel sizes, completely transparent to game coding. - Means for handling the main 3D graphics features under a user configuration file - Capacity for logging game engine events, and user driven events - Supports various extended effects on a per character basis; rotation, zoom, shadow, background, underline, strikeout, color shades, smooth scrolling, alpha channel, ... - Complete control over the keyboard (with key repetition handling) - Complete handling of Pages using the mouse (to create a Quake like text interface) - Easy control for flipping in and out of GT using CTRL-W key combination. - Extensive internal debugging facility. From the source: ; version MMDDYYYY description ; ------- -------- ----------------------------------------------------------------------------------------- ; 1.2.10 07302008 -preliminary function key programming; key_function_macro$ ; -preliminary mouse drawing capabilities (TRMOD_MOUSE_DRAW_ON) ; -new commands: GTC_load_zone and GTC_save_zone ; 1.2.05 07182008 -improved keyboard control code handling ; -debugger: added keyboard layout display ; 1.2.00 07162008 -fps counter position and size now resolution independent ; -standards overhaul in regards to the parser commands and control codes ; -slightly enhanced the debugger + menu ; -new commands implemented; save/restore typing colors ; 1.1.06 07142008 -added flood fill to GTC_draw ; 1.1.05 07132008 -new command GTC_draw for drawing shapes on pages (lines, boxes, box filled, elipse, disc) ; 1.1.03 07132008 -improved system logging and system file management ; -new command GTC_log for user logging to a file ; -fixed a bug when interpreting commands with a string where the last argument was skipped ; -found bug in load/unload, doesn't seem to close transfer properly ; 1.1.00 07072008 -added screen resolution change, properly tested ; -implemented Fast Extend library (FastExt.bb) ; -added debug information for 3d capabilities, list of terminal messages ; 1.0.13 07052008 -added function to write big text as string input ; 1.0.12 07012008 -added keyboard layout table + fill routine ; 1.0.11 06262008 -added frames per second programmable display ; 1.0.10 06252008 -bug fixing, cleanup ; 1.0.09 06172008 -implemented preliminary sound core (only for beeps) ; -added preliminary system logging ; 1.0.08 05152008 -code cleanup, new functions for managing floats ; 1.0.07 02282008 -preliminary character wrap code + more fonts (X_wrap, Y_wrap) ; 1.0.06 11052007 -preliminary underline + strikeout conversion to lines scheme (TRM_total_page_layers + 3) ; 1.0.05 11022007 -preliminary encryption scheme based on a transcoding table ; -preliminary dump system implemented based on a load/unload scheme ; 1.0.03 10272007 -various bug fixes (key repeat + terminal init + render page) and code cleanup ; -added resolution change capabilities ; -added new palette features (color picker + VisiBone 216 color table) ; 1.0.02 10252007 -added character shadow + virtual resolution ; 1.0.00 09112007 -initial version ; ; general usage: term_receive_byte() - receive data from the terminal ; term_send_byte() - send data to the terminal ; ; The data transmitted may be ascii codes and/or VT escape code sequences. ; ; special functions: term_create_3D_letter() - creates a latter as a 3D entity ; term_create_3D_text() - creates a string of text as a 3D entity ; ; ; Notes & future updates: ; -Currently, only 32bit color graphics mode is supported, as well as 32bit color textures. ; -There is a bug when setting PGMOD_SPECIAL_FEATURES_OFF where no text appears on the page, but only the bkgnd tiles ; -Page shadow system: ; .Fix all shadow alpha And shadow_x And shadow_y displacement stuff ; .Make sure the shadows don't use any colors other dans black ; .Test shadows ; -Page display system: ; .Fix the page split management so it is using the draw list to choose which pages it splits and how ; .Fix the way pages get shown or not with the management of the page split, so it is automatic and not hard coded. ; .Implement draw list in "update_terminal" ; .Page priority handling is very incomplete ; .Capability of defining zones that are protected from scrolling ; .Test pages that are not fullscreen ; .Remove page splitting functions and port them in Grid Console (or find proper prev./next page scheme) ; -The modifiers system needs to be looked at some day ; -Create fonts with character contour ; -Create a clipboard system that permits copy/cut/paste ; -Complete the "user selectable" page principle for management in all GTC commands, ie. "Page Forward" -> "page backward" considered as user selections ; -Implement a GTC to move a page in the draw list "GTC_set_page_draw" (before_page, after_page, top, bottom, force) ; -INTERNAL FONT: Implemetation of transparent character contour ; BUG: The system is logging GTC errors where there are no errors! If anyone wishes to implement Grid Terminal in their game project, feel free to e-mail me. Older related thead: http://www.blitzbasic.com/logs/userlog.php?user=10319&log=1460 |