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

Side by Side Diff: sky/engine/platform/graphics/GraphicsContextRecorder.cpp

Issue 816543004: Update from https://crrev.com/308996 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 100
101 PassOwnPtr<Vector<char> > GraphicsContextSnapshot::replay(unsigned fromStep, uns igned toStep, double scale) const 101 PassOwnPtr<Vector<char> > GraphicsContextSnapshot::replay(unsigned fromStep, uns igned toStep, double scale) const
102 { 102 {
103 const SkIRect bounds = m_picture->cullRect().roundOut(); 103 const SkIRect bounds = m_picture->cullRect().roundOut();
104 SkBitmap bitmap; 104 SkBitmap bitmap;
105 bitmap.allocPixels(SkImageInfo::MakeN32Premul(bounds.width(), bounds.height( ))); 105 bitmap.allocPixels(SkImageInfo::MakeN32Premul(bounds.width(), bounds.height( )));
106 { 106 {
107 ReplayingCanvas canvas(bitmap, fromStep, toStep); 107 ReplayingCanvas canvas(bitmap, fromStep, toStep);
108 canvas.scale(scale, scale); 108 canvas.scale(scale, scale);
109 canvas.resetStepCount(); 109 canvas.resetStepCount();
110 m_picture->draw(&canvas, &canvas); 110 m_picture->playback(&canvas, &canvas);
111 } 111 }
112 OwnPtr<Vector<char> > base64Data = adoptPtr(new Vector<char>()); 112 OwnPtr<Vector<char> > base64Data = adoptPtr(new Vector<char>());
113 Vector<char> encodedImage; 113 Vector<char> encodedImage;
114 if (!PNGImageEncoder::encode(bitmap, reinterpret_cast<Vector<unsigned char>* >(&encodedImage))) 114 if (!PNGImageEncoder::encode(bitmap, reinterpret_cast<Vector<unsigned char>* >(&encodedImage)))
115 return nullptr; 115 return nullptr;
116 base64Encode(encodedImage, *base64Data); 116 base64Encode(encodedImage, *base64Data);
117 return base64Data.release(); 117 return base64Data.release();
118 } 118 }
119 119
120 PassOwnPtr<GraphicsContextSnapshot::Timings> GraphicsContextSnapshot::profile(un signed minRepeatCount, double minDuration) const 120 PassOwnPtr<GraphicsContextSnapshot::Timings> GraphicsContextSnapshot::profile(un signed minRepeatCount, double minDuration) const
121 { 121 {
122 OwnPtr<GraphicsContextSnapshot::Timings> timings = adoptPtr(new GraphicsCont extSnapshot::Timings()); 122 OwnPtr<GraphicsContextSnapshot::Timings> timings = adoptPtr(new GraphicsCont extSnapshot::Timings());
123 timings->reserveCapacity(minRepeatCount); 123 timings->reserveCapacity(minRepeatCount);
124 const SkIRect bounds = m_picture->cullRect().roundOut(); 124 const SkIRect bounds = m_picture->cullRect().roundOut();
125 SkBitmap bitmap; 125 SkBitmap bitmap;
126 bitmap.allocPixels(SkImageInfo::MakeN32Premul(bounds.width(), bounds.height( ))); 126 bitmap.allocPixels(SkImageInfo::MakeN32Premul(bounds.width(), bounds.height( )));
127 OwnPtr<ProfilingCanvas> canvas = adoptPtr(new ProfilingCanvas(bitmap)); 127 OwnPtr<ProfilingCanvas> canvas = adoptPtr(new ProfilingCanvas(bitmap));
128 128
129 double now = WTF::monotonicallyIncreasingTime(); 129 double now = WTF::monotonicallyIncreasingTime();
130 double stopTime = now + minDuration; 130 double stopTime = now + minDuration;
131 for (unsigned step = 0; step < minRepeatCount || now < stopTime; ++step) { 131 for (unsigned step = 0; step < minRepeatCount || now < stopTime; ++step) {
132 timings->append(Vector<double>()); 132 timings->append(Vector<double>());
133 Vector<double>* currentTimings = &timings->last(); 133 Vector<double>* currentTimings = &timings->last();
134 if (timings->size() > 1) 134 if (timings->size() > 1)
135 currentTimings->reserveCapacity(timings->begin()->size()); 135 currentTimings->reserveCapacity(timings->begin()->size());
136 if (step) 136 if (step)
137 canvas = adoptPtr(new ProfilingCanvas(bitmap)); 137 canvas = adoptPtr(new ProfilingCanvas(bitmap));
138 canvas->setTimings(currentTimings); 138 canvas->setTimings(currentTimings);
139 m_picture->draw(canvas.get()); 139 m_picture->playback(canvas.get());
140 now = WTF::monotonicallyIncreasingTime(); 140 now = WTF::monotonicallyIncreasingTime();
141 } 141 }
142 return timings.release(); 142 return timings.release();
143 } 143 }
144 144
145 PassRefPtr<JSONArray> GraphicsContextSnapshot::snapshotCommandLog() const 145 PassRefPtr<JSONArray> GraphicsContextSnapshot::snapshotCommandLog() const
146 { 146 {
147 const SkIRect bounds = m_picture->cullRect().roundOut(); 147 const SkIRect bounds = m_picture->cullRect().roundOut();
148 LoggingCanvas canvas(bounds.width(), bounds.height()); 148 LoggingCanvas canvas(bounds.width(), bounds.height());
149 m_picture->draw(&canvas); 149 m_picture->playback(&canvas);
150 return canvas.log(); 150 return canvas.log();
151 } 151 }
152 152
153 } // namespace blink 153 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698