## 2.5 History

        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

Show TOC