xref: /aosp_15_r20/external/skia/src/codec/SkAndroidCodecAdapter.cpp (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1 /*
2  * Copyright 2015 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 "src/codec/SkAndroidCodecAdapter.h"
9 #include "src/codec/SkCodecPriv.h"
10 
11 struct SkIRect;
12 struct SkImageInfo;
13 
SkAndroidCodecAdapter(SkCodec * codec)14 SkAndroidCodecAdapter::SkAndroidCodecAdapter(SkCodec* codec)
15     : INHERITED(codec)
16 {}
17 
onGetSampledDimensions(int sampleSize) const18 SkISize SkAndroidCodecAdapter::onGetSampledDimensions(int sampleSize) const {
19     float scale = get_scale_from_sample_size(sampleSize);
20     return this->codec()->getScaledDimensions(scale);
21 }
22 
onGetSupportedSubset(SkIRect * desiredSubset) const23 bool SkAndroidCodecAdapter::onGetSupportedSubset(SkIRect* desiredSubset) const {
24     return this->codec()->getValidSubset(desiredSubset);
25 }
26 
onGetAndroidPixels(const SkImageInfo & info,void * pixels,size_t rowBytes,const AndroidOptions & options)27 SkCodec::Result SkAndroidCodecAdapter::onGetAndroidPixels(const SkImageInfo& info, void* pixels,
28         size_t rowBytes, const AndroidOptions& options) {
29     return this->codec()->getPixels(info, pixels, rowBytes, &options);
30 }
31