home *** CD-ROM | disk | FTP | other *** search
-
- history
- -------------------------
-
- v16.2
-
- - improved mask handling: LoadPicture() now computes an
- alpha-channel from a given transparency color, when no
- PDTA_MaskPlane was returned. this solves some
- outstanding compatibility problems with the picasso96
- picture.datatype. thanks to S. Bauer for reporting
- these problems.
-
- - fixed version string
-
- v16
- - added GGFX_RastLock for passing an optional SignalSemaphore
- that may be used for locking a drawhandle's rastport while
- rendering.
-
- - default dithermode is now DITHERMODE_EDD.
-
- - v39 exec pooled memory environment reactivated (it was
- disabled since v10).
-
- - added StormC includes.
-
- - removed all assembler and E includes. I'm too lazy to
- keep the assembler files up-to-date manually, and the
- iconvert tool of E throws enforcerhits on my system.
- (if you're programming the respective languages, you
- should have better ways to transform the includes than
- I have)
-
- v15.2
- - static-palette drawhandles allocate much better pens now
- (a YUV colorspace is used instead of RGB), and allocation
- is quicker.
-
- v15.1
- - render.library crashed with an ILLEGAL exception
- (caused by a memhandler leak) when a HAM picture
- was loaded with a v42 ILBM datatype. fixed.
-
- - CreatePictureMask() failed to create scaled masks.
- fixed.
-
- v15
- - added a few basic examples to the documentation.
- - added GGFX_UseMask for LoadPicture(). if TRUE and supported
- by the datatype, a mask will be read and included to the
- picture as an alpha-channel.
- - new function: CreatePictureMask(). This function creates
- a single-bitplane mask from a picture's alpha-channel. it
- can be passed to graphics.library/BltMaskBitMapRastPort().
- - CreatePictureBitMap() now accepts a NULL picture. This can
- be used to allocate a blank bitmap that can be blitted
- to a drawhandle efficiently.
-
- v14
- - minor bug in MakePicture() fixed: when a blank
- picture was created (data = NULL), the independent
- flag was internally not set to TRUE.
- - PICMTHD_AUTOCROP cropped blank pictures down to zero
- pixels - fixed. (oops! evil crashes :-)
-
- v13
- - minor internal changes
-
- v12
- - added picture method PICMTHD_AUTOCROP
- - the includes did not contain the definitions for
- PICMTHD_NEGATIVE. fixed.
-
- v11
- - the Tower JPEG codec is no longer supported directly.
- - added documentation for the v9 directdraw functions.
-
- v10.2
- - env/usescalepixelarray is no longer considered for
- CreatePictureBitMap(). this function always uses
- internal scaling routines now.
-
- v10.1
- - fixed a semaphore lockup problem when MakePicture() failed due to
- a lack of memory
- - parts of the library have been restructured.
- - internal bitmap handling rewritten.
- - MakePicture() has been rewritten. lots of sanity checks have been added.
- bitmap conversion is more efficient. scaling has been included.
- - fixed DirectDrawTruecolor() on truecolor screens without scaling
- - rewrote ReadPicture(), added tags GGFX_AspectX, GGFX_AspectY,
- GGFX_DestWidth, GGFX_DestHeight, and GGFX_ModeID.
- - added picture method PICMTHD_NEGATIVE
-
- v10
- - major stability update! thanks to Luca Longone, who encountered
- MystiCube crashing when started multiple times. the internal
- memory manager is now reset to RMHTYPE_PUBLIC, and no problems
- occured with 4 mysticubes, 2 mysticviews in slideshow mode,
- rgbplasma, plus viewworld running simultaneously for many hours
- under heavy debugging conditions.
-
- public memory management seems to solve all outstanding problems,
- but it causes more memory fragmentation. a more sophisticated
- memory manager is being planned.
-
- - added documentation for Source-Tags in picture method
- PICMTHD_MIXALPHA.
-
- v9.0
- - CreatePictureBitmap() now returns gently with a NULL pointer
- when no valid picture or drawhandles were specified.
- - added CreatePictureMask(). (experimental, not for public use yet)
-
- v8.5
- - added env variable AUTODITHERTHRESHOLD
- - env variables are now considered only once, when the
- library is opened.
- - forgot to document PICMTHD_SET in the autodocs. fixed.
- - added method PICMTHD_CHECKAUTODITHER.
-
- v8.4
- - GGFX_AutoDither is now considered by DrawPicture()
-
-
- v8.3
- - fixed CreateDirectDrawHandle(). when the input and
- output dimensions were the same, this function returned
- NULL instead of a valid directdrawhandle.
-
- - added support for texture-mapping and rotating while
- drawing (no additional buffers required). currently
- not documented and for internal use only.
-
- - added env variable guigfx/USEWPA8. it is used when the
- drawhandle is on a native Amiga screenmode. when set to
- 0, guigfx.library will use an internal c2p routine.
- when set to 1, guigfx.library will call WritePixelArray8(),
- WritePixelLine8() or WriteChunkyPixels().
-
- v8.2
- - 12bit (default) drawhandles now use mapping-engines for
- optimized rendering to static palettes (no pen-sharemap
- specified for ObtainDrawHandle()). this is preliminary,
- for test purposes only.
-
- - fixed PICMTHD_INSERT to support insertion of pictures
- which are both mapped to the same drawhandle. untested yet.
-
- v8.1
- - to end up problems with cybergraphics.library/ScalePixelArray(),
- I've included an ENV variable named guigfx/USESCALEPIXELARRAY
- so that the user may decide. Default is "0", and
- guigfx.library/DrawPicture() uses its internal scaling
- routines. DirectDrawTrueColor() always uses ScalePixelArray()
- with cgfx v41 present.
-
- v8.0
- - added CreateDirectDrawHandle(), DeleteDirectDrawHandle()
- and DirectDrawTrueColor() for optimized drawing of
- RGB data.
-
- - wowsers, cybergraphics.library/scalepixelarray() seems
- to get faster and buggier with every new cybergraphics
- update. i wonder if the authors still know what's going
- on inside? anyway, i can't really decide whether to use
- it or not. currently, DirectDrawTrueColor() uses it for
- higher performance, and DrawPicture() doesn't for
- accurate scaling without flicker.
-
- v7.2
- - applied Tower JPEG Class license agreements to the
- legal informations.
-
- - If you want to use the Tower JPEG codec, your program
- has to be in accordance to the respective license
- agreements. Specify the tag GGFX_License for
- IsPicture() and LoadPicture() to use the JPEG codec.
- Otherwise, datatypes are used.
-
- v7.1
- - added picture mehtods PICMTHD_FLIPX and PICMTHD_FLIPY.
-
- v7.0
- - added picture method PICMTHD_INSERT.
-
- v6.2
- - improved drawing speed with OS3.0
-
- v6
- - ClonePicture() now handles scaling.
- - minor changes and speed improvements.
- - JPEG is the first file format to be supported
- directly. LoadPicture() uses the tower.library
- JPEG codec if available. directly supported
- formats require less memory while loading.
-
- v5
- - added method PICMTHD_TINTALPHA
-
- v4.4
- - since v4.3, ObtainDrawHandle() crashed on screens with
- no sharable pens. fixed.
- - if render.library cannot be found in LIBS:,
- guigfx.library now tries to open it at libs/.
- - IsPicture() no longer crashes without datatypes.library.
-
- v4.3
- - improved logic in ObtainDrawHandle() for
- truecolor-rastports and pensharemap=NULL
- - updated autodocs.
- - Calls to ScalePixelArray()/cybergraphics v41 have been
- removed. Instead, a 24bit render.library scaling-engine
- is used. ScalePixelArray() is too slow (especially with
- large images), does not scale correctly, causes
- flickering, and cannot be interrupted.
- - fixed PICMTHD_SET with pictures mapped to a drawhandle.
- - added tags GGFX_SourceWidth, GGFX_SourceHeight,
- GGFX_SourceX und GGFX_SourceY to ClonePicture(). It's
- now possible to clone a picture in part.
- - fixed a minor bug in MakePicture().
- - MakePicture() now accpets NULL as the palette argument
- for PIXFMT_CHUNKY_CLUT, in which case a grey palette
- with 256 entries will be generated.
-
- v4.2
- - DrawPicture() did not set a correct return value under
- rare circumstances. fixed.
- - pictures now cache their last scaling-engine.
- - DrawPicture() is now guaranteed to execute the line hook
- at least once per call.
-
- v4.1
- - the functions LockPicture() and UnlockPicture() are now
- considered 'obsolete'. Calling LockPicture() will always
- return FALSE, and UnlockPicture() will do nothing.
-
- Please remove these functions from your code and replace
- them with a call to DoPictureMethod() with
- PICMTHD_MAPDRAWHANDLE if you need optimized rendering.
-
- The idea behind LockPicture() wasn't too bad, but currently
- it is not possible to implement it properly. LockPicture()
- and UnlockPicture() will no longer be documented, but the
- LVOs remain valid and might be reactivated some day. Calling
- these functions in already existing code is harmless.
-
- v4.00
- - implemented IsPicture()
-
- v3.11
- - fixed several memory management problems with LoadPicture().
-
- v3.10
- - fixed a heavy bug leading to memory corruptions, especially
- when drawing to native Amiga screen modes.
-
- v3.03
- - MakePictureA() now accepts NULL as a data pointer. This
- will create a 'blank' picture with the specified
- attributes.
- - ObtainDrawHandleA() now accepts NULL for the pensharemap
- argument. In this case ObtainDrawHandle creates a drawhandle
- with a static 9bit colorspace palette.
- - MakePictureA() now accepts a NULL palette for PIXFMT_CHUNKY_CLUT.
- This will create a default-palette (256 colors from black to white)
- - drawing to bitplanes without scaling is now performed
- via Chunky2BitMap/BltBitMapRastPort.
- - implemented PICMTHD_SET.
- - fixed lots of bugs in internal picture conversion routines.
-
- v3.02
- - guigfx.library no longer depends on datatypes.library v40.
- the minimum version number is reset to v39.
- - implemented PICMTHD_TEXTURE.
- - bumped revision number for render.library to v25.
-
- v3.01
- - fixed a minor bug in LockPictureA().
- - added documentation for LockPictureA() and UnLockPicture().
- - added a workaround for INVALID_ID originating from
- PDTA_ModeID. INVALID_ID returned by a datatype appears
- neither logical nor legal to me. anyway, guigfx.library
- no longer crashes with HAM8 pictures loaded by the ILBM v43
- datatype in an ECS/OCS environment. however, the images still
- appear scrambled, since guigfx.library cannot determine whether
- to treat an image as HAM8 or not.
-
- v3.00
- - Some more tags implemented.
- - the autodocs have been reworked.
- - the internal memhandler has been reset to RMHTYPE_POOL.
- - implemented LockPicture() and UnlockPicture().
- - color allocation strategy improved.
- - datatypes.Library is no longer required for guigfx.library
- to be opened successfully.
-
- v2.01
- - fixed GGFX_SourceX / GGFX_SourceY when drawing truecolor data to
- truecolor rastports without scaling. Thanks to M. Hillenbrand
- who reported this obstinate bug.
-
- v2.00
- - fixed some internal histogram-related quirks and problems.
- the resolution of a picture's histogram is now by default the
- pensharemap's resolution it is being added to. if no
- pensharemap is involved, then the histogram's resolution
- will be set to the default resolution (currently HSTYPE_12BIT_TURBO).
- You may as well set GGFX_HSType for LoadPicture(), MakePicture(),
- and ReadPicture(), but this is not required under normal
- circumstances. Better set the desired resolution when calling
- CreatePenShareMap().
- - guigfx.library no longer crashes with old versions of
- render.library. Now it closes down gently (It seems as I was
- completely brain-dead when I wrote the setup routine)
- - autodocs now reflect all new tags and methods.
-
- v1.99
- - since the autodither value cannot be computed when rendering
- to HAM screen modes, HAM dithering is always enabled with
- autodither != 0 and disabled with autodither==0.
- - fixed documentation of AddPaletteA() and fixed a bug in
- AddPalette() / PALFMT_RGB32. Thanks to Frank Pagels who
- reported these problems.
- - added picture method PICMTHD_TINT.
- - guigfx.library no longer tries to open Cybergraphics.library
- v41. The code now correctly differentiates for ScalePixelArray()
- and custom scaling routines. Thanks to M. Hillenbrand and
- S. Sommerfeld who reported this bug.
-
- v1.98
- - drawing/scaling truecolor to truecolor drawing is now
- done with ScalePixelArray/cybergraphics.library which
- isn't as slow as I expected. It can stand the test
- with a render.library scaling-engine plus line-by-line
- drawing, and it requires no additional memory.
- - The code now differenciates graphics v40 for drawing to
- graphic card rastports via WriteChunkyPixels().
-
- v1.97
- - guigfx.library now tries to convert chunky pictures to
- truecolor before drawing to HAM modes. if conversion
- fails (i.e. with the picture in a static buffer), the
- image will be drawn with the 16/64 HAM base colors.
-
- v1.96
- - fixed a minor bug that occured when drawing odd-width
- pictures in directdraw mode.
- - guigfx.library now renders to HAM modes. Currently the
- full HAM spectrum is only used with truecolor pictures.
- When ObtainDrawHandle() is supplied with GGFX_ModeID,
- then HAM is automatically recognized and used.
-
- v1.95
- - removed a workaround for an incompatibility problem
- between the cybergraphx and picasso96 picture.datatypes.
- loading is faster now and requires less memory. this
- update requires the picasso96 picture.class datatype
- v43.26.
- - revised autodocs and completed the documentation for
- the picture method PICMTHD_CREATEALPHAMASK.
-
- v1.94
- - fixed a overlap-memcopy bug in PICMTHD_CROP. You need to
- upgrade to render.library v22.1.
-
- v1.93
- - improved alpha-channel handling. PICMTHD_MIXALPHA
- now handles alpha-channels in both the source and
- destination picture (if present).
- - implemented PICMTHD_CREATEALPHAMASK.
- - added E includes
-
- v1.92
- - fixed bug in DoPictureMethod: certain internal format
- conversions lead to crashes since v1.7.
- - implemented PICMTHD_RENDER with destination format
- PIXFMT_RGB_24.
- - completed alpha-channel administration. an alpha-channel
- is no longer discarded when the internal pixel format
- changes.
- - implemented GGFX_AlphaPresent for MakePicture()
-
- v1.9
- - rewrote all drawing routines. the code is more
- differentiated for optimized drawing.
- - autodither fixed. finally this feature works as
- it was originally intended to.
- - Fixed v1.8 bug when drawing to truecolor screens.
- - implemented GGFX_DitherMode for DrawPicture() and
- CreatePictureBitMap(). They may be used to optionally
- override the drawhandle's dithermode.
- - Note: guigfx.library v1.9 requires render.library v21.
- - implemented GGFX_AspectX and GGFX_AspectY to
- MakePicture().
-
- v1.8
- - ObtainDrawHandle() no longer allocates pens for
- truecolor rastports. Thanks to Stefan Sommerfeld
- who reported this bug.
- - GGFX_SourceWidth and GGFX_SourceHeight were not
- correctly implemented for CreatePictureBitMap()
- - fixed minor memory transfer problems: TurboCopyMem()
- was sometimes applied to odd-sized memory areas
- - implemented GGFX_BufferSize for MakePicture()
-
- v1.7
- - a picture has no longer to be maintained for an open
- colorhandle. with other words: you may DeletePicture()
- a picture after it has been added to a pensharemap via
- AddPicture().
- - implemented GGFX_MaxAllocPens for ObtainDrawHandle().
- This limits the number of allocated pens to a specific
- number. Better you use this feature only if you've got
- a very good reason for it.
- - math problems fixed. GGFX_Weight should work now. a better
- color allocation strategy has been implemented.
- Currently use GGFX_Weight in a range from 1-10. Maybe
- I will implement a more sophisticated measurement later.
- - internal color allocation order is now PALMODE_SATURATION
- instead of PALMODE_SIGNIFICANCE. this improves color
- allocation speed drastically.
- - drawhandles no longer maintain a global mapping-engine.
- this saves some memory and is remarkably faster in many
- situations, since the mapping-engine could not be linked
- to the drawhandle's histogram.
-
- v1.6
- - implemented GGFX_ErrorCode for LoadPicture(). You specify
- a pointer to LONG, and a standard DOS error code will be
- returned (NULL when everything was OK).
-
- v1.5
- - LoadPicture() did not always handle v43 bitmaps correctly.
- Fixed. Thanks to Markus Hillenbrand who reported this bug.
- - guigfx.library's global memhandler is reset to RMHTYPE_PUBLIC
- for debugging, since public memory violations can be
- tracked down more easily.
- - fixed PICMTHD_MIXALPHA with the source picture in
- PIXFMT_CHUNKY_CLUT
- - added PICATTR_AspectX and PICATTR_AspectY to GetPictureAttrs()
-
- v1.4 - fixed minor autodither bug.
- - GGFX_CallBackHook implemented for CreatePictureBitMap.
- - the autodither calculation is now invoked only for rastports
- with a depth <= 8
-
- v1.3
- - added GGFX_DitherMode to CreatePictureBitMap()
- - added GGFX_DestWidth, DestHeight, DestX and DestY to
- method PICMTHD_MIXALPHA and PICMTHD_SETALPHA.
- added GGFX_DestWidth, DestHeight, DestX, DestY, SourceX,
- SourceY, SourceWidth, SourceHeight to method PICMTHD_MIX.
- after all, DoPictureMethod() can apply clip regions of alpha
- channel data to regions inside the picture, with automatic
- scaling when necessary.
- - cleaned up all drawing routines.
- - GGFX_CallBackHook implemented for DrawPicture.
-
- v1.2
- - fixed a bug in ClonePicture(). When a cloned picture was
- deleted after the original, a memhandler-failure occured
- (leading to an ILLEGAL exception in render.library)
- - fixed a bug in LoadPicture() - eliminated calls to IoErr().
- dos.library is not part of guigfx.library. this fixes
- crashes with unknown datatype objects or load errors.
- - guigfx.library now uses a global memhandler with RMHTYPE_POOL
- and MEMF_REVERSE.
- - implemented GGFX_SourceWidth, GGFX_SourceHeight, GGFX_SourceX
- and GGFX_SourceY for DrawPicture(). Now you can easily specify
- offsets.
-
- v1.1
- - fixed a heavy bug when drawing to native Amiga screen modes.
-
-
- v1.0
- - first internal beta release.
-
-