11import { useResizeObserver } from "./useResizeObserver" ;
2- import type { Attribute , DrawMode , PostEffect , Uniforms } from "../types" ;
2+ import type { PostEffect , Uniforms } from "../types" ;
33import { useWebGLContext } from "./useWebGLContext" ;
4+ import type { QuadPassOptions } from "./useQuadRenderPass" ;
45import { useQuadRenderPass } from "./useQuadRenderPass" ;
56import { useCompositor } from "./useCompositor" ;
67import { findUniformName } from "../internal/findName" ;
78import type { UseLoopOptions } from "./useLoop" ;
89import { useLoop } from "./useLoop" ;
910
10- interface Props < U extends Uniforms > extends UseLoopOptions {
11+ interface Props < U extends Uniforms > extends UseLoopOptions , QuadPassOptions < U > {
1112 canvas : HTMLCanvasElement | OffscreenCanvas | string ;
12- fragment : string ;
13- vertex ?: string ;
14- uniforms ?: U ;
15- attributes ?: Record < string , Attribute > ;
1613 webglOptions ?: WebGLContextAttributes ;
17- drawMode ?: DrawMode ;
1814 dpr ?: number ;
1915 postEffects ?: PostEffect [ ] ;
2016 renderMode ?: "manual" | "auto" ;
17+ colorSpace ?: PredefinedColorSpace ;
2118}
2219
2320export const useWebGLCanvas = < U extends Uniforms > ( props : Props < U > ) => {
@@ -29,9 +26,15 @@ export const useWebGLCanvas = <U extends Uniforms>(props: Props<U>) => {
2926 postEffects = [ ] ,
3027 immediate,
3128 renderMode = "auto" ,
29+ colorSpace,
30+ webglOptions,
3231 } = props ;
3332
34- const { gl, canvas, setSize : setCanvasSize } = useWebGLContext ( canvasProp ) ;
33+ const {
34+ gl,
35+ canvas,
36+ setSize : setCanvasSize ,
37+ } = useWebGLContext ( canvasProp , { ...webglOptions , colorSpace } ) ;
3538
3639 const primaryPass = useQuadRenderPass ( gl , props ) ;
3740 const compositor = useCompositor ( gl , primaryPass , postEffects ) ;
0 commit comments