AminetAminet
Search:
84479 packages online
About
Recent
Browse
Search
Upload
Setup
Services

dev/misc/renderlib.lha

Mirror:Random
Showing:m68k-amigaosppc-amigaosppc-morphosi386-arosi386-amithlonppc-warpupppc-powerupgeneric
No screenshot available
Short:Image processing kernel
Author:Timm S. Müller <tmueller at neoscientists.org>
Uploader:Andreas Falkenhahn <andreas airsoftsoftwair de>
Type:dev/misc
Version:40.8
Architecture:m68k-amigaos >= 3.0; ppc-morphos >= 1.3; ppc-amigaos >= 4.0
Date:2005-03-21
Download:http://aminet.net/dev/misc/renderlib.lha - View contents
Readme:http://aminet.net/dev/misc/renderlib.readme
Downloads:9265

API-conformant re-implementation of render.library in ANSI C.
this version is a drop-in replacement for render.library,
which was written in 68k assembler (versions prior to v40).

if your software doesn't work with this release, submit problem
reports to tmueller at neoscientists.org


implementation notes
-----------------------------

- RenderA() and ConvertChunky() now have additional return codes,
REND_NO_DATA and CONV_NO_DATA respectively, if required
arguments are missing. some other functions may check for
illegal parameters as well, but don't rely on this.

- render.library objects (palettes, histograms, scaling-engines and
mapping-engines) are inherently thread-safe. you do not need to
explicitely protect them in multitasked use. (this may be a
questionable choice, but that's the way render.library was designed
originally.)

- many parametric 'issues' improved. scaling-engines, for example,
seem to handle larger numbers correctly. histograms, however, still
use 32bit integers and can overflow quite early.

- some calculations now use floating point arithmetics and better
algorithms. brightness, for instance, is now calculated correctly
(i.e. in the sense of 'lumincance' like in YUV) in SortPalette() and
CreateAlphaArray().

- dithering to HAM is no longer supported. yuck.

- the bresenham-like integer scaling algorithm was better in the
previous version. (float sucks if you can't handle it. should be fixed
some day. :)

- mapping-engines are currently fake entities and do not actually lead
to improved performance. they don't harm either. but you don't know
this, simply stick to the autodocs. maybe they'll be put back into
action later.

- all histograms are now digital trees, using a much more
sophisticated algorithm than before. albeit much more elegant and
memory-saving, this is probably slower than before.


performance issues
-----------------------------

- the 68k build is actually optimized for 68060 processors.

- on 68060 processors, most functions in this implementation are not
significantly slower than before.

- expect a massive speed loss on <68040.

- chunky to bitmap conversion (and vice versa) is implemented in an
extremely lazy way. these functions do crawl.

- quantization is faster and more accurate than before.

- general memory consumption is lower than before.



recent changes
-----------------------------

  40.8  [03-Mar-05]
    - added AmigaOS4 binary and includes; compiled by Andreas Falkenhahn
      <andreas at airsoftsoftwair.de>

  40.8
    - fixed libinit check: AFF_68881 now queried
    - When a histogram contained less colors than specified
      with ExtractPalette(), no colors were copied at all, which
      resulted in an entirely black palette. Fixed.

  40.7
    - MixAlphaChannelA() now produces the intended behavior of
      versions prior to v40. The old library was buggy too, and did
      not handle a single second alpha channel correctly, as it
      seems. Reported by Matthias Böcker.
    - added GCC inline (fdpragma special 40). the proto file was
      created using fdpragma special 35, and modified to include
      the original SAS/C-style pragmas as well
    - Morphos version 40.6 included
    - turned around ratio argument interpretation in MixRGBArrayA().
      it is now in compliance with the old version again. Reported
      by Andreas Falkenhahn. note: some other functions with ratio
      arguments are untested yet
    - library base was NOT freed correctly in case of LibInit()
      failure, now fixed

  40.6
    - more changes from Gunther Nikl applied: debug macro, register
      argument macro, padding of libbase fields, compiler warnings.
    - reduced the excessive amount of automatic inlinings in the
      gcc release build, which leads to a much smaller binary. this
      also fixes the misplaced LibNull() entry, and the result is
      still much faster than sas/c. okay, agreed, gcc is it.
    - more source and build cleanups

  40.5
    - CreateAlphaArrayA() has been fixed. a broken macro was used.
      reported by Bernd Roesch.
    - fixed a freemem(null) condition that showed up in MuForce.
      reported by hexaae.
    - improvements to the build procedure added by Gunther Nikl
    - morphos version updated to 40.4

  40.4
    - dithered rendering with neither RND_PenTable nor
      RND_OffsetColorZero rendered to a table of black pens. fixed.

  40.3
    - morphos version compiled by Sigbjørn Skjæret. added.
    - HAM8 rendering was not 100% accurate. should be correct now.
    - added missing semaphore locks
    - minor cleanup

  40.2
    - the remaining alpha-channel functions have been implemented.
    
  40.1
    - source added to the package.
    - major overall performance improvements
    - SortPalette() completed
    - rendering to HAM6 and HAM8 has been completed. dithering to HAM
      modes is no longer supported, sorry.
    - tags to RGBArrayDiversity() and ChunkyArrayDiversity() did not
      correctly handle palette/mapengine arguments. fixed.
    - definitions added in render/render.h: CONV_NO_DATA, REND_NO_DATA

  40.0
    - rewritten in C


Contents of dev/misc/renderlib.lha
 PERMSSN    UID  GID    PACKED    SIZE  RATIO     CRC       STAMP          NAME
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[generic]                20234   99161  20.4% -lh5- d5ae Mar  4  2003 renderlib/doc/render
[generic]                18801   87326  21.5% -lh5- a1f0 Mar  4  2003 renderlib/doc/render.doc
[generic]                 1276    3626  35.2% -lh5- 49da Feb  3  1999 renderlib/include_os4/render/renderhooks.i
[generic]                14796   29848  49.6% -lh5- e8fc Mar 30  2003 renderlib/libs/render.library
[generic]                26075   59936  43.5% -lh5- 2c59 Mar 30  2003 renderlib/libs/render.library.elf
[generic]                40510   86860  46.6% -lh5- f7f0 Mar  3  2005 renderlib/libs/render.library.os4
[generic]                 2490    5304  46.9% -lh5- 88cc Mar  3  2005 renderlib/README
[generic]                 1476   10725  13.8% -lh5- 1f23 Mar  3  2005 renderlib/include_os4/interfaces/render.h
[generic]                  540    1625  33.2% -lh5- 64d3 Mar  3  2005 renderlib/include_os4/proto/render.h
[generic]                 2749   10245  26.8% -lh5- 7dc3 Jan  6  2004 renderlib/include_os4/render/render.h
[generic]                 2639    9361  28.2% -lh5- d684 Feb  3  1999 renderlib/include_os4/render/render.i
[generic]                 1280    3617  35.4% -lh5- bff2 Feb  3  1999 renderlib/include_os4/render/renderhooks.h
[generic]                  857    1661  51.6% -lh5- eddf Mar  4  2003 renderlib/COPYING
[generic]                 8644   22855  37.8% -lh5- a3c3 Mar 30  2003 renderlib/HISTORY
[generic]                 1094    5272  20.8% -lh5- 85f3 Mar  4  2003 renderlib/include/clib/render_protos.h
[generic]                  885    2996  29.5% -lh5- 653a Mar  4  2003 renderlib/include/FD/render_lib.fd
[generic]                 2282   15422  14.8% -lh5- b078 Mar  4  2003 renderlib/include/gccinline/render.h
[generic]                 1799   14890  12.1% -lh5- 1b42 Mar  3  2005 renderlib/include_os4/inline4/render.h
[generic]                  222     431  51.5% -lh5- 9245 Mar  4  2003 renderlib/include/proto/render.h
[generic]                 2749   10245  26.8% -lh5- 7dc3 Mar  4  2003 renderlib/include/render/render.h
[generic]                 2639    9361  28.2% -lh5- d684 Mar  4  2003 renderlib/include/render/render.i
[generic]                 1280    3617  35.4% -lh5- bff2 Mar  4  2003 renderlib/include/render/renderhooks.h
[generic]                 1276    3626  35.2% -lh5- 49da Mar  4  2003 renderlib/include/render/renderhooks.i
[generic]                  582    2131  27.3% -lh5- 29ae Mar  4  2003 renderlib/include/LVO/Render_lib.i
[generic]                  894    4401  20.3% -lh5- 78c4 Mar  4  2003 renderlib/include/pragmas/render_pragmas.h
[generic]                  148     246  60.2% -lh5- f690 Mar  4  2003 renderlib/src/lib_debug.h
[generic]                  306     749  40.9% -lh5- 298c Mar  3  2005 renderlib/src/lib_global.c
[generic]                  399     891  44.8% -lh5- 645a Mar 30  2003 renderlib/src/lib_init.h
[generic]                 3164   14588  21.7% -lh5- ec8d Mar  7  2003 renderlib/src/lib_init_68k.c
[generic]                  294     588  50.0% -lh5- 5a66 Mar  4  2003 renderlib/src/build/makefile_68k
[generic]                  214     478  44.8% -lh5- a130 Mar  4  2003 renderlib/src/build/makefile_mos
[generic]                  330     569  58.0% -lh5- bad5 Mar  3  2005 renderlib/src/build/makefile_os4
[generic]                  644    1897  33.9% -lh5- cc1b Mar  4  2003 renderlib/src/build/smakefile
[generic]                  416     707  58.8% -lh5- db90 Mar  4  2003 renderlib/src/build/smakefile_all
[generic]                  405     887  45.7% -lh5- b2b6 Mar  4  2003 renderlib/src/rnd_scale.h
[generic]                 3346   13686  24.4% -lh5- 8fba Mar  4  2003 renderlib/src/rnd_palette.c
[generic]                  371     906  40.9% -lh5- 801b Mar  4  2003 renderlib/src/rnd_palette.h
[generic]                 2529    8547  29.6% -lh5- e9d0 Mar 30  2003 renderlib/src/rnd_quant.c
[generic]                  179     255  70.2% -lh5- bd67 Mar  4  2003 renderlib/src/rnd_quant.h
[generic]                 3987   23281  17.1% -lh5- 984c Mar  4  2003 renderlib/src/rnd_render.c
[generic]                  654    1465  44.6% -lh5- 81c5 Mar  4  2003 renderlib/src/rnd_render.h
[generic]                 2675    9603  27.9% -lh5- 4c17 Mar  4  2003 renderlib/src/rnd_scale.c
[generic]                 2952   15536  19.0% -lh5- 0583 Mar  4  2003 renderlib/src/lib_init_mos.c
[generic]                 4737   32632  14.5% -lh5- 8310 Mar  3  2005 renderlib/src/lib_init_os4.c
[generic]                 2470   29906   8.3% -lh5- 5058 Mar  3  2005 renderlib/src/lib_init_os4_68k.c
[generic]                  677    2459  27.5% -lh5- 8f91 Mar  4  2003 renderlib/src/rnd_mapping.c
[generic]                  269     560  48.0% -lh5- 6c24 Mar  4  2003 renderlib/src/rnd_mapping.h
[generic]                 1368    4965  27.6% -lh5- 15b6 Mar  4  2003 renderlib/src/rnd_memory.c
[generic]                  388     967  40.1% -lh5- fad3 Mar  4  2003 renderlib/src/rnd_memory.h
[generic]                  282     927  30.4% -lh5- 1150 Mar  4  2003 renderlib/src/rnd_alpha.h
[generic]                 2347    9889  23.7% -lh5- 3ad7 Mar  4  2003 renderlib/src/rnd_conversion.c
[generic]                  342     830  41.2% -lh5- 81b7 Mar  4  2003 renderlib/src/rnd_conversion.h
[generic]                  665    2615  25.4% -lh5- cb31 Mar  4  2003 renderlib/src/rnd_diversity.c
[generic]                  198     331  59.8% -lh5- 32e1 Mar  4  2003 renderlib/src/rnd_diversity.h
[generic]                 2027    8085  25.1% -lh5- 9d61 Mar  4  2003 renderlib/src/rnd_histogram.c
[generic]                  562    1443  38.9% -lh5- ff37 Mar  4  2003 renderlib/src/rnd_histogram.h
[generic]                  178     427  41.7% -lh5- d0c2 Mar  3  2005 renderlib/src/rnd_all.c
[generic]                 1244    6429  19.3% -lh5- ae4a Mar  4  2003 renderlib/src/rnd_alpha.c
---------- ----------- ------- ------- ------ ---------- ------------ -------------
 Total        58 files  198836  701886  28.3%            Mar 21  2005

Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>