library.htm 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd">
  2. <html><head>
  3. <title>library</title>
  4. </head><body>
  5. <p>[<a href="mxdoc.htm">mainpage</a>]
  6. [<a href="tags.htm">tags</a>]<br>
  7. <h1>tag: library</h1><ul><li>
  8. <p><b>Data structures and utility functions for C</b><p>
  9. This library contains various generic data structures and utility functions.
  10. DEDS is used by <a href="degfx.htm">DEGFX</a> portable graphics library and
  11. <a href="depui.htm">DEPUI</a> portable gui library.
  12. (<a href="../include/deds/deds.h">../include/deds/deds.h</a>)<br>(library <a href="deds.htm">deds</a> : module <a href="deds_deds.htm">deds</a>)
  13. <p></li>
  14. <li>
  15. <p><b>A GPL portable graphics library</b><p>
  16. <A HREF="degfx.jpg"><IMG SRC="degfxth.jpg"></A>
  17. <p>
  18. DEGFX is a small extremely portable graphics library. It has only 6 (!) platform dependant functions. It uses a clean
  19. object oriented C API with reference counting and delete locking for (almost) all the objects. The library supports transparency for bitmaps and
  20. all drawing functions and antialiased fonts. The user has very fast pixel level access to bitmaps using
  21. iterators. DEGFX uses the <a href="deds.htm">DEDS</a> library for data structures.
  22. Compared to other portable graphics libraries DEGFX is:
  23. <UL>
  24. <LI>Smaller and simpler than Allegro or SDL</LI>
  25. <LI>Fast alpha-blending (transparency, anti-aliasing) built into all drawing functions</LI>
  26. <LI>Color conversions are completely hidden to the user</LI>
  27. <LI>More graphic functions (line, blit) than SDL</LI>
  28. <LI>More portable than SDL (doesn't need threads)</LI>
  29. <LI>Guaranteed flicker-free graphics without double buffering the entire display</LI>
  30. <LI>Library source is completly self-contained - You dont have to link to external libraries, not even to DEGFX!</LI>
  31. <LI>Easy to determine which modules (drivers, fonts etc...) are included in the executable</LI>
  32. <li>Portable gui available (<a href="depui.htm">DEPUI</a>)</li>
  33. </UL>
  34. DEGFX uses a different approach than most graphics libraries.
  35. <UL>
  36. <LI>DEGFX works works internally only a single pixel format chosen at compile time. This can be argb8888, rgb555 or rgb332
  37. color encodings. This makes the library internally very simple. Bitmap are only converted to the screen color depth when
  38. actually writing to the screen. This has the advantage
  39. that the library internals are very simple and allows transparency and alpha-blending to be used even for monochrome,
  40. 4-bit and 8-bit displays. Admittedly a program that makes heavy use of antialiasing and transparency might not look very
  41. good on a 4-bit display.</LI>
  42. <LI>DEGFX uses a buffer system to guarantee no screen flicker when drawing but uses much less memory than the usual method
  43. of double buffering the entire screen. Only a portion of the screen is buffered at a time and the users
  44. redraw callback function is called multiple times with different clipping settings. Because a clipped graphics drawing
  45. can be made very fast, calling the update function many times is hardly slower than full screen double buffering but uses
  46. much less memory. In fact the smaller buffer can often be faster than full screen double buffering because of better
  47. cache behavior. In any case you can change how much memory you want to use for the screen buffer (even during runtime) so
  48. you can do do full double buffering if you want to, or use minimal memory and (maybe) have a slightly slower screen update speed.
  49. </LI>
  50. <LI>DEGFX does not require linking to a library, you include the DEGFX C source code directly into you own programs.
  51. So installing or removing DEGFX from your system is as simple as moving or deleting a directory from your
  52. compilers include path. Using this method can cause long compile times since you are essentially compiling the library
  53. every time you compile your program. But if you include DEGFX in a separate object file you can solve this problem.</LI>
  54. <LI>DEGFX uses #define flags to determine which modules to use. This guarantees that only the portions of DEGFX that you
  55. actually use get included in your executable.</LI>
  56. </UL>
  57. Some Features:
  58. <UL>
  59. <LI>Object oriented C API with attention to maximum type safety. </LI>
  60. <LI>Fast, unified transparency support</LI>
  61. <UL>
  62. <LI>Plot a solid blue pixel: mx_pixel(x, y, MXRGB(0,0,255));</LI>
  63. <LI>Same pixel with 50% transparency: mx_pixel(x, y, MXRGBT(0,0,255,128));</LI>
  64. <LI>RBG and RGBT colors are compile time macro for fast execution</LI>
  65. <LI>Transparency works for ALL displays even 8 bit and 4 bit graphic modes</LI>
  66. </UL>
  67. <LI>Unified reference counting for many objects</LI>
  68. <LI>Copying to screen is localized by buffer system so banked modes work almost as fast as linear modes</LI>
  69. <LI>Bitmap support:</LI>
  70. <UL>
  71. <LI>Pixel RGB colors are compile time constants</LI>
  72. <LI>Color conversions are completely hidden from user</LI>
  73. <LI>Unified transparency support</LI>
  74. <LI>Drawing functions: pixel, line, blit, etc...</LI>
  75. <LI>Drawing functions are simple and fast because only 32 bit ARGB is needed</LI>
  76. <LI>Very fast pixel-level access using iterators</LI>
  77. <LI>Functions to load bitmaps from files (PCX, TGA, GIF)</LI>
  78. <LI>Named colors (derived from X11 rgb.txt)</LI>
  79. <LI>Reference counting and delete locking</LI>
  80. </UL>
  81. <LI>Font support:</LI><UL>
  82. <LI>Support for bitmapped fonts and antialiased fonts</LI>
  83. <LI>UTF-8 encoding</LI>
  84. <LI>Loadable from bitmap (similar format as Allegro)</LI>
  85. <LI>Allegro's TTF2PCX utility can be used to make loadable TTF fonts</LI>
  86. <LI>Reference counting and delete locking</LI>
  87. </UL>
  88. <LI>Simple mouse and keyboard support</LI>
  89. <LI>DEGFX source compiles inside your own source code
  90. <UL>
  91. <LI>Installing/removing the library means simply copying/deleting a directory in your compilers include path</LI>
  92. <LI>No need to use library tools</LI>
  93. </UL></LI>
  94. <LI>Currently available drivers:</LI>
  95. <UL>
  96. <LI>DOS - DJGPP VESA 2.0(linear) and VESA 1.2(banked)</LI>
  97. <LI>DOS - DJGPP standard VGA (640x480x4)</LI>
  98. <LI>DOS - DJGPP VGA mode 13h (320x200x8)</LI>
  99. <li>DOS - Borland Turbo C++ 3.1 using BGI graphics</li>
  100. <LI>Linux - Svgalib *** has problems on some displays because <code>vga_setrgbcolor()</code>
  101. does not always function properly. ***</LI>
  102. <LI>Win32 - MINGW32 using GDI</LI>
  103. <LI>Win32 - Borlands free compiler BCC32 using GDI</LI>
  104. <LI>Win32 - Open Watcom target Win32 (GDI)</LI>
  105. <LI>Sinclair QL - QDOS *** in development ***</LI>
  106. </UL>
  107. <LI>Low memory requirements when using 'partial' double buffer</LI>
  108. <LI>Buffering mode can be changed on the fly</LI>
  109. <LI>Extremely portable: only 6 (!) platform dependant functions</LI>
  110. <UL>
  111. <LI>start, stop, poll, dirty, keypress, mouse info</LI>
  112. </UL>
  113. <LI>Runs on almost any hardware, even my 40 MHz 386 test machine</LI>
  114. <LI>Compiles with no changes on MSB first or LSB first hardware</LI>
  115. <LI>Open source and GPL licence</LI>
  116. </UL>
  117. (<a href="../include/degfx/degfx.h">../include/degfx/degfx.h</a>)<br>(library <a href="degfx.htm">degfx</a> : module <a href="degfx_degfx.htm">degfx</a>)
  118. <p></li>
  119. <li>
  120. <p><b>A GPL portable gui library</b><p>
  121. <A HREF="depui.jpg"><IMG SRC="depuith.jpg"></A>
  122. <A HREF="depui1.jpg"><IMG SRC="depui1th.jpg"></A>
  123. <A HREF="depui2.jpg"><IMG SRC="depui2th.jpg"></A>
  124. <p>
  125. Take a look at the [<a href="history.txt">changelog</a>]
  126. [Page at <a href="http://freshmeat.net/projects/depui/">Freshmeat</a>] <br>
  127. Download [<a href="../depui30/depui30.zip">DEPUI 3.0 (stable)</a>]
  128. [<a href="depui33.zip">DEPUI 3.3 (Work-in-progress)</a>]
  129. <p>
  130. DEPUI is a small extremely portable user interface library. It uses an object oriented C API with reference counting for
  131. many of the objects. The majority of DEPUI souce code is independant of the supporting graphics library, all
  132. platform dependent functions are in a single file. DEPUI uses the
  133. <a href="deds.htm">DEDS</a> library for data structures and the
  134. <a href="detk.htm">DETK</a> library for assorted gui functions. For drawing on the screen
  135. DEPUI can use several different libraries:
  136. <UL>
  137. <LI><a href="degfx.htm">DEGFX</a> (tested on djgpp, mingw, Borland free compiler, Open Watcom, linux svgalib)</LI>
  138. <LI><a href="http://alleg.sourceforge.net/">Allegro</a> (tested on DOS)</LI>
  139. <LI><a href="http://mgrx.fgrim.com/">MGRX</a> (tested on djgpp, mingw, x11 and linux framebuffer)</LI>
  140. <LI>Borland Turbo C++ 3.1 DOS compiler using BGI graphics</LI>
  141. </UL>
  142. <h2>Features:</h2>
  143. <UL>
  144. <LI>Clean object oriented C API</LI>
  145. <LI>Memory efficient and fast</LI>
  146. <LI>Extensive documentation using <a href="mxdoc.htm">MXDOC 2.0</a>,
  147. <a href="doxygen/index.htm">Doxygen</a> and <a href="global/HTML/index.html">GNU GLobal</a></li>
  148. <LI>Themes and GFX mode changable at runtime</LI>
  149. <LI>Widgets:
  150. <UL>
  151. <LI>Text objects</LI>
  152. <LI>Editable text objects</LI>
  153. <LI>Buttons</LI>
  154. <LI>Horizontal and vertical sliders</LI>
  155. <LI>Scrollable area</LI>
  156. <LI>Lists with scrollbars if necessary</LI>
  157. <LI>Windows and window borders</LI>
  158. <LI>Child windows and modal windows</LI>
  159. <LI>Graphic mode/theme window</LI>
  160. <LI>File selector window</LI>
  161. <LI>Font selector window and run-time loadable fonts (depending on the platform)</LI>
  162. </UL></LI>
  163. <LI>Objects can be transparent and can have any shape</LI>
  164. <LI>Library source is completly self-contained - You dont have to link to external libraries, not even to DEPUI!</LI>
  165. <LI>DEPUI uses #define flags to determine which modules to use. This guarantees that only the portions of DEPUI that you
  166. actually use get included in your executable.</LI>
  167. <LI>All platform dependant code in a single file for platform/theme code</LI>
  168. <LI>Runs on almost any hardware, even my 40 MHz 386 test machine</LI>
  169. <LI>Compiles with no changes on MSB first or LSB first hardware</LI>
  170. <LI>Open source and GPL licence</LI>
  171. </UL>
  172. (<a href="../include/depui/depui.h">../include/depui/depui.h</a>)<br>(library <a href="depui.htm">depui</a> : module <a href="depui_depui.htm">depui</a>)
  173. <p></li>
  174. <li>
  175. <p><b>Basic gui toolkit functions</b><p>
  176. This library contains a number of data types and functions intended to be
  177. useful for a portable gui library.
  178. <p>
  179. DETK uses <a href="deds.htm">DEDS</a> library for generic data structures.
  180. <p>
  181. DETK is used by the <a href="depui.htm">DEPUI</a> portable gui library.
  182. (<a href="../include/detk/detk.h">../include/detk/detk.h</a>)<br>(library <a href="detk.htm">detk</a> : module <a href="detk_detk.htm">detk</a>)
  183. <p></li>
  184. </ul><p>Generated by <a href="http://www.deleveld.dds.nl/mxdoc/index.htm">MXDOC</a> 2.2 on Sun Feb 4 15:16:26 2007
  185. </body></html>