glfw.Window¶
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 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
-
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.
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.
resize
(width, height) → None¶ Should be called every time window is resized so the example can adapt to the new size if needed
-
Window.
set_default_viewport
() → None¶ 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)
-
Window.
print_context_info
()¶ Prints moderngl context info.
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.
This property can also be set:
window.title = "New 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.
This property also support assignment:
# Resize the window to 1000 x 1000 window.size = 1000, 1000
- Type
Tuple[int, int]
-
Window.
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]
-
Window.
buffer_width
¶ the current window buffer width
- Type
int
-
Window.
buffer_height
¶ the current window buffer height
- Type
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.
viewport_size
¶ Size of the viewport.
Equivalent to
self.viewport[2], self.viewport[3]
- Type
Tuple[int,int]
-
Window.
viewport_width
¶ The width of the viewport.
Equivalent to
self.viewport[2]
.- Type
int
-
Window.
viewport_height
¶ The height of the viewport
Equivalent to
self.viewport[3]
.- Type
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
This property can also be set. Assinging a WindowConfig instance will automatically set up the necessary event callback methods:
window.config = window_config_instance
-
Window.
vsync
¶ vertical sync enabled/disabled
- Type
bool
-
Window.
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
-
Window.
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 sizeThis 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
-
Window.
samples
¶ Number of Multisample anti-aliasing (MSAA) samples
- Type
float
-
Window.
cursor
¶ Should the mouse cursor be visible inside the window?
This property can also be assigned to:
# Disable cursor window.cursor = False
- Type
bool
-
Window.
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
-
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.
iconify_func
¶ The iconify/show/hide callback function
The 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.
mouse_drag_event_func
¶ The mouse_drag callable
This property can also be used to assign a callable.
- Type
callable
-
Window.
mouse_scroll_event_func
¶ The mouse_scroll_event calable
This property can also be used to assign a callable.
- Type
callable
-
Window.
unicode_char_entered_func
¶ The unicode_char_entered 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.
mouse
= <class 'moderngl_window.context.base.window.MouseButtons'>¶
-
Window.
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
-
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
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 position event callback from glfw. Translates the events forwarding them to
cursor_event()
.Screen coordinates relative to the top-left corner
- Parameters
window – The window
xpos – viewport x pos
ypos – viewport y pos
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_mouse_scroll_callback
(window, x_offset: float, y_offset: float)[source]¶ Handle mouse scroll events and forward them to the example
- Parameters
window – The window
x_offset (float) – x wheel offset
y_offest (float) – y wheel offset
-
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.
action –
GLFW_PRESS
,GLFW_RELEASE
orGLFW_REPEAT
mods – Bit field describing which modifier keys were held down.
-
Window.
glfw_char_callback
(window, codepoint: int)[source]¶ Handle text input (only unicode charaters)
- Parameters
window – The glfw window
codepoint (int) – The unicode codepoint
-
Window.
glfw_cursor_enter
(window, enter: int)[source]¶ called when the cursor enters or leaves the content area of the window.
- Parameters
window – the window instance
enter (int) – 0: leave, 1: enter