diff options
Diffstat (limited to 'dom/canvas/ClientWebGLContext.cpp')
-rw-r--r-- | dom/canvas/ClientWebGLContext.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/dom/canvas/ClientWebGLContext.cpp b/dom/canvas/ClientWebGLContext.cpp index 236ea916d0..5c92ba003d 100644 --- a/dom/canvas/ClientWebGLContext.cpp +++ b/dom/canvas/ClientWebGLContext.cpp @@ -736,6 +736,21 @@ void ClientWebGLContext::GetCanvas( } } +void ClientWebGLContext::SetDrawingBufferColorSpace( + const dom::PredefinedColorSpace val) { + mDrawingBufferColorSpace = val; + + // Just in case, update in Options too. + // Why not treat our WebGLContextOptions as the source of truth? Well, + // mNotLost is lost on context-loss, so we'd lose any setting we had here if + // that happens. + if (mNotLost) { + mNotLost->info.options.colorSpace = mDrawingBufferColorSpace; + } + + Run<RPROC(SetDrawingBufferColorSpace)>(mDrawingBufferColorSpace); +} + void ClientWebGLContext::GetContextAttributes( dom::Nullable<dom::WebGLContextAttributes>& retval) { retval.SetNull(); @@ -1058,9 +1073,7 @@ ClientWebGLContext::SetContextOptions(JSContext* cx, if (attributes.mAntialias.WasPassed()) { newOpts.antialias = attributes.mAntialias.Value(); } - newOpts.ignoreColorSpace = true; if (attributes.mColorSpace.WasPassed()) { - newOpts.ignoreColorSpace = false; newOpts.colorSpace = attributes.mColorSpace.Value(); } |