moderngl_window.conf.Settings¶
-
moderngl_window.conf.
Settings
[source]¶ Bag of settings values. New attributes can be freely added runtime. Various apply* methods are supplied so the user have full control over how settings values are initialized. This is especially useful for more custom usage. And instance of the Settings class is created when the conf module is imported.
Attribute names must currently be in upper case to be recognized.
Some examples of usage:
from moderngl_window.conf import settings # Mandatory settings values try: value = settings.VALUE except KeyError: raise ValueError("This settings value is required") # Fallback in code value = getattr(settings, 'VALUE', 'default_value') # Pretty printed string represenation for easy inspection print(settings)
Methods¶
-
Settings.
apply_default_settings
() → None[source]¶ Apply keys and values from the default settings module located in this package. This is to ensure we always have the minimnal settings for the system to run.
If replacing or customizing the settings class you must always apply default settings to ensure compatibility when new settings are added.
-
Settings.
apply_settings_from_env
() → None[source]¶ Apply settings from
MODERNGL_WINDOW_SETTINGS_MODULE
environment variable. If the enviroment variable is undefined no action will be taken. Normally this would be used to easily be able to switch between different configuration by setting env vars before executing the program.Example:
import os from moderngl_window.conf import settings os.environ['MODERNGL_WINDOW_SETTINGS_MODULE'] = 'python.path.to.module' settings.apply_settings_from_env()
- Raises
ImproperlyConfigured if the module was not found –
-
Settings.
apply_from_module_name
(settings_module_name: str) → None[source]¶ Apply settings from a python module by supplying the full pythonpath to the module.
- Parameters
settings_module_name (str) – Full python path to the module
- Raises
ImproperlyConfigured if the module was not found –
-
Settings.
apply_from_dict
(data: dict) → None[source]¶ Apply settings values from a dictionary
Example:
>> from moderngl_window.conf import settings >> settings.apply_dict({'SOME_VALUE': 1}) >> settings.SOME_VALUE 1
-
Settings.
apply_from_module
(module: module) → None[source]¶ Apply settings values from a python module
Example:
my_settings.py module containing the following line: SOME_VALUE = 1 >> from moderngl_window.conf import settings >> import my_settings >> settings.apply_module(my_settings) >> settings.SOME_VALUE 1
-
Settings.
apply_from_cls
(cls) → None[source]¶ Apply settings values from a class namespace
Example:
>> from moderngl_window.conf import settings >> class MySettings: >> SOME_VALUE = 1 >> >> settings.apply(MySettings) >> settings.SOME_VALUE 1
Attributes¶
-
Settings.
WINDOW
¶ Window/screen properties. Most importantly the
class
attribute decides what class should be used to handle the window.# Default values WINDOW = { "gl_version": (3, 3), "class": "moderngl_window.context.pyglet.Window", "size": (1280, 720), "aspect_ratio": 16 / 9, "fullscreen": False, "resizable": True, "title": "ModernGL Window", "vsync": True, "cursor": True, "samples": 0, }
Other Properties:
gl_version
: The minimum required major/minor OpenGL versionsize
: The window size to open.aspect_ratio
is the enforced aspect ratio of the viewport.fullscreen
: True if you want to create a context in fullscreen moderesizable
: If the window should be resizable. This only applies in windowed mode.vsync
: Only render one frame per screen refreshtitle
: The visible title on the window in windowed modecursor
: Should the mouse cursor be visible on the screen? Disabling this is also useful in windowed mode when controlling the camera on some platforms as moving the mouse outside the window can cause issues.Samples
: Number if samples used in multusampling. Values above 1 enables multisampling.
The created window frame buffer will by default use:
RGBA8 (32 bit per pixel)
24 bit depth buffer
Double buffering
color and depth buffer is cleared for every frame
-
Settings.
SCREENSHOT_PATH
¶ Absolute path to the directory screenshots will be saved by the screenshot module. Screenshots will end up in the project root of not defined. If a path is configured, the directory will be auto-created.
-
Settings.
PROGRAM_FINDERS
¶ Finder classes for locating programs/shaders.
# Default values PROGRAM_FINDERS = [ "moderngl_window.finders.program.FileSystemFinder", ]
-
Settings.
TEXTURE_FINDERS
¶ Finder classes for locating textures.
# Default values TEXTURE_FINDERS = [ "moderngl_window.finders.texture.FileSystemFinder", ]
-
Settings.
SCENE_FINDERS
¶ Finder classes for locating scenes.
# Default values SCENE_FINDERS = [ "moderngl_window.finders.scene.FileSystemFinder", ]
-
Settings.
DATA_FINDERS
¶ Finder classes for locating data files.
# Default values DATA_FINDERS = [ "moderngl_window.finders.data.FileSystemFinder", ]
-
Settings.
PROGRAM_DIRS
¶ Lists of str or pathlib.Path used by
FileSystemFinder
to looks for programs/shaders.
-
Settings.
TEXTURE_DIRS
¶ Lists of str or pathlib.Path used by
FileSystemFinder
to looks for textures.
-
Settings.
SCENE_DIRS
¶ Lists of str or pathlib.Path used by
FileSystemFinder
to looks for scenes (obj, gltf, stl etc).
-
Settings.
DATA_DIRS
¶ Lists of str or pathlib.Path used by
FileSystemFinder
to looks for data files.
-
Settings.
PROGRAM_LOADERS
¶ Classes responsible for loading programs/shaders.
# Default values PROGRAM_LOADERS = [ 'moderngl_window.loaders.program.single.Loader', 'moderngl_window.loaders.program.separate.Loader', ]
-
Settings.
TEXTURE_LOADERS
¶ Classes responsible for loading textures.
# Default values TEXTURE_LOADERS = [ 'moderngl_window.loaders.texture.t2d.Loader', 'moderngl_window.loaders.texture.array.Loader', ]
-
Settings.
SCENE_LOADERS
¶ Classes responsible for loading scenes.
# Default values SCENE_LOADERS = [ "moderngl_window.loaders.scene.gltf.GLTF2", "moderngl_window.loaders.scene.wavefront.ObjLoader", "moderngl_window.loaders.scene.stl_loader.STLLoader", ]
-
Settings.
DATA_LOADERS
¶ Classes responsible for loading data files.
# Default values DATA_LOADERS = [ 'moderngl_window.loaders.data.binary.Loader', 'moderngl_window.loaders.data.text.Loader', 'moderngl_window.loaders.data.json.Loader', ]