Source code for picogl.ui.backend.glut.window.object

"""
This module defines a RenderWindow class that provides a unified rendering
window supporting textured or untextured rendering.

The RenderWindow class extends the GlutRendererWindow and serves as an
interface to render 3D models with or without textures. It uses the
GLResourceRegistry to manage OpenGL resources and the ObjectRenderer to
handle the rendering process.

Classes:
    RenderWindow: Unified render window supporting textured or untextured
    rendering.
"""

from pathlib import Path

from picogl.renderer import GLResourceRegistry, MeshData
from picogl.renderer.object import ObjectRenderer
from picogl.ui.backend.glut.window.glut import GlutRendererWindow


[docs] class RenderWindow(GlutRendererWindow): """Unified render window supporting textured or untextured rendering.""" def __init__( self, width: int = 800, height: int = 600, title: str = "RenderWindow", data: MeshData | None = None, base_dir: str | Path | None = None, glsl_dir: str | Path | None = None, use_texture: bool = False, texture_file: str | None = None, resource_subdir: str = "tu02", *args, **kwargs, ): super().__init__(width=width, height=height, title=title, *args, **kwargs)
[docs] self.context = GLResourceRegistry()
[docs] self.data = data
[docs] self.base_dir = base_dir
[docs] self.glsl_dir = glsl_dir
[docs] self.renderer = ObjectRenderer( context=self.context, data=self.data, base_dir=self.base_dir, glsl_dir=self.glsl_dir, use_texture=use_texture, texture_file=texture_file, resource_subdir=resource_subdir, )
self.renderer.show_model = True
[docs] def initialize(self): self.initializeGL()