Reference articles on history, science, culture and more
Encyclopedia

Pyglet

Pyglet is a library for the Python programming language that provides an object-oriented application programming interface for the creation of games and other multimedia applications. pyglet runs on Microsoft Windows, macOS, and Linux; it is released under the BSD Licence. pyglet was first created by Alex Holkner.

01Features

Pyglet is written entirely in Python. Images, video, and sound files in a range of formats can be done natively but can also be expanded with the libav and ffmpeg libraries. It requires no external dependencies.

Text display and formatting

  • Rich text formatting (bold, italic, underline, color change, background color, indent, lists) (pyglet.text.formats)
  • Built-in layouts to support editable text
  • Carets (pyglet.text.caret.Caret)
  • HTML support (pyglet.text.layout.IncrementalTextLayout)

Image and sprite work

  • Fast image processing and rendering
  • Built-in sprites (pyglet.sprite)
  • Animated images (*.gif)

Graphics

  • OpenGL shaders supported
  • Simple built-in shapes (rectangles, circles, triangles) (pyglet.shapes)
  • Batched rendering (pyglet.graphics.Batch)
  • 3D model rendering

Events and file system

  • Resource management (pyglet.resource)
  • Clock for processing events and time (pyglet.clock.Clock)
  • Window events (pyglet.window.Window)
  • Event dispatching (pyglet.event.EventDispatcher)
  • Context management

Sprites, text layouts, and text functions are implemented. Multi-level lists are supported and can be created using HTML. Different sections of the displayed document can have distinct styles. A built-in caret provides support for text editing, resembling many features of a UI text input caret.

02Example

from pyglet.window import Window from pyglet.app import run window = Window(caption="Hello world!", width=640, height=480) run()

In this example, lines 1-2 import the pyglet module's necessary components. Line 4 creates a window, and line 6 calls pyglet to run its event loop. Optionally an update rate (in frames per second) can be specified in a rate parameter.

Watch videos about PygletExplainers and documentaries on YouTube (opens in a new tab)

Sources and credits

This article is adapted from the Wikipedia article Pyglet, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.

Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.