picogl.ui.abc_window

ABC Window

Classes

AbstractGLWindow

A strict ABC base class for a GLUT/OpenGL window.

Module Contents

class picogl.ui.abc_window.AbstractGLWindow(width: int = 800, height: int = 480, title: bytes = b'GL Window')[source]

Bases: abc.ABC

A strict ABC base class for a GLUT/OpenGL window.

Subclasses must implement:
  • initializeGL

  • paintGL

  • resizeGL

  • on_keyboard

  • on_special_key

  • on_mouse

  • on_mousemove

controller: object | None = None[source]
width = 800[source]
height = 480[source]
window = None[source]
title = b'GL Window'[source]
abstract initializeGL() None[source]

Set up OpenGL state. Must be implemented by subclass.

abstract paintGL() None[source]

Render the scene. Must be implemented by subclass.

abstract resizeGL(width: int, height: int) None[source]

Handle window resize. Must be implemented by subclass.

display() None[source]

Default display path calls paintGL, then swaps buffers

idle() None[source]

Optional idle hook (override if needed).

abstract keyPressEvent(key, x, y) None[source]

Handle ASCII keyboard input. Must be implemented by subclass.

abstract on_special_key(key, x, y) None[source]

Handle special keys (arrows, function keys). Must be implemented by subclass.

abstract mousePressEvent(*args, **kwargs) None[source]

Handle mouse button events. Must be implemented by subclass.

abstract mouseMoveEvent(*args, **kwargs) None[source]

Handle mouse movement events. Must be implemented by subclass.

run() None[source]