mirror of
https://github.com/Afilmory/afilmory
synced 2026-04-24 23:05:05 +00:00
feat(WebGLImageViewer): add resize observer for canvas resizing
Signed-off-by: Innei <tukon479@gmail.com>
This commit is contained in:
@@ -166,9 +166,19 @@ export class WebGLImageViewerEngine extends ImageViewerEngineBase {
|
||||
this.notifyLoadingStateChange(false)
|
||||
}
|
||||
|
||||
private resizeObserver: ResizeObserver | null = null
|
||||
|
||||
private setupCanvas() {
|
||||
this.resizeCanvas()
|
||||
window.addEventListener('resize', this.boundResizeCanvas)
|
||||
if (this.resizeObserver) {
|
||||
this.resizeObserver.disconnect()
|
||||
}
|
||||
this.resizeObserver = new ResizeObserver((e) => {
|
||||
if (e[0].target !== this.canvas) return
|
||||
this.boundResizeCanvas()
|
||||
})
|
||||
this.resizeObserver.observe(this.canvas)
|
||||
}
|
||||
|
||||
private resizeCanvas() {
|
||||
@@ -1036,6 +1046,9 @@ export class WebGLImageViewerEngine extends ImageViewerEngineBase {
|
||||
if (this.program) {
|
||||
this.gl.deleteProgram(this.program)
|
||||
}
|
||||
if (this.resizeObserver) {
|
||||
this.resizeObserver.disconnect()
|
||||
}
|
||||
|
||||
this.worker?.terminate()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user