history ------------------------- v3.1 - 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 9bit colorspace drawhandle. - MakePictureA() now accepts a NULL palette for PIXFMT_CHUNKY_CLUT. This will create a default-palette (256 colors black->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.