OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2010, The Android Open Source Project | 2 * Copyright 2010, The Android Open Source Project |
3 * | 3 * |
4 * Licensed under the Apache License, Version 2.0 (the "License"); | 4 * Licensed under the Apache License, Version 2.0 (the "License"); |
5 * you may not use this file except in compliance with the License. | 5 * you may not use this file except in compliance with the License. |
6 * You may obtain a copy of the License at | 6 * You may obtain a copy of the License at |
7 * | 7 * |
8 * http://www.apache.org/licenses/LICENSE-2.0 | 8 * http://www.apache.org/licenses/LICENSE-2.0 |
9 * | 9 * |
10 * Unless required by applicable law or agreed to in writing, software | 10 * Unless required by applicable law or agreed to in writing, software |
(...skipping 564 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
575 | 575 |
576 return ok; | 576 return ok; |
577 } | 577 } |
578 | 578 |
579 | 579 |
580 /////////////////////////////////////////////////////////////////////////////// | 580 /////////////////////////////////////////////////////////////////////////////// |
581 DEFINE_DECODER_CREATOR(WEBPImageDecoder); | 581 DEFINE_DECODER_CREATOR(WEBPImageDecoder); |
582 DEFINE_ENCODER_CREATOR(WEBPImageEncoder); | 582 DEFINE_ENCODER_CREATOR(WEBPImageEncoder); |
583 /////////////////////////////////////////////////////////////////////////////// | 583 /////////////////////////////////////////////////////////////////////////////// |
584 | 584 |
585 #include "SkTRegistry.h" | |
586 | |
587 static SkImageDecoder* sk_libwebp_dfactory(SkStream* stream) { | 585 static SkImageDecoder* sk_libwebp_dfactory(SkStream* stream) { |
588 int width, height, hasAlpha; | 586 int width, height, hasAlpha; |
589 if (!webp_parse_header(stream, &width, &height, &hasAlpha)) { | 587 if (!webp_parse_header(stream, &width, &height, &hasAlpha)) { |
590 return NULL; | 588 return NULL; |
591 } | 589 } |
592 | 590 |
593 // Magic matches, call decoder | 591 // Magic matches, call decoder |
594 return SkNEW(SkWEBPImageDecoder); | 592 return SkNEW(SkWEBPImageDecoder); |
595 } | 593 } |
596 | 594 |
597 static SkImageDecoder::Format get_format_webp(SkStream* stream) { | 595 static SkImageDecoder::Format get_format_webp(SkStream* stream) { |
598 int width, height, hasAlpha; | 596 int width, height, hasAlpha; |
599 if (webp_parse_header(stream, &width, &height, &hasAlpha)) { | 597 if (webp_parse_header(stream, &width, &height, &hasAlpha)) { |
600 return SkImageDecoder::kWEBP_Format; | 598 return SkImageDecoder::kWEBP_Format; |
601 } | 599 } |
602 return SkImageDecoder::kUnknown_Format; | 600 return SkImageDecoder::kUnknown_Format; |
603 } | 601 } |
604 | 602 |
605 static SkImageEncoder* sk_libwebp_efactory(SkImageEncoder::Type t) { | 603 static SkImageEncoder* sk_libwebp_efactory(SkImageEncoder::Type t) { |
606 return (SkImageEncoder::kWEBP_Type == t) ? SkNEW(SkWEBPImageEncoder) : NUL
L; | 604 return (SkImageEncoder::kWEBP_Type == t) ? SkNEW(SkWEBPImageEncoder) : NUL
L; |
607 } | 605 } |
608 | 606 |
609 static SkTRegistry<SkImageDecoder*, SkStream*> gDReg(sk_libwebp_dfactory); | 607 static SkImageDecoder_DecodeReg gDReg(sk_libwebp_dfactory); |
610 static SkTRegistry<SkImageDecoder::Format, SkStream*> gFormatReg(get_format_webp
); | 608 static SkImageDecoder_FormatReg gFormatReg(get_format_webp); |
611 static SkTRegistry<SkImageEncoder*, SkImageEncoder::Type> gEReg(sk_libwebp_efact
ory); | 609 static SkImageEncoder_EncodeReg gEReg(sk_libwebp_efactory); |
OLD | NEW |