1This is a list of important changes in SGE's version history. 2 3030809: 4-Better Makefiles (autodetects SDL, Freetype & SDL_Image). 5-Better library numbering (thanks Sam!). 6-Fixed a problem with newer version of g++ and c-linkage. 7-Better C support (thanks Ippei!). 8 SGE is now configured to support C and C++ with the same 9 library file (set C_COMP=n in Makefile.conf to disable). 10-Resynced the TTF code with SDL_ttf 2.0.6 (.fon and stream support). 11-Added filled and gourand shaded polygons. 12-Removed some harmless warning with MS Visual C++. 13-Added multicolored lines. 14-Cleaned up the text input functions (the return value has changed a bit). 15-Fixed some bitmap rendering bugs in sge_Text. 16-Some minor updates and bugfixes. 17 18 19020904: 20-Corrected some errors in the documentation. 21-Fixed problems with Visual C++. 22-Fixed line clipping. 23-Resynced the TTF code with SDL_ttf 2.0.5, some functions added. 24-Fixed alpha levels with the TTF renderer (thanks Marco!). 25-Fixed small error in rotate clipping logic. 26 27 28020104: 29-Added sge_FloodFill(), a fast non-recursive flood fill function. 30-Fixed a problem with the example 'speedtest' with gcc v3. 31-Some portability fixes. 32-Some small changes to the makefiles. 33-Added a "Beginners guide to SGE" to the documentation. 34-Added anti-aliased ellipses and circles. 35-Better alpha blending in AA lines. 36-Fixed a problem when AA rotating 32bit surfaces. 37 38 39010629: 40-Many, many optimizations. 41-Split sge_draw into sge_surface and sge_primitives. 42-Fixed some bugs with hardware surfaces. 43-Fixed bugs with 24 bpp. 44-Added sge_PutPixelAlpha() - put pixel with blending. 45-Most drawing primitives now have an 'Alpha' version too. 46-Added anti-aliased lines (from SDL_gfxPrimitives). 47-Added anti-aliased bezier curves. 48-Added anti-aliased triangles. 49-Texture mapped rotation/scaling is back! It's a bit faster than normal 50 rotation but not as nice and it can't do interpolation. Use the flag 51 'SGE_TTMAP' to select this renderer with sge_transform(). 52-A new example is included: 'speedtest', benchmarks most of SGEs 53 primitives. Inspired by the example from SDL_gfxPrimitives. 54-Synced the TTF code with SDL_ttf 2.0.3; SGE now uses FreeType 2! 55 Changed the makefile to use the new freetype-config tool. 56 Note that FreeType2 can load more font formats than just truetype. 57 58 59010606: 60-Small fix in sge_draw.h. 61-Fixed sge_Lock_ON(). Added sge_getUpdate() & sge_getLock() to get the 62 current mode. 63-Fixed a signed-cast in sge_tt_text.cpp. 64-New rotation/scaling engine! Much faster and can do interpolated 65 rendering. Use sge_transform()/sge_transform_surface() to access the new 66 features. See documentation for more info. 67 68 69010224: 70-Fixed errors with SDL_VERSIONNUM for older versions of SDL. 71-Synced the TTF code with SDL_ttf 1.2.2. 72 New functions: 73 sge_TTF_FontAscent() returns ascent 74 sge_TTF_FontDescent() returns descent 75 sge_TTF_FontLineSkip() returns recommended line skip 76 sge_TTF_SetFontStyle() sets font style (SGE_TTF_NORMAL|SGE_TTF_BOLD| 77 SGE_TTF_ITALIC|SGE_TTF_UNDERLINE) 78 sge_TTF_GetFontStyle() returns the current style. 79 Thanks to Idigoras Inaki (IIdigoras@ikerlan.es) for betatesting this! 80-Fixed more problems with MSVC. Should work now. 81-Added sge_BF_TextSize(). 82-Exorcised the old and horrible sge_tt_input_object class! 83 New classes for text handling and rendering: 84 sge_TextEditor - edits textstrings 85 sge_text - render and buffers text 86 sge_TextSurface - same as sge_surface (but with text) 87 sge_TextSsprite - same as sge_ssprite ( " ) 88 sge_TextSprite - same as sge_sprite ( " ). 89-Minor changes to the sge_shape classes (mostly bugfixes). 90-Added border_warp() in sge_ssprite. 91-New flag for sge_BF_OpenFont(): SGE_BFPALETTE. sge_BF_OpenFont() will 92 use an 8bit surface for the font if this flag is set, this makes 93 sge_BF_SetColor() much faster (~O(1)), but makes bliting a bit slower. 94-Replaced font.bmp with a new font from Garrett Banuk's SDL Console 95 (http://www.wpi.edu/~mongoose/SDL_Console). 96-Better Makefile ('install' is possible now). 97-Added sge_Bezier(), draws a bezier curve. 98-Updated documentation. 99 100 101010101: 102-Clipping now also works in newer versions of SDL, but stay away from SDL 1.1.5! 103-Fix for MDK7.2 include error. 104-Some fixes for RedHat7 (the infamous gcc 2.96) from Chuck (clc@alum.mit.edu). 105-Cleaned up the makefiles, everything is now configured in Makefile.conf. 106-Some fixes for MS VisC/C++ from Seung Chan Lim (limsc@maya.com or slim@djslim.com). 107-Updated SFont support. 108 109 110000930: 111-This is a hack to get SGE working with SDL 1.1.5. When using the new version of 112SDL SGE will not perform pixel clipping (for now). The "Big Alpha Flip" in SDL 113also changes how SGE handles alpha!!! SDL_ALPHA_OPAQUE and SDL_ALPHA_TRANSPARENT 114is always set to the correct values (even under old versions of SDL). 115* THIS VERSION OF SGE IS NOT WELL TESTED! * Use SGE000714 if you don't have SDL 1161.1.5 and don't feel lucky (this version of SGE should work with older versions of 117SDL - I think...). The documentation is not yet updated. I think you need a new 118version of SDL_img if you want SFont support. 119 120 121000714: 122-Improved performance in sge_HLine(). 123-Changed all Sint32 coords to Sint16 (SDL uses Sint16). 124-Added delay functions: sge_CalibrateDelay() and sge_Delay() [sge_misc]. 125-Johan E. Th�lin has contributed a new part to SGE: [sge_blib] (Tadaa!). 126-Nuked the old sge_sprite class and did it better this time [sge_shape]. 127-A new class: sge_screen, a tool class when working with shapes [sge_shape]. 128-sge_CalcYPitch() and sge_pPutPixel() added. Used for precalculating the y pitch 129 offset [sge_draw]. 130-Some new routines for rotating and scaling bitmaps [sge_rotation]. 131-Updated and added some examples. 132-Updated documentation. 133 134 135000418: 136-Improved the makefiles. 137 * Always link your code against libSGE.a or libSGE.so * 138-Fixed freetype.h include problem. 139-Added sge.h - use it instead of the sge_*.h files. 140-Separated the TT and bitmap code. 141-Added some alpha component support: 142 -sge_CreateAlphaSurface() 143 Creates a 32bit alpha surface (RGBA - 8/8/8/8). The alpha channel is 144 blended on blitting. *SGE only supports 32bit alpha surfaces* 145 -sge_MapAlpha() 146 Use this function to map Uint32 color values (RGBA) for alpha surfaces. 147 The color value can then be used with any of SGEs functions. 148 -The TTF functions now support alpha blending. Use sge_TTF_AA_Alpha() to 149 turn this feature on. 150 -sge_AlphaFader() 151 Fades from (sR,sG,sB,sA) to (dR,dG,dB,dA). 152-Added SFont (Karl Bartel's font format) support to the bitmapfont routines. 153 Open the sfont with sge_BF_OpenFont("filename",SGE_BFSFONT). Note that most 154 sfonts need a alpha channel to look good which means it can't be loaded as 155 a .bmp file (they do not support alpha). To enable SGE to load .png files 156 uncomment 'USE_IMG = y' in the makefile (requires the SDL_img library!), 157 this will enable SGE to load any image format SDL_img supports. If you do 158 this, remember to link your code with SDL_img (not necessary if you use 159 libSGE.so). 160 161 162000312: 163-Fixed a bug in sge_Line(). 164-Added (still testing, no documentation) collision routines. 165-More work on the sprite class. 166 167 168000115: 169-Added this text file. 170-The TTF routines can now draw non anti-aliased text also. Control this with 171 sge_TTF_AAOff() - Turns anti-aliasing OFF 172 sge_TTF_AAOn() - Turns anti-aliasing ON -DEFAULT- 173-A new flagsystem (finally). The following routines are effected: 174 sge_tt_input... - 'int type' replaced by 'Uint8 flags' 175 sge_BF_OpenFont - 'int flags' replaced by 'Uint8 flags' (no API change) 176 sge_BF_input - 'Uint8 flags' added *PLEASE UPDATE YOUR SOURCE* 177 The following flags can be used: SGE_FLAG1 - SGE_FLAG8 (defined in sge_draw.h), but 178 routine specific flags are also provided. The flags can be ORed, eg. 179 SGE_FLAG1|SGE_FLAG2|... 180 The input functions has the following flags: 181 SGE_IBG - Preserve background (only in tt, BF always preserves the background) 182 SGE_IDEL - Delete text when finished 183 SGE_INOKR - No keyrepeat 184 NOTE! sge_tt_input: The old ('type') and the new ('flags') flags are not the same! 185 If you do not update your source code, this will happend: 186 type=0 => flags=0 - OK, same 187 type=1 => flags=SGE_IBG - OK, same 188 type=2 => flags=SGE_IDEL - NOT THE SAME! (should be SGE_IBG|SGE_IDEL) 189-TrueType font support optional, check the README. 190 191 192000102: 193SGE now supports win32 crosscompiling. Support for bitmap fonts added. Some printf() 194like functions added. 195 196 197991222: 198Fixed a small bug in sge_UpdateRect, more work on the circle routines. SGE can now 199be linked to both C and C++ code, check the README file for more information. 200 201 202991219: 203Fixes some problems with lines and adds some ellipse routines. Update: Oops, the 204sge_FilledEllipse function was missing - fixed. 205 206 207991208: 208SGE now has a sprite class *VERY BETA* and a nice surface rotation function. This 209version is tested with SDL 0.10 and 1.0. 210 211 212990905: 213New version, with a completed text edit class. 214 215 216990827: 217Released a new version, now with documentation. 218 219 220990826: 221First public release of SGE (r990826). Have fun! 222 223 224/Anders Lindstr�m 225