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

Side by Side Diff: include/images/SkMovie.h

Issue 2449213004: Remove SkMovie and giflib (Closed)
Patch Set: Created 4 years, 1 month 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
« no previous file with comments | « gyp/images.gyp ('k') | src/images/SkGIFMovie.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1
2 /*
3 * Copyright 2008 The Android Open Source Project
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
9
10 #ifndef SkMovie_DEFINED
11 #define SkMovie_DEFINED
12
13 #include "SkRefCnt.h"
14 #include "SkCanvas.h"
15
16 class SkStreamRewindable;
17
18 class SkMovie : public SkRefCnt {
19 public:
20
21
22 /** Try to create a movie from the stream. If the stream format is not
23 supported, return NULL.
24 */
25 static SkMovie* DecodeStream(SkStreamRewindable*);
26 /** Try to create a movie from the specified file path. If the file is not
27 found, or the format is not supported, return NULL. If a movie is
28 returned, the stream may be retained by the movie (via ref()) until
29 the movie is finished with it (by calling unref()).
30 */
31 static SkMovie* DecodeFile(const char path[]);
32 /** Try to create a movie from the specified memory.
33 If the format is not supported, return NULL. If a movie is returned,
34 the data will have been read or copied, and so the caller may free
35 it.
36 */
37 static SkMovie* DecodeMemory(const void* data, size_t length);
38
39 SkMSec duration();
40 int width();
41 int height();
42 int isOpaque();
43
44 /** Specify the time code (between 0...duration) to sample a bitmap
45 from the movie. Returns true if this time code generated a different
46 bitmap/frame from the previous state (i.e. true means you need to
47 redraw).
48 */
49 bool setTime(SkMSec);
50
51 // return the right bitmap for the current time code
52 const SkBitmap& bitmap();
53
54 protected:
55 struct Info {
56 SkMSec fDuration;
57 int fWidth;
58 int fHeight;
59 bool fIsOpaque;
60 };
61
62 virtual bool onGetInfo(Info*) = 0;
63 virtual bool onSetTime(SkMSec) = 0;
64 virtual bool onGetBitmap(SkBitmap*) = 0;
65
66 // visible for subclasses
67 SkMovie();
68
69 private:
70 Info fInfo;
71 SkMSec fCurrTime;
72 SkBitmap fBitmap;
73 bool fNeedBitmap;
74
75 void ensureInfo();
76
77 typedef SkRefCnt INHERITED;
78 };
79
80 #endif
OLDNEW
« no previous file with comments | « gyp/images.gyp ('k') | src/images/SkGIFMovie.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698