moderngl

import moderngl

window = ...
ctx = moderngl.create_context()
# store a ref to ctx

The module object itself is responsible for creating a Context object.

moderngl.create_context(require: int = 330, standalone: bool = False) Context

Create a ModernGL context by loading OpenGL functions from an existing OpenGL context. An OpenGL context must exist. Call this after a window is created or opt for the windowless standalone mode. Other backend specific settings are passed as keyword arguments.

Context sharing is known to not work properly, please avoid using it. There is a paramter share for that to attempt to create a shared context.

Parameters:
  • require (int) – OpenGL version code

  • standalone (bool) – Headless flag

Example:

# Accept the current context version
ctx = moderngl.create_context()

# Require at least OpenGL 4.3
ctx = moderngl.create_context(require=430)

# Create a windowless context
ctx = moderngl.create_context(standalone=True)
moderngl.create_standalone_context(...) Context

Deprecated, use moderngl.create_context() with the standalone parameter set.

moderngl.get_context() Context

Returns the previously created context object.

Example:

# my_app.py

from moderngl import create_context

ctx = create_context(...)

# my_renderer.py

from moderngl import get_context

class MyRenderer:
    def __init__(self):
        self.ctx = get_context()
        self.program = ...
        self.vao = ...

Context Flags

These were moved to Context.

moderngl.NOTHING

See Context.NOTHING

moderngl.BLEND

See Context.BLEND

moderngl.DEPTH_TEST

See Context.DEPTH_TEST

moderngl.CULL_FACE

See Context.CULL_FACE

moderngl.RASTERIZER_DISCARD

See Context.RASTERIZER_DISCARD

moderngl.PROGRAM_POINT_SIZE

See Context.PROGRAM_POINT_SIZE

moderngl.POINTS

See Context.POINTS

moderngl.LINES

See Context.LINES

moderngl.LINE_LOOP

See Context.LINE_LOOP

moderngl.LINE_STRIP

See Context.LINE_STRIP

moderngl.TRIANGLES

See Context.TRIANGLES

moderngl.TRIANGLE_STRIP

See Context.TRIANGLE_STRIP

moderngl.TRIANGLE_FAN

See Context.TRIANGLE_FAN

moderngl.LINES_ADJACENCY

See Context.LINES_ADJACENCY

moderngl.LINE_STRIP_ADJACENCY

See Context.LINE_STRIP_ADJACENCY

moderngl.TRIANGLES_ADJACENCY

See Context.TRIANGLES_ADJACENCY

moderngl.TRIANGLE_STRIP_ADJACENCY

See Context.TRIANGLE_STRIP_ADJACENCY

moderngl.PATCHES

See Context.PATCHES

moderngl.NEAREST

See Context.NEAREST

moderngl.LINEAR

See Context.LINEAR

moderngl.NEAREST_MIPMAP_NEAREST

See Context.NEAREST_MIPMAP_NEAREST

moderngl.LINEAR_MIPMAP_NEAREST

See Context.LINEAR_MIPMAP_NEAREST

moderngl.NEAREST_MIPMAP_LINEAR

See Context.NEAREST_MIPMAP_LINEAR

moderngl.LINEAR_MIPMAP_LINEAR

See Context.LINEAR_MIPMAP_LINEAR

moderngl.ZERO

See Context.ZERO

moderngl.ONE

See Context.ONE

moderngl.SRC_COLOR

See Context.SRC_COLOR

moderngl.ONE_MINUS_SRC_COLOR

See Context.ONE_MINUS_SRC_COLOR

moderngl.SRC_ALPHA

See Context.SRC_ALPHA

moderngl.ONE_MINUS_SRC_ALPHA

See Context.ONE_MINUS_SRC_ALPHA

moderngl.DST_ALPHA

See Context.DST_ALPHA

moderngl.ONE_MINUS_DST_ALPHA

See Context.ONE_MINUS_DST_ALPHA

moderngl.DST_COLOR

See Context.DST_COLOR

moderngl.ONE_MINUS_DST_COLOR

See Context.ONE_MINUS_DST_COLOR

moderngl.DEFAULT_BLENDING

See Context.DEFAULT_BLENDING

moderngl.ADDITIVE_BLENDING

See Context.ADDITIVE_BLENDING

moderngl.PREMULTIPLIED_ALPHA

See Context.PREMULTIPLIED_ALPHA

moderngl.FUNC_ADD

See Context.FUNC_ADD

moderngl.FUNC_SUBTRACT

See Context.FUNC_SUBTRACT

moderngl.FUNC_REVERSE_SUBTRACT

See Context.FUNC_REVERSE_SUBTRACT

moderngl.MIN

See Context.MIN

moderngl.MAX

See Context.MAX

moderngl.FIRST_VERTEX_CONVENTION

See Context.FIRST_VERTEX_CONVENTION

moderngl.LAST_VERTEX_CONVENTION

See Context.LAST_VERTEX_CONVENTION