picogl.backend.geometry.factory =============================== .. py:module:: picogl.backend.geometry.factory .. autoapi-nested-parse:: Binding strategies that upload CPU meshes to GPU representations. Classes ------- .. autoapisummary:: picogl.backend.geometry.factory.GLBindingStrategy picogl.backend.geometry.factory.LegacyBinding picogl.backend.geometry.factory.ModernBinding Module Contents --------------- .. py:class:: GLBindingStrategy Bases: :py:obj:`abc.ABC` Upload CPU mesh data to a reusable :class:`GPUMesh`. .. py:attribute:: _last_gpu_mesh :type: picogl.backend.geometry.mesh.GPUMesh | None :value: None .. py:method:: upload(mesh: picogl.renderer.meshdata.MeshData) -> picogl.backend.geometry.mesh.GPUMesh :abstractmethod: .. py:method:: bind_mesh(mesh) -> None Deprecated: upload, bind, and remember mesh for the next draw. .. py:method:: draw(mesh, mode) -> None Deprecated: draw the last bound mesh, or upload on demand. .. py:class:: LegacyBinding Bases: :py:obj:`GLBindingStrategy` Upload ``MeshData`` to a client-state :class:`LegacyMesh`. .. py:method:: upload(mesh: picogl.renderer.meshdata.MeshData) -> picogl.backend.geometry.mesh.GPUMesh .. py:class:: ModernBinding Bases: :py:obj:`GLBindingStrategy` Upload ``MeshData`` to a VAO-backed :class:`ModernMesh`. .. py:method:: upload(mesh: picogl.renderer.meshdata.MeshData) -> picogl.backend.geometry.mesh.GPUMesh .. py:method:: upload_gpu_object(mesh: Any) -> picogl.backend.geometry.mesh.GPUMesh Wrap an object that already has ``vao`` / ``ebo`` / ``index_count``. .. py:method:: bind_mesh(mesh) -> None Deprecated: upload, bind, and remember mesh for the next draw.