Loading dom/canvas/ClientWebGLContext.cpp +8 −29 Original line number Diff line number Diff line Loading @@ -1895,45 +1895,24 @@ bool ClientWebGLContext::IsVertexArray( // ------------------------- GL State ------------------------- void ClientWebGLContext::SetEnabledI(const GLenum cap, Maybe<GLuint> i, void ClientWebGLContext::SetEnabledI(GLenum cap, Maybe<GLuint> i, bool val) const { const auto notLost = mNotLost; Run<RPROC(SetEnabled)>(cap, i, val); if (!i) { // Non-indexed. auto& cache = notLost->state.mIsEnabledCache; const auto cached = MaybeFind(cache, cap); if (cached) { *cached = val; } } } bool ClientWebGLContext::IsEnabled(const GLenum cap) const { bool ClientWebGLContext::IsEnabled(GLenum cap) const { const FuncScope funcScope(*this, "isEnabled"); if (IsContextLost()) return false; auto& cache = State().mIsEnabledCache; if (const auto cached = MaybeFind(cache, cap)) { return *cached; } Maybe<bool> ret; const auto& inProcess = mNotLost->inProcess; if (inProcess) { ret = inProcess->IsEnabled(cap); } else { return inProcess->IsEnabled(cap); } const auto& child = mNotLost->outOfProcess; child->FlushPendingCmds(); bool ret = {}; if (!child->SendIsEnabled(cap, &ret)) return false; } if (ret) { cache[cap] = *ret; } return ret ? *ret : false; return ret; } template <typename T, typename S> Loading dom/canvas/ClientWebGLContext.h +0 −3 Original line number Diff line number Diff line Loading @@ -180,8 +180,6 @@ class ContextGenerationInfo final { webgl::ProvokingVertex mProvokingVertex = webgl::ProvokingVertex::LastVertex; mutable std::unordered_map<GLenum, bool> mIsEnabledCache; ObjectId NextId() { return mLastId += 1; } }; Loading Loading @@ -1143,7 +1141,6 @@ class ClientWebGLContext final : public nsICanvasRenderingContextInternal, void Disable(GLenum cap) const { SetEnabledI(cap, {}, false); } void Enable(GLenum cap) const { SetEnabledI(cap, {}, true); } void SetEnabledI(GLenum cap, Maybe<GLuint> i, bool val) const; bool IsEnabled(GLenum cap) const; private: Loading dom/canvas/HostWebGLContext.h +1 −1 Original line number Diff line number Diff line Loading @@ -260,7 +260,7 @@ class HostWebGLContext final : public SupportsWeakPtr { mContext->SetEnabled(cap, i, val); } Maybe<bool> IsEnabled(GLenum cap) const { return mContext->IsEnabled(cap); } bool IsEnabled(GLenum cap) const { return mContext->IsEnabled(cap); } Maybe<double> GetNumber(GLenum pname) const { return mContext->GetParameter(pname); Loading dom/canvas/PWebGL.ipdl +1 −1 Original line number Diff line number Diff line Loading @@ -101,7 +101,7 @@ parent: sync GetTexParameter(uint64_t id, uint32_t pname) returns (double? ret); sync GetUniform(uint64_t id, uint32_t loc) returns (GetUniformData ret); sync GetVertexAttrib(uint32_t index, uint32_t pname) returns (double? ret); sync IsEnabled(uint32_t cap) returns (bool? ret); sync IsEnabled(uint32_t cap) returns (bool ret); sync OnMemoryPressure(); sync ValidateProgram(uint64_t id) returns (bool ret); Loading dom/canvas/WebGLContext.h +1 −1 Original line number Diff line number Diff line Loading @@ -756,7 +756,7 @@ class WebGLContext : public VRefCounted, public SupportsWeakPtr { virtual Maybe<double> GetParameter(GLenum pname); Maybe<std::string> GetString(GLenum pname) const; Maybe<bool> IsEnabled(GLenum cap); bool IsEnabled(GLenum cap); private: static StaticMutex sLruMutex; Loading Loading
dom/canvas/ClientWebGLContext.cpp +8 −29 Original line number Diff line number Diff line Loading @@ -1895,45 +1895,24 @@ bool ClientWebGLContext::IsVertexArray( // ------------------------- GL State ------------------------- void ClientWebGLContext::SetEnabledI(const GLenum cap, Maybe<GLuint> i, void ClientWebGLContext::SetEnabledI(GLenum cap, Maybe<GLuint> i, bool val) const { const auto notLost = mNotLost; Run<RPROC(SetEnabled)>(cap, i, val); if (!i) { // Non-indexed. auto& cache = notLost->state.mIsEnabledCache; const auto cached = MaybeFind(cache, cap); if (cached) { *cached = val; } } } bool ClientWebGLContext::IsEnabled(const GLenum cap) const { bool ClientWebGLContext::IsEnabled(GLenum cap) const { const FuncScope funcScope(*this, "isEnabled"); if (IsContextLost()) return false; auto& cache = State().mIsEnabledCache; if (const auto cached = MaybeFind(cache, cap)) { return *cached; } Maybe<bool> ret; const auto& inProcess = mNotLost->inProcess; if (inProcess) { ret = inProcess->IsEnabled(cap); } else { return inProcess->IsEnabled(cap); } const auto& child = mNotLost->outOfProcess; child->FlushPendingCmds(); bool ret = {}; if (!child->SendIsEnabled(cap, &ret)) return false; } if (ret) { cache[cap] = *ret; } return ret ? *ret : false; return ret; } template <typename T, typename S> Loading
dom/canvas/ClientWebGLContext.h +0 −3 Original line number Diff line number Diff line Loading @@ -180,8 +180,6 @@ class ContextGenerationInfo final { webgl::ProvokingVertex mProvokingVertex = webgl::ProvokingVertex::LastVertex; mutable std::unordered_map<GLenum, bool> mIsEnabledCache; ObjectId NextId() { return mLastId += 1; } }; Loading Loading @@ -1143,7 +1141,6 @@ class ClientWebGLContext final : public nsICanvasRenderingContextInternal, void Disable(GLenum cap) const { SetEnabledI(cap, {}, false); } void Enable(GLenum cap) const { SetEnabledI(cap, {}, true); } void SetEnabledI(GLenum cap, Maybe<GLuint> i, bool val) const; bool IsEnabled(GLenum cap) const; private: Loading
dom/canvas/HostWebGLContext.h +1 −1 Original line number Diff line number Diff line Loading @@ -260,7 +260,7 @@ class HostWebGLContext final : public SupportsWeakPtr { mContext->SetEnabled(cap, i, val); } Maybe<bool> IsEnabled(GLenum cap) const { return mContext->IsEnabled(cap); } bool IsEnabled(GLenum cap) const { return mContext->IsEnabled(cap); } Maybe<double> GetNumber(GLenum pname) const { return mContext->GetParameter(pname); Loading
dom/canvas/PWebGL.ipdl +1 −1 Original line number Diff line number Diff line Loading @@ -101,7 +101,7 @@ parent: sync GetTexParameter(uint64_t id, uint32_t pname) returns (double? ret); sync GetUniform(uint64_t id, uint32_t loc) returns (GetUniformData ret); sync GetVertexAttrib(uint32_t index, uint32_t pname) returns (double? ret); sync IsEnabled(uint32_t cap) returns (bool? ret); sync IsEnabled(uint32_t cap) returns (bool ret); sync OnMemoryPressure(); sync ValidateProgram(uint64_t id) returns (bool ret); Loading
dom/canvas/WebGLContext.h +1 −1 Original line number Diff line number Diff line Loading @@ -756,7 +756,7 @@ class WebGLContext : public VRefCounted, public SupportsWeakPtr { virtual Maybe<double> GetParameter(GLenum pname); Maybe<std::string> GetString(GLenum pname) const; Maybe<bool> IsEnabled(GLenum cap); bool IsEnabled(GLenum cap); private: static StaticMutex sLruMutex; Loading