summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engine/src/renderer/opengl.rs119
1 files changed, 0 insertions, 119 deletions
diff --git a/engine/src/renderer/opengl.rs b/engine/src/renderer/opengl.rs
index 745a471..7524775 100644
--- a/engine/src/renderer/opengl.rs
+++ b/engine/src/renderer/opengl.rs
@@ -73,7 +73,6 @@ use crate::asset::{Assets, Handle as AssetHandle};
use crate::data_types::dimens::Dimens;
use crate::image::{ColorType as ImageColorType, Image};
use crate::matrix::Matrix;
-use crate::model::Model;
use crate::renderer::blending::{Equation as BlendingEquation, Factor as BlendingFactor};
use crate::renderer::object::{
Id as RendererObjectId,
@@ -185,130 +184,12 @@ impl ecs::extension::Extension for Extension
collector.add_system(*POST_RENDER_PHASE, prepare_windows);
collector.add_system(*POST_RENDER_PHASE, init_window_graphics);
- collector.add_observer(handle_model_removed);
-
collector.add_observer(handle_window_changed);
collector.add_observer(handle_window_removed);
}
}
#[tracing::instrument(skip_all)]
-fn handle_model_removed(
- observe: Observe<Pair<Removed, Model>>,
- renderer_ctx_query: Query<(
- &mut GraphicsContext,
- &RendererObjectStore,
- Pair<RendererCtxUsedByWindow, Wildcard>,
- )>,
- assets: Single<Assets>,
-)
-{
- for evt_match in &observe {
- let model_ent_id = evt_match.id();
-
- for (
- renderer_ctx_ent_id,
- (mut graphics_ctx, renderer_object_store, renderer_ctx_used_by_window),
- ) in renderer_ctx_query.iter_with_euids()
- {
- let GraphicsContext {
- ref gl_context,
- ref surfaces,
- objects: ref mut graphics_ctx_objects,
- ..
- } = *graphics_ctx;
-
- let model = evt_match.get_removed_comp();
-
- let Some(model_spec) = assets.get(&model.spec_asset) else {
- continue;
- };
-
- let Some(mesh_asset) = &model_spec.mesh_asset else {
- continue;
- };
-
- let Some(graphics_ctx_object_id) = renderer_object_store
- .get_obj(&RendererObjectId::Asset(mesh_asset.id()))
- .map(|obj| obj.as_raw())
- else {
- continue;
- };
-
- if !graphics_ctx_objects.contains_key(&graphics_ctx_object_id) {
- continue;
- }
-
- let Some(window_ent) = renderer_ctx_used_by_window.get_target_ent() else {
- tracing::error!(
- window_entity_id = %renderer_ctx_used_by_window.id().target_entity(),
- "Window entity does not exist"
- );
- continue;
- };
-
- let Some(surface_spec) = window_ent.get::<SurfaceSpec>() else {
- tracing::error!(
- window_entity_id = %window_ent.uid(),
- "Window entity does not have a {} component",
- type_name::<SurfaceSpec>()
- );
- continue;
- };
-
- let Some(surface) = surfaces.get(&surface_spec.id) else {
- tracing::error!(
- window_entity_id = %window_ent.uid(),
- "Surface specified by window entity's {} component does not exist",
- type_name::<SurfaceSpec>()
- );
- continue;
- };
-
- let curr_gl_ctx = match gl_context.make_current(surface) {
- Ok(curr_gl_ctx) => curr_gl_ctx,
- Err(err) => {
- tracing::error!("{err}");
- continue;
- }
- };
-
- tracing::debug!(
- model_entity_id=%model_ent_id,
- renderer_ctx_entity_id=%renderer_ctx_ent_id,
- "Cleaning up after model in renderer context"
- );
-
- let Some(removed_graphics_ctx_obj) =
- graphics_ctx_objects.remove(&graphics_ctx_object_id)
- else {
- tracing::warn!(
- model_entity_id=%model_ent_id,
- "No graphics context object exists for model"
- );
- continue;
- };
-
- #[allow(irrefutable_let_patterns)]
- let GraphicsContextObject::Mesh {
- mesh: mut graphics_mesh,
- compatible_shader_program_obj_id: _,
- } = removed_graphics_ctx_obj
- else {
- tracing::error!(
- model_entity_id=%model_ent_id,
- "Graphics context object for model is not a mesh"
- );
-
- continue;
- };
-
- graphics_mesh.destroy(&curr_gl_ctx);
- }
- }
-}
-
-#[tracing::instrument(skip_all)]
fn handle_window_changed(
observe: Observe<Pair<Changed, Window>>,
entity_obtainer: EntityObtainer,