
                            render.library
                            --------------
              1996 by Captain Bifat / TEK neoscientists


                               history

  18.3
	- major internal rework in preparation for new dither modes
	  and other features.

  18.2
  	- Now line hooks have to return TRUE or FALSE for
  	  continuation respective abortion.

  18.1
	- Improved line hooks. A line hook is called twice now:
	  Once before rendering a line (msgtype LMSGTYPE_LINE_FETCH),
	  once after rendering a line (msgtype LMSGTYPE_LINE_RENDERED).
	  This solves many outstanding problems:
	  Now you can convert, draw, render, save etc. in a single go,
	  and there's no need to have intermediate buffers to keep
	  a complete image in memory.
	  Also read the annotations in renderhooks.h

  18.0
  	- removed bug from the 68020 version: Quantization
  	  crashed without FPU.
  	- implemented random dithering (DITHERMODE_RANDOM). 
  	  New Tag: RND_DitherAmount (Range 0-255).
  	  The code is not satisfyingly optimized yet.
	- fixed several minor problems

  17.6
  	- implemented RND_PenTable for Chunky2RGB(). This tag is
  	  currently not defined for HAM modes.
  	- Major internal rework of Render(). Now the
  	  generalized-line-conversion-interface is used.
  	- RND_LineHook implemented to Render().

  17.5
  	- implemented RND_PenTable tag for Render().

  17.4
	- updated the 'legal' text file.
	- minor autodoc changes

  17.3
	- implemented ScaleOrdinate().

  17.2
	- removed a bug that occured when a progress hook was aborted
	  inside AddChunkyImage: I freed a semaphore that wasn't obtained.
	  "Needless to say, havoc breaks out [...]" (exec doc)

  17.1
	- minor corrections with the FD and LVO files:
	  SortPalette renamed to SortPaletteA, AddHistogram renamed
	  to AddHistogramA.

  17.0
	- Implemented AddHistogram()

  16.3
	- More bugs removed from SortPalette():
	  - PALMODE_SIGNIFICANCE crashed in the 68020 and 68040 versions. Fixed.
	  - PALMODE_SATURATION did not work at all. Fixed.
	  - Bugs removed from PALMODE_POPULARITY and PALMODE_SIGNIFICANCE.

  16.2
	- removed heavy bugs from SortPalette().

  16.1
	- initial public beta release.
  	- fixed problems with RND_ColorOffsetZero 

  16.0
	- mainly cosmetic. major reworks and clean-ups to
	  autodoc and includes

  15.2
	- Removed a heavy bug from AddRGBImage() that caused
	  random crashes.
	- 24bit scaling implemented. The new tag is
	  RND_PixelFormat, valid types are PIXFMT_CHUNKY_CLUT
	  and PIXFMT_0RGB_32.

  15.1
	- The scaling code has been rewritten completely.
	  Scaling engines use the generalized conversion system.
	  All scaling functions are highly accurate now.
	  Horizontal enlarge is significantly faster than before.

  15.0
	- introduced a new generalized concept for
	  line-oriented conversion functions (internal).
	- Chunky2RGB has been completely rewritten due to this
	  new concept. The HAM conversion is much faster now.
	- Added RGB_ProgressHook tag to Chunky2RGB.
	- implemented PMSGTYPE_LINES_CONVERTED.
	- Chunky2RGB has got a returncode (CONV_...).
	- updated the renderhooks include files.
	- finally implemented EXTP_CALLBACK_ABORTED

  14.4
	- removed bug from SortPalette().
	- implemented PALMODE_SATURATION sort mode.

  14.3	
	- Implemented SortPalette(). RND_PaletteMode is obsolete.
	- New tag for ExtractPalette(): RND_RMHandler. This tag
	  specifies a custom memory handler for quantization.
	  Default is the histogram's memhandler.
	- EXTP_SORTING_FAILED is obsolete.
	- Default for RND_NewPalette is toggled to TRUE for
	  backwards compatibility.

  14.2
	- removed heavy bug from AddChunkyImage() that could
	  produce completely corrupt histograms.

	- introduced PALMODE_SIGNIFICANCE. In this mode, a palette's
	  entries are sorted by their optical significance for the
	  human eye. This is helpful for many purposes, e.g. you get
	  excellent results with ObtainBestPen() if you allocate
	  a palette in this sequence.
	- fixed a memory-corruption bug in the quantization code.

  14.1
	- RND_NumColors is used instead of RND_NumEntries.
	  RND_NumEntries is obsolete. RND_FirstEntry has
	  been renamed to RND_FirstColor.

  14.0
	- implemented RND_FirstEntry tag for ExtractPalette(),
	  ImportPalette() and ExportPalette().
	- implemented RND_NumEntries tag for ImportPalette()
	- implemented semaphore protection for histograms and
	  palettes
	- lots of internal reorganization and clean-up
	- implemented FlushPalette()
	- implemented the RND_NewPalette tag for ImportPalette().

  13.0
	- fixed minor problems with offset_color_zero and
	  p2table-adaption
	- fixed minor problems with ConvertChunky() and
	  CreatePenTable() with a secondary pen conversion table
	  specified.
	- implemented CountRGB()
	- implemented BestPen()
	- fixed minor problems with CreatePalette()
	- FD and pragma for CreatePenTable() was corrupt. Fixed.
	- CreatePenTable() has been slightly optimized.

  12.0
	- adapted CreatePenTable() to palette objects.
	- removed a deadly bug from ImportPalette().
	- added RND_EHBPalette tag for ImportPalette().
	- updated all includes and autodocs.
	- ModifyHistogram() is obsolete. It has been removed.
	- The function interface for QueryHistogram() has been
	  changed. You do no longer pass a taglist, but instead
	  a single tag argument.
	- Parts of the code have been cleaned up.

  11.0
	- adapted autodocs and includes to palette objects.
	- adapted AddChunkyImage to use palette objects.
	  AddChunkyImage has been completely rewritten and
	  optimized.

  10.0
	- adapted Render() to palette objects. 

  0.81
	- removed the v0.80 speed-up. It didn't work together with
	  the low-memory adaption system.
	
	- Introduced new functions: CreatePalette(),
	  DeletePalette(), ImportPalette(), ExportPalette().

	- Modified ExtractPalette() to operate with palette objects.

  0.80
	- The major changes in v0.79 introduced a bug that occured
	  when you rendered to HAM modes. This has been fixed.

	- Rendering to CLUT with dither has been sped up.

  0.79
	- The color-adaption code was heavily broken for odd
	  numbers of palette entries (68020/68040 versions only).
	  This long outstanding bug has been fixed.

	- p1Table-Render removed. Instead I've implemented an
	  EXTREMELY efficient p2table-Render. Overall performance
	  should be at least the same in most cases.
	  
	  This step has some profound conceptional consequences.
	  It seems as if the whole library layout could be simplified
	  even further. Maybe there will be another rework to some
	  function interfaces. (Don't kill me, beta-testers...
	  this stuff isn't trivial!)

  0.78
	- ConvertChunky() is now able to convert a chunky image
	  over itself. If you tried to do so with elder versions,
	  the result was okay, but the routine was by some hundered
	  times slower than it could (reason unknwon).

  0.77
	- removed a bug that was introduced in v0.69.
	  If you created a turbo histogram, rendered to CLUT
	  without dither, and didn't specify a progress hook,
	  the code ran into a deadlock.

	- Chunky2RGB() HAM8 bit dependency changed to %SSMMMMMM.

	- Planar2Chunky()'s interface changed and supplied with an
	  additional taglist parameter
	
  0.76
	- very nasty bug removed from AddChunkyImageA(). If you
	  specified a progress hook, the histogram was completely
	  corrupt.

  0.75
	- removed a silly bug from Chunky2RGB that was introduced
	  in v0.73

	- new tag for CreateRMHandlerA: RMHTYPE_MemFlags.

  0.74
	- new autodocs completed.
	- RND_MemHandler renamed to RND_RMHandler.
	- Some constants have changed. You must recompile.
	- Includes once again reworked.
	- new terminology: libcall functions which receive taglist
	  parameters end with "...A" instead of "...TagList".
	  tagcall vararg stubs no longer end with "...Tags".

  0.73
	- a histogram created by CreateHistogram() now has a default
	  palette consisting of 16 grey tones.
	- AddChunkyImage() now calls a progress hook. Therefore you
	  may specify the RND_ProgressHook tag in AddChunkyImage()'s
	  taglist.
	- some optimizations
	- CreateConversionTable() has been renamed to
	  CreatePenTable().
	- ConvertChunkyImage() has been renamed to ConvertChunky().
	- RND_ConversionTable has been renamed to RND_PenTable

  0.72
	- Heavy bugs removed from AddRGBImage(), ExtractPalette(),
	  and other functions.
	- C includes were completely unusable. Fixed.
	- Major rework of most include files.


  0.71
	- There were the 0.69 versions of render.library in the
	  0.70 archive

	- DeleteScaleEngine() was missing in the includes. Fixed.

	- DeleteScaleEngine() crashed when the scaling-engine wasn't
	  created with a custom memhandler.


  0.70
	- New interfaces for CreateRenderMemHandler, CreateHistogram,
	  Render, AddChunkyImage, AddRGBImage, ExtractPalette,
	  SetRenderPalette.

	- Removed SetRGBWeight, SetProgressHook, SetRenderMode,
	  SetPaletteMode
        
	- New functions: ModifyHistogram, QueryHistogram
	
	- Autodocs not yet updated


  0.69
	- p2table searcher now adapts to low-memory situations (not
	  fully tested yet)

	- InitPenConversionTable() is no longer defined. A custom
	  conversion table may be passed to Chunky2BitMap() directly.

	- p1table adaption callback is now executed every 128th
	  adaption. after completion the callback hook is once more
	  executed. This corrects minor optical problems with
	  progress bars.

	- forgot E include renderhooks.m. Now included.

	- New qualitative color reduction algorythm implemented.
	  Slightly faster. Very stable results even with different
	  histogram resolutions. Much better output with dither and
	  few colors.


  0.68
	- I actually forgot to include the SetPaletteMode entry in
	  the library's build-up table. The machine crashed when
	  executed. Fixed.

	- IMPORTANT: Interface for Scale() has changed - Scale now
	  handles two additional arguments: totalwidth for source and
	  destination. This allows processing of clip areas.

	- The chunky8 scaling engine now requires less memory.

	- chunky8 scaling optimized for vertical enlarge

	- Heavy autodoc improvements, especially in respect to
	  amigaguide links to be created with AD2AG.


  0.67
	- new function: SetPaletteMode.

	- some palette sort methods implemented.

	- minor autodoc and includes bugs fixed

	- CreateChunkyConversionTable renamed to
	  CreateConversionTable

	- fixed minor accuracy problems with the chunky scaling
	  engine


  0.66
	- new functions: CreateChunkyConversionTable and
	  ConvertChunkyImage.

	- removed two subtle bugs in the FS-dither code. The blue
	  error component was treat incorrectly.


  0.65
	- CreateScaleEngine8, DeleteScaleEngine und Scale
	  implemented.
	- Autodocs updated

  0.64
	- initial internal beta release

