diff --git a/src/module/weather/sun.ts b/src/module/weather/sun.ts index f050565..af5c7e8 100644 --- a/src/module/weather/sun.ts +++ b/src/module/weather/sun.ts @@ -1,5 +1,8 @@ import { Shader, ShaderProgram } from '@/core/render/shader'; import { IWeather, WeatherController } from './weather'; +import { MotaOffscreenCanvas2D } from '@/core/fx/canvas2d'; +import { GL2Program } from '@/core/render/gl2'; +import { Transform } from '@/core/render/transform'; export class SunWeather implements IWeather { static id: string = 'sun'; @@ -14,5 +17,19 @@ export class SunWeather implements IWeather { WeatherController.register(SunWeather); class SunShader extends Shader { - protected override postDraw(gl: WebGL2RenderingContext): void {} + protected preDraw( + canvas: MotaOffscreenCanvas2D, + transform: Transform, + gl: WebGL2RenderingContext, + program: GL2Program + ): boolean { + return true; + } + + protected postDraw( + canvas: MotaOffscreenCanvas2D, + transform: Transform, + gl: WebGL2RenderingContext, + program: GL2Program + ): void {} } diff --git a/src/plugin/chase/chase.ts b/src/plugin/chase/chase.ts index 35b8d18..d1e1826 100644 --- a/src/plugin/chase/chase.ts +++ b/src/plugin/chase/chase.ts @@ -1,5 +1,6 @@ import { MotaOffscreenCanvas2D } from '@/core/fx/canvas2d'; import { CameraAnimation } from '@/core/render/camera'; +import { Container } from '@/core/render/container'; import { LayerGroup } from '@/core/render/preset/layer'; import { MotaRenderer } from '@/core/render/render'; import { Shader } from '@/core/render/shader'; @@ -319,10 +320,8 @@ export class Chase extends EventEmitter { } this.onTimeListener.sort((a, b) => a.time - b.time); const render = MotaRenderer.get('render-main')!; - const mapDraw = render.getElementById('map-draw')!; - render.appendChild(Chase.shader); - mapDraw.remove(); - mapDraw.append(Chase.shader); + const mapDraw = render.getElementById('map-draw') as Container; + Chase.shader.append(mapDraw); this.emit('start'); } @@ -335,11 +334,7 @@ export class Chase extends EventEmitter { this.layer.removeTicker(this.delegation); this.pathSprite?.destroy(); this.heroMove.off('stepEnd', this.onStepEnd); - const render = MotaRenderer.get('render-main')!; - const mapDraw = render.getElementById('map-draw')!; - mapDraw.remove(); Chase.shader.remove(); - mapDraw.append(render); this.emit('end', success); this.removeAllListeners(); }