diff --git a/src/csui/src/PlayerUiPanels/AutodetectionSettingsPanel.vue b/src/csui/src/PlayerUiPanels/AutodetectionSettingsPanel.vue
index 8286d33..f464a28 100644
--- a/src/csui/src/PlayerUiPanels/AutodetectionSettingsPanel.vue
+++ b/src/csui/src/PlayerUiPanels/AutodetectionSettingsPanel.vue
@@ -234,6 +234,7 @@
/>
@@ -244,10 +245,10 @@
Frame extraction canvas type:
-
diff --git a/src/ext/lib/aard/Aard.ts b/src/ext/lib/aard/Aard.ts
index 22603e0..4833b8b 100644
--- a/src/ext/lib/aard/Aard.ts
+++ b/src/ext/lib/aard/Aard.ts
@@ -370,14 +370,14 @@ export class Aard {
return new GlCanvas({...this.settings.active.arDetect.canvasDimensions.sampleCanvas, id: 'main-gl'});
} catch (e) {
if (this.settings.active.arDetect.aardType !== 'webgl') {
- return new FallbackCanvas({...this.settings.active.arDetect.canvasDimensions.sampleCanvas, id: 'main-fallback'});
+ return new FallbackCanvas({...this.settings.active.arDetect.canvasDimensions.sampleCanvas, id: 'main-legacy'});
}
console.error('[ultrawidify|Aard::createCanvas] could not create webgl canvas:', e);
this.eventBus.send('uw-config-broadcast', {type: 'aard-error', aardErrors: {webglError: true}});
throw e;
}
} else if (this.settings.active.arDetect.aardType === 'legacy') {
- return new FallbackCanvas({...this.settings.active.arDetect.canvasDimensions.sampleCanvas, id: 'main-fallback'});
+ return new FallbackCanvas({...this.settings.active.arDetect.canvasDimensions.sampleCanvas, id: 'main-legacy'});
} else {
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}});
diff --git a/src/ext/lib/aard/gl/FallbackCanvas.ts b/src/ext/lib/aard/gl/FallbackCanvas.ts
index 901b277..5256d75 100644
--- a/src/ext/lib/aard/gl/FallbackCanvas.ts
+++ b/src/ext/lib/aard/gl/FallbackCanvas.ts
@@ -2,7 +2,9 @@ import { GlCanvas, GlCanvasOptions } from './GlCanvas';
export class FallbackCanvas extends GlCanvas {
-
+ get type() {
+ return 'legacy';
+ }
context: CanvasRenderingContext2D;
constructor(options: GlCanvasOptions) {
@@ -24,7 +26,7 @@ export class FallbackCanvas extends GlCanvas {
protected initWebgl() { }
drawVideoFrame(video: HTMLVideoElement) {
- this.context.drawImage(video, this.context.canvas.width, this.context.canvas.height);
+ this.context.drawImage(video, 0, 0, this.context.canvas.width, this.context.canvas.height);
}
getImageData() {
diff --git a/src/ext/lib/aard/gl/GlCanvas.ts b/src/ext/lib/aard/gl/GlCanvas.ts
index 58307e7..8bc19b9 100644
--- a/src/ext/lib/aard/gl/GlCanvas.ts
+++ b/src/ext/lib/aard/gl/GlCanvas.ts
@@ -52,6 +52,9 @@ interface GlCanvasProgramInfo {
}
export class GlCanvas {
+ get type() {
+ return 'webgl';
+ }
private _canvas: HTMLCanvasElement;
private set canvas(x: HTMLCanvasElement) {
diff --git a/src/options/AutodetectionSettings.vue b/src/options/AutodetectionSettings.vue
index 3f878ec..3a2b50e 100644
--- a/src/options/AutodetectionSettings.vue
+++ b/src/options/AutodetectionSettings.vue
@@ -574,7 +574,7 @@