1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- /*
- * Copyright 2015 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
- #ifndef SkYUVPlanesCache_DEFINED
- #define SkYUVPlanesCache_DEFINED
- #include "include/core/SkImageInfo.h"
- #include "include/core/SkYUVAIndex.h"
- #include "include/core/SkYUVASizeInfo.h"
- #include "src/core/SkCachedData.h"
- class SkResourceCache;
- class SkYUVPlanesCache {
- public:
- /**
- * The Info struct contains data about the 4 Y, U, V, and A planes of memory stored
- * contiguously, in that order, as a single block of memory within SkYUVPlanesCache.
- *
- * fSizeInfo: fWidth, fHeight, and fWidthBytes of each of the Y, U, V, and A planes.
- * fColorSpace: color space that will be used for the YUV -> RGB conversion.
- */
- struct Info {
- SkYUVASizeInfo fSizeInfo;
- SkYUVAIndex fYUVAIndices[SkYUVAIndex::kIndexCount];
- SkYUVColorSpace fColorSpace;
- };
- /**
- * On success, return a ref to the SkCachedData that holds the pixels.
- *
- * On failure, return nullptr.
- */
- static SkCachedData* FindAndRef(uint32_t genID, Info* info,
- SkResourceCache* localCache = nullptr);
- /**
- * Add a pixelRef ID and its YUV planes data to the cache.
- */
- static void Add(uint32_t genID, SkCachedData* data, Info* info,
- SkResourceCache* localCache = nullptr);
- };
- #endif
|