1Changes made from the "0.7.1" release to the "0.7.2" release:
2-----------------------------------------------------------
3
4* Bertrand Coconnier:
5
6- Fixed bug #2019450 (added a workaround for open source drivers of the Intel
7  chipsets : a bug in the drivers prevent a character to be displayed).
8- Fixed a bug which caused some memory leaks when memory allocation failed
9  during the update of the masters.
10- Updated the demo in the examples: extrusion and ligthing have been added.
11- Fixed glcGetFontMap() and glcGetMasterMap() so that their return is not null
12  when a character is mapped in the font/master but its Unicode name is not
13  stored in QuesoGLC database.
14- Character codes out of range are now rejected when GLC_UCS1 or GLC_UCS2 are
15  enabled. GLC_PARAMETER_ERROR is then raised.
16- Fixed a bug that crashed QuesoGLC when trying to call glcGetFontMap() with a
17  character not mapped in the font.
18- Fixed a bug which caused the measurement caches not to be updated when
19  GLC_RESOLUTION was changed by the users.
20- Fixed a memory leak in the management of the texture atlas: when a font was
21  deleted, the memory allocated to this font in the atlas was definitely lost
22  instead of being given back to the texture allocator.
23- Fixed a bug which did not include trailing spaces in the calculation of
24  bounding boxes.
25- Fixed a bug which caused artifacts when rendering glyphes that extend beyond
26  the EM square.
27- Fixed a bug which prevented letters l and i to be displayed at small scales
28  when GLC_HINTING_QSO and GLC_TEXTURE were enabled.
29- Side effect of the above bug fix : the antialiasing is improved for most
30  characters since they are no longer located against the edges of the texture.
31- Fixed a bug in glcGenFontID() which could return the ID of an existing font.
32- Fixed a race condition in glcGenContext()
33- Function glcGetStringCharMetric() now returns metrics in global string
34  coordinates (otherwise the kerning can not be measured)
35- Fixed bug #1987563 (Kerning does not work when GLC_GL_OBJECTS is enabled)
36  Thanks to GenPFault for the bug report.
37- Fixed bug #2012579 (Mac OSX Leopard compiling bug) - Thanks to Michael Strobel
38  and Tim Baumgartner for the bug report and the patch.
39- Negative values passed to glcResolution() now raise GLC_PARAMETER_ERROR
40- Fixed bug #1980982 (Checks for MinGW in the configure script are incomplete)
41- Feature request #1947346 : added files for pkg-config (thanks to Giel
42  van Shijndel and Dennis Schridde for providing them)
43- Fixed bug #1947464 (Warnings are generated when compiling with gcc option
44  -Wstrict-prototypes)
45- Fixed bug #1935557 (Fonts are not rendered correctly when the resolution is
46  changed using glcResolution).
47
48Changes made from the "0.7.0" release to the "0.7.1" release:
49-----------------------------------------------------------
50
51* Bertrand Coconnier:
52
53- Fixed the bugs #1852883 and #1890660 (VBOs had an erratic behaviour on some
54  Mac OS X platforms and Intel X3100 gfx cards under Linux).
55- Removed the workaround for bug #1852883
56
57Changes made from the "0.6.5" release to the "0.7.0" release:
58-----------------------------------------------------------
59
60* Bertrand Coconnier:
61
62- Added a workaround for bug #1852883 : VBOs are disabled on Mac OSX platforms
63- Fixed a bug in the measurement routines which caused the advance vector of
64  strings to be wrongly computed.
65- Simplified a bit the GL state management (enabling of GL_TEXTURE_2D should now
66  be done by the user when the rendering style is GLC_TEXTURE)
67- Updated GLEW source code to release 1.5.0
68- glcGetFontMap() and glcGetMasterMap() now return GLC_NONE if the font/master
69  does not map 'inCode'.
70- Updated test7 in order not to report an error when testing fonts which defines
71  a space character with no width.
72- glcGenFontID() now creates an empty font in order to reserve the ID for a
73  future use. The new ID can be freed by deleting it with glcDeleteFont().
74- Measurement datas of glyphes are now cached in order to accelerate the
75  measurement commands when GLC_GL_OBJECTS is enabled.
76- Fonts which belong to the same family are now grouped in the same master.
77- Added project files for Microsoft Visual C++ 2005
78- Fixed bug #1856336 (glcFontFace reports GLC_RESOURCE_ERROR on Windows when
79  selecting the "Arial Regular" font face).
80- Removed explicit calls to glGetString(GL_VERSION) and
81  glGetString(GL_EXTENSIONS) in glcContext() since GLEW already takes care of
82  that.
83- Fixed bug #1843710 (Code to handle missing FTC_Manager_* is broken).
84- GLC_LINE mode now uses Vertex Buffer Objects (VBO) whenever the gfx card
85  supports them
86- Added extension GLC_QSO_buffer_object to report the use of VBOs and PBOs
87  through glcGeti(GLC_BUFFER_OBJECT_COUNT_QSO) and its corresponding call to
88  glcGetListi(GLC_BUFFER_OBJECT_LIST_QSO, int).
89- GLC_TEXTURE mode now uses Vertex Buffer Objects (VBO) whenever the gfx card
90  supports them
91- Fixed bug #1834256 (part II) : The configure script now guesses the correct
92  flags to use in order to cross-compile QuesoGLC for MinGW32
93- Fixed bug #1834256 (part I) : An option has been added to the build scripts
94  in order to disable the build of tests and examples
95- Fixed bug #1640256 (RTL scripts were wrongly supported and the fix introduced
96  for release 0.6 was actually a partial fix).
97- Improved tests coverage (all GLC functions are now tested at least once with
98  all its legal attributes)
99- Spacing characters have now their own caching system when GLC_GL_OBJECTS is
100  enabled.
101- Code refactoring between glcRenderString() and glcRenderCountedString() in
102  order to maximize common code for easier maintenance.
103- Display lists are now called earlier in glcRenderChar() in order to minimize
104  useless overhead.
105
106Changes made from the "0.6" release to the "0.6.5" release:
107-----------------------------------------------------------
108
109* Bertrand Coconnier:
110
111- Rendering and measuring routines now skip control characters instead of
112  having a random behavior about them.
113- Fixed bug #1820546 (glcRenderString("") displayed the last rendered string
114  minus its first character)
115- Fixed bug #1821219 (Blank characters (i.e. spaces) were wrongly transformed
116  into null characters)
117- Removed the use of FcStrSet and FcStrList objects for the catalog list. Use
118  object __GLCarray instead.
119- Fixed bug #1814773 (QuesoGLC uses the system library GLEW whenever
120  possible. Otherwise a copy of GLEW is automagically built and embedded with
121  QuesoGLC)
122- Fixed bug #1812058 (QuesoGLC uses the system library FriBiDi whenever
123  possible. Otherwise a copy of FriBiDi is automagically built and embedded with
124  QuesoGLC)
125- Fixed bug #1754660 (actually a partial fix. See explanations on bug #1754660
126  on SourceForge.net)
127- Renamed some type names (FT_ULong, FcChar8, ...) in order to make them more
128  portable.
129- Minimized the use of pthread_get_specific()/TlsGetValue() when only one thread
130  is used and when ELF TLS is not available, since calls to those functions are
131  expansive.
132- Removed the useless QUESOGLC_STATIC_LIBRARY
133- Modified QuesoGLC threading implementation in order to use ELF TLS when
134  available. This allows to discard the expansive calls to pthread_get_specific.
135- Removed the useless QUESOGLC_VERSION macro
136- Removed __glcFaceDescGetCharMap() which were buggy for some fonts. Now uses
137  Fontconfig patterns instead. This fixes a bug which created a new font for
138  each newly rendered glyph.
139
140Changes made from the "0.5" release to the "0.6" release:
141-----------------------------------------------------------
142
143* Bertrand Coconnier:
144
145- Fixed bug #1640256 : the advance vector now supports RTL strings
146- Fixed a bug by disabling kerning when two successive characters of a string
147  are not rendered with the same font.
148- Modified __glcFaceDescGetFontFormat() to use FT_Get_X11_Font_Format(),
149  whenever available, to detect the font format.
150- Fixed a bug which caused a character that was not mapped to any font to be
151  rendered wrongly the second time it is displayed when GLC_KERNING_QSO is
152  enabled (bug reported by Brandon Casey).
153- Added a test in the tests directory that checks if empty strings are
154  correctly handled by the functions of QuesoGLC (no crash, no unexpected
155  errors, no memory leaks).
156- Modified the texture routines so that QuesoGLC tries several sizes of texture
157  before giving up when rendering in GLC_TEXTURE mode with GLC_GL_OBJECTS
158  disabled.
159- Fixed global commands so that they can not execute GL commands since we can
160  not make sure that the relevant GL context is bound to the current thread
161  when a global GLC command is executed.
162- Changed __glcSaveGLState() and __glcRestoreGLState() so that only a minimal
163  part of the GL state is saved before the rendering commands are issued.
164- Removed redundancy in the calls to glBindTexture() when the GLC_TEXTURE
165  rendering mode is used.
166- Removed the visibility test based on bounding boxes since it slowed down
167  everything and the user can perform this test himself by using measurement
168  commands.
169- Modified immediate texture rendering to take advantage of pixel buffer
170  objects (PBO) whenever the gfx card supports them.
171- Optimized the rendering code so that the conversion from 26.6 fixed point
172  coordinates to GLfloat is partially done by the GPU by using glScalef().
173- Cleaned up some internal transactions between private functions in order to
174  prevent back and forth translation between a font ID and its corresponding
175  structure __GLCfont.
176- Code cleanup :
177  * Fixed the signed/unsigned comparisons
178  * Removed unused function parameters
179  * Renamed the structure __GLC* instead of __glc* for more consistency with
180    Mesa.
181  * Added some comments
182- Fixed the computing of the bounding box of a glyph when GLC_EXTRUDE_QSO is
183  enabled.
184- Optimized the de Casteljau algorithm by splitting it into 2 specialized
185  subroutines (one for conic Bezier curves and the other for cubic Bezier
186  curves).
187- glcDeleteContext() does not destroy GL objects anymore. This is done because
188  we can not be sure that the GL context that is current (if any) is the one
189  that contains the GL objects associated to the GLC context that we are
190  destroying. Documentation is updated accordingly. (Issue pointed out by
191  Brandon Casey).
192- Removed some calls to __glcGetCurrent() that could cause operations to be
193  performed on the wrong context or to fail when they should succeed (issue
194  pointed out by Brandon Casey).
195- Removed glPush/PopClientAttrib() and use glIsEnabled() instead since that is
196  much faster.
197- Vertex arrays are now used to render characters in GLC_TRIANGLE mode.
198- QuesoGLC now uses GLEW, the OpenGL Extension Wrangler, to manage OpenGL
199  extensions.
200- Removed the master object, uses FontConfig API instead. This allows to not
201  load all the masters in memory : masters are now loaded "just in time" which
202  reduces the memory footprint of QuesoGLC. Furthermore, when GLC_AUTO_FONT is
203  enabled, QuesoGLC takes into account the user preferences for FontConfig.
204
205* Brandon Casey:
206
207- Declared unused arguments with compiler attributes in order to fix compiler
208  warnings and allow some optimization.
209- Rearranged glcGenContext() to avoid unlikely race.
210- Moved the call to __glcConvertGLintToUcs4() before the GL state is saved in
211  RenderChar(). This saves much GL work if the conversion of the character
212  fails.
213- Avoided strlen call by using return value of snprintf/sprintf_s in unicode.c
214- Fixed __glcCtxQueryBuffer() so that it leaves the context unchanged on
215  failure.
216- Fixed calls to __glcCtxQueryBuffer() so that GLC_RESOURCE_ERROR is not raised
217  twice on failure.
218- Added header unistd.h to master.c since it is needed by access()
219- Fixed test4 by supplying a valid directory for AppendCatalog/PrependCatalog
220- Modified __glcConvertUcs4ToGLint() so that a variable that is only used for
221  debugging is now conditionally compiled
222- Simplified __glcRaiseError() testing of current error state
223- Ensured at least one texture level is created by using a do {} while,
224  otherwise when hinting is enabled and Xscale or Yscale are too small,
225  sometimes no new texture is created and we render a portion of the previous
226  image.
227- Avoided free'ing NULL buffer in texture routines
228- Fixed scalable rendering when using external display list
229- Fixed the character measurement buffer which was not reset at each call of
230  glcMeasureString() or glcMeasureCountedString(). So newly measured characters
231  were continually appended to measurement array.
232- Removed the call to __glcGetScale() in measuring routines since it is not
233  necessary and breaks if hinting is enabled and rendering bitmap.
234- Fixed kerning adjustment in __glcGetCharMetric().
235- Moved point size adjustments into ofacedesc.c functions to mimic
236  __glcFaceDescGetBoundingBox()
237- Replaced __glcFree() by free() when glc allocation functions didn't allocate
238  the memory.
239- Fixed glcExtensions string in test6.c
240- Changed glScalef() call in unicode.c so that z dimension is not zeroed which
241  breaks hinting.
242- Fixed parameter type of __glcTextureGetImmediate() (GLsizei instead of
243  GLuint).
244- Replaced floating point multiplication by bits shifting.
245- Enabled FT_OUTLINE_HIGH_PRECISION when building mipmaps.
246- Avoided signed/unsigned comparison.
247- Arranged extension strings in GLC_EXTENSIONS alphabetically (as per Section
248  2.5 of GLC Specification Version 0.2 - 27 Oct 1996).
249- Fixed Unicode functions (strlen() does not take into account the trailing
250  '\0' character and a pointer was not dereferenced).
251- Merged pitch and width rounding calculations.
252- Fixed kerning measurement and rendering calculations
253- Modified autoconf files so they build with version 2.57.
254- Made QuesoGLC compile with Freetype library older than 2.1.8.
255- Changed __glcFindIndexList() semantics to return address of separator
256  occurrence.
257- Fixed a test so that the GLC_CATALOG_LIST environment variable is now taken
258  into account.
259- Prevented advance past end of string during conversion between logical order
260  and visual order so that zero length strings are handled properly.
261- Removed NULL dereference after FcPatternGetString().
262- Fixed texture atlas coordinate calculation.
263- Improved texture rendering by optimizing the bounding box coordinates
264  calculation.
265
266Changes made from the "0.4" release to the "0.5" release:
267-----------------------------------------------------------
268
269- Fixed the #include so that QuesoGLC can be built with MSVC++
270- Added an attribute stack to save and restore the GLC state variables.
271- Added a matrix stack for GLC_BITMAP_MATRIX.
272- Added support for kerning.
273- Added support for the FreeType cache sub-system.
274- Force thread-safety for included libraries.
275- Fixed a bug where glcGetMasterc() returned silly values for
276  GLC_FULL_NAME_SGI and GLC_VERSION attributes.
277- QuesoGLC is now compliant with the Unicode Bidirectional Algorithm (UAX#9)
278  thanks to Fribidi.
279- Added the ability to extrude the characters.
280- A texture atlas is now used for GLC_TEXTURE rendering style.
281- Improved the speed for display list rendering by moving out some stuff that is
282  only needed for immediate mode rendering.
283- QuesoGLC now tries to re-use as much as possible the texture generated for
284  immediate mode rendering.
285- The OpenGL version is now checked and the texture rendering behaves
286  accordingly.
287- Environment variables GLC_LIST_SEPARATOR and GLC_CATALOG_LIST are now read by
288  QuesoGLC. They supersedes GLC_PATH if defined otherwise GLC_PATH is parsed.
289  (suggestion by Brandon Casey).
290- Blank Unicode characters (that is character which are expected to be blank
291  when drawn) are now managed according to the Unicode standards.
292- Thomas Zimmermann greatly improved the building scripts.
293
294Changes made from the "0.3" release to the "0.4" release:
295-----------------------------------------------------------
296
297- Modified the GLC_PATH parser code in order to use semicolon-separated lists
298  for Win32 and colon-separated for POSIX platforms.
299- Added a makefile so that QuesoGLC can be built under Win32
300- Removed the pthread dependency for Win32
301- Added a new __glcGlyph object that allow to cache the display list, the
302  texture, the bouding box of a glyph. Those objects are managed by
303  __glcFaceDescriptor which allow to keep the glyphes as long as the face exists
304- Revamped the code in order to better encapsulate FT_Face in
305  __glcFaceDescriptor and FcCharSet in _glcCharMap.
306- The thread local storage is now released when QuesoGLC is unloaded
307- Modified the python script that builds the character names database : the
308  number of character names can be given as a command-line parameter.
309- The master object (defined in omaster.h) now uses __glcCharMap instead of
310  FcCharSet.
311- Brandon Casey fixed the rendering commands so that the character sequence
312  \<0> is not issued when glcRenderString is called with a zero length string
313  (i.e. a string that only contains the null terminator)
314- Brandon Casey fixed the measurement commands so that they give correct values
315  for the minimum y coordinate
316- Brandon Casey changed the GL_TEXTURE_ENV_MODE to GL_MODULATE instead of
317  GL_REPLACE in order to allow the user to change the transparency of the text
318  by setting the alpha component with glColor4*()
319- Brandon Casey fixed the GLC_BITMAP and GLC_TEXTURE rendering styles so that
320  the complete set of GL_UNPACK parameters are set before the picture is
321  uploaded in order not to depend on the user setting of those parameters
322- Brandon Casey provided a patch to allow QuesoGLC to compile with FreeType libs
323  older than 2.1.8 (winfonts were not supported before 2.1.8)
324- Pablo Barbáchano provided a patch to allow QuesoGLC to use FreeType 2.2.x
325  (const-ness added to some parameters of the callbak functions of
326  FT_Outline_Decompose)
327- Removed the stupid limit that generated GLC_PARAMETER_ERROR whenever some
328  functions were called when the string type was GLC_UTF8_QSO (see below).
329  Indeed a Unicode codepoint can be no higher than 0x10ffff and can thus be
330  stored in a 32 bits integer in UTF-8 format.
331- Uses GNU extensions of gcc where possible to implement the constructor and the
332  destructor of the library (instead of _init and _fini)
333- Fixed the crashes due to the removal of the combine callback of the GLU
334  tesselator. The callback is now restored and compatible with the arrays of
335  variable size (__glcArray)
336- Quesoglc now uses autotools to build
337- Thomas Zimmermann fixed the string measurement commands that did not return
338  results that were consistent with those returned by glcCharMetric().
339- Fixed a bug in glcDeleteFont() where the face was not closed before the font
340  was deleted.
341- Display lists are now managed at the charmap level instead of being handled by
342  the masters. This allows a better management and optimizes the GPU memory
343  management by deleting display lists and textures as soon as the corresponding
344  glyph is removed.
345- Charmaps now use binary search instead of linear search
346- Texture mipmap levels in GLC_TEXTURE style are now built directly by QuesoGLC
347  instead of using GLU. It should provide better rendering quality at small
348  pixel sizes
349- The z coordinate of bounding boxes is now also used to determine if a Bezier
350  curve lies outside the viewport
351- Calculations now use GLfloat instead of GLdouble
352- Removed the useless third coordinate of the vertex array used for GLC_LINE
353  and GLC_TRIANGLE styles
354- Fixed a bug where the advance of a glyph that is skipped because it lies
355  outside the viewport were not taken into account
356- Unified the behaviour of the rendering and measuring routines so that the
357  later now take into account the state of GLC_HINTING_QSO.
358- Removed the file 'constant.h'
359- Added the enumerant GLC_HINTING_QSO to the glEnable()/glDisable() functions
360  to allow the user to activate hinting when glyphs are rendered at small pixel
361  sizes. By default, hinting is disabled because it creates visual artifacts
362  when the glyphs are animated.
363- In order to accelerate the rendering of characters, glyphs which bounding box
364  lies outside the viewport are now skipped.
365- In GLC_TEXTURE mode, no mipmap is built anymore if the glyph is rendered in
366  immediate mode (that is if GLC_GL_OBJECTS is disabled and the user is not
367  building a display list).
368- Fixed a bug in glcRenderChar() where the texture used in GLC_TEXTURE mode was
369  deleted after the glyph was rendered if GLC_GL_OBJECTS was disabled. This
370  could lead to unexpected results if the user tried to encapsulate the
371  glcRenderChar() call in a glcNewList/glcEndList pair.
372- In order to accelerate the rendering of glyphs in GLC_LINE and GLC_TRIANGLE
373  modes, outline curves that lie outside the viewport are replaced by a
374  piecewise linear curve that joins the control points.
375- The criterion that is used by the de Casteljau algorithm is now computed in
376  pixel distance rather than in object space distance whenever no display list
377  is building. This leads to a more optimal number of vertices which depends on
378  the actual size of the glyph on the viewport.
379- Scaling of glyphs for the GLC_BITMAP style is now detected thus allowing to
380  pass the correct character size to FreeType (instead of the fixed arbitrary
381  size GLC_POINT_SIZE) when the character is rendered. This optimizes the grid-
382  fitting of the glyph and provides slightly enhanced character rendering at
383  small sizes.
384- Transformation matrices that lead to degenerate cases for the GLC_BITMAP style
385  are now correctly handled.
386- The 'data' and 'length' members of __glcArray are now accessed through macros
387  (GLC_ARRAY_DATA and GLC_ARRAY_LENGTH) instead of explicit pointer
388  dereferencement thus providing some kind of encapsulation for the __glcArray
389  object.
390- Arrays that store the vertices and control points during the rendering of
391  GLC_LINE and GLC_TRIANGLE styles are now handled by the context state. Hence
392  they are not created and deleted each time a glyph is rendered thus saving
393  memory allocation/deallocation.
394- The buffer that stores the measured characters is now an array of variable
395  size (__glcArray)
396- Fixed a bug in measurement commands where bounding boxes and baselines did not
397  take the GLC_RESOLUTION value into account.
398- The de Casteljau algorithm now uses the chordal distance of the control points
399  of the spline rather than the chordal distance of the midpoint of the spline
400  to determine if the curve needs to be broken or not, thus leading to a better
401  handling of antisymmetric cubic curves (such as S-shaped curves). This is also
402  a more severe criterion : some spline curves may now be broken into more
403  segment curves than before.
404- Revamped the implementation of de Casteljau's algorithm : hard-coded limits of
405  arrays have been removed. Data are now handled by arrays of variable size
406  (__glcArray).
407- Charmaps now use arrays of variable size (__glcArray)
408
409Changes made from the "0.2" release to the "0.3" release:
410-----------------------------------------------------------
411
412- Fixed a bug in glcRenderChar(), glcRenderString() and glcRenderCountedString()
413  that prevented the replacement code or the character sequence '\<hexcode>' to
414  be displayed when QuesoGLC failed to find a font that maps a character code.
415- A GLC_PARAMETER_ERROR is raised if the string type is GLC_UTF8_QSO and one of
416  the following functions is called :
417    * glcGeti(GLC_REPLACEMENT_CODE)
418    * the callback function defined by glcCallbackFunc()
419    * glcFontMap()
420    * glcGetFontMap()
421    * glcGetMasterMap()
422    * glcGetCharMetric()
423    * glcRenderChar()
424    * glcReplacementCode()
425- Fixed several issues that prevented QuesoGLC to compile and run on 64 bits
426  platforms
427- Improved the mechanism that determine the format of font files
428- Added support for the GLC_SGI_full_name extension
429- Fixed glcGetMaxCharMetric() where the maximum size of the characters were
430  computed in EM units thus leading to wrong results if the different
431  characters did not have the same EM square size.
432- General management of header files has been moved to internal.h (most source
433  files now just need to include a unique header file "internal.h")
434- Modified glcResolution() so that the resolution of every font of the
435  GLC_CURRENT_FONT_LIST is updated whenever glcResolution() is called
436- The GLC_IS_FIXED_PITCH attribute is now managed per font, not per master
437- The verification of master parameters has been moved to the specific function
438  __glcVerifyMasterParameters(). This simplified the code
439- The management of the header file assert.h has been moved to internal.h
440- Fixed glcIsFont() so that it does not raise GLC_PARAMETER_ERROR when 'inFont'
441  is not the ID of a font
442- Fixed glcGetFonti() so that it returns the font attributes instead of the
443  parent master attributes
444- Fixed glcGenFontID() so that it returns sensible results when it is called
445  several times in a row
446- Fixed glcFontFace() so that the face of every fonts of GLC_CURRENT_FONT_LIST
447  are set to the face identified by 'inFace' if 'inFont' is zero (previously
448  only one face was modified when 'inFont' was zero)
449- Fixed glcFont() so that the client state is left unchanged if an error occurs
450- The UTF-8 support is an extension of QuesoGLC, hence the GLC_UTF8 enumerant
451  has been appended with 'QSO' (like 'QueSO GLC extension'). The enumerant has
452  also been modified which broke the ABI compatibility with version 0.2
453- Brandon Casey removed the hard-coded limit of the charMap array for fonts
454- Brandon Casey modified the allocation and the management of the
455  measurementCharBuffer. It is now dynamically allocated instead of statically
456  defined.
457- Brandon Casey fixed a bug in glclogo.c where GLC_GL_OBJECTS was not disabled
458  hence preventing the display lists to be correctly built.
459- Brandon Casey modified testrender.c so that a box is drawn around the text
460  rendered in GLC_BITMAP style in order to demonstrate proper rotation. This
461  example is analogous to the test that shows failure of SGI's GLC to properly
462  perform this operation (http://www.opengl.org/resources/features/fontsurvey)
463- Fixed a bug in glcFontMap() which screwed the charMap array when a character
464  was removed from the font map (bug reported by Brandon Casey)
465- Textures in the GLC_TEXTURE mode are now stored in GL_ALPHA format in order
466  to nicely superimpose the glyph on the background instead of rendering it
467  over a black box (bug reported by Brandon Casey)
468- Fixed all GLC functions that uses individual character : if the current
469  string type is GLC_UTF8, the GLint code is now correctly handled
470- Fixed a bug in the detection of the filename extension of font files
471- Fixed the master creation when glcGenContext() is called : no void master
472  should be created anymore
473- Fixed a bug so that display lists created by QuesoGLC are now deleted when
474  glcDeleteGLObjects() is called or when a master is destroyed
475- Strings returned by glcGetc() are now converted into the relevant Unicode
476  format
477- Added an "uninstall" target to the makefile
478- When the shared library is built, the version number is appended to the
479  library name and the corresponding links are created when QuesoGLC is
480  installed. This allows several different versions of QuesoGLC to coexist
481  on most *nix (feature suggested by Pablo Barbáchano).
482- Pablo Barbáchano fixed the install process of QuesoGLC
483
484Changes made from the "0.1" release to the "0.2" release:
485-----------------------------------------------------------
486
487- Textures in GLC_TEXTURE mode are now of variable size instead of fixed size
488  (previously 64x64).It both optimizes the texture memory and removes the
489  garbage that could appear when rendering some fonts.
490- Added UTF-8 support
491- QuesoGLC does not open anymore the font files at font creation. Instead, font
492  files are opened when the fonts are added to GLC_CURRENT_FONT_LIST. It lowers
493  the number of font files that are simultaneously opened.
494- Every strings are now stored internally in Unicode UTF-8 format. Strings are
495  converted back to the current GLC_STRING_TYPE "on the fly".
496- Get rid of the string list objects (files ostrlst.[ch]) and the Unicode
497  character object (files ounichar.[ch]). This simplified the code.
498- Now uses standard predefined macros to detect Mac OSX platforms
499- QuesoGLC now uses Fontconfig to locate and examine fonts
500- Fixed invalid preprocessing tokens of test4 that prevented it to be compiled
501  with pedantic-errors enabled.
502- QuesoGLC now uses Doxygen for its documentation.
503
504Changes made from the "Birth" release to the "0.1" release:
505-----------------------------------------------------------
506
507- Get rid of NDBM : Unicode names are now stored in a const array which is
508  automagically built from buildDB.py
509- FreeType lists are now used for the string list object, master lists,
510  font lists, current font lists and texture object lists.
511- A mutex is now used for every access to the database since NDBM is not
512  thread-safe.
513- Fixed a bug where the content returned by dbm_fetch() was freed. This
514  behaviour was wrong since dbm_fetch() returns static data.
515- Now uses NDBM (which is much more portable) instead of GDBM
516- Fixed a bug in glcDeleteContext() where QuesoGLC tried to destroy the GL
517  objects of the current context instead of those of the context to be deleted.
518- Contexts are now stored in a linked list and their number is not limited to
519  16 anymore.
520- Fixed glcGetAllContexts() which returned wrong context IDs and did not zero-
521  terminate the array.
522- Fixed the error path in __glcInitLibrary where glcCommonArea was freed before
523  its members.
524- Added many comments to the sources.
525- Removed the stupid parameter GLC_INTERNAL_ERROR
526- QuesoGLC now computes automatically the resolution of the screen in DPI using
527  X window commands.
528- The GLC_RESOLUTION parameter now provides a way for the user to choose the
529  precision of de Casteljau's algorithm.
530- Fixed a bug that occured when a context was deleted : its entry was not
531  deleted from the 'stateList' array.
532- QuesoGLC now has the ability to use custom memory manager routines
533  (see __glcFree, __glcMalloc and __glcRealloc)
534- FreeType2 now uses a custom memory manager based on __glcFree, __glcMalloc
535  and __glcRealloc. This helps debugging and detection of memory leaks.
536- Variables GLC_MIN_MAPPED_CODE, GLC_MAX_MAPPED_CODE, GLC_CHAR_COUNT and the
537  list GLC_CHAR_LIST are now updated when a new font file is added to a master.
538- Changed license of QuesoGLC to LGPL
539- Fixed glcAppendFont() so that it raises GLC_PARAMETER_ERROR if the font is an
540  element of GLC_CURENT_FONT_LIST at the beginning of the command execution.
541- Fixed glcFont() so that it behaves correctly if the font parameter is zero.
542- Fixed glcFontFace() so that it leaves the current face unchanged if it fails
543  to set a new face.
544- Fixed glcFontMap() so that it checks if the character to be mapped is an
545  element of the list GLC_CHAR_LIST.
546- Fixed glcFontMap() so that if no character name is given then the code
547  'inCode' is removed from the charmap.
548- Fixed glcRenderCountedString(), so that it raises GLC_PARAMETER_ERROR if the
549  parameter inCount is less than zero.
550- Fixed glcReplacementCode() so that it can use a code other than
551  GLC_REPLACEMENT_CODE.
552- Translated C++ code to pure ANSI C (i.e. get rid of C++)
553- QuesoGLC can now be built as a shared library.
554