Path: blob/main/cad/OrcaSlicer/files/patch-src_OrcaSlicer.cpp
34610 views
--- src/OrcaSlicer.cpp.orig 2025-10-02 17:32:12 UTC1+++ src/OrcaSlicer.cpp2@@ -23,7 +23,7 @@3#include <iostream>4#include <math.h>56-#if defined(__linux__) || defined(__LINUX__)7+#if defined(__linux__) || defined(__LINUX__) || defined(__FreeBSD__)8#include <condition_variable>9#include <mutex>10#include <boost/thread.hpp>11@@ -166,7 +166,7 @@ std::vector<PrintBase::SlicingStatus> g_slicing_warnin12}sliced_info_t;13std::vector<PrintBase::SlicingStatus> g_slicing_warnings;1415-#if defined(__linux__) || defined(__LINUX__)16+#if defined(__linux__) || defined(__LINUX__) || defined(__FreeBSD__)17#define PIPE_BUFFER_SIZE 5121819typedef struct _cli_callback_mgr {20@@ -379,7 +379,7 @@ static PrinterTechnology get_printer_technology(const21}2223//BBS: add flush and exit24-#if defined(__linux__) || defined(__LINUX__)25+#if defined(__linux__) || defined(__LINUX__) || defined(__FreeBSD__)26#define flush_and_exit(ret) { boost::nowide::cout << __FUNCTION__ << " found error, return "<<ret<<", exit..." << std::endl;\27g_cli_callback_mgr.stop();\28boost::nowide::cout.flush();\29@@ -400,7 +400,7 @@ void record_exit_reson(std::string outputdir, int code3031void record_exit_reson(std::string outputdir, int code, int plate_id, std::string error_message, sliced_info_t& sliced_info, std::map<std::string, std::string> key_values = std::map<std::string, std::string>())32{33-#if defined(__linux__) || defined(__LINUX__)34+#if defined(__linux__) || defined(__LINUX__) || defined(__FreeBSD__)35std::string result_file;3637if (!outputdir.empty())38@@ -1262,7 +1262,7 @@ int CLI::run(int argc, char **argv)39pipe_name = pipe_option->value;40if (!pipe_name.empty()) {41BOOST_LOG_TRIVIAL(info) << boost::format("Will use pipe %1%")%pipe_name;42-#if defined(__linux__) || defined(__LINUX__)43+#if defined(__linux__) || defined(__LINUX__) || defined(__FreeBSD__)44g_cli_callback_mgr.start(pipe_name);45PrintBase::SlicingStatus slicing_status{1, "Start to load files"};46cli_status_callback(slicing_status);47@@ -3396,7 +3396,7 @@ int CLI::run(int argc, char **argv)48ArrangeParams arrange_cfg;4950BOOST_LOG_TRIVIAL(info) << "will start transforms, commands count " << m_transforms.size() << "\n";51-#if defined(__linux__) || defined(__LINUX__)52+#if defined(__linux__) || defined(__LINUX__) || defined(__FreeBSD__)53if (g_cli_callback_mgr.is_started()) {54PrintBase::SlicingStatus slicing_status{2, "Loading files finished"};55cli_status_callback(slicing_status);56@@ -4735,7 +4735,7 @@ int CLI::run(int argc, char **argv)57flush_and_exit(1);58}*/59BOOST_LOG_TRIVIAL(info) << "Need to slice for plate "<<plate_to_slice <<", total plate count "<<partplate_list.get_plate_count()<<" partplates!" << std::endl;60-#if defined(__linux__) || defined(__LINUX__)61+#if defined(__linux__) || defined(__LINUX__) || defined(__FreeBSD__)62if (g_cli_callback_mgr.is_started()) {63PrintBase::SlicingStatus slicing_status{3, "Prepare slicing"};64cli_status_callback(slicing_status);65@@ -4947,7 +4947,7 @@ int CLI::run(int argc, char **argv)66try {67std::string outfile_final;68BOOST_LOG_TRIVIAL(info) << "start Print::process for partplate "<<index+1 << std::endl;69-#if defined(__linux__) || defined(__LINUX__)70+#if defined(__linux__) || defined(__LINUX__) || defined(__FreeBSD__)71BOOST_LOG_TRIVIAL(info) << "cli callback mgr started: "<<g_cli_callback_mgr.m_started << std::endl;72if (g_cli_callback_mgr.is_started()) {73BOOST_LOG_TRIVIAL(info) << "set print's callback to cli_status_callback.";74@@ -5001,7 +5001,7 @@ int CLI::run(int argc, char **argv)75}76else {77BOOST_LOG_TRIVIAL(info) << "plate "<< index+1<< ": load cached data success, go on.";78-#if defined(__linux__) || defined(__LINUX__)79+#if defined(__linux__) || defined(__LINUX__) || defined(__FreeBSD__)80if (g_cli_callback_mgr.is_started()) {81PrintBase::SlicingStatus slicing_status{69, "Cache data loaded"};82cli_status_callback(slicing_status);83@@ -5090,7 +5090,7 @@ int CLI::run(int argc, char **argv)84//run_post_process_scripts(outfile, print->full_print_config());85BOOST_LOG_TRIVIAL(info) << "Slicing result exported to " << outfile << std::endl;86part_plate->update_slice_result_valid_state(true);87-#if defined(__linux__) || defined(__LINUX__)88+#if defined(__linux__) || defined(__LINUX__) || defined(__FreeBSD__)89if (g_cli_callback_mgr.is_started()) {90PrintBase::SlicingStatus slicing_status{100, "Slicing finished"};91cli_status_callback(slicing_status);92@@ -5140,7 +5140,7 @@ int CLI::run(int argc, char **argv)93finished = true;94}//end for partplate9596-#if defined(__linux__) || defined(__LINUX__)97+#if defined(__linux__) || defined(__LINUX__) || defined(__FreeBSD__)98if (g_cli_callback_mgr.is_started()) {99int plate_count = (plate_to_slice== 0)?partplate_list.get_plate_count():1;100g_cli_callback_mgr.set_plate_info(0, plate_count);101@@ -5218,7 +5218,7 @@ int CLI::run(int argc, char **argv)102export_3mf_file = outfile_dir + "/"+export_3mf_file;103}104105-#if defined(__linux__) || defined(__LINUX__)106+#if defined(__linux__) || defined(__LINUX__) || defined(__FreeBSD__)107if (g_cli_callback_mgr.is_started()) {108PrintBase::SlicingStatus slicing_status{94, "Generate thumbnails"};109cli_status_callback(slicing_status);110@@ -5375,7 +5375,7 @@ int CLI::run(int argc, char **argv)111glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_COMPAT_PROFILE);112#endif113114-#ifdef __linux__115+#if defined(__linux__) || defined(__FreeBSD__)116glfwWindowHint(GLFW_CONTEXT_CREATION_API, GLFW_OSMESA_CONTEXT_API);117#endif118119@@ -5850,7 +5850,7 @@ int CLI::run(int argc, char **argv)120}121122123-#if defined(__linux__) || defined(__LINUX__)124+#if defined(__linux__) || defined(__LINUX__) || defined(__FreeBSD__)125if (g_cli_callback_mgr.is_started()) {126PrintBase::SlicingStatus slicing_status{97, "Exporting 3mf"};127cli_status_callback(slicing_status);128@@ -5908,7 +5908,7 @@ int CLI::run(int argc, char **argv)129release_PlateData_list(plate_data_src);130}131132-#if defined(__linux__) || defined(__LINUX__)133+#if defined(__linux__) || defined(__LINUX__) || defined(__FreeBSD__)134if (g_cli_callback_mgr.is_started()) {135PrintBase::SlicingStatus slicing_status{100, "All done, Success"};136cli_status_callback(slicing_status);137138139