Please read the history bottom-up. Note that the history might list some
features that were implemented in beta versions and removed later but are
still mentioned here. This history is a log of the programmer so that he
can look up what has been done/tried/modified. Things that were implemented
and removed later are marked with [VOID].

Version 2.0   (22-Mar-26)
- Change: Updated documentation
- Change [Amiga]: The plugin will no longer install itself to an own directory but it will copy the doc
  and the examples to the Hollywood installation directory
- New [macOS/Linux]: Added builds for the macOS and Linux arm64 platforms 
- Fix [Amiga]: doc:CreateImageFromBrush() crashed with Miniwood if "UseJPEG" was set to TRUE and imageio
  library wasn't loaded; now it will exit cleanly in this case
- New: The plugin can now also load PDF pages directly into brushes using @BRUSH and LoadBrush(); pass
  the "Page" user tag to @BRUSH or LoadBrush() to specify the number of the page to load; there is also
  a "Transparent" user tag which can be used to specify whether or not the plugin should fill the PDF
  page with a white background; if "Transparent" is FALSE (the default), the page will automatically
  be filled with a white background, otherwise it will be made transparent; finally, there is a user
  tag named "Password" which can be used to specify the password for encrypted PDFs
- Fix [Amiga]: Input files managed by custom file adapters are handled correctly now
- New: There are two different flavours of the plugin now: pdf and pdf-lite; the "pdf" flavour contains
  the fully-featured PDF renderer whereas the "pdf-lite" flavour just contains the commands needed to
  create PDFs; pdf-lite is much smaller because it doesn't include any PDF rendering code; providing two
  versions of the plugin is a much cleaner solution than the old one with the external "Polybios.ext"
  file used on AmigaOS and compatibles for the PDF renderer
- Change: Renamed the plugin to PDF; the old name "Polybios" was somewhat confusing because of the word
  "bios" which sounded like the plugin had something to do with the BIOS even though it was just a pun
  on the ancient Greek historian
- New: pdf.OpenDocument() also supports a "UserTags" tag in the its optional table argument now
- New: When using the plugin's anim interface to load a PDF as a Hollywood anim, you can now pass a user
  tag named "Password" to @ANIM, OpenAnim() or LoadAnim() if you need to open a password-protected PDF
- New: Added support for Hollywood 10's ability to get the anim format name; when querying #ATTRFORMAT for
  anims loaded using the plugin you'll get "PDF" now
- New: Plugin supports Hollywood 10's user tag interface for file adapters now; all user tags will be
  forwarded to the corresponding file adapters now   
- Fix: pdf.GetBrush() didn't add a white background for PDFs that didn't have a proper media box setting
  (reported by Petteri Valli)
  
Version 1.3   (05-Dec-20)
- Change: Updated documentation
- Change: Amiga installer will now also copy the plugins for all platforms to Hollywood's linker plugins
  directory so that they can be easily linked to executables (suggested by kas1e)
- Fix: pdf.GetPageLen() and pdf.GetText() didn't skip potential control characters in the text correctly
  (reported by Petteri Valli)
- Fix: doc:SaveToFile() wasn't compatible with virtual files (reported by Jean Holzammer)
- New: When loading PDFs as animations using @ANIM or LoadAnim(), Polybios will create vector animations
  now if a Hollywood version that supports vector animations is installed; if you don't want that, pass
  TRUE in the new "NoVectorAnim" tag to @REQUIRE
- New: Polybios supports Hollywood Designer 5 now; note that it won't be loaded automatically because
  of its size; you need to manually tell Designer to load it in Designer's settings
  
Version 1.2   (11-Aug-19)
- Change: Updated documentation
- Fix: pdf.GetLastError() will now return #PDFERR_SUCCESS (0) in case pdf.OpenDocument() succeeded
  (reported by Petteri Valli)
- New: Added pdf.GetMediaBox() to get a page's media box and pdf.GetCropBox() to get a page's crop box
- New: Added pdf.PageToDevice() function and pdf.DeviceToPage(); these can be used to convert coordinates
  from page to device space and vice versa
- Fix: pdf.GetPageLinks() and its counterpart in pdf.GetBrush() didn't parse all page links correctly
  (reported by Petteri Valli)
- Fix: pdf.GetBookmarks() didn't make sure that there was enough stack space for the bookmark table
  (reported by Petteri Valli)
   
Version 1.1   (21-Jun-19)
- Change: Updated documentation
- Change [Examples]: PDF Viewer example supports password-protected PDFs now
- New [Amiga]: Added "KillExt" tool to distribution archive; this can be used to flush Polybios.ext
  from memory; Polybios keeps this in memory for performance reasons but it will require about 6 MB
  of memory; only ever use KillExt if all resources used by Polybios.ext have been released first
- Fix [Amiga]: Automatic platform selector in installer didn't work correctly
- Fix [Amiga]: ".." and "." weren't handled correctly in filename specifications
- New [Amiga]: Added version string to Polybios.ext
- New: Added new attributes for GetAttribute(): #PDFATTRVERSION returns the document's PDF version
  and #PDFATTRPERMISSIONS returns its permissions
- New: Added pdf.GetLastError(); this can be called if pdf.OpenDocument() fails to get extended error
  information; if it returns #PDFERR_PASSWORD, the document couldn't be opened because it's password
  protected
- New: Added pdf.GetPageLabel() which can be used to get labels from PDF pages
- New: Added pdf.GetMetaText() which can be used to get meta-data from a PDF document
- New: Added pdf.GetBookmarks() function; this will return a table containing all bookmarks used by
  the PDF document as well as their targets; the table returned by this function is similar to the one
  returned by pdf.GetPageLinks(), except that bookmarks can be nested
- New: Added the following functions for searching PDF pages for text: pdf.FindStart(), pdf.FindNext(),
  pdf.FindPrev(), pdf.GetFindResult()
- New: Added the following functions to deal with text on a page: pdf.GetPageLen(), pdf.GetText(),
  pdf.GetCharBox(), pdf.GetCharOrigin(), pdf.GetCharIndexAtPos(), pdf.GetRects(), pdf.GetBoundedText();
  these functions can be used to retrieve text from a PDF page as well as its position
- New: Added pdf.GetPageLinks() function; this will return a table containing all links in a page and
  their targets
- New: Added pdf.LoadPage() and pdf.FreePage() for fine-tuned control over page loading; also added
  pdf.GetBrushFromPage() for getting brushes from pages loaded using pdf.LoadPage()
- New: Added pdf.IsPDF() function; this can be used to check if the specified file is a PDF document
  (requested by Petteri Valli)
- Fix [Amiga]: Polybios didn't exit cleanly when opened by hosts that use a pre-Hollywood 6.0 plugin
  interface (e.g. Hollywood Designer or executables compiled by Hollywood < 6.0) (reported by Petteri
  Valli)
- New: Added optional argument to pdf.GetBrush(); if this is set to TRUE, pdf.GetBrush() will return
  an additional table that contains a collection of all links in the page; the table will contain
  information about the position, type, and target of each link in the page (requested by Petteri Valli)
- Change [68k]: Recompiled with Bebbo's latest gcc 6 for 68k; WinUAE users note that you'll need at
  least WinUAE 4.2.1 for Polybios now because older versions had a bug in the 68020 emulation which can
  make Polybios crash
- Fix [BigEndian]: Password-protected PDFs couldn't be opened on big endian architectures because of
  an endian issue in the encryption key generator in PDFium; this will also fix some other non-password
  protected PDFs; when will people learn to write endian-independent code? (reported by Petteri Valli)
- Fix: pdf.GetBrush() trashed memory when the destination brush was a brush created by pdf.GetBrush()
  (reported by Petteri Valli)
- Fix [Amiga]: Polybios.ext couldn't be correctly loaded from a path with spaces (e.g. "RAM Disk:")
  (reported by Frank Mariak)
 
Version 1.0a  (28-Jun-18)
- No version bump to 1.1 because only the Amiga versions have been changed and I'm too lazy
  to re-compile all other platforms just for an updated version string
- Fix [Amiga]: pdf.OpenDocument() didn't work with filenames with non-ASCII characters
  (reported by Rafal Chyla)
- New [OS3]: Added 68881/2 FPU build of Polybios; especially the PDF renderer is a lot
  faster when using the FPU version
- New [OS3]: The AmigaOS 3.x version of Polybios supports PDF rendering now; thanks a lot
  to Stefan "Bebbo" Franke for his work on gcc 6.4 for m68k which made this possible!;
  NB: if you intend to use the 68k version on OS4 (which doesn't really make sense, but
  anyhow), you have to turn off the JIT for LIBS:Hollywood/Polybios.ext because with JIT
  Petunia seems to be stuck in an endless loop; on MorphOS the 68k PDF renderer won't
  work either but this looks like a bug in MorphOS' 68k emulation to me; on WinUAE it
  works fine
 
Version 1.0   (21-Apr-18)
- First Release
