mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-11-02 20:51:23 -07:00 
			
		
		
		
	WIP: Restoring of the command line only builds (no GUI support).
This commit is contained in:
		
							parent
							
								
									8094cd22da
								
							
						
					
					
						commit
						349e30a39c
					
				
					 3 changed files with 42 additions and 13 deletions
				
			
		| 
						 | 
					@ -49,6 +49,10 @@ foreach (_cache_var ${_cache_vars})
 | 
				
			||||||
    endif ()
 | 
					    endif ()
 | 
				
			||||||
endforeach()
 | 
					endforeach()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (SLIC3R_GUI)
 | 
				
			||||||
 | 
					    add_definitions(-DSLIC3R_GUI)
 | 
				
			||||||
 | 
					endif ()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (MSVC)
 | 
					if (MSVC)
 | 
				
			||||||
    if (SLIC3R_MSVC_COMPILE_PARALLEL)
 | 
					    if (SLIC3R_MSVC_COMPILE_PARALLEL)
 | 
				
			||||||
	   add_compile_options(/MP)
 | 
						   add_compile_options(/MP)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,10 +6,12 @@
 | 
				
			||||||
    #define NOMINMAX
 | 
					    #define NOMINMAX
 | 
				
			||||||
    #include <Windows.h>
 | 
					    #include <Windows.h>
 | 
				
			||||||
    #include <wchar.h>
 | 
					    #include <wchar.h>
 | 
				
			||||||
    // Let the NVIDIA and AMD know we want to use their graphics card
 | 
					    #ifdef SLIC3R_GUI
 | 
				
			||||||
    // on a dual graphics card system.
 | 
					        // Let the NVIDIA and AMD know we want to use their graphics card
 | 
				
			||||||
    __declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
 | 
					        // on a dual graphics card system.
 | 
				
			||||||
    __declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1;
 | 
					        __declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
 | 
				
			||||||
 | 
					        __declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1;
 | 
				
			||||||
 | 
					    #endif /* SLIC3R_GUI */
 | 
				
			||||||
#endif /* WIN32 */
 | 
					#endif /* WIN32 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <cstdio>
 | 
					#include <cstdio>
 | 
				
			||||||
| 
						 | 
					@ -448,7 +450,7 @@ int CLI::run(int argc, char **argv)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
	if (start_gui) {
 | 
						if (start_gui) {
 | 
				
			||||||
#if 1
 | 
					#ifdef SLIC3R_GUI
 | 
				
			||||||
// #ifdef USE_WX
 | 
					// #ifdef USE_WX
 | 
				
			||||||
		GUI::GUI_App *gui = new GUI::GUI_App();
 | 
							GUI::GUI_App *gui = new GUI::GUI_App();
 | 
				
			||||||
//		gui->autosave = m_config.opt_string("autosave");
 | 
					//		gui->autosave = m_config.opt_string("autosave");
 | 
				
			||||||
| 
						 | 
					@ -477,12 +479,12 @@ int CLI::run(int argc, char **argv)
 | 
				
			||||||
				gui->mainframe->load_config(m_extra_config);
 | 
									gui->mainframe->load_config(m_extra_config);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
		return wxEntry(argc, argv);
 | 
							return wxEntry(argc, argv);
 | 
				
			||||||
#else
 | 
					#else /* SLIC3R_GUI */
 | 
				
			||||||
		// No GUI support. Just print out a help.
 | 
							// No GUI support. Just print out a help.
 | 
				
			||||||
		this->print_help(false);
 | 
							this->print_help(false);
 | 
				
			||||||
		// If started without a parameter, consider it to be OK, otherwise report an error code (no action etc).
 | 
							// If started without a parameter, consider it to be OK, otherwise report an error code (no action etc).
 | 
				
			||||||
		return (argc == 0) ? 0 : 1;
 | 
							return (argc == 0) ? 0 : 1;
 | 
				
			||||||
#endif   
 | 
					#endif /* SLIC3R_GUI */
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
| 
						 | 
					@ -563,7 +565,13 @@ bool CLI::setup(int argc, char **argv)
 | 
				
			||||||
void CLI::print_help(bool include_print_options, PrinterTechnology printer_technology) const 
 | 
					void CLI::print_help(bool include_print_options, PrinterTechnology printer_technology) const 
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    boost::nowide::cout
 | 
					    boost::nowide::cout
 | 
				
			||||||
		<< "Slic3r Prusa Edition " << SLIC3R_BUILD << std::endl
 | 
							<< "Slic3r Prusa Edition " << SLIC3R_BUILD 
 | 
				
			||||||
 | 
					#ifdef SLIC3R_GUI
 | 
				
			||||||
 | 
					        << " (with GUI support)"
 | 
				
			||||||
 | 
					#else /* SLIC3R_GUI */
 | 
				
			||||||
 | 
					        << " (without GUI support)"
 | 
				
			||||||
 | 
					#endif /* SLIC3R_GUI */
 | 
				
			||||||
 | 
					        << std::endl
 | 
				
			||||||
        << "https://github.com/prusa3d/Slic3r" << std::endl << std::endl
 | 
					        << "https://github.com/prusa3d/Slic3r" << std::endl << std::endl
 | 
				
			||||||
        << "Usage: slic3r [ ACTIONS ] [ TRANSFORM ] [ OPTIONS ] [ file.stl ... ]" << std::endl
 | 
					        << "Usage: slic3r [ ACTIONS ] [ TRANSFORM ] [ OPTIONS ] [ file.stl ... ]" << std::endl
 | 
				
			||||||
        << std::endl
 | 
					        << std::endl
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,14 +6,20 @@
 | 
				
			||||||
#include <Windows.h>
 | 
					#include <Windows.h>
 | 
				
			||||||
#include <shellapi.h>
 | 
					#include <shellapi.h>
 | 
				
			||||||
#include <wchar.h>
 | 
					#include <wchar.h>
 | 
				
			||||||
// Let the NVIDIA and AMD know we want to use their graphics card
 | 
					
 | 
				
			||||||
// on a dual graphics card system.
 | 
					#ifdef SLIC3R_GUI
 | 
				
			||||||
__declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
 | 
						// Let the NVIDIA and AMD know we want to use their graphics card
 | 
				
			||||||
__declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1;
 | 
						// on a dual graphics card system.
 | 
				
			||||||
 | 
						__declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
 | 
				
			||||||
 | 
						__declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1;
 | 
				
			||||||
 | 
					#endif /* SLIC3R_GUI */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#include <GL/GL.h>
 | 
					
 | 
				
			||||||
 | 
					#ifdef SLIC3R_GUI
 | 
				
			||||||
 | 
						#include <GL/GL.h>
 | 
				
			||||||
 | 
					#endif /* SLIC3R_GUI */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <string>
 | 
					#include <string>
 | 
				
			||||||
#include <vector>
 | 
					#include <vector>
 | 
				
			||||||
| 
						 | 
					@ -23,6 +29,7 @@ __declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef SLIC3R_GUI
 | 
				
			||||||
class OpenGLVersionCheck
 | 
					class OpenGLVersionCheck
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
| 
						 | 
					@ -188,6 +195,7 @@ protected:
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool OpenGLVersionCheck::message_pump_exit = false;
 | 
					bool OpenGLVersionCheck::message_pump_exit = false;
 | 
				
			||||||
 | 
					#endif /* SLIC3R_GUI */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern "C" {
 | 
					extern "C" {
 | 
				
			||||||
	typedef int (__stdcall *Slic3rMainFunc)(int argc, wchar_t **argv);
 | 
						typedef int (__stdcall *Slic3rMainFunc)(int argc, wchar_t **argv);
 | 
				
			||||||
| 
						 | 
					@ -206,17 +214,23 @@ int wmain(int argc, wchar_t **argv)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	std::vector<wchar_t*> argv_extended;
 | 
						std::vector<wchar_t*> argv_extended;
 | 
				
			||||||
	argv_extended.emplace_back(argv[0]);
 | 
						argv_extended.emplace_back(argv[0]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef SLIC3R_GUI
 | 
				
			||||||
	// Here one may push some additional parameters based on the wrapper type.
 | 
						// Here one may push some additional parameters based on the wrapper type.
 | 
				
			||||||
	bool force_mesa = false;
 | 
						bool force_mesa = false;
 | 
				
			||||||
 | 
					#endif /* SLIC3R_GUI */
 | 
				
			||||||
	for (int i = 1; i < argc; ++ i) {
 | 
						for (int i = 1; i < argc; ++ i) {
 | 
				
			||||||
 | 
					#ifdef SLIC3R_GUI
 | 
				
			||||||
		if (wcscmp(argv[i], L"--sw-renderer") == 0)
 | 
							if (wcscmp(argv[i], L"--sw-renderer") == 0)
 | 
				
			||||||
			force_mesa = true;
 | 
								force_mesa = true;
 | 
				
			||||||
		else if (wcscmp(argv[i], L"--no-sw-renderer") == 0)
 | 
							else if (wcscmp(argv[i], L"--no-sw-renderer") == 0)
 | 
				
			||||||
			force_mesa = false;
 | 
								force_mesa = false;
 | 
				
			||||||
 | 
					#endif /* SLIC3R_GUI */
 | 
				
			||||||
		argv_extended.emplace_back(argv[i]);
 | 
							argv_extended.emplace_back(argv[i]);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	argv_extended.emplace_back(nullptr);
 | 
						argv_extended.emplace_back(nullptr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef SLIC3R_GUI
 | 
				
			||||||
	OpenGLVersionCheck opengl_version_check;
 | 
						OpenGLVersionCheck opengl_version_check;
 | 
				
			||||||
	bool load_mesa = 
 | 
						bool load_mesa = 
 | 
				
			||||||
		// Forced from the command line.
 | 
							// Forced from the command line.
 | 
				
			||||||
| 
						 | 
					@ -226,6 +240,7 @@ int wmain(int argc, wchar_t **argv)
 | 
				
			||||||
		::GetSystemMetrics(SM_REMOTESESSION) ||
 | 
							::GetSystemMetrics(SM_REMOTESESSION) ||
 | 
				
			||||||
		// Try to load the default OpenGL driver and test its context version.
 | 
							// Try to load the default OpenGL driver and test its context version.
 | 
				
			||||||
		! opengl_version_check.load_opengl_dll() || ! opengl_version_check.is_version_greater_or_equal_to(2, 0);
 | 
							! opengl_version_check.load_opengl_dll() || ! opengl_version_check.is_version_greater_or_equal_to(2, 0);
 | 
				
			||||||
 | 
					#endif /* SLIC3R_GUI */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	wchar_t path_to_exe[MAX_PATH + 1] = { 0 };
 | 
						wchar_t path_to_exe[MAX_PATH + 1] = { 0 };
 | 
				
			||||||
	::GetModuleFileNameW(nullptr, path_to_exe, MAX_PATH);
 | 
						::GetModuleFileNameW(nullptr, path_to_exe, MAX_PATH);
 | 
				
			||||||
| 
						 | 
					@ -236,6 +251,7 @@ int wmain(int argc, wchar_t **argv)
 | 
				
			||||||
	_wsplitpath(path_to_exe, drive, dir, fname, ext);
 | 
						_wsplitpath(path_to_exe, drive, dir, fname, ext);
 | 
				
			||||||
	_wmakepath(path_to_exe, drive, dir, nullptr, nullptr);
 | 
						_wmakepath(path_to_exe, drive, dir, nullptr, nullptr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef SLIC3R_GUI
 | 
				
			||||||
// https://wiki.qt.io/Cross_compiling_Mesa_for_Windows
 | 
					// https://wiki.qt.io/Cross_compiling_Mesa_for_Windows
 | 
				
			||||||
// http://download.qt.io/development_releases/prebuilt/llvmpipe/windows/
 | 
					// http://download.qt.io/development_releases/prebuilt/llvmpipe/windows/
 | 
				
			||||||
	if (load_mesa) {
 | 
						if (load_mesa) {
 | 
				
			||||||
| 
						 | 
					@ -260,6 +276,7 @@ int wmain(int argc, wchar_t **argv)
 | 
				
			||||||
		printf("slic3r.dll was not loaded\n");
 | 
							printf("slic3r.dll was not loaded\n");
 | 
				
			||||||
		return -1;
 | 
							return -1;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					#endif /* SLIC3R_GUI */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// resolve function address here
 | 
						// resolve function address here
 | 
				
			||||||
	slic3r_main = (Slic3rMainFunc)GetProcAddress(hInstance_Slic3r, 
 | 
						slic3r_main = (Slic3rMainFunc)GetProcAddress(hInstance_Slic3r, 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue