SkRawAdapterCodec.cpp revision 916de9ff18cf3caa29c0821b55244060b6f84f9d
1/*
2 * Copyright 2016 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#include "SkCodec.h"
9#include "SkCodecPriv.h"
10#include "SkRawAdapterCodec.h"
11
12SkRawAdapterCodec::SkRawAdapterCodec(SkRawCodec* codec)
13    : INHERITED(codec)
14{}
15
16SkISize SkRawAdapterCodec::onGetSampledDimensions(int sampleSize) const {
17    float scale = 1.f / static_cast<float>(sampleSize);
18    return this->codec()->getScaledDimensions(scale);
19}
20
21SkCodec::Result SkRawAdapterCodec::onGetAndroidPixels(
22        const SkImageInfo& info, void* pixels, size_t rowBytes,
23        const AndroidOptions& options) {
24    SkCodec::Options codecOptions;
25    codecOptions.fZeroInitialized = options.fZeroInitialized;
26    codecOptions.fSubset = options.fSubset;
27    return this->codec()->getPixels(
28        info, pixels, rowBytes, &codecOptions, options.fColorPtr,
29        options.fColorCount);
30}
31