aboutsummaryrefslogtreecommitdiff
path: root/stockton-render/src/culling.rs
diff options
context:
space:
mode:
authortcmal <me@aria.rip>2024-08-25 17:44:22 +0100
committertcmal <me@aria.rip>2024-08-25 17:44:22 +0100
commitc48b54f3fb7bbe9046915eb99eca02fa84dc55c9 (patch)
tree752831451d2bd3a658485df724a01ae39e80fae3 /stockton-render/src/culling.rs
parentb437109ebf4da243fd643f0a31546d0d0155b0a4 (diff)
feat(render): multithreaded texture loading
also a bunch of supporting changes
Diffstat (limited to 'stockton-render/src/culling.rs')
-rw-r--r--stockton-render/src/culling.rs18
1 files changed, 9 insertions, 9 deletions
diff --git a/stockton-render/src/culling.rs b/stockton-render/src/culling.rs
index 8ee2877..9b5844c 100644
--- a/stockton-render/src/culling.rs
+++ b/stockton-render/src/culling.rs
@@ -19,12 +19,12 @@
#![allow(dead_code)]
use stockton_levels::prelude::*;
-use stockton_levels::traits::tree::{BSPNode, BSPNodeValue};
+use stockton_levels::traits::tree::{BspNode, BspNodeValue};
use stockton_types::Vector3;
/// Get the visible faces according to visdata and frustum culling
// TODO: Write this. For now, just render all faces
-pub fn get_visible_faces<X: CoordSystem, T: MinBSPFeatures<X>>(pos: Vector3, file: &T) -> Vec<u32> {
+pub fn get_visible_faces<X: CoordSystem, T: MinBspFeatures<X>>(pos: Vector3, file: &T) -> Vec<u32> {
let vis_cluster = get_cluster_id(pos, file);
let mut visible = Vec::with_capacity(file.faces_len() as usize);
@@ -43,16 +43,16 @@ pub fn get_visible_faces<X: CoordSystem, T: MinBSPFeatures<X>>(pos: Vector3, fil
visible
}
-pub fn walk_bsp_tree<X: CoordSystem, T: MinBSPFeatures<X>>(
- node: &BSPNode,
+pub fn walk_bsp_tree<X: CoordSystem, T: MinBspFeatures<X>>(
+ node: &BspNode,
vis_cluster: u32,
visible_faces: &mut Vec<u32>,
file: &T,
) {
- if let BSPNodeValue::Children(front, back) = &node.value {
+ if let BspNodeValue::Children(front, back) = &node.value {
walk_bsp_tree(back, vis_cluster, visible_faces, file);
walk_bsp_tree(front, vis_cluster, visible_faces, file);
- } else if let BSPNodeValue::Leaf(leaf) = &node.value {
+ } else if let BspNodeValue::Leaf(leaf) = &node.value {
if (leaf.cluster_id & 0x80000000) != 0 {
// Negative means invalid leaf
return;
@@ -66,9 +66,9 @@ pub fn walk_bsp_tree<X: CoordSystem, T: MinBSPFeatures<X>>(
}
/// Get the viscluster pos lies in
-fn get_cluster_id<X: CoordSystem, T: MinBSPFeatures<X>>(pos: Vector3, file: &T) -> u32 {
+fn get_cluster_id<X: CoordSystem, T: MinBspFeatures<X>>(pos: Vector3, file: &T) -> u32 {
let mut node = file.get_bsp_root();
- while let BSPNodeValue::Children(front, back) = &node.value {
+ while let BspNodeValue::Children(front, back) = &node.value {
let plane = file.get_plane(node.plane_idx);
let dist = plane.normal.dot(&pos) - plane.dist;
@@ -79,7 +79,7 @@ fn get_cluster_id<X: CoordSystem, T: MinBSPFeatures<X>>(pos: Vector3, file: &T)
}
}
- if let BSPNodeValue::Leaf(leaf) = &node.value {
+ if let BspNodeValue::Leaf(leaf) = &node.value {
leaf.cluster_id
} else {
panic!("should have had a leaf but didn't");