Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(327)

Side by Side Diff: include/core/SkImageDecoder.h

Issue 103033002: Big Cleanup: SkBitmapFactory, SkLazyPixelRef, SkImageCache (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: rebase one last time Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « gyp/tools.gyp ('k') | include/lazy/SkBitmapFactory.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2006 The Android Open Source Project 3 * Copyright 2006 The Android Open Source Project
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 9
10 #ifndef SkImageDecoder_DEFINED 10 #ifndef SkImageDecoder_DEFINED
11 #define SkImageDecoder_DEFINED 11 #define SkImageDecoder_DEFINED
12 12
13 #include "SkBitmap.h" 13 #include "SkBitmap.h"
14 #include "SkBitmapFactory.h"
15 #include "SkImage.h" 14 #include "SkImage.h"
16 #include "SkRect.h" 15 #include "SkRect.h"
17 #include "SkRefCnt.h" 16 #include "SkRefCnt.h"
18 #include "SkTRegistry.h" 17 #include "SkTRegistry.h"
19 #include "SkTypes.h" 18 #include "SkTypes.h"
20 19
21 class SkStream; 20 class SkStream;
22 class SkStreamRewindable; 21 class SkStreamRewindable;
23 22
24 /** \class SkImageDecoder 23 /** \class SkImageDecoder
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 */ 328 */
330 static bool DecodeMemory(const void* buffer, size_t size, SkBitmap* bitmap, 329 static bool DecodeMemory(const void* buffer, size_t size, SkBitmap* bitmap,
331 SkBitmap::Config prefConfig, Mode, 330 SkBitmap::Config prefConfig, Mode,
332 Format* format = NULL); 331 Format* format = NULL);
333 static bool DecodeMemory(const void* buffer, size_t size, SkBitmap* bitmap){ 332 static bool DecodeMemory(const void* buffer, size_t size, SkBitmap* bitmap){
334 return DecodeMemory(buffer, size, bitmap, SkBitmap::kNo_Config, 333 return DecodeMemory(buffer, size, bitmap, SkBitmap::kNo_Config,
335 kDecodePixels_Mode, NULL); 334 kDecodePixels_Mode, NULL);
336 } 335 }
337 336
338 /** 337 /**
338 * Struct containing information about a pixel destination.
339 */
340 struct Target {
341 /**
342 * Pre-allocated memory.
343 */
344 void* fAddr;
345
346 /**
347 * Rowbytes of the allocated memory.
348 */
349 size_t fRowBytes;
350 };
351
352 /**
339 * Decode memory. 353 * Decode memory.
340 * @param info Output parameter. Returns info about the encoded image. 354 * @param info Output parameter. Returns info about the encoded image.
341 * @param target Contains the address of pixel memory to decode into 355 * @param target Contains the address of pixel memory to decode into
342 * (which must be large enough to hold the width in info) and 356 * (which must be large enough to hold the width in info) and
343 * the row bytes to use. If NULL, returns info and does not 357 * the row bytes to use. If NULL, returns info and does not
344 * decode pixels. 358 * decode pixels.
345 * @return bool Whether the function succeeded. 359 * @return bool Whether the function succeeded.
346 * 360 *
347 * Sample usage: 361 * Sample usage:
348 * <code> 362 * <code>
349 * // Determine the image's info: width/height/config 363 * // Determine the image's info: width/height/config
350 * SkImageInfo info; 364 * SkImageInfo info;
351 * bool success = DecodeMemoryToTarget(src, size, &info, NULL); 365 * bool success = DecodeMemoryToTarget(src, size, &info, NULL);
352 * if (!success) return; 366 * if (!success) return;
353 * // Allocate space for the result: 367 * // Allocate space for the result:
354 * SkBitmapFactory::Target target; 368 * SkBitmapFactory::Target target;
355 * target.fAddr = malloc/other allocation 369 * target.fAddr = malloc/other allocation
356 * target.fRowBytes = ... 370 * target.fRowBytes = ...
357 * // Now decode the actual pixels into target. &info is optional, 371 * // Now decode the actual pixels into target. &info is optional,
358 * // and could be NULL 372 * // and could be NULL
359 * success = DecodeMemoryToTarget(src, size, &info, &target); 373 * success = DecodeMemoryToTarget(src, size, &info, &target);
360 * </code> 374 * </code>
361 */ 375 */
362 static bool DecodeMemoryToTarget(const void* buffer, size_t size, SkImageInf o* info, 376 static bool DecodeMemoryToTarget(const void* buffer, size_t size, SkImageInf o* info,
363 const SkBitmapFactory::Target* target); 377 const Target* target);
364 378
365 /** Decode the image stored in the specified SkStreamRewindable, and store t he result 379 /** Decode the image stored in the specified SkStreamRewindable, and store t he result
366 in bitmap. Return true for success or false on failure. 380 in bitmap. Return true for success or false on failure.
367 381
368 @param prefConfig If the PrefConfigTable is not set, prefer this config. 382 @param prefConfig If the PrefConfigTable is not set, prefer this config.
369 See NOTE ABOUT PREFERRED CONFIGS. 383 See NOTE ABOUT PREFERRED CONFIGS.
370 384
371 @param format On success, if format is non-null, it is set to the format 385 @param format On success, if format is non-null, it is set to the format
372 of the decoded stream. On failure it is ignored. 386 of the decoded stream. On failure it is ignored.
373 */ 387 */
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 DECLARE_DECODER_CREATOR(WBMPImageDecoder); 561 DECLARE_DECODER_CREATOR(WBMPImageDecoder);
548 DECLARE_DECODER_CREATOR(WEBPImageDecoder); 562 DECLARE_DECODER_CREATOR(WEBPImageDecoder);
549 563
550 564
551 // Typedefs to make registering decoder and formatter callbacks easier. 565 // Typedefs to make registering decoder and formatter callbacks easier.
552 // These have to be defined outside SkImageDecoder. :( 566 // These have to be defined outside SkImageDecoder. :(
553 typedef SkTRegistry<SkImageDecoder*(*)(SkStreamRewindable*)> SkImageDecod er_DecodeReg; 567 typedef SkTRegistry<SkImageDecoder*(*)(SkStreamRewindable*)> SkImageDecod er_DecodeReg;
554 typedef SkTRegistry<SkImageDecoder::Format(*)(SkStreamRewindable*)> SkImageDecod er_FormatReg; 568 typedef SkTRegistry<SkImageDecoder::Format(*)(SkStreamRewindable*)> SkImageDecod er_FormatReg;
555 569
556 #endif 570 #endif
OLDNEW
« no previous file with comments | « gyp/tools.gyp ('k') | include/lazy/SkBitmapFactory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698