0.34    2026-05-09
-refactor mouse positioning.
-add mouse get_focused method.
-refactor display surface.
-add window enter/leave events.
-revise mouse position methods.
-revise mousewheel event handling.
-revise jframe layout initiation.
-revise display quit with jframe dispose.

0.33    2025-01-18
-revise surface alpha.
-update transform to preserve surface alpha.
-add vector copy method.
-revise mixer set_num_channels method.
-refactor mixer music rewind method.
-revise surface convert.
-add activeevent.
-add closeevent.
-update color object.
-revise sprite to optimize.
-revise vector elementwise object.
-revise vector operator methods.
-revise vector object instantiation.

0.32    2022-04-17
-add key set_repeat method.
-update surface blit with optional rect return.
-revise time tick framerate handling.
-add surface convert methods.
-add surface alpha methods.
-add surface blits method.

0.31    2021-11-07
-revise sprite orderedupdates.
-add sprite group alias.
-refactor sprite collide methods.
-add sprite layeredupdates.
-add cursors get_cursor_types.
-add vector object.
-revise mixer processing.
-add mixer music object.
-add hscroll mouseevent.
-add mixer channel endevent.
-add mixer channel queue.

0.30    2021-04-28
-center display frame.
-revise rect move and union methods.
-revise rect attributes.
-revise rect move/inflate args processing.
-add env check.
-revise quit method to stop timers.
-update time set_timer for event argument.
-update for python 2/3 compatibility.

0.29    2021-04-06
-update event handling.
-update exception handling of color object.
-update mixer endian setting.
-update subsurface exception.
-update for python 2/3 compatibility.

0.28    2019-04-06
-update jpanel with event handling that registers appropriate mouse position.
-add time set_timer method.
-update display repaint to sync with program iteration.
-update sprite to revise member groups.
-update sprite argument handling.
-update sprite collide_mask to use mask.overlap.
-add mouse set_cursor and get_cursor methods.
-update mouse set_cursor to use custom image.
-update mouse set_cursor to use cursor data.
-update transform rotozoom to optimize.
-update surface area blit to optimize.
-update display update method to optimize.
-add util timer for profiling.
-update draw arc with dimension adjustment.
-update time clock for accuracy.
-revise with absolute import statements.
-update font with rendering adjustment.
-update event peek option of all types.
-update event methods to optimize.
-update draw methods to optimize with optional rect return.

0.27    2015-04-12
-update font to enhance fonts access.
-update image load to allow file-like argument.
-update draw methods to int convert argument.
-add mask.toString method.
-add rect iter method.
-add rect collide methods - collidelistall, collidedict, and collidedictall.
-add sprite collide methods - collide_rect_ratio, collide_circle, and collide_circle_ratio.
-add mousewheel event listener.
-release under MIT license.

0.26    2014-11-09
-add rect union methods.
-update methods to use rect intersection.
-update surface blit rect computation.
-update initialization to stabilize timing.
-add rect rectPool to utilize a rect pool.
-update sprite draw for performance.
-update sprite collide methods processing.
-add rect clamp methods.
-update mixer write for non-integral frames.
-update mixer quit to properly stop thread.
-add mouse set_visible method.

0.25    2014-08-20
-update mixer thread interrupt.
-update handling of display surface graphics2d object.
-update display.set_mode to accept additional arguments.
-add display set_caption/set_icon to set JFrame title/icon.
-add display.get_active method.
-update event object constructor to properly handle arguments.
-add key.get_mods method.
-update mouse.get_pressed to properly return state of all buttons.
-restructure event handler to capture all mouse motion events.
-add event member buttons.
-change event key location to event.loc (KEY_LOCATION_LEFT|RIGHT|STANDARD|NUMPAD|UNKNOWN).
-correct event.pump to maintain queue.
-add event.dict access.
-update mouse.get_rel process on frame exit.
-update event.rel to properly return with multiple access.
-update event modKey set to use Java HashSet with earlier Jython releases, define in __init__.py (HashSet not sets import due to compile problem).
-update event eventtype list as a set object.
-update rect inflate/inflate_ip positioning.
-update display to repaint on dispatch thread.

0.24    2014-04-24
-update transform.rotozoom for correct scaling.
-update thread interrupt handling.
-add mixer.

0.23    2014-02-27
-update Event.get to accept eventtype argument.
-update Event.poll and Event.wait to return JEvent object.
-update Event.poll noevent return.
-update Rect.clip return for non-overlap.
-update Rect attribute positioning.
-update Rect inflate/inflate_ip positioning.
-add Rect equality and nonzero methods.
-add Color object.
-update to use Color object.
-update draw methods with minor adjustments.
-update to use Rect object.
-update Sprite group update to account for member changes.
-add Surfarray methods.
-add draw.ellipse method.
-change license from GPL to LGPL.

0.22    2013-03-30
-add Font.get_linesize, Font.get_ascent, Font.get_descent
-update Font.render to adjust rendering postion.
-update Font.size to adjust surface size.
-update Event/JEvent for proper function of UserEvent.

0.21    2012-02-08
-update pyj2d.quit
-change Mask.print to Mask.print_mask

0.20    2012-01-10
-update Event to properly handle UserEvent
-update Font/SysFont __init__ to handle style
-update Rect.__init__ for obj with rect attribute
-update Sprite.__init__ to accept Group argument
-update Sprite OrderedUpdates.__iter__ to return ordered iterator
-update Sprite OrderedUpdates.sprites
-update Surface set_at/get_at to raise IndexError on ArrayOutOfBoundsException
-refactor code
-generate documentation with Epydoc

0.19    2012-01-05
-add key events
-update Event object to include key events
-update Event to use Java event constants
-update Event object to include relative mouse position
-update Sprite Group/GroupSingle/RenderUpdates to hold sprites in a dict attribute
-update Surface to bit check type argument
-update Time Clock.get_time and Clock.tick to return time between ticks

0.18    2011-12-28
-update Sprite Class
-update Sprite Group/GroupSingle/RenderUpdates to subclass dict
-add Sprite OrderedUpdates
-update Sprite collision methods to use iterator to sprites

0.17    2011-12-23
-update Frame to register mouse press event
-update Mouse.get_pressed to use registered mouse press event instead of Event.poll_mouse
-update Rect.__init__, several Rect methods to ensure type, and add Rect.clip
-update Surface methods __init__, copy, subsurface, set_at, blit
-update Event methods updateQueue (to check event allowed), post, clear, and add methods set_blocked, set_allowed, get_blocked, peek
-update Sprite.spritecollide to use Sprite.collide_mask
-update RenderUpdates.draw
-update Draw.lines
-add Surfarray.blit_array
-add Mask

0.16    2011-12-14
-add Rect.__getattr__ to retrieve positional attributes
-update Surface.__init__ to include bufferedimage argument to convert to Surface subclass, update Surface.subsurface and Image.load to reflect change
-update Surface.fill to return Rect
-update Transform.rotate to properly center and resize image upon rotation.
-add Transform.scale2x and Transform.flip

0.15    2011-12-10
-update Applet to launch Runnable Thread containing app
-update Display to repaint to Jpanel instead of Jframe and repaint procedure
-update Draw to include fill and outline, and return bounding rect
-update Transform to include scale

0.14    2011-12-06
-update display.update
-fix draw.polygon
-update mouse.get_pos retrieve from panel instead of frame to correct alignment
-update rect move/inflate to offset change
-update Surface init

0.13    2011-12-04
-add font
-add direct mouse input
-module globals in env.py
-update draw rect argument
-add draw.polygon
-update event.get
-add event.poll_mouse
-update rect to access data by index
-update surface.blit to return Rect subclass
-update surface get_at and set_at
    - *tuple error in Jython applet

0.12    2011-12-01
-fix time.py Clock.delay()
-add event handling
-add mouse events

0.11    2011-11-28
-fix image.py image loading from jar on Windows
    -os.path set path with \ but Java getResource needed /

0.10    2011-11-21
-initial release

