Commit dc9635dd authored by Collin Jackson's avatar Collin Jackson

Implement a simple image cache for Sky in Dart. This doesn't yet do any eviction from the cache.

R=abarth@chromium.org, abarth

Review URL: https://codereview.chromium.org/1165753004
parent 2fe4b05e
...@@ -3,10 +3,13 @@ ...@@ -3,10 +3,13 @@
// found in the LICENSE file. // found in the LICENSE file.
import 'dart:sky'; import 'dart:sky';
import 'package:sky/framework/net/image_cache.dart' as image_cache;
double timeBase = null; double timeBase = null;
Image image = null; Image image = null;
String url1 = "https://www.dartlang.org/logos/dart-logo.png";
String url2 = "http://i2.kym-cdn.com/photos/images/facebook/000/581/296/c09.jpg";
void beginFrame(double timeStamp) { void beginFrame(double timeStamp) {
if (timeBase == null) timeBase = timeStamp; if (timeBase == null) timeBase = timeStamp;
...@@ -22,15 +25,32 @@ void beginFrame(double timeStamp) { ...@@ -22,15 +25,32 @@ void beginFrame(double timeStamp) {
view.scheduleFrame(); view.scheduleFrame();
} }
void handleImageLoad(result) {
if (result != image) {
print("${result.width}x${result.width} image loaded!");
image = result;
view.scheduleFrame();
} else {
print("Existing image was loaded again");
}
}
bool handleEvent(Event event) {
if (event.type == "pointerdown") {
return true;
}
if (event.type == "pointerup") {
image_cache.load(url2, handleImageLoad);
return true;
}
return false;
}
void main() { void main() {
new ImageLoader("https://www.dartlang.org/logos/dart-logo.png", (result) { image_cache.load(url1, handleImageLoad);
if (result != null) { image_cache.load(url1, handleImageLoad);
print("${result.width}x${result.width} image loaded!"); view.setEventCallback(handleEvent);
image = result;
view.scheduleFrame();
} else {
print("Image failed to load");
}
}).load();
view.setBeginFrameCallback(beginFrame); view.setBeginFrameCallback(beginFrame);
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment