1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com
2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com/*
3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2006 The Android Open Source Project
4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com *
5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be
6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file.
7ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com */
8ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com
97def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com#include "SkBitmap.h"
107def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com#include "SkImage.h"
116efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com#include "SkImageDecoder.h"
125a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com#include "SkImageEncoder.h"
136efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com#include "SkMovie.h"
145a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com
157def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.comclass SkColorTable;
165a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.comclass SkStream;
17b5571b3324cf18629a255ec85e189447069c9b14scroggo@google.comclass SkStreamRewindable;
186efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com
197def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com// Empty implementations for SkImageDecoder.
207def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com
21e5c9c4960cbbb7aa26ba906439ed620d55879dadscroggo@google.comSkImageDecoder::SkImageDecoder() {}
22e5c9c4960cbbb7aa26ba906439ed620d55879dadscroggo@google.com
23e5c9c4960cbbb7aa26ba906439ed620d55879dadscroggo@google.comSkImageDecoder::~SkImageDecoder() {}
24e5c9c4960cbbb7aa26ba906439ed620d55879dadscroggo@google.com
25b5571b3324cf18629a255ec85e189447069c9b14scroggo@google.comSkImageDecoder* SkImageDecoder::Factory(SkStreamRewindable*) {
266efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com    return NULL;
276efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com}
286efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com
29468142b2f50de055f00d5684515d962777da5131scroggo@google.comvoid SkImageDecoder::copyFieldsToOther(SkImageDecoder* ) {}
30468142b2f50de055f00d5684515d962777da5131scroggo@google.com
31bfefc7c95fc0e8ebd5000c68f6d16e1a3ea0e71ereedbool SkImageDecoder::DecodeFile(const char[], SkBitmap*, SkColorType, Mode, Format*) {
326efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com    return false;
336efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com}
346efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com
35bfefc7c95fc0e8ebd5000c68f6d16e1a3ea0e71ereedbool SkImageDecoder::decode(SkStream*, SkBitmap*, SkColorType, Mode) {
365a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com    return false;
375a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com}
386efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com
39bfefc7c95fc0e8ebd5000c68f6d16e1a3ea0e71ereedbool SkImageDecoder::DecodeStream(SkStreamRewindable*, SkBitmap*, SkColorType, Mode, Format*) {
405a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com    return false;
415a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com}
426efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com
43bfefc7c95fc0e8ebd5000c68f6d16e1a3ea0e71ereedbool SkImageDecoder::DecodeMemory(const void*, size_t, SkBitmap*, SkColorType, Mode, Format*) {
447def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com    return false;
457def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com}
467def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com
47b5571b3324cf18629a255ec85e189447069c9b14scroggo@google.combool SkImageDecoder::buildTileIndex(SkStreamRewindable*, int *width, int *height) {
487def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com    return false;
497def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com}
507def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com
51bfefc7c95fc0e8ebd5000c68f6d16e1a3ea0e71ereedbool SkImageDecoder::decodeSubset(SkBitmap*, const SkIRect&, SkColorType) {
525a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com    return false;
535a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com}
546efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com
557def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.comSkImageDecoder::Format SkImageDecoder::getFormat() const {
567def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com    return kUnknown_Format;
577def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com}
587def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com
59b5571b3324cf18629a255ec85e189447069c9b14scroggo@google.comSkImageDecoder::Format SkImageDecoder::GetStreamFormat(SkStreamRewindable*) {
607def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com    return kUnknown_Format;
617def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com}
627def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com
637def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.comconst char* SkImageDecoder::GetFormatName(Format) {
645a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com    return NULL;
655a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com}
667def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com
677def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.comSkImageDecoder::Peeker* SkImageDecoder::setPeeker(Peeker*) {
687def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com    return NULL;
697def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com}
707def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com
715926b86b90c68bffefbdc8639e41b5bc9102cec6reed#ifdef SK_SUPPORT_LEGACY_IMAGEDECODER_CHOOSER
727def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.comSkImageDecoder::Chooser* SkImageDecoder::setChooser(Chooser*) {
737def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com    return NULL;
747def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com}
755926b86b90c68bffefbdc8639e41b5bc9102cec6reed#endif
767def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com
777def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.comSkBitmap::Allocator* SkImageDecoder::setAllocator(SkBitmap::Allocator*) {
787def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com    return NULL;
797def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com}
807def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com
817def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.comvoid SkImageDecoder::setSampleSize(int) {}
827def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com
837def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.combool SkImageDecoder::cropBitmap(SkBitmap*, SkBitmap*, int, int, int, int, int,
847def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com                    int, int) {
857def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com    return false;
867def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com}
877def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com
88f0419e96b4b52b85fafd0d589c56944841dcda06scroggo#ifdef SK_SUPPORT_LEGACY_IMAGEDECODER_CHOOSER
896c22573edb234ad14df947278cfed010669a39a7reedbool SkImageDecoder::chooseFromOneChoice(SkColorType, int, int) const {
907def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com    return false;
917def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com}
92f0419e96b4b52b85fafd0d589c56944841dcda06scroggo#endif
937def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com
947def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.combool SkImageDecoder::allocPixelRef(SkBitmap*, SkColorTable*) const {
957def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com    return false;
967def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com}
977def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com
985a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com/////////////////////////////////////////////////////////////////////////
996efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com
1007def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com// Empty implementation for SkMovie.
1017def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com
102b5571b3324cf18629a255ec85e189447069c9b14scroggo@google.comSkMovie* SkMovie::DecodeStream(SkStreamRewindable* stream) {
1036efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com    return NULL;
1046efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com}
1056efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com
1066efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com/////////////////////////////////////////////////////////////////////////
1076efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com
1087def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com// Empty implementations for SkImageEncoder.
1097def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com
1106efdc47afc8bb24603fc0d15146ada609b728f2freed@android.comSkImageEncoder* SkImageEncoder::Create(Type t) {
1115a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com    return NULL;
1126efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com}
1136efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com
1145a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.combool SkImageEncoder::EncodeFile(const char file[], const SkBitmap&, Type, int quality) {
1155a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com    return false;
1165a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com}
1175a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com
1185a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.combool SkImageEncoder::EncodeStream(SkWStream*, const SkBitmap&, SkImageEncoder::Type, int) {
1195a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com    return false;
1205a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com}
1215a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com
1227def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.comSkData* SkImageEncoder::EncodeData(const SkBitmap&, Type, int quality) {
1237def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com    return NULL;
1247def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com}
1257def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com
1265a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.combool SkImageEncoder::encodeStream(SkWStream*, const SkBitmap&, int) {
1275a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com    return false;
1285a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com}
1295a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com
1307def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.comSkData* SkImageEncoder::encodeData(const SkBitmap&, int) {
1317def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com    return NULL;
1327def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com}
1337def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com
1347def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.combool SkImageEncoder::encodeFile(const char file[], const SkBitmap& bm, int quality) {
1357def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com    return false;
1367def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com}
1375a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com/////////////////////////////////////////////////////////////////////////
138