Edit

kc3-lang/angle/src/libANGLE/Path.cpp

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2018-11-27 16:37:45
    Hash : 4f6592fa
    Message : Remove gl::Error. Removes several TODOs. Only egl::Error remains. Also slightly decreases binary size. Bug: angleproject:2491 Change-Id: I3a9d1c22eb0884ca9e37362463fddd0083faf826 Reviewed-on: https://chromium-review.googlesource.com/c/1337462 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>

  • src/libANGLE/Path.cpp
  • //
    // Copyright (c) 2002-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.
    //
    
    // Path.h: Defines the gl::Path class, representing CHROMIUM_path_rendering
    // path object.
    
    #include "libANGLE/Path.h"
    #include "libANGLE/renderer/PathImpl.h"
    
    #include "common/debug.h"
    #include "common/mathutil.h"
    
    namespace gl
    {
    
    Path::Path(rx::PathImpl *impl)
        : mPath(impl),
          mHasData(false),
          mEndCaps(GL_FLAT_CHROMIUM),
          mJoinStyle(GL_MITER_REVERT_CHROMIUM),
          mStrokeWidth(1.0f),
          mStrokeBound(0.2f),
          mMiterLimit(4.0f)
    {}
    
    Path::~Path()
    {
        delete mPath;
    }
    
    angle::Result Path::setCommands(GLsizei numCommands,
                                    const GLubyte *commands,
                                    GLsizei numCoords,
                                    GLenum coordType,
                                    const void *coords)
    {
        ANGLE_TRY(mPath->setCommands(numCommands, commands, numCoords, coordType, coords));
    
        mHasData = true;
    
        return angle::Result::Continue();
    }
    
    void Path::setStrokeWidth(GLfloat width)
    {
        mStrokeWidth = width;
        mPath->setPathParameter(GL_PATH_STROKE_WIDTH_CHROMIUM, mStrokeWidth);
    }
    
    void Path::setStrokeBound(GLfloat bound)
    {
        mStrokeBound = clamp(bound, 0.0f, 1.0f);
        mPath->setPathParameter(GL_PATH_STROKE_BOUND_CHROMIUM, mStrokeBound);
    }
    
    void Path::setEndCaps(GLenum type)
    {
        mEndCaps = type;
        mPath->setPathParameter(GL_PATH_END_CAPS_CHROMIUM, static_cast<GLfloat>(type));
    }
    
    void Path::setJoinStyle(GLenum type)
    {
        mJoinStyle = type;
        mPath->setPathParameter(GL_PATH_JOIN_STYLE_CHROMIUM, static_cast<GLfloat>(type));
    }
    
    void Path::setMiterLimit(GLfloat value)
    {
        mMiterLimit = value;
        mPath->setPathParameter(GL_PATH_MITER_LIMIT_CHROMIUM, value);
    }
    
    }  // namespace gl