/* * Copyright (C) 2020 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "SkPoint.h" #include "SkRefCnt.h" /** * Collection of points that are ref counted and to be used with * various drawing calls that consume SkPoint as inputs like * drawLines/drawPoints */ class Points: public SkNVRefCnt { public: Points(int size){ skPoints.resize(size); } Points(std::initializer_list init): skPoints(init) { } SkPoint& operator[](int index) { return skPoints[index]; } const SkPoint* data() const { return skPoints.data(); } size_t size() const { return skPoints.size(); } private: // Initialize the size to contain 2 SkPoints on the stack for optimized // drawLine calls that require 2 SkPoints for start/end points of the line android::FatVector skPoints; };