Speed up searching for info to send to network

This commit is contained in:
Yousef Khadadeh 2025-07-21 12:26:07 +03:00
parent eb00125f01
commit 241a0a9588
11 changed files with 75 additions and 87 deletions

View file

@ -107,9 +107,9 @@ void BrushTool::tool_update() {
controls.intermediateItem->coords = drawP.world.drawData.cam.c;
controls.intermediateItem->lastUpdateTime = std::chrono::steady_clock::now();
uint64_t placement = drawP.components.client_list().size();
controls.intermediateID = drawP.components.client_insert(placement, controls.intermediateItem);
drawP.components.client_insert(placement, controls.intermediateItem);
controls.intermediateItem->temp_update(drawP);
controls.intermediateItem->client_send_place(drawP, placement);
controls.intermediateItem->client_send_place(drawP);
// NOTE: The data isnt finallized at this point, so a BVH isn't generated for an object that you undo while youre drawing (this isnt just for brush strokes)
// The fix for now is to generate a BVH for an object when you redo it
drawP.add_undo_place_component(placement, controls.intermediateItem);
@ -142,7 +142,7 @@ void BrushTool::tool_update() {
if((!controls.drawingMinimumRelativeToSize && distToPrev >= 10.0) || (controls.drawingMinimumRelativeToSize && distToPrev >= drawP.controls.relativeWidth * DRAW_MINIMUM_LIMIT)) {
controls.intermediateItem->d.points.back() = p;
controls.addedTemporaryPoint = false;
controls.intermediateItem->client_send_update_temp(drawP, controls.intermediateID);
controls.intermediateItem->client_send_update_temp(drawP);
if(controls.midwayInterpolation) {
if(controls.intermediateItem->d.points.size() != 2) // Don't interpolate the first point
@ -174,7 +174,7 @@ void BrushTool::gui_toolbox() {
void BrushTool::commit_stroke() {
if(controls.intermediateItem) {
if(!controls.intermediateItem->d.points.empty()) {
controls.intermediateItem->client_send_update_final(drawP, controls.intermediateID);
controls.intermediateItem->client_send_update_final(drawP);
controls.intermediateItem->final_update(drawP);
controls.intermediateItem = nullptr;
}