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

dev/misc/renderlib31.lha

Mirror:Random
Showing:m68k-amigaosppc-amigaosppc-morphosi386-arosi386-amithlonppc-warpupppc-powerupgeneric
No screenshot available
Short:Assembler version of render library
Author:Timm S. Müller
Uploader:Andreas Falkenhahn (andreas airsoftsoftwair de)
Type:dev/misc
Version:31
Requires:MC68020
Architecture:m68k-amigaos >= 2.0.4
Date:2016-01-10
Download:http://aminet.net/dev/misc/renderlib31.lha - View contents
Readme:http://aminet.net/dev/misc/renderlib31.readme
Downloads:621
=========================================================================
IMPORTANT NOTE: This is not the latest version of render.library. The
latest version is v40.8 and it is available from dev/misc/renderlib.lha.
The reason why this version is still here is that v31 is the last version
of render.library implemented in assembler. It is much faster than v40
which is implemented in C and doesn't have any major new features over
v31. That's why you might want to use v31 instead if you care about
performance. Source code included.
=========================================================================

render.library


> overview

  render.library is an amiga shared library that serves an image
  processing kernel. it is an interface between truecolor and
  chunky graphics, and it supports all amiga-specific pixel and
  color schemes. render.library provides palette-management,
  histograms, alpha-channel processing, color reduction, scaling,
  rendering, dithering, texture-mapping, and many conversion and
  support functions.
  
  this archive provides the original version, which was
  implemented in 68k assembler. source code is included. it is
  written in fairly optimized mc680x0 assembler code. due to
  non-portability of assembler code, the render.library project
  is now feature-freezed, and the source codes have been made
  available to the public.

  feel free to improve the code, add features, and eliminate
  bugs. i would like to integrate your contributions to the
  project, but I strongly appeal you to not release API
  modifications that breach downwards-compatibility under the
  same name, since render.library is used by a couple of
  concurrent software projects.


> license

  render.library is released under the terms of a BSD-style
  license. see COPYING for details. don't take it too serious,
  there is no need to change texts in existing software.


> technical issues

  render.library is entirely written in 68020-68060 assembler,
  and mostly optimized for performance. optimization is not
  kept at a constant high level, though. general applicability
  was preferred over speed, and some parts of the code are
  pretty much outdated (namely the chunky-2-planar conversion).
  the library evolved very slowly. some early parts have been
  written back in 1992, the latest bugfixes (prior to this
  release) have been applied in 1999. several quirks and bugs
  remain, though. shortcomings:
  
  - palette-sorting crashed when a digital-tree histogram was
  passed to SortPalette() for sort-modes requiring the
  RND_Histogram argument. i 'bugfixed' the function (v29.1) by
  returning SORTP_NOT_IMPLEMENTED in this case, thus bypassing
  the buggy code.

  - render.library still uses old custom memcopy and memset
  routines limited to blocks of 16 megabytes. strange enough
  i've never encountered problems with it, but this is to be
  interpreted as a bug, since the limit does not comply to any
  definitions and is never caught. if you want to replace the
  memcopy function, please keep in mind that it must support
  overlapping copies.

  - most loops are unrolled, but not all unrolled loops have
  been made superscalar.

  - texture-mapping is implemented in a sloppy way, i expect
  many latent problems with undefined number ranges,
  inaccuracies, etc. in addition to that, it is only weakly
  optimized. note: the texture-mapping code looks awful, and i
  would rather rewrite the whole thing than ever touch a line
  of it again.

  - some objects are internally protected with semaphores for
  safe use in a multitasking environment. that was a bad
  design choice. protection should have taken place in the
  application space. it cannot be removed anymore, as some
  software built on top depends on it.

  - labels and comments are in a strange mixture between
  english and german.


> build instructions

  0. cd to the src directory
  1. adjust cpu type in Render_lib.asm
  2. genam incdir include: -vp=68020/68881 bdw inconce Render_lib.asm
  3. copy Render_lib to LIBS:render.library




Contents of dev/misc/renderlib31.lha
PERMISSION  UID  GID    PACKED    SIZE  RATIO METHOD CRC     STAMP     NAME
---------- ----------- ------- ------- ------ ---------- ------------ ----------
[generic]                20198   99161  20.4% -lh5- d5ae Sep  3  1998 RenderLib_v31/autodoc/render
[generic]                18768   87326  21.5% -lh5- a1f0 Jul 21  1998 RenderLib_v31/autodoc/render.doc
[generic]                  857    1661  51.6% -lh5- eddf Jun 29  2002 RenderLib_v31/COPYING
[generic]                  886    2996  29.6% -lh5- 653a Oct  6  1997 RenderLib_v31/fd/render_lib.fd
[generic]                 7584   20238  37.5% -lh5- cfa5 Jun 29  2002 RenderLib_v31/HISTORY
[generic]                 1088    5258  20.7% -lh5- dadd May 19  1999 RenderLib_v31/include/clib/render_protos.h
[generic]                  582    2131  27.3% -lh5- 29ae Oct  6  1997 RenderLib_v31/include/LVO/Render_lib.i
[generic]                  895    4401  20.3% -lh5- 78c4 Aug 15  1997 RenderLib_v31/include/pragmas/render_pragmas.h
[generic]                  180     180 100.0% -lh0- 147d Jan  3  1997 RenderLib_v31/include/proto/render.h
[generic]                 2742   10199  26.9% -lh5- 8745 Feb  3  1999 RenderLib_v31/include/render/render.h
[generic]                 2639    9361  28.2% -lh5- d684 Feb  3  1999 RenderLib_v31/include/render/render.i
[generic]                 1281    3617  35.4% -lh5- bff2 Feb  3  1999 RenderLib_v31/include/render/renderhooks.h
[generic]                 1276    3626  35.2% -lh5- 49da Feb  3  1999 RenderLib_v31/include/render/renderhooks.i
[generic]                23499   52348  44.9% -lh5- fe74 Jun 29  2002 RenderLib_v31/libs/render.library_68020
[generic]                23414   52236  44.8% -lh5- ca23 Jun 29  2002 RenderLib_v31/libs/render.library_68040
[generic]                23423   52444  44.7% -lh5- 4d27 Jun 29  2002 RenderLib_v31/libs/render.library_68060
[generic]                 1697    3294  51.5% -lh5- 9e58 Jun 29  2002 RenderLib_v31/README
[generic]                 3399   19735  17.2% -lh5- 170c Feb  4  1999 RenderLib_v31/src/alpha.i
[generic]                17524  101877  17.2% -lh5- ef6a Feb  3  1999 RenderLib_v31/src/Conversions.i
[generic]                 1227    9156  13.4% -lh5- 9f5f Oct  4  1998 RenderLib_v31/src/Dither_EDD.i
[generic]                 1621   15878  10.2% -lh5- 9bd1 Dec 18  1997 RenderLib_v31/src/Dither_FS.i
[generic]                 1338    9675  13.8% -lh5- 18e4 Aug  9  1997 RenderLib_v31/src/Dither_Random.i
[generic]                  900    3169  28.4% -lh5- 4be5 May  4  1998 RenderLib_v31/src/Engine.i
[generic]                 8114   38103  21.3% -lh5- 1da7 Jun 29  2002 RenderLib_v31/src/Histogram.i
[generic]                 1570    9379  16.7% -lh5- 47b8 Feb  3  1999 RenderLib_v31/src/Interface.i
[generic]                  594    1831  32.4% -lh5- fc99 Feb  3  1999 RenderLib_v31/src/Konstanten.i
[generic]                  249    1016  24.5% -lh5- bc90 Dec 17  1996 RenderLib_v31/src/Makros.i
[generic]                 6217   36744  16.9% -lh5- f434 Jun 29  2002 RenderLib_v31/src/Mapping.i
[generic]                 5810   26255  22.1% -lh5- a20f Jun 29  2002 RenderLib_v31/src/mediancut.i
[generic]                 2092    9255  22.6% -lh5- 3093 Jun 29  2002 RenderLib_v31/src/MemHandler.i
[generic]                 7188   34060  21.1% -lh5- b47f Jun 29  2002 RenderLib_v31/src/Palette.i
[generic]                 2734    9192  29.7% -lh5- bce3 Aug  9  1997 RenderLib_v31/src/Quantize.i
[generic]                 5114   28255  18.1% -lh5- 13c1 Feb  3  1999 RenderLib_v31/src/rendering.i
[generic]                 3595   16045  22.4% -lh5- 197f May 31  1998 RenderLib_v31/src/RenderMakros.i
[generic]                 2071    8602  24.1% -lh5- da24 Jun 29  2002 RenderLib_v31/src/Render_lib.asm
[generic]                 3495   16718  20.9% -lh5- 34be Feb  3  1999 RenderLib_v31/src/Scaling.i
[generic]                  221     478  46.2% -lh5- 4347 Aug 10  1997 RenderLib_v31/src/SquareRoot.i
[generic]                 2228    8163  27.3% -lh5- 3a0d May 24  1999 RenderLib_v31/src/Structures.i
[generic]                 2283    5398  42.3% -lh5- 772e Dec 18  1997 RenderLib_v31/src/tables.i
[generic]                 4831   19364  24.9% -lh5- 5871 Jan  9  1999 RenderLib_v31/src/texturemapping.i
[generic]                  776    3107  25.0% -lh5- c7ad Feb  3  1999 RenderLib_v31/src/TurboCopyMem.i
[generic]                  539    1411  38.2% -lh5- efb6 Jul 13  1996 RenderLib_v31/src/TurboFillMem.i
[generic]                  447    1189  37.6% -lh5- 0254 Feb  3  1999 RenderLib_v31/src/zufall.i
---------- ----------- ------- ------- ------ ---------- ------------ ----------
 Total        43 files  217186  844532  25.7%            Jan 10 17:20

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