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

Side by Side Diff: skia/animator/SkDisplayMovie.cpp

Issue 113827: Remove the remainder of the skia source code from the Chromium repo.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 7 months 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 | « skia/animator/SkDisplayMovie.h ('k') | skia/animator/SkDisplayNumber.h » ('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 /* libs/graphics/animator/SkDisplayMovie.cpp
2 **
3 ** Copyright 2006, The Android Open Source Project
4 **
5 ** Licensed under the Apache License, Version 2.0 (the "License");
6 ** you may not use this file except in compliance with the License.
7 ** You may obtain a copy of the License at
8 **
9 ** http://www.apache.org/licenses/LICENSE-2.0
10 **
11 ** Unless required by applicable law or agreed to in writing, software
12 ** distributed under the License is distributed on an "AS IS" BASIS,
13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 ** See the License for the specific language governing permissions and
15 ** limitations under the License.
16 */
17
18 #include "SkDisplayMovie.h"
19 #include "SkAnimateMaker.h"
20 #include "SkCanvas.h"
21 #include "SkPaint.h"
22
23 #if SK_USE_CONDENSED_INFO == 0
24
25 const SkMemberInfo SkDisplayMovie::fInfo[] = {
26 SK_MEMBER(src, String)
27 };
28
29 #endif
30
31 DEFINE_GET_MEMBER(SkDisplayMovie);
32
33 SkDisplayMovie::SkDisplayMovie() : fDecodedSuccessfully(false), fLoaded(false), fMovieBuilt(false) {
34 fMovie.fMaker->fInMovie = true;
35 }
36
37 SkDisplayMovie::~SkDisplayMovie() {
38 }
39
40 void SkDisplayMovie::buildMovie() {
41 if (fMovieBuilt)
42 return;
43 SkAnimateMaker* movieMaker = fMovie.fMaker;
44 SkAnimateMaker* parentMaker = movieMaker->fParentMaker;
45 if (src.size() == 0 || parentMaker == NULL)
46 return;
47 movieMaker->fPrefix.set(parentMaker->fPrefix);
48 fDecodedSuccessfully = fMovie.fMaker->decodeURI(src.c_str());
49 if (fDecodedSuccessfully == false) {
50
51 if (movieMaker->getErrorCode() != SkXMLParserError::kNoError || movieMak er->getNativeCode() != -1) {
52 movieMaker->setInnerError(parentMaker, src);
53 parentMaker->setErrorCode(SkDisplayXMLParserError::kInMovie);
54 } else {
55 parentMaker->setErrorNoun(src);
56 parentMaker->setErrorCode(SkDisplayXMLParserError::kMovieNameUnknown OrMissing);
57 }
58 }
59 fMovieBuilt = true;
60 }
61
62 SkDisplayable* SkDisplayMovie::deepCopy(SkAnimateMaker* maker) {
63 SkDisplayMovie* copy = (SkDisplayMovie*) INHERITED::deepCopy(maker);
64 copy->fMovie.fMaker->fParentMaker = fMovie.fMaker->fParentMaker;
65 copy->fMovie.fMaker->fHostEventSinkID = fMovie.fMaker->fHostEventSinkID;
66 copy->fMovieBuilt = false;
67 *fMovie.fMaker->fParentMaker->fMovies.append() = copy;
68 return copy;
69 }
70
71 void SkDisplayMovie::dirty() {
72 buildMovie();
73 }
74
75 bool SkDisplayMovie::doEvent(SkDisplayEvent::Kind kind, SkEventState* state) {
76 if (fLoaded == false)
77 return false;
78 fMovie.fMaker->fEnableTime = fMovie.fMaker->fParentMaker->fEnableTime;
79 return fMovie.fMaker->fEvents.doEvent(*fMovie.fMaker, kind, state);
80 }
81
82 bool SkDisplayMovie::draw(SkAnimateMaker& maker) {
83 if (fDecodedSuccessfully == false)
84 return false;
85 if (fLoaded == false)
86 enable(maker);
87 maker.fCanvas->save();
88 SkPaint local = SkPaint(*maker.fPaint);
89 bool result = fMovie.draw(maker.fCanvas, &local,
90 maker.fDisplayList.getTime()) != SkAnimator::kNotDifferent;
91 maker.fDisplayList.fInvalBounds.join(fMovie.fMaker->fDisplayList.fInvalBound s);
92 maker.fCanvas->restore();
93 return result;
94 }
95
96 #ifdef SK_DUMP_ENABLED
97 void SkDisplayMovie::dump(SkAnimateMaker* maker) {
98 dumpBase(maker);
99 SkDebugf("src=\"%s\"/>\n", src.c_str());
100 SkAnimateMaker* movieMaker = fMovie.fMaker;
101 SkDisplayList::fIndent += 4;
102 movieMaker->fDisplayList.dumpInner(movieMaker);
103 SkDisplayList::fIndent -= 4;
104 dumpEnd(maker);
105 }
106
107 void SkDisplayMovie::dumpEvents() {
108 fMovie.fMaker->fEvents.dump(*fMovie.fMaker);
109 }
110 #endif
111
112 bool SkDisplayMovie::enable(SkAnimateMaker& maker) {
113 if (fDecodedSuccessfully == false)
114 return false;
115 SkAnimateMaker* movieMaker = fMovie.fMaker;
116 movieMaker->fEvents.doEvent(*movieMaker, SkDisplayEvent::kOnload, NULL);
117 movieMaker->fEvents.removeEvent(SkDisplayEvent::kOnload, NULL);
118 fLoaded = true;
119 movieMaker->fLoaded = true;
120 return false;
121 }
122
123 bool SkDisplayMovie::hasEnable() const {
124 return true;
125 }
126
127 void SkDisplayMovie::onEndElement(SkAnimateMaker& maker) {
128 #if defined SK_DEBUG && defined SK_DEBUG_ANIMATION_TIMING
129 fMovie.fMaker->fDebugTimeBase = maker.fDebugTimeBase;
130 #endif
131 fMovie.fMaker->fPrefix.set(maker.fPrefix);
132 fMovie.fMaker->fHostEventSinkID = maker.fHostEventSinkID;
133 fMovie.fMaker->fParentMaker = &maker;
134 buildMovie();
135 *maker.fMovies.append() = this;
136 }
137
138
OLDNEW
« no previous file with comments | « skia/animator/SkDisplayMovie.h ('k') | skia/animator/SkDisplayNumber.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698