forked from mirror/ObjToSchematic
Added debug option to disable worker thread
This commit is contained in:
parent
599e61bb92
commit
6bcaef1302
@ -144,8 +144,8 @@ export class AppContext {
|
||||
const outputElement = this._ui.getActionOutput(EAction.Import);
|
||||
|
||||
if (payload.result.triangleCount < AppConfig.RENDER_TRIANGLE_THRESHOLD) {
|
||||
this._workerController.addJob(this._renderMesh());
|
||||
outputElement.setTaskInProgress('render', '[Renderer]: Processing...');
|
||||
this._workerController.addJob(this._renderMesh());
|
||||
} else {
|
||||
const message = `Will not render mesh as its over ${AppConfig.RENDER_TRIANGLE_THRESHOLD.toLocaleString()} triangles.`;
|
||||
outputElement.setTaskComplete('render', '[Renderer]: Stopped', [message], 'warning');
|
||||
@ -217,8 +217,8 @@ export class AppContext {
|
||||
ASSERT(payload.action === 'Voxelise');
|
||||
const outputElement = this._ui.getActionOutput(EAction.Voxelise);
|
||||
|
||||
this._workerController.addJob(this._renderVoxelMesh());
|
||||
outputElement.setTaskInProgress('render', '[Renderer]: Processing...');
|
||||
this._workerController.addJob(this._renderVoxelMesh());
|
||||
};
|
||||
|
||||
return { id: 'Voxelise', payload: payload, callback: callback };
|
||||
@ -290,8 +290,8 @@ export class AppContext {
|
||||
ASSERT(payload.action === 'Assign');
|
||||
const outputElement = this._ui.getActionOutput(EAction.Assign);
|
||||
|
||||
this._workerController.addJob(this._renderBlockMesh());
|
||||
outputElement.setTaskInProgress('render', '[Renderer]: Processing...');
|
||||
this._workerController.addJob(this._renderBlockMesh());
|
||||
};
|
||||
|
||||
return { id: 'Assign', payload: payload, callback: callback };
|
||||
|
@ -36,4 +36,7 @@ export namespace AppConfig {
|
||||
|
||||
/** Whether of not all logs should be saved to a file */
|
||||
export const LOG_TO_FILE = true;
|
||||
|
||||
/** Whether or not to use a worker thread. You should probably never disable this unless debugging. */
|
||||
export const USE_WORKER_THREAD = true;
|
||||
}
|
||||
|
@ -13,11 +13,6 @@ export abstract class IExporter {
|
||||
*/
|
||||
public abstract getFileExtension(): string;
|
||||
|
||||
/** */
|
||||
public getFormatDisclaimer(): TOptional<string> {
|
||||
return;
|
||||
}
|
||||
|
||||
public abstract export(blockMesh: BlockMesh, filePath: string): boolean;
|
||||
|
||||
public getFormatFilter() {
|
||||
|
@ -78,16 +78,12 @@ export class Schematic extends IExporter {
|
||||
return 'Schematic';
|
||||
}
|
||||
|
||||
getFormatDisclaimer() {
|
||||
return 'Schematic files only support pre-1.13 blocks. As a result, all blocks will be exported as Stone. To export the blocks, use the .litematic format with the Litematica mod.';
|
||||
}
|
||||
|
||||
getFileExtension(): string {
|
||||
return 'schematic';
|
||||
}
|
||||
|
||||
public override export(blockMesh: BlockMesh, filePath: string): boolean {
|
||||
const bounds = blockMesh.getVoxelMesh()?.getBounds();
|
||||
const bounds = blockMesh.getVoxelMesh().getBounds();
|
||||
this._sizeVector = Vector3.sub(bounds.max, bounds.min).add(1);
|
||||
|
||||
const nbt = this._convertToNBT(blockMesh);
|
||||
|
@ -1,5 +1,7 @@
|
||||
import { AppConfig } from './config';
|
||||
import { ASSERT } from './util/error_util';
|
||||
import { LOG, TIME_END, TIME_START } from './util/log_util';
|
||||
import { doWork } from './worker';
|
||||
import { TFromWorkerMessage, TToWorkerMessage } from './worker_types';
|
||||
|
||||
export type TWorkerJob = {
|
||||
@ -51,10 +53,10 @@ export class WorkerController {
|
||||
}
|
||||
|
||||
private _tryStartNextJob() {
|
||||
if (this.isBusy()) {
|
||||
if (this.isBusy() && AppConfig.USE_WORKER_THREAD) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
this._jobPending = this._jobQueue.shift();
|
||||
if (this._jobPending === undefined) {
|
||||
return;
|
||||
@ -62,6 +64,13 @@ export class WorkerController {
|
||||
|
||||
LOG('[WorkerController]: Starting Job', this._jobPending.id, `(${this._jobQueue.length} remaining)`);
|
||||
TIME_START(this._jobPending.id);
|
||||
this._worker.postMessage(this._jobPending.payload);
|
||||
if (AppConfig.USE_WORKER_THREAD) {
|
||||
this._worker.postMessage(this._jobPending.payload);
|
||||
} else {
|
||||
const result = doWork(this._jobPending.payload);
|
||||
if (this._jobPending.callback) {
|
||||
this._jobPending.callback(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user