glfw.GLFW

Methods

Window.__init__(**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 aspect ratio. Can be set to None.
  • samples (int) – Number of MSAA samples for the default framebuffer
  • cursor (bool) – Enable/disable displaying the cursor inside the window
Window.init_mgl_context() → None

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
Window.is_key_pressed(key) → bool

Returns: The press state of a key

Window.close() → None[source]

Suggest to glfw the window should be closed soon

Window.use()

Bind the window’s framebuffer

Window.clear(red=0.0, green=0.0, blue=0.0, alpha=0.0, depth=1.0, viewport=None)

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
Window.render(time=0.0, frame_time=0.0) → None

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
Window.swap_buffers()[source]

Swap buffers, increment frame counter and pull events

Window.resize(width, height) → None

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

Window.destroy()[source]

Gracefully terminate GLFW

Window.set_default_viewport() → None

Calculates the viewport based on the configured aspect ratio. Will add black borders and center the viewport if the window do not match the configured viewport.

If aspect ratio is None the viewport will be scaled to the entire window size regardless of size.

Window.print_context_info()

Prints moderngl context info.

Window Specific Methods

Window.glfw_window_resize_callback(window, width, height)[source]

Window resize callback for glfw

Parameters:
  • window – The window
  • width – New width
  • height – New height
Window.glfw_mouse_event_callback(window, xpos, ypos)[source]

Mouse event callback from glfw. Translates the events forwarding them to cursor_event().

Parameters:
  • window – The window
  • xpos – viewport x pos
  • ypos – viewport y pos
Window.glfw_mouse_button_callback(window, button, action, mods)[source]

Handle mouse button events and forward them to the example

Parameters:
  • window – The window
  • button – The button creating the event
  • action – Button action (press or release)
  • mods – They modifiers such as ctrl or shift
Window.glfw_key_event_callback(window, key, scancode, action, mods)[source]

Key event callback for glfw. Translates and forwards keyboard event to keyboard_event()

Parameters:
  • window – Window event origin
  • key – The key that was pressed or released.
  • scancode – The system-specific scancode of the key.
  • actionGLFW_PRESS, GLFW_RELEASE or GLFW_REPEAT
  • mods – Bit field describing which modifier keys were held down.

Attributes

Window.keys

GLFW specific key constants

Window.ctx

The ModernGL context for the window

Type:moderngl.Context
Window.fbo

The default framebuffer

Type:moderngl.Framebuffer
Window.title

Window title

Type:str
Window.gl_version

(major, minor) required OpenGL version

Type:Tuple[int, int]
Window.width

The current window width

Type:int
Window.height

The current window height

Type:int
Window.size

current window size

Type:Tuple[int, int]
Window.buffer_size

tuple with the current window buffer size

Type:Tuple[int, int]
Window.pixel_ratio

The frambuffer/window size ratio

Type:float
Window.viewport

current window viewport

Type:Tuple[int, int, int, int]
Window.frames

Number of frames rendered

Type:int
Window.resizable

Window is resizable

Type:bool
Window.fullscreen

Window is in fullscreen mode

Type:bool
Window.config

Get the current WindowConfig instance

Window.vsync

vertical sync enabled/disabled

Type:bool
Window.aspect_ratio

Aspect ratio configured for the viewport

Type:float
Window.samples

Number of Multisample anti-aliasing (MSAA) samples

Type:float
Window.cursor

Should the mouse cursor be visible inside the window?

Type:bool
Window.render_func

The render callable

This property can also be used to assign a callable.

Type:callable
Window.resize_func

The resize callable

This property can also be used to assign a callable.

Type:callable
Window.key_event_func

The key_event callable

This property can also be used to assign a callable.

Type:callable
Window.mouse_position_event_func

The mouse_position callable

This property can also be used to assign a callable.

Type:callable
Window.mouse_press_event_func

The mouse_press callable

This property can also be used to assign a callable.

Type:callable
Window.mouse_release_event_func

The mouse_release callable

This property can also be used to assign a callable.

Type:callable
Window.is_closing

Checks if the window is scheduled for closing

Type:bool
Window.modifiers

(KeyModifiers) The current keyboard modifiers

Window.gl_version_code

Generates the version code integer for the selected OpenGL version.

gl_version (4, 1) returns 410

Type:int