base.BaseWindow

Methods

BaseWindow.__init__(title='ModernGL', gl_version=(3, 3), size=(1280, 720), resizable=True, fullscreen=False, vsync=True, aspect_ratio: float = None, samples=4, cursor=True, **kwargs)[source]

Initialize a window instance.

Parameters
  • title (str) – The window title

  • gl_version (tuple) – Major and minor version of the opengl context to create

  • size (tuple) – Window size x, y

  • resizable (bool) – Should the window be resizable?

  • fullscreen (bool) – Open window in fullsceeen mode

  • vsync (bool) – Enable/disable vsync

  • aspect_ratio (float) – The desired fixed aspect ratio. Can be set to None to make aspect ratio be based on the actual window size.

  • samples (int) – Number of MSAA samples for the default framebuffer

  • cursor (bool) – Enable/disable displaying the cursor inside the window

BaseWindow.init_mgl_context() → None[source]

Create or assign a ModernGL context. If no context is supplied a context will be created using the window’s gl_version.

Keyword Arguments

ctx – An optional custom ModernGL context

BaseWindow.is_key_pressed(key) → bool[source]

Returns: The press state of a key

BaseWindow.close() → None[source]

Signal for the window to close

BaseWindow.use()[source]

Bind the window’s framebuffer

BaseWindow.clear(red=0.0, green=0.0, blue=0.0, alpha=0.0, depth=1.0, viewport=None)[source]

Binds and clears the default framebuffer

Parameters
  • red (float) – color component

  • green (float) – color component

  • blue (float) – color component

  • alpha (float) – alpha component

  • depth (float) – depth value

  • viewport (tuple) – The viewport

BaseWindow.render(time=0.0, frame_time=0.0) → None[source]

Renders a frame by calling the configured render callback

Keyword Arguments
  • time (float) – Current time in seconds

  • frame_time (float) – Delta time from last frame in seconds

BaseWindow.swap_buffers() → None[source]

Library specific buffer swap method. Must be overridden.

BaseWindow.resize(width, height) → None[source]

Should be called every time window is resized so the example can adapt to the new size if needed

BaseWindow.destroy() → None[source]

A library specific destroy method is required

BaseWindow.set_default_viewport() → None[source]

Calculates the and sets the viewport based on window configuration.

The viewport will based on the configured fixed aspect ratio if set. If no fixed aspect ratio is set the viewport will be scaled to the entire window size regardless of size.

Will add black borders and center the viewport if the window do not match the configured viewport (fixed only)

BaseWindow.print_context_info()[source]

Prints moderngl context info.

Attributes

BaseWindow.keys

Window specific key constants

BaseWindow.ctx

The ModernGL context for the window

Type

moderngl.Context

BaseWindow.fbo

The default framebuffer

Type

moderngl.Framebuffer

BaseWindow.title

Window title.

This property can also be set:

window.title = "New Title"
Type

str

BaseWindow.gl_version

(major, minor) required OpenGL version

Type

Tuple[int, int]

BaseWindow.width

The current window width

Type

int

BaseWindow.height

The current window height

Type

int

BaseWindow.size

current window size.

This property also support assignment:

# Resize the window to 1000 x 1000
window.size = 1000, 1000
Type

Tuple[int, int]

BaseWindow.position

The current window position.

This property can also be set to move the window:

# Move window to 100, 100
window.position = 100, 100
Type

Tuple[int, int]

BaseWindow.buffer_width

the current window buffer width

Type

int

BaseWindow.buffer_height

the current window buffer height

Type

int

BaseWindow.buffer_size

tuple with the current window buffer size

Type

Tuple[int, int]

BaseWindow.pixel_ratio

The frambuffer/window size ratio

Type

float

BaseWindow.viewport

current window viewport

Type

Tuple[int, int, int, int]

BaseWindow.viewport_size

Size of the viewport.

Equivalent to self.viewport[2], self.viewport[3]

Type

Tuple[int,int]

BaseWindow.viewport_width

The width of the viewport.

Equivalent to self.viewport[2].

Type

int

BaseWindow.viewport_height

The height of the viewport

Equivalent to self.viewport[3].

Type

int

BaseWindow.frames

Number of frames rendered

Type

int

BaseWindow.resizable

Window is resizable

Type

bool

BaseWindow.fullscreen

Window is in fullscreen mode

Type

bool

BaseWindow.config

Get the current WindowConfig instance

This property can also be set. Assinging a WindowConfig instance will automatically set up the necessary event callback methods:

window.config = window_config_instance
BaseWindow.vsync

vertical sync enabled/disabled

Type

bool

BaseWindow.aspect_ratio

The current aspect ratio of the window. If a fixed aspect ratio was passed to the window initializer this value will always be returned. Otherwise width / height will be returned.

This property is read only.

Type

float

BaseWindow.fixed_aspect_ratio

The fixed aspect ratio for the window.

Can be set to None to disable fixed aspect ratio making the aspect ratio adjust to the actual window size

This will affects how the viewport is calculated and the reported value from the aspect_ratio property:

# Enabled fixed aspect ratio
window.fixed_aspect_ratio = 16 / 9

# Disable fixed aspect ratio
window.fixed_aspect_ratio = None
Type

float

BaseWindow.samples

Number of Multisample anti-aliasing (MSAA) samples

Type

float

BaseWindow.cursor

Should the mouse cursor be visible inside the window?

This property can also be assigned to:

# Disable cursor
window.cursor = False
Type

bool

BaseWindow.mouse_exclusivity

If mouse exclusivity is enabled.

When you enable mouse-exclusive mode, the mouse cursor is no longer available. It is not merely hidden – no amount of mouse movement will make it leave your application. This is for example useful when you don’t want the mouse leaving the screen when rotating a 3d scene.

This property can also be set:

window.mouse_exclusivity = True
Type

bool

BaseWindow.render_func

The render callable

This property can also be used to assign a callable.

Type

callable

BaseWindow.resize_func

Get or set the resize callable

Type

callable

BaseWindow.close_func

Get or set the close callable

Type

callable

BaseWindow.iconify_func

Get or set ehe iconify/show/hide callable

Type

callable

BaseWindow.key_event_func

Get or set the key_event callable

Type

callable

BaseWindow.mouse_position_event_func

Get or set the mouse_position callable

Type

callable

BaseWindow.mouse_press_event_func

Get or set the mouse_press callable

Type

callable

BaseWindow.mouse_release_event_func

Get or set the mouse_release callable

Type

callable

BaseWindow.mouse_drag_event_func

Get or set the mouse_drag callable

Type

callable

BaseWindow.mouse_scroll_event_func

Get or set the mouse_scroll_event calable

Type

callable

BaseWindow.unicode_char_entered_func

Get or set the unicode_char_entered callable

Type

callable

BaseWindow.is_closing

Is the window about to close?

Type

bool

BaseWindow.mouse = <class 'moderngl_window.context.base.window.MouseButtons'>

Mouse button enum

BaseWindow.mouse_states

Mouse button state structure.

The current mouse button states.

window.mouse_buttons.left
window.mouse_buttons.right
window.mouse_buttons.middle
Type

MouseButtonStates

BaseWindow.modifiers

(KeyModifiers) The current keyboard modifiers

BaseWindow.gl_version_code

Generates the version code integer for the selected OpenGL version.

gl_version (4, 1) returns 410

Type

int