1.2alpha1 The major 1.2 release brings pyglet to Python 3. Pyglet now also runs on 64-bit operating systems Linux, Windows and OS X. The OS X layer has switched to Cocoa. Backwards-incompatible API changes: * renamed Label parameter 'halign' to 'align', fix for issue:460 * remove unused module 'glext_missing' - everything should already be in 'glext_arb' Other changes and fixes: * updated OpenGL wrappers (except for agl* and wgl*) * added set_mouse_position to window, fix for issue:467 * configurable texture filtering for issue:463 * correction to use textures min/mag filter for get_texture * fix runaway event loops caused by least squares estimator * compute correct expiration time for the event loop * fix ordering of Groups and OrderedGroups * fix loading of small images using GdkPixbuf2ImageDecoder for issue:493 * applied Andrew Straw's pyglet-xvfb.patch patch from issue:456 * fix for issue:517 tests/window/CONTEXT_SHARE.py glIsList exceptions * numeric keypad constants in docs don't match key.py, fix for issue:523 * use new method for quering extensions if OpenGL version is >= 3 * add missing freetype ctypes declarations, patch from issue:529 * add flag to check if event-loop is running * add variation on how to import PIL, fix issue:551 * handle race condition in texture cleanup, fix for issue:565 * fix examples/window_platform_event.py when no "names", issue:561 * fix for GIFs with alpha, Frankie.Robertson, issue:411 * added exception for ATI radeon xpress 200M not exporting glGenBuffers * allow pyglet.resource.image to specify that the image be stand-alone and not loaded into an atlas * make test runner output easier to read and verify for the tester * make failing to load libraries that exist but have fatal problems not be _silently_ ignored on Linux and OS X, fix issue:579 * fix multiline/wrap_line confusing (Martin Di Paola), per issue:394 * apply patch fixing image.DDS_RGB_DXT1_LOAD (and similar) throwing ImageException from petete.zur88, issue:580 * fix experimental/animation.py frame.delay reference (anatoly techtonik) * docs: added chapter to programming guide for input module * docs: fix example in animation docs * docs: clarify graphics.draw() from Tim McNamara in issue:478 * docs: mention atlas in the programming guide * docs: apply Txema Vicente's patch to generate docs with Sphinx * Linux: fix different platform strings, issue:571 * Linux: fix 100% cpu load with scheduled events when using xlib * Linux: pitch change functionality with pulseaudio driver; patch from Adam Bark, issue:536 * Linux: fix tiling window manager resizable window initialisation, issue:563 * OS X: add function key * OS X: replaced pyglet/image/codecs/quartz.py with ctypes-only code * OS X: added complete type declarations to darwin_hid so pypy will stop complaining * Windows: apply patch for x64 issues, fix issue:510 * Windows: (possible) fixes for context sharing problems * Windows: don't create another context in Win32Context.attach() if the sub-class (Win32ARBContext) already created one 1.1.1 * examples: Fixed graphics.py triangle windings * pyglet.clock: Fixed resource leak in Clock.unschedule * pyglet.clock: Fixed schedule_* functions initial schedule time * pyglet.gl: Fixed create_context exception * pyglet.graphics: Fixed memory error with interleaved arrays * pyglet.media: Fixed driver enumeration during driver init failure * pyglet.media: Fixed parsing of OpenAL extensions list * pyglet.text: Fixed TextLayout.delete not deleting inline boxes * pyglet.text: Fixed caret blinking when period is 0 * pyglet.text: Fixed caret motion at end of line * pyglet.text: Replaced scissor with clipping planes in ScrollableTextLayout, fixing rendering under transform. * pyglet.text: Fixed reflow of text above overlong lines * pyglet.window: Fixed initial fullscreen screen selection 1.1 * docs: Various minor documentation fixes * docs: Fixed docstrings referring to pyglet.image.BufferManager as being singleton * pyglet: Fixed lazy loading bug failing to update module cache * pyglet.clock: Fixed unschedule not taking effect until after current tick is complete * pyglet.font: Reintroduced Text.leading and Text.line_height properties * pyglet.font: Fixed Text.halign * pyglet.font: Fixed Text.color * pyglet.graphics: Disabled VBO for Radeon X1600 * pyglet.graphics: Fixed resource leak of VBOs * pyglet.graphics: Fixed GC of cyclic buffer and attribute objects * pyglet.graphics: Improved performance for drivers that don't suffer the VBO flush problem * pyglet.image: Fixed ColorbufferImage.get_region * pyglet.image: Fixed Animation.from_image_sequence with loop * pyglet.image: Fixed BufferManager cache for resizing windows * pyglet.image: Fixed Texture.set_mipmap_image * pyglet.image: Fixed Animation.get_duration * pyglet.sprite: Fixed unassignment of Sprite.group * pyglet.text: Fixed ScrollableTextLayoutGroup.width * pyglet.text: Fixed TextLayout usage after vertex list deletion * OS X: Fixed loading of fonts with Unicode names * OS X: Fixed handling of mice with more than three buttons * Win32: Fixed redundant mouse motion events being generated 1.1beta2 * docs: Added sections on new text layout features * examples: Added text_input.py example * pyglet: Added debug_texture option * pyglet: Fixed destructors calling non-existent methods during program shutdown * pyglet.clock: Fixed memory leak in all schedule functions * pyglet.font: Fixed fonts being GC'd inefficiently in common case * pyglet.font: Fixed Unicode font names with fontconfig * pyglet.graphics: Fixed memory leak, improved GC performance * pyglet.graphics: Fixed IndexedVertexDomain.draw * pyglet.graphics: Fixed TextureGroup.__eq__ * pyglet.graphics: Fixed VBO data being drawn before upload complete on non-nvidia drivers * pyglet.image: Fixed glTexImage data being GC'd before finished * pyglet.media: Fixed Player when next() called redundantly * pyglet.media: Fixed Player.seek() when no sources queued * pyglet.media: Reduced garbage noise after seeking in OpenAL * pyglet.media: Fixed initial audio properties propogation when audio player recreated * pyglet.text: Fixed HTMLLabel.text property set * pyglet.text: Added default position for AbstractDocument.get_style * pyglet.text: Fixed IncrementalTextLayout vertical alignment after modification * pyglet.text: Fixed layout width for paragraphs with indent style * pyglet.text: Renamed halign and valign properties to anchor_x and anchor_y * pyglet.text: Added TextLayout.content_valign property * pyglet.text: Changed styles using points and pixels to consistent "distance" units * pyglet.text: Added halign to Layout constructor * pyglet.sprite: Fixed animations with only one frame * pyglet.window: Added Window.invalid flag * Linux: Removed redundant declarations in xlib.py for faster loading * Linux: Fixed Window.on_close event for GLX 1.2 and earlier * Linux: Fixed international dead key processing * Linux: Fixed window borders on Intel chips running Compiz * Win32: Fixed event loop during window move and resize * Win32: Fixed DirectSound crash when specifying very low volume 1.1beta1 * docs: Added "Debugging tools" section to programming guide * docs: Clarified usage of ClockDisplay in module docstring * examples: Fixed polygon winding in opengl.py * pyglet: Added debug trace options * pyglet: Renamed "debug_graphics_enable_vbo" option to "graphics_vbo" * pyglet: Fixed import errors breaking the exception stack due to class instance used as module * pyglet.clock: Added ClockDisplay.unschedule * pyglet.font: Fixed Text.width * pyglet.image: get_transform() now operates around the anchor * pyglet.image: Added fallback BMP loader * pyglet.gl: Fixed GL/GLU strings being re-requested each frame * pyglet.graphics: Fixed VertexList.migrate * pyglet.graphics: Fixed memory leak with unused groups in a batch * pyglet.graphics: Fixed IndexedVertexList.draw * pyglet.media: Added have_avbin * pyglet.media: MediaFormatException now subclasses MediaException * pyglet.media: 24 bit audio files loaded with RIFF loader are now rejected early * pyglet.resource: Fixed resource.get_location * pyglet.resource: Resource path locations are now indexed deeply * pyglet.sprite: Added usage parameter * pyglet.text: Fixed multiple width/multiline issues, changed text class constructors to accomodate * pyglet.text: Added DocumentLabel.get_style and set_style * pyglet.text: Fixed layout states clobbering current color * pyglet.text: Fixed error when document truncated past caret position * pyglet.text: Move some style constants into HTML loader class for easier overriding * Linux: Fixed BMP loading for certain BMP files * OS X: AVbin default location is now /usr/local/lib * OS X: Libraries are now searched for in the application bundle before standard system paths * OS X: Now distributed with AVbin 3 * Win32: Fixed GDI+ error message * Win32: Now distributed with AVbin 3 1.1alpha2 * New module: pyglet.info, for bug reports * docs: Many docstrings added to public methods * docs: Programming guide updated for pyglet 1.1 * docs: Fixed docstring errors in pyglet.resource * examples: Most examples have been updated to demonstrate pyglet 1.1 * examples: Added animation.py and video.py * pyglet: Fixed lazy importing for detection by py2exe, etc * pyglet.app: Added exit() convenience function * pyglet.clock: Fixed rescheduling bug on computers with lousy clocks * pyglet.event: Fixed handlers deleted during dispatch * pyglet.graphics: Fixed VBO disable option * pyglet.image: Fixed animation loading on all platforms * pyglet.image: Set a default delay of 100ms for GIF frames with a delay of <= 10ms (mimicks Firefox and Safari behaviour) * pyglet.media: Deprecated Player.texture for Player.get_texture * pyglet.media: Fixed buffer underrun handling in ALSA and OpenAL * pyglet.sprite: Fixed destruction of incomplete object * pyglet.sprite: Added color property * pyglet.text: Fixed layout of empty document * pyglet.text: Fixed content width calculation causing glitches in caret motion and scrolling * pyglet.text: Added some public methods and properties to expose more internal state * pyglet.text: Added on_layout_change event * pyglet.text: Fixed redundant incremental layout updates * pyglet.text: Refactored HTML and structured text decoders * pyglet.text: Fixed rendering of line breaks without word wrapping * pyglet.resource: Caches now use weak references * pyglet.window: Fixed Window.close() crashing when called more than once * pyglet.window: Fixed motion event key mappings on Linux and Windows * pyglet.window.key: Added MOD_ACCEL modifier * Linux: Fixed font names for some TrueType fonts * Linux: Fixed config attribute types * OS X: Improved audio playback and event loop response * OS X: Fixed mouse delta of first event after setting exclusive * OS X: Fixed menu tracking and application quit event * OS X: Fixed window size events during creation and setting fullscreen * OS X: Fixed TGA support * OS X: Fixed fullscreen for external monitors that don't report their maximum refresh rate * OS X: Fixed mouse cursor visibility after minimising window * Win32: Improved event loop response * Win32: Fixed garbage being played after end of sounds * Win32: Context sharing now raises an exception instead of failing silently 1.1alpha1 * New modules: app, graphics, image.atlas, resource, sprite, text * pyglet: Most modules are now accessible after importing just "pyglet" * pyglet.clock: Added get_sleep_time * pyglet.clock: Added optional poll parameter to tick * pyglet.clock: Added schedule_interval_soft * pyglet.event: Added remove_handler and remove_handlers * pyglet.event: Fixed @event decorator overriding methods instead of using the event stack * pyglet.font: Font name and size parameters are now optional * pyglet.font: Fixed Text.z attribute being ignored * pyglet.font: Tab characters are now treated as whitespace glyphs * pyglet.font: DPI now defaults to 96 on all platforms * pyglet.font: Font cache is now a weakref dictionary, so font textures will be deleted when they are not being used * pyglet.gl: OpenGL can now be used before a window is created * pyglet.gl: Added current_context var, deprecated get_current_context * pyglet.image: Added get_image_data, get_texture, get_mipmapped_texture, get_texture_sequence, get_image_data, get_data * pyglet.image: Deprecated properties corresponding to those new methods * pyglet.image: Added anchor_x, anchor_y attributes * pyglet.image: Added Animation and support for animated GIF * pyglet.image: Added __iter__ for AbstractImageSequence * pyglet.image: Added get_transform * pyglet.image: Fixed GC problem causing some loaded textures to appear empty on some machines * pyglet.image: Added Texture.create * pyglet.image: Added rectangle parameter to many methods as a convenient way to create texture rectangles * pyglet.media: Player now schedules its own updates on clock * pyglet.media: Deprecated dispatch_events * pyglet.media: Fixed silent audio driver get_time * pyglet.media: Fixed OpenAL behaviour during buffer underruns * pyglet.media: Added get_next_video_timestamp and get_next_video_frame * pyglet.window: on_resize handlers now have a guarantee that their window is the active OpenGL context * pyglet.window: Deprecated WindowExitHandler * pyglet.window: Added on_draw event * Linux: Windows implement _NET_WM_SYNC_REQUEST protocol where supported * Linux: X11 errors are now ignored instead of causing a crash * Linux: Fixed errors in private Xlib ctypes wrapping * Linux: Fixed text events being generated while CTRL or ALT pressed * Linux: Added workaround for PCF fonts that do not publish metrics * OS X: Improved glyph kerning * OS X: Fixed QuickTime image codec not raising an exception when decode error encountered * OS X: Fixed rare QuickTime image load problem causing Bus Error * Win32: Fixed DirectSound audio driver timestamps * Win32: Fixed reduntant attempt to load mapi32.dll 1.0.2 * Egg for 2.5 is now compiled for Python 2.5, not 2.5b3. 1.0.1 * OS X: Fixed permissions on installed files. 1.0 * Added easy_install download URL * docs: Clarification to ManagedSoundPlayer * docs: Fixed typo of set_exclusive_mouse * pyglet.gl: Fixed a missing import * pyglet.event: Better error message when handler has wrong parameters * pyglet.event: Fixed invokation of properties during introspection * pyglet.font: Fixed non-integer font metrics on all platforms * pyglet.font: Improved vertical centering * pyglet.image: Fixed ColorBufferImage.texture property * pyglet.media: Fixed queuing of multiple StaticSources * pyglet.media: Fixed sequential playback of sources with different audio formats * pyglet.window: Added options['vsync'] override * Linux: No longer requires ldconfig to locate libraries * Linux: Fixed assumption about existance of certain WM atoms * OS X: Fixed install path for system Python * OS X: Fixed context switch after window is deleted * Win32: Fixed text inter-glyph spacing * Win32: Clarified that Windows Vista is not supported in this release 1.0beta3 * docs: Fixed the documentation of default parameter values * examples: Added fixed_resolution example * pyglet.event: Allow EVENT_HANDLED to be any true value * pyglet.font: Ascent and descent are integer on all platforms now * pyglet.media: Several fixes to procedural sounds * pyglet.media: Fixed StaticSource usage with non-string source data * pyglet.window: Providing width or height with fullscreen parameter to constructor will now raise an exception * OS X: Fixed interaction with non-pyglet window event loops * OS X: Installer will use the system-installed and MacPorts versions of Python if found * OS X: Fixed library paths for systems with a case-sensitive file system * OS X: Fixed mouse events in fullscreen windows * OS X: Fixed reported window size of fullscreen windows * Linux: Fixed error with >3 button mice * Linux: Fixed default font use * Win32: GDI+ is now used for font rendering, fixing antialiasing issues * Win32: Font glyphs are now correctly aligned to the baseline * Win32: Fixed queued media playback 1.0beta2 * examples: soundspace gives error if AVbin is not available * examples: opengl.py made to demonstrate more OpenGL features * tests: Logs to a file by default * pyglet.image: Fixed image data pitch and row-ordering conversion * Linux: Fixed 16-bit GLX 1.0 configuration * Win32: avbin.dll is installed into the correct system directory * Win32: Workaround for "GDI Generic" driver glTexSubImage2D bug 1.0beta1 * Removed shebangs from all library files * docs: Numerous formatting fixes to documentation, including restoring missing tables and linking in program examples * examples: Added soundspace example * examples: Sounds for astraea and noisy are no longer license-encumbered * examples: "Fire" key in astraea moved to spacebar to avoid hotkey in Lepoard * examples: Fixed rewind/seek behaviour of media_player * tests: Fixed import of tests.regression module regardless of PYTHONPATH * pyglet: Added environment variables for default global options * pyglet.clock: Fixed unschedule of clock items out of order * pyglet.font: Fixed font.add_directory() * pyglet.font: Fixed text wrapping in GlyphString at corner cases * pyglet.media: Improved media streaming behaviour under loaded CPU * pyglet.media: Implemented playback of video without sound * pyglet.media: Removed redundant positional audio properties, and redefined some to be compatible with both OpenAL and DirectSound * pyglet.media: Fixed OpenAL 1.1 timing * pyglet.media: Improved OpenAL underrun recovery * pyglet.window: Removed extended Latin-1 key symbols * pyglet.window: Added scroll lock key modifier * pyglet.window: Fixed data type of mouse coordinates to int * pyglet.window: Unified and fixed platform-specific event decorator * OS X: Fixed fullscreen windows on non-primary monitor * Linux: Fixed non-ASCII text input * Linux: Added ALSA audio driver * Linux: Small refactoring of window event dispatch * Linux: Fixed lost key events under loaded CPU * Linux: Fixed borderless window behaviour * Linux: Fixed fullscreen window reactivation * Win32: Added DirectSound audio driver * Win32: Fixed interaction with language bar * Win32: Fixed key events for non-ASCII keys * Win32: Fixed motion event being fired on key release * Win32: Fixed window close event * Win32: Fixed handling of system error messages * Win32: Improved playback of sound with software-based audio devices * Win32: Fixed support for cygming special build of Python 1.0alpha2 * Complete change in interface and implementation of pyglet.media * Window events are now only dispatched from the dispatch_events() function, and in a consistent order across platforms. * Abstract class WindowEventDispatcher removed, its functionality is now in BaseWindow. * Added DPI parameter to font.load() * Renamed mouse.MOUSE_*_BUTTON to mouse.LEFT, mouse.MIDDLE and mouse.RIGHT * Window.set_size() now raises an exception if the window is fullscreen * Textures are now deleted when discarded, rather than requiring delete() * Fixed the calculated width of font.Text instances. * Renamed examples/event_test.py to examples/events.py * Added media_player.py and Programming Guide examples. * Added tools/gl_info.py and tools/al_info.py into the source dists. * Added tests/regression/__init__.py into the source dists * OS X: Fixed fullscreen windowing * OS X: Fixed dylib loading when DYLD_FALLBACK_LIBRARY_PATH is defined * OS X: Fixed various mouse-visibility, exclusivity and position problems * OS X: Support the menu bar and application quit events * Linux: Fixed exclusive mode problems when keyboard focus is lost * Linux: Support for bitmap fonts. * Linux: Fixed GLX 1.0, ATI and MESA implementations * Linux: Improved vsync support across video drivers * Linux: Fixed library loading to observe LD_LIBRARY_PATH * Win32: Window is now "Unicode-aware" 1.0alpha1 * Initial release.