|  | /* | 
|  | * Copyright 2014 Google Inc. | 
|  | * | 
|  | * Use of this source code is governed by a BSD-style license that can be | 
|  | * found in the LICENSE file. | 
|  | */ | 
|  |  | 
|  | #include "GrPathRange.h" | 
|  | #include "SkPath.h" | 
|  |  | 
|  | GrPathRange::GrPathRange(GrGpu* gpu, | 
|  | PathGenerator* pathGenerator) | 
|  | : INHERITED(gpu), | 
|  | fPathGenerator(SkRef(pathGenerator)), | 
|  | fNumPaths(fPathGenerator->getNumPaths()) { | 
|  | const int numGroups = (fNumPaths + kPathsPerGroup - 1) / kPathsPerGroup; | 
|  | fGeneratedPaths.reset((numGroups + 7) / 8); // 1 bit per path group. | 
|  | memset(&fGeneratedPaths.front(), 0, fGeneratedPaths.count()); | 
|  | } | 
|  |  | 
|  | GrPathRange::GrPathRange(GrGpu* gpu, | 
|  | int numPaths) | 
|  | : INHERITED(gpu), | 
|  | fNumPaths(numPaths) { | 
|  | } | 
|  |  | 
|  | void GrPathRange::loadPathsIfNeeded(const void* indices, PathIndexType indexType, int count) const { | 
|  | switch (indexType) { | 
|  | case kU8_PathIndexType: | 
|  | return this->loadPathsIfNeeded(reinterpret_cast<const uint8_t*>(indices), count); | 
|  | case kU16_PathIndexType: | 
|  | return this->loadPathsIfNeeded(reinterpret_cast<const uint16_t*>(indices), count); | 
|  | case kU32_PathIndexType: | 
|  | return this->loadPathsIfNeeded(reinterpret_cast<const uint32_t*>(indices), count); | 
|  | default: | 
|  | SkFAIL("Unknown path index type"); | 
|  | } | 
|  | } | 
|  |  | 
|  | #ifdef SK_DEBUG | 
|  |  | 
|  | void GrPathRange::assertPathsLoaded(const void* indices, PathIndexType indexType, int count) const { | 
|  | switch (indexType) { | 
|  | case kU8_PathIndexType: | 
|  | return this->assertPathsLoaded(reinterpret_cast<const uint8_t*>(indices), count); | 
|  | case kU16_PathIndexType: | 
|  | return this->assertPathsLoaded(reinterpret_cast<const uint16_t*>(indices), count); | 
|  | case kU32_PathIndexType: | 
|  | return this->assertPathsLoaded(reinterpret_cast<const uint32_t*>(indices), count); | 
|  | default: | 
|  | SkFAIL("Unknown path index type"); | 
|  | } | 
|  | } | 
|  |  | 
|  | #endif |