From f2b21268d348982ec19848ca9069bbe66f41ce38 Mon Sep 17 00:00:00 2001 From: openbuilds-engineer Date: Tue, 7 May 2019 22:10:53 +0200 Subject: [PATCH] Improve Memory Handling --- app/index.html | 4 +-- app/lib/3dview/workers/gcodeparser.js | 39 ++++++++++++++++++++++----- index.js | 16 +++++------ 3 files changed, 41 insertions(+), 18 deletions(-) diff --git a/app/index.html b/app/index.html index 427a88a..b45952b 100644 --- a/app/index.html +++ b/app/index.html @@ -272,10 +272,10 @@ diff --git a/app/lib/3dview/workers/gcodeparser.js b/app/lib/3dview/workers/gcodeparser.js index d4f5068..e72f46f 100644 --- a/app/lib/3dview/workers/gcodeparser.js +++ b/app/lib/3dview/workers/gcodeparser.js @@ -15,6 +15,15 @@ self.addEventListener('message', function(e) { // Updated by PvdW in 2017 - Parse GCODE to find starting temperatures (preheat machine) // Updated by PvdW in 2018 - Webworker Version + +var colorG0 = 0x00cc00; +var colorG1 = 0xcc0000; +var colorG2 = 0x0000cc; +var materialg0; +var materialg1; +var materialg2; +var materialg3; + var smaxvalue = 0; var lastLine = { x: 0, @@ -89,6 +98,24 @@ function findmaxs(gcode) { } function openGCodeFromText(gcode) { + + materialg0 = new THREE.LineBasicMaterial({ + color: color = new THREE.Color(colorG0), + opacity: 0.5, + transparent: true + }); + materialg1 = new THREE.LineBasicMaterial({ + color: color = new THREE.Color(colorG0), + opacity: 0.5, + transparent: true + }); + materialg2 = new THREE.LineBasicMaterial({ + color: color = new THREE.Color(colorG0), + opacity: 0.5, + transparent: true + }); + + smaxvalue = findmaxs(gcode); var object2 = new THREE.Group(); // object = new THREE.Group(); @@ -750,20 +777,18 @@ GCodeParser = function(handlers, modecmdhandlers) { if (p2.extruding) { // color = 0xff00ff; + var material = materialg1 } else if (p2.g0) { // color = 0x00ff00; + var material = materialg0 } else if (p2.g2) { //color = 0x999900; + var material = materialg2 } else if (p2.arc) { // color = 0x0033ff; + var material = materialg2 } - var material = new THREE.LineBasicMaterial({ - color: color, - opacity: 0.5, - transparent: true - }); - var geometry = new THREE.Geometry(); geometry.vertices.push( new THREE.Vector3(p1.x, p1.y, p1.z), @@ -843,7 +868,7 @@ GCodeParser = function(handlers, modecmdhandlers) { // console.log("calculating distance. dist:", dist, "totalDist:", this.totalDist, "feedrate:", args.feedrate, "timeMinsToExecute:", timeMinutes, "totalTime:", this.totalTime, "p1:", p1, "p2:", p2, "args:", args); - } + } // End of AddSegment this.totalDist = 0; this.totalTime = 0; diff --git a/index.js b/index.js index 9402ded..614e443 100644 --- a/index.js +++ b/index.js @@ -57,6 +57,13 @@ const electron = require('electron'); const electronApp = electron.app; if (isElectron()) { console.log("Local User Data: " + electronApp.getPath('userData')) + electronApp.commandLine.appendSwitch('ignore-gpu-blacklist', 'true') + electronApp.commandLine.appendSwitch('enable-gpu-rasterization', 'true') + electronApp.commandLine.appendSwitch('enable-zero-copy', 'true') + electronApp.commandLine.appendSwitch('disable-software-rasterizer', 'true') + electronApp.commandLine.appendSwitch('enable-native-gpu-memory-buffers', 'true') + electronApp.commandLine.appendSwitch('js-flags', '--max-old-space-size=8192') + console.log('Command Line Arguments for Electron: Set OK') } const BrowserWindow = electron.BrowserWindow; const Tray = electron.Tray; @@ -2328,15 +2335,6 @@ if (isElectron()) { }) } - if (!process.platform == 'darwin') { - electronApp.commandLine.appendSwitch('ignore-gpu-blacklist', 'true') - electronApp.commandLine.appendSwitch('enable-gpu-rasterization', 'true') - electronApp.commandLine.appendSwitch('enable-zero-copy', 'true') - electronApp.commandLine.appendSwitch('disable-software-rasterizer', 'true') - electronApp.commandLine.appendSwitch('enable-native-gpu-memory-buffers', 'true') - } - - // This method will be called when Electron has finished // initialization and is ready to create browser windows. // Some APIs can only be used after this event occurs.