Edit

kc3-lang/angle/src/libANGLE/renderer/ContextImpl.cpp

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2018-07-12 23:56:30
    Hash : 6b873dd7
    Message : Add gl::ErrorSet and angle::Result. gl::ErrorSet can handle errors and is accessible from ContextImpl. It allows the implementation to mutate the error set without using the gl::Context directly. angle::Result is the faster POD return value class. It should generate optimal code. It can also be used seamlessly with the ANGLE_TRY macro. Also introduces an internal enum as a workaround for generating and consuming errors in the back-end. When the internal enum is used as an error return value the error is not consumed in the front-end. This is a temporary workaround only. Bug: angleproject:2491 Bug: angleproject:2713 Change-Id: I6cbdaadd075ccbdf241844cbcbc4ed5c3be40a8b Reviewed-on: https://chromium-review.googlesource.com/1133200 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org>

  • src/libANGLE/renderer/ContextImpl.cpp
  • //
    // Copyright 2016 The ANGLE Project Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    //
    // ContextImpl:
    //   Implementation-specific functionality associated with a GL Context.
    //
    
    #include "libANGLE/renderer/ContextImpl.h"
    
    #include "libANGLE/Context.h"
    
    namespace rx
    {
    
    ContextImpl::ContextImpl(const gl::ContextState &state)
        : mState(state), mMemoryProgramCache(nullptr), mErrors(nullptr)
    {
    }
    
    ContextImpl::~ContextImpl()
    {
    }
    
    void ContextImpl::stencilFillPath(const gl::Path *path, GLenum fillMode, GLuint mask)
    {
        UNREACHABLE();
    }
    
    void ContextImpl::stencilStrokePath(const gl::Path *path, GLint reference, GLuint mask)
    {
        UNREACHABLE();
    }
    
    void ContextImpl::coverFillPath(const gl::Path *path, GLenum coverMode)
    {
        UNREACHABLE();
    }
    
    void ContextImpl::coverStrokePath(const gl::Path *path, GLenum coverMode)
    {
        UNREACHABLE();
    }
    
    void ContextImpl::stencilThenCoverFillPath(const gl::Path *path,
                                               GLenum fillMode,
                                               GLuint mask,
                                               GLenum coverMode)
    {
        UNREACHABLE();
    }
    
    void ContextImpl::stencilThenCoverStrokePath(const gl::Path *path,
                                                 GLint reference,
                                                 GLuint mask,
                                                 GLenum coverMode)
    {
        UNREACHABLE();
    }
    
    void ContextImpl::coverFillPathInstanced(const std::vector<gl::Path *> &paths,
                                             GLenum coverMode,
                                             GLenum transformType,
                                             const GLfloat *transformValues)
    {
        UNREACHABLE();
    }
    
    void ContextImpl::coverStrokePathInstanced(const std::vector<gl::Path *> &paths,
                                               GLenum coverMode,
                                               GLenum transformType,
                                               const GLfloat *transformValues)
    {
        UNREACHABLE();
    }
    
    void ContextImpl::stencilFillPathInstanced(const std::vector<gl::Path *> &paths,
                                               GLenum fillMode,
                                               GLuint mask,
                                               GLenum transformType,
                                               const GLfloat *transformValues)
    {
        UNREACHABLE();
    }
    
    void ContextImpl::stencilStrokePathInstanced(const std::vector<gl::Path *> &paths,
                                                 GLint reference,
                                                 GLuint mask,
                                                 GLenum transformType,
                                                 const GLfloat *transformValues)
    {
        UNREACHABLE();
    }
    
    void ContextImpl::stencilThenCoverFillPathInstanced(const std::vector<gl::Path *> &paths,
                                                        GLenum coverMode,
                                                        GLenum fillMode,
                                                        GLuint mask,
                                                        GLenum transformType,
                                                        const GLfloat *transformValues)
    {
        UNREACHABLE();
    }
    
    void ContextImpl::stencilThenCoverStrokePathInstanced(const std::vector<gl::Path *> &paths,
                                                          GLenum coverMode,
                                                          GLint reference,
                                                          GLuint mask,
                                                          GLenum transformType,
                                                          const GLfloat *transformValues)
    {
        UNREACHABLE();
    }
    
    void ContextImpl::setMemoryProgramCache(gl::MemoryProgramCache *memoryProgramCache)
    {
        mMemoryProgramCache = memoryProgramCache;
    }
    
    void ContextImpl::setErrorSet(gl::ErrorSet *errorSet)
    {
        mErrors = errorSet;
    }
    
    void ContextImpl::handleError(const gl::Error &error)
    {
        mErrors->handleError(error);
    }
    }  // namespace rx