0.13.1 [2022-03-19]
- support for SDL 2 via PyGame 2.0
- many fixes in native library path detection
- new option --background to set display background color
- fixed crash with page title extraction in PDF files with broken text encoding
- fixed mouse hiding (--mousedelay 1) not working properly;
  added -N/--nocursor as an alias for that
- --mousedelay now also works in windowed mode
- software mouse cursor is hidden too when the mouse leaves the window
- fixed interactive toggling of the "no-overview" (O key) and "skip" (I key)
  properties from overview page (they acted on the wrong page)
- 'transition' PageProps can now be strings instead of direct class references
- basic support for Raspberry Pi 1-3 with KMS graphics drivers
- improved library version number and crash reporting
- removed bytecode version again due to compatibility issues


0.13.0-beta2 [2020-05-31]
- added 'prev' and 'next' PageProps to change order of pages
- fixed many remaining Python 3 compatibility issues
- added "pseudo-binary" version (actually compressed bytecode) in the source
  release archive (requires Python 3)
- circumvent blurry fonts on Windows due to high-DPI scaling
- fixed crash in overview page handling when presentations have very many pages
- fixed box-zoom mode display error in half-page mode
- Win32 build back to 32 bits due to broader compatibility


0.13.0-beta1a [2019-11-21]
- hotfix for a segfault when using Impressive on Linux with PyGame installed
  from pip (instead of the distribution's package manager)


0.13.0-beta1 [2019-11-20]
- Python 3 compatibility: should work with Python 2.7 and >= 3.6 now
- Win32 build uses 64-bit Python 3
- improved support for non-ASCII characters in page titles (as extracted
  with pdftk)
- added option to set last page of page progress bar (--progress-last)
- added separate overview animation time option (--overtime)
- can now have multiple progress bars at once
  - page progress is moved to top of screen if any other bar is visible
  - "auto progress" is stacked over duration bar if both are visible


0.12.1 [2019-08-28]
- fixed crash in crash reporter with recent Pillow versions
- fixed crash with recent PyGame versions when non-latin characters appeared
  in slide titles
- fixed page rotation
- fixed -x/--fade mode
- fixed directory playback mode
- basic Raspberry Pi 4 compatibility (untested; requires X11)
- more robust PDF hyperlink parser (page boxes can now be PDF references)
- added option to temporarily inhibit automatic slideshows
  - default keybinding: [A] key, actions: auto-start, auto-stop, auto-toggle


0.12.0 [2018-02-04]
- many zoom mode related changes
  - box-zoom mode: use Ctrl+LMB-drag to draw a box and zoom it to fit
    the screen; everything else is darkened
  - support for fractional zoom levels
  - ability to zoom further in than the hardware's maximum texture size
    (without additional sharpness though)
  - maximum zoom detail re-rendering level now limited to hardware capabilities
    or --maxzoom option
  - mouse wheel zooming
  - new effect of --nowheel option: can now enter zoom mode with mouse wheel
  - zoom mode panning now also with MMB (like in GIMP, Inkscape etc.)
- many video related changes
  - allow videos in the file list (in addition to PDF files and images)
  - made --auto not interrupt videos
  - using omxplayer instead of MPlayer on Raspberry Pi
  - Win32 build now ships with a much less outdated version of MPlayer
  - changed MPlayer platform options
  - added workaround for Win32 MPlayer fullscreen issue that hid the
    Impressive window every time a video was played
- made Impressive suitable for Raspberry Pi-based digital signage:
  - added boot_impressive.sh script (SVN only) that replaces init
  - added --bare option: disables any features that require temporary files
  - added --nooverview option: disables the overview page
  - added --nocursor option: disables any type of mouse cursor
- made additional buttons of multi-button mice accessible as btn6, btn7, etc.
- added options --box-edge, --zbox-edge and --zoomdarkess to configure
  highlight box / spotlight / zoom box appearance
- added --time-display option: start with time display and tracking
- some Makefile improvements: install and uninstall targets, PREFIX parameter


0.11.3 [2018-02-04]
- fixed --auto mode that was broken in 0.11.2
  (only worked properly for the first page)
- fixed excessive mouse sensitivity in full-screen mode
- fixed crashes when clicking hyperlinks in some PDFs
- fixed non-working hyperlinks when more than one input document is specified


0.11.2 [2017-12-19]
- added new MuPDF renderer, uses no temporary files or named pipes on POSIX
  with MuPDF >= 1.4
- can now use MuPDF's mutool instead of pdftk to get basic file information
  and unpack PDF files (for hyperlink decoding)
  - pdftk is no longer required to open "modern" PDF files
  - only page title extraction still needs pdftk
- added --noquit option to prevent accidental single-key quitting
- input files are now checked for playability (to prevent users from
  accidentally playing .info files)
- fixed non-responsiveness to any controls on slow systems where rendering a
  page takes longer than the --auto interval
- when cancelling a transition using a key or mouse click, the key press or
  click is no longer discarded
  - recommended to use a modifier key (Ctrl, Alt, or Shift) to cancel
    transitions without "side effects"
- first page is now shown as early as possible (before fonts etc. have been
  preloaded)
- fixed occasional re-rendering of pages that have already been rendered
- fixed 'keys' PageProp that was broken since 0.11.0
- fixed missing OSD fonts in Win32
- fixed path detection of helper programs in Win32
- fixed Raspberry Pi compability (some libraries have been renamed)
- fixed crash in --verbose mode
- changed shebang line to 'python2' to avoid issues with Linux distributions
  that use Python 3.x by default
- fixed --overscan option
- fixed arrows in manpage
- added section about Raspberry Pi to manual
- Win32 build now uses Python 2.7 and PyInstaller 3.x and uses MuPDF (mutool)
  instead of Xpdf (pdftoppm)


0.11.1 [2015-11-12]
- fix for newer PIL/Pillow versions that broke compatibility by
  removing .tostring() and .fromstring()
- fixed crash when clicking on run: URI hyperlinks
- PDF hyperlinks with file:// and run:// URIs now work correctly with
  quoted characters (e.g. spaces) in paths
- added top-level synchronize() function to schedule calls in
  Impressive's main thead (useful for library mode)
- explicitly printing traceback on crashes to ensure proper display on
  Win32 systems
- early lookup of OpenGL vendor/renderer/version strings (to get more
  useful crash logs)
- added Win32-specific OpenGL loader (instead of SDL fallback)
- fixed SDL library lookup issue on newer Linux systems
- OSD font lookup now works if the same font file exists multiple times
  in the font path
- fixed crash when no OSD font is available


0.11.0 [2014-12-21]
- full port from OpenGL 1.1 to OpenGL (ES) 2.0
- fully customizable key/mouse bindings (-e/--bind, -E/--controls,
  --control-help, --evtest)
- MuPDF (mudraw/pdfdraw) rendering backend
- 'transition' PageProp describes transition *to* the page, not after the page
- Raspberry Pi compatibility
- new shader-based blurring with desaturation + fallback to old method
  for old HW (autodetect or --noblur)
- re-implemented all transitions with shaders
  (missing: PageTurn, SpinOutIn, SpiralOutIn, ZoomOutIn;
  new: WipeClouds, WipeBrightness1, WipeBrightness2)
- compressed in-memory cache (-cz / --cache compressed)
- removed -e/--noext and -R/--meshres due to obsolescence
- --tracking enables time tracking right from the start
- added -v/--verbose mode
- MuPDF renderer backend can work via named pipes instead of temp files on Unix
- alternate overview downscaling algorithm for slower systems (auto-detected)
- internal default mouse cursor image
- fixed OSD font rendering bug with Pillow
- most platform-specific code now handled by abstraction layer;
  no direct PyGame calls in core
- custom ctypes-based OpenGL loader instead of PyOpenGL
- generic PDF renderer framework (necessary now that there's 3 renderers)
- external PDF renderers are now called with 'nice' when background rendering
  on POSIX


0.10.5 [2014-05-02]
- fixed bug that cause file lists ("@list.txt" parameters) to not work in 0.10.4
- some minor additions to the release script, only relevant for distributors


0.10.4 [2013-12-29]
- changed Esc key behavior: doesn't quit immediately, leaves special modes first
- middle mouse button in zoom mode now returns to normal mode (not overview)
- mouse wheel can now be used to change pages (can be turned off with --nowheel)
- info scripts now run from their (or the document's) directory
- added 'C' key: clear all highlight boxes on current page
- added --autoquit: quit Impressive at the end of the presentation
- added --noclicks: don't change pages with mouse clicks
- added --clock: display wall-clock time instead of elapsed time
- added --half-screen: support for LaTeX-beamer's "show notes on second screen"
- added --invert and 'invert' PageProp: RGB-invert pages
- added --auto-auto: determine page timeout automatically from target duration
- added --auto-progress: per-page timeout progress bar
- added command-line option (--spot-radius), PageProp ('radius'), keyboard
  shortcuts ('9'/'0'/'-'/'+') and mouse wheel controls to set spotlight radius
- added command-line option (--darkness), PageProp ('darkness') and keyboard
  shortcuts ('7'/'8') to set spotlight / highlight box background darkness
- added "fake fullscreen" (borderless window) mode
- window positioning is now possible with the --geometry option
- Alt+Tab always minimizes the application when in fullscreen mode
- Ctrl+PgUp/PgDn (and some other) key combo switches pages without transition
- 'video' PageProp now also accepts a list of multiple files to be played
- added support for Launch actions and file: and run: URIs in PDF hyperlinks
- minimum highlight box size is now configurable, and measured in pixels
- overscan is now cropped before adding letterbox/pillarbox borders
- added more system information to the crash reporter
- last-to-first-page transitions in wrap mode are no longer reversed
- option parser accepts resolutions of up to 32Kx32K now
- fixed an issue with zooming in presentations with varying page sizes
- fixed compatibility with pdftk 1.45 and the PIL fork "Pillow"
- fixed behavior of .info file name generation (didn't match documentation)
- crash fixes with zero times in animations (e.g. --boxfade)
- fixed crash with very many pages on very small screens
- fixed info script error handling (could accidentally break PageProps)
- many fixes in the PDF parser, manpage generator, Makefile and build system
- Win32: fixed video support
- Win32: added "press ENTER to quit" wait phase to crash handler
- Win32: external tools (pdftk, pdftoppm, mplayer) are now searched in PATH
- Win32: binary build system switched from py2exe to python-installer
- Win32: added icon and version info block to binary build
- minimized PyGame initialization: only display is initialized, no audio
- added a simple "smoke test" to Makefile (based on Xvfb)
- various other fixes and dead code removal


0.10.3 [2010-10-17]
- fixed display problems when using odd window sizes
- loading image data earlier so that no unhandled exceptions will be thrown
  when a file is broken
- fixed typo in --aspect parameter
- using -u doesn't periodically re-load the input file any longer if it changed
  only once
- fixed a bunch of problems related to non-standard aspect ratios
- adjustable zoom factor
- black-out and white-out are now assigned to keys [.] and [,]
- PDF hyperlinks are now also available if the cache is disabled
- releasing all locks at the end of run_main()
- included some library version numbers in crash messages
- added option to fade in at program start and fade out at program end
- added --nologo option
- added shuffle feature
- right mouse button will no longer switch to previous page in zoom mode
  (prevents accidental page switches)
- improved MPlayer interface
- added 'always' PageProp to play sound or video every time a page is entered
- 'timeout' PageProp is now respected every time a page is entered if wrap mode
  (-w) is enabled
- added finer-grained control over the progress bar colors and timing;
  added --page-progress option
- added overscan option
- display will now be quickly uninitialized when Impressive quits
- improved PDF parser robustness
- now using hashlib instead of md5 module, if available, to avoid a
  DeprecationWarning on Python 2.6
- software rendering warning now also reacts on any OpenGL renderer string
  beginning with 'software'
- added FadeOutFadeIn transition (idea by Antonio Terceiro)
- hyperlinks now work correctly on rotated pages


0.10.2 [2008-02-03]
- --listtrans now shows which transitions are enabled by default
- number of digits in pdftoppm output file names is cached
- using xrandr to get current resolution on X11
- enabled URL hyperlinks using ShellExecute (Win32) or fd.o's xdg-open (UNIX)
- 'keys' PageProp for arbitrary key bindings
- exceptions in info scripts are now non-fatal
- 'video' PageProp and PlayVideo() function for (HIGHLY EXPERIMENTAL!!!)
  fullscreen video playback
- PDF parser now emits warnings instead of failing silently if something
  isn't OK
- support for list files using the @filename syntax
- 'comment' PageProp displays overlay text on a slide permanently
- added auto-overview mode (idea by Tobias Maier)
- restore compatibility with KeyJnoteGUI


0.10.1a [2007-11-27]
- restored compatibility with poppler-based pdftoppm
- added Alt+Tab as alias for "exit fullscreen mode"
- improved cleanup code


0.10.1 [2007-09-09]
- re-enabled GL_ARB_texture_non_power_of_two support (was broken in 0.10.0)
- PDF hyperlink support
- added compatibility fix for PyOpenGL 3.x
- generalized and simplified PageProp system
- rotate PageProp
- multi-file support
- persistent cache


0.10.0 [2007-06-02]
- added pdftoppm rendering backend
- overview page update fix
- more font search paths (DejaVuSans.ttf, OSX paths)
- graceful handling of failed renders
- converted logo to PNG
- fixed -T0 crash
- allowed None as a value for the 'transition' PageProp and -t parameter
- added 'transtime' PageProp to set transition duration for single pages
- R key: reset timer
- added 'progress' PageProp to show/hide progress bar
- added 'reset' PageProp to reset the timer when the page is left
- allowed special value FirstTimeOnly for the 'reset' prop
- L key: return to last (= most recently used) page or back
- added OnEnter, OnLeave, OnEnterOnce and OnLeaveOnce page props
- customizable OSD layout and alpha
- I and O keys change 'skip' and 'overlay' PageProps interactively
- now accepting image file names at the command line
- fixed supersample mode
- added key repeat to quickly change the spotlight size via the keyboard
- Home and End keys now navigate to the start and end of the presentation
- shortcut function for any unused letter, number or function key
- removed PagePeel from the default transitions list
- two new families of transitions: {Slide,Squeeze}{Left,Right,Up,Down}


0.9.4 [2007-03-19]
- middle mouse button now acts as overview toggle
- automatic display mode guessing now implemented on Unix, too
- fixed 'T' key
- fixed crash in the OSD code if a broken version of PIL is used
- added gamma controls (courtesy of Luke Campagnola)
- added progress bar / estimated duration
- added loadable cursor image


0.9.3 [2007-02-26]
- fixed indentation bug (removing a box caused a transition to the prev page)
- improved pdftk parser (handles non-ASCII characters gracefully)
- all messages are redirected to stderr
- added timer ([T] key) and time tracking mode
- made all main keyboard bindings unicode key queries


0.9.2 [2007-02-17]
- fixed memory cache
- added "polling" option
- added "cache range" option
- added overview page OSD


0.9.1 [2007-01-24]
- FIX: 'whitening' mode didn't work with GL_EXT_texture_rectangle
- FIX: crash when clicking a mouse button in fade mode
- FIX: occasionally left behind temp files


0.9.0 [2007-01-07]
- fixed all OpenGL calls to use the explicit form (glTexCoord2d instead of
  glTexCoord)
- corrected texture target specification for rare transitions
- added unicode key aliases for the [+] and [-] keys (should improve i18n)
- added "fade to solid color" feature
- added 'skip' PageProp
- improved/fixed window caption in overview mode
- GhostScript is now called with -dUseCropBox, should improve handling of
  some LaTeX-beamer generated PDFs
- using a temp file for the page cache now
- added background rendering
- Win32: true fullscreen by default


0.8.3 [2006-09-28]
- 'overview' PageProp to remove pages from the overview screen
- experimental aspect ratio option
- new transition contributed by Ronan Le Hy
- OpenGL non-power-of-two texture size extension support


0.8.2 [2006-07-13]
- fixed crash on some files
- added overview mode keyboard navigation
- added "--rotate" option


0.8.1 [2006-02-04]
- made OpenGL error reporting more concise
- added "render" option to produce PNG files from a PDF


0.8.0 [2005-11-23]
- fixed command-line option parser
- changed some cmdline options (see documentation or -h)
- added new --transition option to specify which transitions can be chosen
  randomly
- added some new transitions from Rob Reid
- fixed image file mode
- fixed display of portrait images or pages
- added experimental 2x zoom mode


0.7.2 [2005-10-24]
- fixed two annoying bugs introduced in 0.7.1, related to mouse key
  remapping
- fixed bug that caused parts of the old page content to be visible after
  transitions
- added two slideshow-related options


0.7.1 [2005-10-22]
- more intuitive highlight box handling (the middle mouse button is no
  longer used to create and destroy highlight boxes; instead, dragging
  the mouse while LMB is pressed creates a box and clicking with RMB deletes
  a box)
- added 'initial page number' option (-i)


0.7.0 [2005-09-29]
- fixed bug in overview page that caused the program to crash if the user
  clicked outside the area occupied by thumbnails
- added 'timeout' PageProp to automatically advance to the next page
- added EXPERIMENTAL support for sound via 'sound' PageProp 


0.6.3 [2005-09-07]
- Some PDF files generated by pdflatex would not play because of negative
  object counts. Fixed.


0.6.2 [2006-09-06]
- bugfix: filenames with spaces didn't work on Win32


0.6.1 [2005-09-05]
- initial public release
