Compare commits
No commits in common. "269dddc92e0bcb7af2b082b582710e2bd082aea9" and "500d06204c7187a6de2e20a6be3ca3735f5297ee" have entirely different histories.
269dddc92e
...
500d06204c
@ -234,7 +234,6 @@
|
|||||||
/>
|
/>
|
||||||
<input
|
<input
|
||||||
v-model="settings.active.arDetect.timers.playing"
|
v-model="settings.active.arDetect.timers.playing"
|
||||||
@change="setArCheckFrequency($event.target.value)"
|
|
||||||
class="input"
|
class="input"
|
||||||
type="text"
|
type="text"
|
||||||
>
|
>
|
||||||
@ -245,10 +244,10 @@
|
|||||||
<div class="field">
|
<div class="field">
|
||||||
<div class="label">Frame extraction canvas type:</div>
|
<div class="label">Frame extraction canvas type:</div>
|
||||||
<div class="select">
|
<div class="select">
|
||||||
<select v-model="settings.active.arDetect.aardType" @change="settings.saveWithoutReload">
|
<select v-model="settings.active.arDetect.aardType">
|
||||||
<option value="auto">Automatic</option>
|
<option value="auto">Automatic</option>
|
||||||
<option value="webgl">WebGL only</option>
|
<option value="webgl">WebGL only</option>
|
||||||
<option value="legacy">Legacy / fallback</option>
|
<option value="fallback">Legacy / fallback</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -349,13 +349,13 @@ export class Aard {
|
|||||||
this.startCheck();
|
this.startCheck();
|
||||||
}
|
}
|
||||||
|
|
||||||
private createCanvas(canvasId: string, canvasType?: 'webgl' | 'legacy') {
|
private createCanvas(canvasId: string, canvasType?: 'webgl' | 'fallback') {
|
||||||
if (canvasType) {
|
if (canvasType) {
|
||||||
if (canvasType === this.settings.active.arDetect.aardType || this.settings.active.arDetect.aardType === 'auto') {
|
if (canvasType === this.settings.active.arDetect.aardType || this.settings.active.arDetect.aardType === 'auto') {
|
||||||
if (canvasType === 'webgl') {
|
if (canvasType === 'webgl') {
|
||||||
return new GlCanvas({...this.settings.active.arDetect.canvasDimensions.sampleCanvas, id: 'main-gl'});
|
return new GlCanvas({...this.settings.active.arDetect.canvasDimensions.sampleCanvas, id: 'main-gl'});
|
||||||
} else if (canvasType === 'legacy') {
|
} else if (canvasType === 'fallback') {
|
||||||
return new FallbackCanvas({...this.settings.active.arDetect.canvasDimensions.sampleCanvas, id: 'main-legacy'});
|
return new FallbackCanvas({...this.settings.active.arDetect.canvasDimensions.sampleCanvas, id: 'main-fallback'});
|
||||||
} else {
|
} else {
|
||||||
// TODO: throw error
|
// TODO: throw error
|
||||||
}
|
}
|
||||||
@ -370,14 +370,14 @@ export class Aard {
|
|||||||
return new GlCanvas({...this.settings.active.arDetect.canvasDimensions.sampleCanvas, id: 'main-gl'});
|
return new GlCanvas({...this.settings.active.arDetect.canvasDimensions.sampleCanvas, id: 'main-gl'});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (this.settings.active.arDetect.aardType !== 'webgl') {
|
if (this.settings.active.arDetect.aardType !== 'webgl') {
|
||||||
return new FallbackCanvas({...this.settings.active.arDetect.canvasDimensions.sampleCanvas, id: 'main-legacy'});
|
return new FallbackCanvas({...this.settings.active.arDetect.canvasDimensions.sampleCanvas, id: 'main-fallback'});
|
||||||
}
|
}
|
||||||
console.error('[ultrawidify|Aard::createCanvas] could not create webgl canvas:', e);
|
console.error('[ultrawidify|Aard::createCanvas] could not create webgl canvas:', e);
|
||||||
this.eventBus.send('uw-config-broadcast', {type: 'aard-error', aardErrors: {webglError: true}});
|
this.eventBus.send('uw-config-broadcast', {type: 'aard-error', aardErrors: {webglError: true}});
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
} else if (this.settings.active.arDetect.aardType === 'legacy') {
|
} else if (this.settings.active.arDetect.aardType === 'legacy') {
|
||||||
return new FallbackCanvas({...this.settings.active.arDetect.canvasDimensions.sampleCanvas, id: 'main-legacy'});
|
return new FallbackCanvas({...this.settings.active.arDetect.canvasDimensions.sampleCanvas, id: 'main-fallback'});
|
||||||
} else {
|
} else {
|
||||||
console.error('[ultrawidify|Aard::createCanvas] invalid value in settings.arDetect.aardType:', this.settings.active.arDetect.aardType);
|
console.error('[ultrawidify|Aard::createCanvas] invalid value in settings.arDetect.aardType:', this.settings.active.arDetect.aardType);
|
||||||
this.eventBus.send('uw-config-broadcast', {type: 'aard-error', aardErrors: {invalidSettings: true}});
|
this.eventBus.send('uw-config-broadcast', {type: 'aard-error', aardErrors: {invalidSettings: true}});
|
||||||
@ -556,7 +556,7 @@ export class Aard {
|
|||||||
} else {
|
} else {
|
||||||
if (this.settings.active.arDetect.aardType === 'auto') {
|
if (this.settings.active.arDetect.aardType === 'auto') {
|
||||||
this.canvasStore.main.destroy();
|
this.canvasStore.main.destroy();
|
||||||
this.canvasStore.main = this.createCanvas('main-gl', 'legacy');
|
this.canvasStore.main = this.createCanvas('main-gl', 'fallback');
|
||||||
}
|
}
|
||||||
this.inFallback = true;
|
this.inFallback = true;
|
||||||
this.fallbackReason = {cors: true};
|
this.fallbackReason = {cors: true};
|
||||||
|
@ -23,9 +23,7 @@ export class AardTimer {
|
|||||||
|
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
// we need to deep clone, otherwise all buffer objects will point to the same object
|
this.aardPerformanceDataBuffer = new Array<AardPerformanceData>(16).fill(this.getEmptyMeasurement());
|
||||||
// (this makes calculating averages impossible)
|
|
||||||
this.aardPerformanceDataBuffer = JSON.parse(JSON.stringify(new Array<AardPerformanceData>(64).fill(this.getEmptyMeasurement())));
|
|
||||||
this.current = this.aardPerformanceDataBuffer[0];
|
this.current = this.aardPerformanceDataBuffer[0];
|
||||||
this.previous = undefined;
|
this.previous = undefined;
|
||||||
this.lastChange = this.getEmptyMeasurement();
|
this.lastChange = this.getEmptyMeasurement();
|
||||||
|
@ -2,9 +2,7 @@ import { GlCanvas, GlCanvasOptions } from './GlCanvas';
|
|||||||
|
|
||||||
|
|
||||||
export class FallbackCanvas extends GlCanvas {
|
export class FallbackCanvas extends GlCanvas {
|
||||||
get type() {
|
|
||||||
return 'legacy';
|
|
||||||
}
|
|
||||||
context: CanvasRenderingContext2D;
|
context: CanvasRenderingContext2D;
|
||||||
|
|
||||||
constructor(options: GlCanvasOptions) {
|
constructor(options: GlCanvasOptions) {
|
||||||
@ -26,7 +24,7 @@ export class FallbackCanvas extends GlCanvas {
|
|||||||
protected initWebgl() { }
|
protected initWebgl() { }
|
||||||
|
|
||||||
drawVideoFrame(video: HTMLVideoElement) {
|
drawVideoFrame(video: HTMLVideoElement) {
|
||||||
this.context.drawImage(video, 0, 0, this.context.canvas.width, this.context.canvas.height);
|
this.context.drawImage(video, this.context.canvas.width, this.context.canvas.height);
|
||||||
}
|
}
|
||||||
|
|
||||||
getImageData() {
|
getImageData() {
|
||||||
|
@ -52,9 +52,6 @@ interface GlCanvasProgramInfo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class GlCanvas {
|
export class GlCanvas {
|
||||||
get type() {
|
|
||||||
return 'webgl';
|
|
||||||
}
|
|
||||||
|
|
||||||
private _canvas: HTMLCanvasElement;
|
private _canvas: HTMLCanvasElement;
|
||||||
private set canvas(x: HTMLCanvasElement) {
|
private set canvas(x: HTMLCanvasElement) {
|
||||||
|
@ -601,6 +601,17 @@ export default {
|
|||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.sensitivity = this.getSensitivity();
|
this.sensitivity = this.getSensitivity();
|
||||||
|
|
||||||
|
const canvas = document.createElement('canvas');
|
||||||
|
canvas.width = 10;
|
||||||
|
canvas.height = 10;
|
||||||
|
const ctx = canvas.getContext('2d');
|
||||||
|
try {
|
||||||
|
ctx.drawWindow(window,0, 0, 10, 10, "rgba(0,0,0,0)");
|
||||||
|
this.fallbackModeAvailable = true;
|
||||||
|
} catch (e) {
|
||||||
|
this.fallbackModeAvailable = false;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
setArCheckFrequency(event) {
|
setArCheckFrequency(event) {
|
||||||
|
Loading…
Reference in New Issue
Block a user