From c465d13e6fca5e171bde45d35b2dd43117f4702e Mon Sep 17 00:00:00 2001 From: Hal Canary Date: Fri, 8 Dec 2017 10:21:31 -0500 Subject: resources: orgainize directory. Should make it easier to ask just for images. Change-Id: If821743dc924c4bfbc6b2b2d29b14affde7b3afd Reviewed-on: https://skia-review.googlesource.com/82684 Commit-Queue: Hal Canary Reviewed-by: Leon Scroggins --- bench/EncoderBench.cpp | 2 +- bench/ImageFilterDAGBench.cpp | 2 +- bench/PDFBench.cpp | 4 +- dm/DM.cpp | 2 +- docs/SkCanvas_Reference.bmh | 2 +- experimental/GLFWTest/glfw_main.cpp | 2 +- gm/all_bitmap_configs.cpp | 2 +- gm/animatedGif.cpp | 2 +- gm/bitmapimage.cpp | 2 +- gm/blurs.cpp | 2 +- gm/colorfilterimagefilter.cpp | 4 +- gm/colorwheel.cpp | 8 +- gm/copyTo4444.cpp | 2 +- gm/crosscontextimage.cpp | 2 +- gm/downsamplebitmap.cpp | 8 +- gm/draw_bitmap_rect_skbug4374.cpp | 2 +- gm/drawatlas.cpp | 2 +- gm/encode-alpha-jpeg.cpp | 2 +- gm/encode-platform.cpp | 4 +- gm/encode-srgb.cpp | 8 +- gm/encode.cpp | 2 +- gm/filterbitmap.cpp | 3 +- gm/filterindiabox.cpp | 2 +- gm/grayscalejpg.cpp | 2 +- gm/imagefilters.cpp | 2 +- gm/makecolorspace.cpp | 8 +- gm/patch.cpp | 2 +- gm/readpixels.cpp | 4 +- gm/repeated_bitmap.cpp | 4 +- gm/savelayer.cpp | 2 +- gm/smallimage.cpp | 11 - gm/srgb.cpp | 2 +- gm/subsetshader.cpp | 2 +- gn/gm.gni | 1 - resources/16x1.png | Bin 278 -> 0 bytes resources/1x1.png | Bin 277 -> 0 bytes resources/1x16.png | Bin 278 -> 0 bytes resources/1x3.png | Bin 278 -> 0 bytes resources/2x2.png | Bin 279 -> 0 bytes resources/3x1.png | Bin 277 -> 0 bytes resources/3x3.png | Bin 278 -> 0 bytes resources/CMYK.jpg | Bin 116536 -> 0 bytes resources/alphabetAnim.gif | Bin 1770 -> 0 bytes resources/arrow.png | Bin 3926 -> 0 bytes resources/baby_tux.png | Bin 29596 -> 0 bytes resources/baby_tux.webp | Bin 17128 -> 0 bytes resources/blendBG.webp | Bin 776 -> 0 bytes resources/box.gif | Bin 472 -> 0 bytes resources/brickwork-texture.jpg | Bin 155023 -> 0 bytes resources/brickwork_normal-map.jpg | Bin 180614 -> 0 bytes resources/colorTables.gif | Bin 2829 -> 0 bytes resources/color_wheel.gif | Bin 5008 -> 0 bytes resources/color_wheel.ico | Bin 99678 -> 0 bytes resources/color_wheel.jpg | Bin 8358 -> 0 bytes resources/color_wheel.png | Bin 9161 -> 0 bytes resources/color_wheel.webp | Bin 6810 -> 0 bytes resources/color_wheel_with_profile.png | Bin 11810 -> 0 bytes resources/cropped_mandrill.jpg | Bin 23220 -> 0 bytes resources/dng_with_preview.dng | Bin 138076 -> 0 bytes resources/dog.jpg | Bin 8504 -> 0 bytes resources/exif-orientation-2-ur.jpg | Bin 1948 -> 0 bytes resources/flutter_logo.jpg | Bin 12302 -> 0 bytes resources/gamut.png | Bin 479210 -> 0 bytes resources/google_chrome.ico | Bin 192708 -> 0 bytes resources/grayscale.jpg | Bin 770 -> 0 bytes resources/half-transparent-white-pixel.png | Bin 178 -> 0 bytes resources/half-transparent-white-pixel.webp | Bin 38 -> 0 bytes resources/icc-v2-gbr.jpg | Bin 43834 -> 0 bytes resources/iconstrip.png | Bin 55635 -> 0 bytes resources/images/16x1.png | Bin 0 -> 278 bytes resources/images/1x1.png | Bin 0 -> 277 bytes resources/images/1x16.png | Bin 0 -> 278 bytes resources/images/1x3.png | Bin 0 -> 278 bytes resources/images/2x2.png | Bin 0 -> 279 bytes resources/images/3x1.png | Bin 0 -> 277 bytes resources/images/3x3.png | Bin 0 -> 278 bytes resources/images/CMYK.jpg | Bin 0 -> 116536 bytes resources/images/alphabetAnim.gif | Bin 0 -> 1770 bytes resources/images/arrow.png | Bin 0 -> 3926 bytes resources/images/baby_tux.png | Bin 0 -> 29596 bytes resources/images/baby_tux.webp | Bin 0 -> 17128 bytes resources/images/blendBG.webp | Bin 0 -> 776 bytes resources/images/box.gif | Bin 0 -> 472 bytes resources/images/brickwork-texture.jpg | Bin 0 -> 155023 bytes resources/images/brickwork_normal-map.jpg | Bin 0 -> 180614 bytes resources/images/colorTables.gif | Bin 0 -> 2829 bytes resources/images/color_wheel.gif | Bin 0 -> 5008 bytes resources/images/color_wheel.ico | Bin 0 -> 99678 bytes resources/images/color_wheel.jpg | Bin 0 -> 8358 bytes resources/images/color_wheel.png | Bin 0 -> 9161 bytes resources/images/color_wheel.webp | Bin 0 -> 6810 bytes resources/images/color_wheel_with_profile.png | Bin 0 -> 11810 bytes resources/images/cropped_mandrill.jpg | Bin 0 -> 23220 bytes resources/images/dng_with_preview.dng | Bin 0 -> 138076 bytes resources/images/dog.jpg | Bin 0 -> 8504 bytes resources/images/exif-orientation-2-ur.jpg | Bin 0 -> 1948 bytes resources/images/flutter_logo.jpg | Bin 0 -> 12302 bytes resources/images/gamut.png | Bin 0 -> 479210 bytes resources/images/google_chrome.ico | Bin 0 -> 192708 bytes resources/images/grayscale.jpg | Bin 0 -> 770 bytes resources/images/half-transparent-white-pixel.png | Bin 0 -> 178 bytes resources/images/half-transparent-white-pixel.webp | Bin 0 -> 38 bytes resources/images/icc-v2-gbr.jpg | Bin 0 -> 43834 bytes resources/images/iconstrip.png | Bin 0 -> 55635 bytes resources/images/index8.png | Bin 0 -> 13418 bytes resources/images/mandrill.wbmp | Bin 0 -> 32774 bytes resources/images/mandrill_128.png | Bin 0 -> 38054 bytes resources/images/mandrill_16.png | Bin 0 -> 952 bytes resources/images/mandrill_256.png | Bin 0 -> 153549 bytes resources/images/mandrill_32.png | Bin 0 -> 2675 bytes resources/images/mandrill_512.png | Bin 0 -> 625834 bytes resources/images/mandrill_512_q075.jpg | Bin 0 -> 77244 bytes resources/images/mandrill_64.png | Bin 0 -> 9601 bytes resources/images/mandrill_h1v1.jpg | Bin 0 -> 88253 bytes resources/images/mandrill_h2v1.jpg | Bin 0 -> 81700 bytes resources/images/plane.png | Bin 0 -> 5718 bytes resources/images/plane_interlaced.png | Bin 0 -> 6451 bytes resources/images/rainbow-gradient.png | Bin 0 -> 2592 bytes resources/images/randPixels.bmp | Bin 0 -> 246 bytes resources/images/randPixels.gif | Bin 0 -> 277 bytes resources/images/randPixels.jpg | Bin 0 -> 329 bytes resources/images/randPixels.png | Bin 0 -> 268 bytes resources/images/randPixels.webp | Bin 0 -> 308 bytes resources/images/randPixelsAnim.gif | Bin 0 -> 1225 bytes resources/images/randPixelsAnim2.gif | Bin 0 -> 514 bytes resources/images/randPixelsOffset.gif | Bin 0 -> 277 bytes resources/images/required.gif | Bin 0 -> 733 bytes resources/images/required.webp | Bin 0 -> 788 bytes resources/images/rle.bmp | Bin 0 -> 40400 bytes resources/images/sample_1mp.dng | Bin 0 -> 87116 bytes resources/images/sample_1mp_rotated.dng | Bin 0 -> 87460 bytes resources/images/shadowreference.png | Bin 0 -> 10373 bytes resources/images/ship.png | Bin 0 -> 16218 bytes resources/images/test640x479.gif | Bin 0 -> 73823 bytes resources/images/webp-animated.webp | Bin 0 -> 340 bytes resources/images/webp-color-profile-crash.webp | Bin 0 -> 35882 bytes resources/images/webp-color-profile-lossless.webp | Bin 0 -> 43866 bytes .../images/webp-color-profile-lossy-alpha.webp | Bin 0 -> 16018 bytes resources/images/webp-color-profile-lossy.webp | Bin 0 -> 19436 bytes resources/images/yellow_rose.png | Bin 0 -> 121363 bytes resources/images/yellow_rose.webp | Bin 0 -> 23404 bytes resources/index8.png | Bin 13418 -> 0 bytes resources/lua/slides.lua | 356 +++++++++++++++++++++ resources/lua/slides_content.lua | 94 ++++++ resources/lua/slides_content2.lua | 123 +++++++ resources/lua/slides_transitions.lua | 208 ++++++++++++ resources/lua/slides_utils.lua | 102 ++++++ resources/lua/test.lua | 76 +++++ resources/mandrill.wbmp | Bin 32774 -> 0 bytes resources/mandrill_128.png | Bin 38054 -> 0 bytes resources/mandrill_16.png | Bin 952 -> 0 bytes resources/mandrill_256.png | Bin 153549 -> 0 bytes resources/mandrill_32.png | Bin 2675 -> 0 bytes resources/mandrill_512.png | Bin 625834 -> 0 bytes resources/mandrill_512_q075.jpg | Bin 77244 -> 0 bytes resources/mandrill_64.png | Bin 9601 -> 0 bytes resources/mandrill_h1v1.jpg | Bin 88253 -> 0 bytes resources/mandrill_h2v1.jpg | Bin 81700 -> 0 bytes resources/plane.png | Bin 5718 -> 0 bytes resources/plane_interlaced.png | Bin 6451 -> 0 bytes resources/rainbow-gradient.png | Bin 2592 -> 0 bytes resources/randPixels.bmp | Bin 246 -> 0 bytes resources/randPixels.gif | Bin 277 -> 0 bytes resources/randPixels.jpg | Bin 329 -> 0 bytes resources/randPixels.png | Bin 268 -> 0 bytes resources/randPixels.webp | Bin 308 -> 0 bytes resources/randPixelsAnim.gif | Bin 1225 -> 0 bytes resources/randPixelsAnim2.gif | Bin 514 -> 0 bytes resources/randPixelsOffset.gif | Bin 277 -> 0 bytes resources/required.gif | Bin 733 -> 0 bytes resources/required.webp | Bin 788 -> 0 bytes resources/rle.bmp | Bin 40400 -> 0 bytes resources/sample_1mp.dng | Bin 87116 -> 0 bytes resources/sample_1mp_rotated.dng | Bin 87460 -> 0 bytes resources/shadowreference.png | Bin 10373 -> 0 bytes resources/ship.png | Bin 16218 -> 0 bytes resources/slides.lua | 356 --------------------- resources/slides_content.lua | 94 ------ resources/slides_content2.lua | 123 ------- resources/slides_transitions.lua | 208 ------------ resources/slides_utils.lua | 102 ------ resources/test.lua | 76 ----- resources/test640x479.gif | Bin 73823 -> 0 bytes resources/webp-animated.webp | Bin 340 -> 0 bytes resources/webp-color-profile-crash.webp | Bin 35882 -> 0 bytes resources/webp-color-profile-lossless.webp | Bin 43866 -> 0 bytes resources/webp-color-profile-lossy-alpha.webp | Bin 16018 -> 0 bytes resources/webp-color-profile-lossy.webp | Bin 19436 -> 0 bytes resources/yellow_rose.png | Bin 121363 -> 0 bytes resources/yellow_rose.webp | Bin 23404 -> 0 bytes samplecode/SampleFilterQuality.cpp | 2 +- samplecode/SampleIdentityScale.cpp | 2 +- samplecode/SampleLayers.cpp | 2 +- samplecode/SampleLua.cpp | 6 +- samplecode/SampleShadowReference.cpp | 2 +- samplecode/SampleShip.cpp | 4 +- samplecode/SampleSubpixelTranslate.cpp | 2 +- samplecode/SampleUnpremul.cpp | 2 +- tests/CodecAnimTest.cpp | 40 +-- tests/CodecExactReadTest.cpp | 14 +- tests/CodecPartialTest.cpp | 52 +-- tests/CodecTest.cpp | 140 ++++---- tests/ColorSpaceTest.cpp | 12 +- tests/EncodeTest.cpp | 8 +- tests/ExifTest.cpp | 4 +- tests/GifTest.cpp | 6 +- tests/ImageIsOpaqueTest.cpp | 4 +- tests/ImageTest.cpp | 10 +- tests/PDFDocumentTest.cpp | 2 +- tests/PDFJpegEmbedTest.cpp | 14 +- tests/PipeTest.cpp | 4 +- tests/SerialProcsTest.cpp | 2 +- tests/StreamTest.cpp | 2 +- tests/YUVTest.cpp | 22 +- tests/skbug6389.cpp | 2 +- tools/colorspaceinfo.cpp | 2 +- tools/create_flutter_test_images.cpp | 2 +- tools/viewer/Viewer.cpp | 2 +- 218 files changed, 1192 insertions(+), 1203 deletions(-) delete mode 100644 gm/smallimage.cpp delete mode 100644 resources/16x1.png delete mode 100644 resources/1x1.png delete mode 100644 resources/1x16.png delete mode 100644 resources/1x3.png delete mode 100644 resources/2x2.png delete mode 100644 resources/3x1.png delete mode 100644 resources/3x3.png delete mode 100644 resources/CMYK.jpg delete mode 100644 resources/alphabetAnim.gif delete mode 100644 resources/arrow.png delete mode 100644 resources/baby_tux.png delete mode 100644 resources/baby_tux.webp delete mode 100644 resources/blendBG.webp delete mode 100644 resources/box.gif delete mode 100644 resources/brickwork-texture.jpg delete mode 100644 resources/brickwork_normal-map.jpg delete mode 100644 resources/colorTables.gif delete mode 100644 resources/color_wheel.gif delete mode 100644 resources/color_wheel.ico delete mode 100644 resources/color_wheel.jpg delete mode 100644 resources/color_wheel.png delete mode 100644 resources/color_wheel.webp delete mode 100644 resources/color_wheel_with_profile.png delete mode 100644 resources/cropped_mandrill.jpg delete mode 100644 resources/dng_with_preview.dng delete mode 100644 resources/dog.jpg delete mode 100644 resources/exif-orientation-2-ur.jpg delete mode 100644 resources/flutter_logo.jpg delete mode 100644 resources/gamut.png delete mode 100644 resources/google_chrome.ico delete mode 100644 resources/grayscale.jpg delete mode 100644 resources/half-transparent-white-pixel.png delete mode 100644 resources/half-transparent-white-pixel.webp delete mode 100644 resources/icc-v2-gbr.jpg delete mode 100644 resources/iconstrip.png create mode 100644 resources/images/16x1.png create mode 100644 resources/images/1x1.png create mode 100644 resources/images/1x16.png create mode 100644 resources/images/1x3.png create mode 100644 resources/images/2x2.png create mode 100644 resources/images/3x1.png create mode 100644 resources/images/3x3.png create mode 100644 resources/images/CMYK.jpg create mode 100644 resources/images/alphabetAnim.gif create mode 100644 resources/images/arrow.png create mode 100644 resources/images/baby_tux.png create mode 100644 resources/images/baby_tux.webp create mode 100644 resources/images/blendBG.webp create mode 100644 resources/images/box.gif create mode 100644 resources/images/brickwork-texture.jpg create mode 100644 resources/images/brickwork_normal-map.jpg create mode 100644 resources/images/colorTables.gif create mode 100644 resources/images/color_wheel.gif create mode 100644 resources/images/color_wheel.ico create mode 100644 resources/images/color_wheel.jpg create mode 100644 resources/images/color_wheel.png create mode 100644 resources/images/color_wheel.webp create mode 100644 resources/images/color_wheel_with_profile.png create mode 100644 resources/images/cropped_mandrill.jpg create mode 100644 resources/images/dng_with_preview.dng create mode 100644 resources/images/dog.jpg create mode 100644 resources/images/exif-orientation-2-ur.jpg create mode 100644 resources/images/flutter_logo.jpg create mode 100644 resources/images/gamut.png create mode 100644 resources/images/google_chrome.ico create mode 100644 resources/images/grayscale.jpg create mode 100644 resources/images/half-transparent-white-pixel.png create mode 100644 resources/images/half-transparent-white-pixel.webp create mode 100644 resources/images/icc-v2-gbr.jpg create mode 100644 resources/images/iconstrip.png create mode 100644 resources/images/index8.png create mode 100644 resources/images/mandrill.wbmp create mode 100644 resources/images/mandrill_128.png create mode 100644 resources/images/mandrill_16.png create mode 100644 resources/images/mandrill_256.png create mode 100644 resources/images/mandrill_32.png create mode 100644 resources/images/mandrill_512.png create mode 100644 resources/images/mandrill_512_q075.jpg create mode 100644 resources/images/mandrill_64.png create mode 100644 resources/images/mandrill_h1v1.jpg create mode 100644 resources/images/mandrill_h2v1.jpg create mode 100644 resources/images/plane.png create mode 100644 resources/images/plane_interlaced.png create mode 100644 resources/images/rainbow-gradient.png create mode 100644 resources/images/randPixels.bmp create mode 100644 resources/images/randPixels.gif create mode 100644 resources/images/randPixels.jpg create mode 100644 resources/images/randPixels.png create mode 100644 resources/images/randPixels.webp create mode 100644 resources/images/randPixelsAnim.gif create mode 100644 resources/images/randPixelsAnim2.gif create mode 100644 resources/images/randPixelsOffset.gif create mode 100644 resources/images/required.gif create mode 100644 resources/images/required.webp create mode 100644 resources/images/rle.bmp create mode 100644 resources/images/sample_1mp.dng create mode 100644 resources/images/sample_1mp_rotated.dng create mode 100644 resources/images/shadowreference.png create mode 100644 resources/images/ship.png create mode 100644 resources/images/test640x479.gif create mode 100644 resources/images/webp-animated.webp create mode 100644 resources/images/webp-color-profile-crash.webp create mode 100644 resources/images/webp-color-profile-lossless.webp create mode 100644 resources/images/webp-color-profile-lossy-alpha.webp create mode 100644 resources/images/webp-color-profile-lossy.webp create mode 100644 resources/images/yellow_rose.png create mode 100644 resources/images/yellow_rose.webp delete mode 100644 resources/index8.png create mode 100644 resources/lua/slides.lua create mode 100644 resources/lua/slides_content.lua create mode 100644 resources/lua/slides_content2.lua create mode 100644 resources/lua/slides_transitions.lua create mode 100644 resources/lua/slides_utils.lua create mode 100644 resources/lua/test.lua delete mode 100644 resources/mandrill.wbmp delete mode 100644 resources/mandrill_128.png delete mode 100644 resources/mandrill_16.png delete mode 100644 resources/mandrill_256.png delete mode 100644 resources/mandrill_32.png delete mode 100644 resources/mandrill_512.png delete mode 100644 resources/mandrill_512_q075.jpg delete mode 100644 resources/mandrill_64.png delete mode 100644 resources/mandrill_h1v1.jpg delete mode 100644 resources/mandrill_h2v1.jpg delete mode 100644 resources/plane.png delete mode 100644 resources/plane_interlaced.png delete mode 100644 resources/rainbow-gradient.png delete mode 100644 resources/randPixels.bmp delete mode 100644 resources/randPixels.gif delete mode 100644 resources/randPixels.jpg delete mode 100644 resources/randPixels.png delete mode 100644 resources/randPixels.webp delete mode 100644 resources/randPixelsAnim.gif delete mode 100644 resources/randPixelsAnim2.gif delete mode 100644 resources/randPixelsOffset.gif delete mode 100644 resources/required.gif delete mode 100644 resources/required.webp delete mode 100644 resources/rle.bmp delete mode 100644 resources/sample_1mp.dng delete mode 100644 resources/sample_1mp_rotated.dng delete mode 100755 resources/shadowreference.png delete mode 100755 resources/ship.png delete mode 100644 resources/slides.lua delete mode 100644 resources/slides_content.lua delete mode 100644 resources/slides_content2.lua delete mode 100644 resources/slides_transitions.lua delete mode 100644 resources/slides_utils.lua delete mode 100644 resources/test.lua delete mode 100644 resources/test640x479.gif delete mode 100755 resources/webp-animated.webp delete mode 100644 resources/webp-color-profile-crash.webp delete mode 100644 resources/webp-color-profile-lossless.webp delete mode 100644 resources/webp-color-profile-lossy-alpha.webp delete mode 100644 resources/webp-color-profile-lossy.webp delete mode 100644 resources/yellow_rose.png delete mode 100644 resources/yellow_rose.webp diff --git a/bench/EncoderBench.cpp b/bench/EncoderBench.cpp index 44c459fa80..c60061b610 100644 --- a/bench/EncoderBench.cpp +++ b/bench/EncoderBench.cpp @@ -82,7 +82,7 @@ static bool encode_png(SkWStream* dst, #define PNG(FLAG, ZLIBLEVEL) [](SkWStream* d, const SkPixmap& s) { \ return encode_png(d, s, SkPngEncoder::FilterFlag::FLAG, ZLIBLEVEL); } -static const char* srcs[2] = {"mandrill_512.png", "color_wheel.jpg"}; +static const char* srcs[2] = {"images/mandrill_512.png", "images/color_wheel.jpg"}; // The Android Photos app uses a quality of 90 on JPEG encodes DEF_BENCH(return new EncodeBench(srcs[0], &encode_jpeg, "JPEG")); diff --git a/bench/ImageFilterDAGBench.cpp b/bench/ImageFilterDAGBench.cpp index 076e13949b..76b091f3f4 100644 --- a/bench/ImageFilterDAGBench.cpp +++ b/bench/ImageFilterDAGBench.cpp @@ -58,7 +58,7 @@ protected: } void onDelayedSetup() override { - fImage = GetResourceAsImage("mandrill_512.png"); + fImage = GetResourceAsImage("images/mandrill_512.png"); } void onDraw(int loops, SkCanvas* canvas) override { diff --git a/bench/PDFBench.cpp b/bench/PDFBench.cpp index 9965941d8e..8593928d00 100644 --- a/bench/PDFBench.cpp +++ b/bench/PDFBench.cpp @@ -69,7 +69,7 @@ protected: return backend == kNonRendering_Backend; } void onDelayedSetup() override { - sk_sp img(GetResourceAsImage("color_wheel.png")); + sk_sp img(GetResourceAsImage("images/color_wheel.png")); if (img) { // force decoding, throw away reference to encoded data. SkAutoPixmapStorage pixmap; @@ -108,7 +108,7 @@ protected: return backend == kNonRendering_Backend; } void onDelayedSetup() override { - sk_sp img(GetResourceAsImage("mandrill_512_q075.jpg")); + sk_sp img(GetResourceAsImage("images/mandrill_512_q075.jpg")); if (!img) { return; } sk_sp encoded = img->refEncodedData(); SkASSERT(encoded); diff --git a/dm/DM.cpp b/dm/DM.cpp index 6fa81e7137..d2c127c133 100644 --- a/dm/DM.cpp +++ b/dm/DM.cpp @@ -1358,7 +1358,7 @@ int main(int argc, char** argv) { gCreateTypefaceDelegate = &create_from_name; { - SkString testResourcePath = GetResourcePath("color_wheel.png"); + SkString testResourcePath = GetResourcePath("images/color_wheel.png"); SkFILEStream testResource(testResourcePath.c_str()); if (!testResource.isValid()) { info("Some resources are missing. Do you need to set --resourcePath?\n"); diff --git a/docs/SkCanvas_Reference.bmh b/docs/SkCanvas_Reference.bmh index efbf41f57e..b2c70f5477 100644 --- a/docs/SkCanvas_Reference.bmh +++ b/docs/SkCanvas_Reference.bmh @@ -2034,7 +2034,7 @@ Where Layer was cleared, the original image will draw unchanged. Outside of the circle the mandrill is brightened. ## #Image 3 - // sk_sp image = GetResourceAsImage("mandrill_256.png"); + // sk_sp image = GetResourceAsImage("images/mandrill_256.png"); canvas->drawImage(image, 0, 0, nullptr); SkCanvas::SaveLayerRec rec; SkPaint paint; diff --git a/experimental/GLFWTest/glfw_main.cpp b/experimental/GLFWTest/glfw_main.cpp index 26ed75b9c8..e83abc522c 100644 --- a/experimental/GLFWTest/glfw_main.cpp +++ b/experimental/GLFWTest/glfw_main.cpp @@ -83,7 +83,7 @@ int main(void) { float times[32]; int currentTime; - sk_sp imageData(SkData::MakeFromFileName("ship.png")); + sk_sp imageData(SkData::MakeFromFileName("images/ship.png")); atlas.reset(SkImage::NewFromEncoded(imageData.get())); if (!atlas) { SkDebugf("\nCould not decode file ship.png\n"); diff --git a/gm/all_bitmap_configs.cpp b/gm/all_bitmap_configs.cpp index 699a55bfd2..24f0735b8c 100644 --- a/gm/all_bitmap_configs.cpp +++ b/gm/all_bitmap_configs.cpp @@ -122,7 +122,7 @@ DEF_SIMPLE_GM(all_bitmap_configs, canvas, SCALE, 5 * SCALE) { sk_tool_utils::draw_checkerboard(canvas, SK_ColorLTGRAY, SK_ColorWHITE, 8); SkBitmap bitmap; - if (GetResourceAsBitmap("color_wheel.png", &bitmap)) { + if (GetResourceAsBitmap("images/color_wheel.png", &bitmap)) { bitmap.setImmutable(); draw(canvas, p, bitmap, kN32_SkColorType, "Native 32"); diff --git a/gm/animatedGif.cpp b/gm/animatedGif.cpp index 5686193971..8b92e945b6 100644 --- a/gm/animatedGif.cpp +++ b/gm/animatedGif.cpp @@ -18,7 +18,7 @@ #include -DEFINE_string(animatedGif, "test640x479.gif", "Animated gif in resources folder"); +DEFINE_string(animatedGif, "images/test640x479.gif", "Animated gif in resources folder"); namespace { void error(SkCanvas* canvas, const SkString& errorText) { diff --git a/gm/bitmapimage.cpp b/gm/bitmapimage.cpp index ccd34875e0..225d56cebb 100644 --- a/gm/bitmapimage.cpp +++ b/gm/bitmapimage.cpp @@ -28,7 +28,7 @@ protected: void onDraw(SkCanvas* canvas) override { // Create image. - const char* path = "mandrill_512_q075.jpg"; + const char* path = "images/mandrill_512_q075.jpg"; sk_sp image = GetResourceAsImage(path); if (!image) { SkDebugf("Failure: Is the resource path set properly?"); diff --git a/gm/blurs.cpp b/gm/blurs.cpp index adb2a1ff73..0e0374e0a5 100644 --- a/gm/blurs.cpp +++ b/gm/blurs.cpp @@ -124,7 +124,7 @@ DEF_SIMPLE_GM(BlurDrawImage, canvas, 256, 256) { SkPaint paint; paint.setMaskFilter(SkBlurMaskFilter::Make(kNormal_SkBlurStyle, 10, 0)); canvas->clear(0xFF88FF88); - if (auto image = GetResourceAsImage("mandrill_512_q075.jpg")) { + if (auto image = GetResourceAsImage("images/mandrill_512_q075.jpg")) { canvas->scale(0.25, 0.25); canvas->drawImage(image, 256, 256, &paint); } diff --git a/gm/colorfilterimagefilter.cpp b/gm/colorfilterimagefilter.cpp index 7ca2426a7d..dba1a133a7 100644 --- a/gm/colorfilterimagefilter.cpp +++ b/gm/colorfilterimagefilter.cpp @@ -67,7 +67,7 @@ static sk_sp sh_make_lineargradient1() { } static sk_sp sh_make_image() { - sk_sp image(GetResourceAsImage("mandrill_128.png")); + sk_sp image(GetResourceAsImage("images/mandrill_128.png")); if (!image) { return nullptr; } @@ -225,7 +225,7 @@ DEF_SIMPLE_GM(colorfiltershader, canvas, 610, 610) { } DEF_SIMPLE_GM(mixershader, canvas, 800, 700) { - auto shaderA = GetResourceAsImage("mandrill_128.png")->makeShader(SkShader::kClamp_TileMode, + auto shaderA = GetResourceAsImage("images/mandrill_128.png")->makeShader(SkShader::kClamp_TileMode, SkShader::kClamp_TileMode); const SkColor colors[] = { SK_ColorGREEN, 0 }; auto shaderB = SkGradientShader::MakeRadial({60, 60}, 55, colors, nullptr, 2, diff --git a/gm/colorwheel.cpp b/gm/colorwheel.cpp index b8a08951f5..c0b7cf479b 100644 --- a/gm/colorwheel.cpp +++ b/gm/colorwheel.cpp @@ -32,10 +32,10 @@ static void draw_image(SkCanvas* canvas, const char* resource, int x, int y) { */ DEF_SIMPLE_GM(colorwheel, canvas, 256, 256) { sk_tool_utils::draw_checkerboard(canvas); - draw_image(canvas, "color_wheel.png", 0, 0); // top left - draw_image(canvas, "color_wheel.gif", 128, 0); // top right - draw_image(canvas, "color_wheel.webp", 0, 128); // bottom left - draw_image(canvas, "color_wheel.jpg", 128, 128); // bottom right + draw_image(canvas, "images/color_wheel.png", 0, 0); // top left + draw_image(canvas, "images/color_wheel.gif", 128, 0); // top right + draw_image(canvas, "images/color_wheel.webp", 0, 128); // bottom left + draw_image(canvas, "images/color_wheel.jpg", 128, 128); // bottom right } DEF_SIMPLE_GM(colorwheelnative, canvas, 128, 28) { diff --git a/gm/copyTo4444.cpp b/gm/copyTo4444.cpp index 97e6f0a0db..b860dca3e9 100644 --- a/gm/copyTo4444.cpp +++ b/gm/copyTo4444.cpp @@ -32,7 +32,7 @@ protected: virtual void onDraw(SkCanvas* canvas) { SkBitmap bm, bm4444; - if (!GetResourceAsBitmap("dog.jpg", &bm)) { + if (!GetResourceAsBitmap("images/dog.jpg", &bm)) { SkDebugf("Could not decode the file. Did you forget to set the " "resourcePath?\n"); return; diff --git a/gm/crosscontextimage.cpp b/gm/crosscontextimage.cpp index ff56a280d9..03203c498c 100644 --- a/gm/crosscontextimage.cpp +++ b/gm/crosscontextimage.cpp @@ -19,7 +19,7 @@ DEF_SIMPLE_GM(cross_context_image, canvas, 512 * 3 + 60, 512 + 128 + 30) { return; } - sk_sp encodedData = GetResourceAsData("mandrill_512.png"); + sk_sp encodedData = GetResourceAsData("images/mandrill_512.png"); sk_sp encodedImage = SkImage::MakeFromEncoded(encodedData); canvas->drawImage(encodedImage, 10, 10); diff --git a/gm/downsamplebitmap.cpp b/gm/downsamplebitmap.cpp index e142bde112..377ba09df5 100644 --- a/gm/downsamplebitmap.cpp +++ b/gm/downsamplebitmap.cpp @@ -183,16 +183,16 @@ class DownsampleBitmapImageGM: public DownsampleBitmapGM { DEF_GM( return new DownsampleBitmapTextGM(72, kHigh_SkFilterQuality); ) DEF_GM( return new DownsampleBitmapCheckerboardGM(512,256, kHigh_SkFilterQuality); ) -DEF_GM( return new DownsampleBitmapImageGM("mandrill_512.png", kHigh_SkFilterQuality); ) +DEF_GM( return new DownsampleBitmapImageGM("images/mandrill_512.png", kHigh_SkFilterQuality); ) DEF_GM( return new DownsampleBitmapTextGM(72, kMedium_SkFilterQuality); ) DEF_GM( return new DownsampleBitmapCheckerboardGM(512,256, kMedium_SkFilterQuality); ) -DEF_GM( return new DownsampleBitmapImageGM("mandrill_512.png", kMedium_SkFilterQuality); ) +DEF_GM( return new DownsampleBitmapImageGM("images/mandrill_512.png", kMedium_SkFilterQuality); ) DEF_GM( return new DownsampleBitmapTextGM(72, kLow_SkFilterQuality); ) DEF_GM( return new DownsampleBitmapCheckerboardGM(512,256, kLow_SkFilterQuality); ) -DEF_GM( return new DownsampleBitmapImageGM("mandrill_512.png", kLow_SkFilterQuality); ) +DEF_GM( return new DownsampleBitmapImageGM("images/mandrill_512.png", kLow_SkFilterQuality); ) DEF_GM( return new DownsampleBitmapTextGM(72, kNone_SkFilterQuality); ) DEF_GM( return new DownsampleBitmapCheckerboardGM(512,256, kNone_SkFilterQuality); ) -DEF_GM( return new DownsampleBitmapImageGM("mandrill_512.png", kNone_SkFilterQuality); ) +DEF_GM( return new DownsampleBitmapImageGM("images/mandrill_512.png", kNone_SkFilterQuality); ) diff --git a/gm/draw_bitmap_rect_skbug4374.cpp b/gm/draw_bitmap_rect_skbug4374.cpp index 582ae3e6ad..bf260494b9 100644 --- a/gm/draw_bitmap_rect_skbug4374.cpp +++ b/gm/draw_bitmap_rect_skbug4374.cpp @@ -9,7 +9,7 @@ // https://bug.skia.org/4374 DEF_SIMPLE_GM(draw_bitmap_rect_skbug4734, canvas, 64, 64) { SkBitmap source; - if (GetResourceAsBitmap("randPixels.png", &source)) { + if (GetResourceAsBitmap("images/randPixels.png", &source)) { SkRect rect = SkRect::Make(source.bounds()); rect.inset(0.5, 1.5); SkRect dst; diff --git a/gm/drawatlas.cpp b/gm/drawatlas.cpp index de44b6d7a7..4a23e26527 100644 --- a/gm/drawatlas.cpp +++ b/gm/drawatlas.cpp @@ -198,7 +198,7 @@ DEF_SIMPLE_GM(compare_atlas_vertices, canvas, 560, 585) { const SkRSXform xform = SkRSXform::Make(1, 0, 0, 0); const SkColor color = 0x884488CC; - auto image = GetResourceAsImage("mandrill_128.png"); + auto image = GetResourceAsImage("images/mandrill_128.png"); auto verts = make_vertices(image, tex, color); const sk_sp filters[] = { nullptr, diff --git a/gm/encode-alpha-jpeg.cpp b/gm/encode-alpha-jpeg.cpp index 6686e78044..dc07bf34d7 100644 --- a/gm/encode-alpha-jpeg.cpp +++ b/gm/encode-alpha-jpeg.cpp @@ -43,7 +43,7 @@ protected: } void onDraw(SkCanvas* canvas) override { - sk_sp srcImg = GetResourceAsImage("rainbow-gradient.png"); + sk_sp srcImg = GetResourceAsImage("images/rainbow-gradient.png"); fStorage.reset(srcImg->width() * srcImg->height() * SkColorTypeBytesPerPixel(kRGBA_F16_SkColorType)); diff --git a/gm/encode-platform.cpp b/gm/encode-platform.cpp index dd7ca6e8a8..a9eaae6128 100644 --- a/gm/encode-platform.cpp +++ b/gm/encode-platform.cpp @@ -20,12 +20,12 @@ namespace skiagm { static void make_opaque_256(SkBitmap* bitmap) { - GetResourceAsBitmap("mandrill_256.png", bitmap); + GetResourceAsBitmap("images/mandrill_256.png", bitmap); } static void make_premul_256(SkBitmap* bitmap) { SkBitmap tmp; - GetResourceAsBitmap("yellow_rose.png", &tmp); + GetResourceAsBitmap("images/yellow_rose.png", &tmp); tmp.extractSubset(bitmap, SkIRect::MakeWH(256, 256)); } diff --git a/gm/encode-srgb.cpp b/gm/encode-srgb.cpp index be3cd62f8b..527ece97ae 100644 --- a/gm/encode-srgb.cpp +++ b/gm/encode-srgb.cpp @@ -42,16 +42,16 @@ static void make(SkBitmap* bitmap, SkColorType colorType, SkAlphaType alphaType, const char* resource; switch (colorType) { case kGray_8_SkColorType: - resource = "grayscale.jpg"; + resource = "images/grayscale.jpg"; alphaType = kOpaque_SkAlphaType; break; case kRGB_565_SkColorType: - resource = "color_wheel.jpg"; + resource = "images/color_wheel.jpg"; alphaType = kOpaque_SkAlphaType; break; default: - resource = (kOpaque_SkAlphaType == alphaType) ? "color_wheel.jpg" - : "color_wheel.png"; + resource = (kOpaque_SkAlphaType == alphaType) ? "images/color_wheel.jpg" + : "images/color_wheel.png"; break; } diff --git a/gm/encode.cpp b/gm/encode.cpp index 88e7724930..735647043e 100644 --- a/gm/encode.cpp +++ b/gm/encode.cpp @@ -29,7 +29,7 @@ protected: void onDraw(SkCanvas* canvas) override { SkBitmap orig; - GetResourceAsBitmap("mandrill_512_q075.jpg", &orig); + GetResourceAsBitmap("images/mandrill_512_q075.jpg", &orig); sk_sp pngData(sk_tool_utils::EncodeImageToData(orig, SkEncodedImageFormat::kPNG, 100)); sk_sp jpegData(sk_tool_utils::EncodeImageToData(orig, SkEncodedImageFormat::kJPEG, 100)); diff --git a/gm/filterbitmap.cpp b/gm/filterbitmap.cpp index a630662976..a393893a5d 100644 --- a/gm/filterbitmap.cpp +++ b/gm/filterbitmap.cpp @@ -196,7 +196,8 @@ protected: } void makeBitmap() override { - if (!GetResourceAsBitmap(fFilename.c_str(), &fBM)) { + SkString resource = SkStringPrintf("images/%s", fFilename.c_str()); + if (!GetResourceAsBitmap(resource.c_str(), &fBM)) { fBM.allocN32Pixels(1, 1); fBM.eraseARGB(255, 255, 0 , 0); // red == bad } diff --git a/gm/filterindiabox.cpp b/gm/filterindiabox.cpp index 84f512dfe1..01ecb215ac 100644 --- a/gm/filterindiabox.cpp +++ b/gm/filterindiabox.cpp @@ -111,4 +111,4 @@ protected: ////////////////////////////////////////////////////////////////////////////// -DEF_GM( return new FilterIndiaBoxGM("box.gif"); ) +DEF_GM( return new FilterIndiaBoxGM("images/box.gif"); ) diff --git a/gm/grayscalejpg.cpp b/gm/grayscalejpg.cpp index bc88ee13a6..851c8d0c7a 100644 --- a/gm/grayscalejpg.cpp +++ b/gm/grayscalejpg.cpp @@ -14,7 +14,7 @@ * http://crbug.com/436079 */ DEF_SIMPLE_GM(grayscalejpg, canvas, 128, 128) { - const char kResource[] = "grayscale.jpg"; + const char kResource[] = "images/grayscale.jpg"; sk_sp image(GetResourceAsImage(kResource)); if (image) { canvas->drawImage(image, 0.0f, 0.0f); diff --git a/gm/imagefilters.cpp b/gm/imagefilters.cpp index dd6287b948..146388f331 100644 --- a/gm/imagefilters.cpp +++ b/gm/imagefilters.cpp @@ -163,7 +163,7 @@ DEF_SIMPLE_GM(savelayer_with_backdrop, canvas, 830, 550) { SkPaint paint; paint.setFilterQuality(kMedium_SkFilterQuality); - sk_sp image(GetResourceAsImage("mandrill_512.png")); + sk_sp image(GetResourceAsImage("images/mandrill_512.png")); canvas->translate(20, 20); for (const auto& xform : xforms) { diff --git a/gm/makecolorspace.cpp b/gm/makecolorspace.cpp index 0ea3d40746..c0002b3414 100644 --- a/gm/makecolorspace.cpp +++ b/gm/makecolorspace.cpp @@ -61,8 +61,8 @@ protected: sk_sp wideGamutLinear = as_CSB(wideGamut)->makeLinearGamma(); // Lazy images - sk_sp opaqueImage = GetResourceAsImage("mandrill_128.png"); - sk_sp premulImage = GetResourceAsImage("color_wheel.png"); + sk_sp opaqueImage = GetResourceAsImage("images/mandrill_128.png"); + sk_sp premulImage = GetResourceAsImage("images/color_wheel.png"); canvas->drawImage(opaqueImage, 0.0f, 0.0f); canvas->drawImage(make_color_space(opaqueImage, wideGamut, behavior), 128.0f, 0.0f); canvas->drawImage(make_color_space(opaqueImage, wideGamutLinear, behavior), 256.0f, 0.0f); @@ -72,8 +72,8 @@ protected: canvas->translate(0.0f, 256.0f); // Raster images - opaqueImage = make_raster_image("mandrill_128.png", behavior); - premulImage = make_raster_image("color_wheel.png", behavior); + opaqueImage = make_raster_image("images/mandrill_128.png", behavior); + premulImage = make_raster_image("images/color_wheel.png", behavior); canvas->drawImage(opaqueImage, 0.0f, 0.0f); canvas->drawImage(make_color_space(opaqueImage, wideGamut, behavior), 128.0f, 0.0f); canvas->drawImage(make_color_space(opaqueImage, wideGamutLinear, behavior), 256.0f, 0.0f); diff --git a/gm/patch.cpp b/gm/patch.cpp index 1b6dbd1b84..5cfc8b5d68 100644 --- a/gm/patch.cpp +++ b/gm/patch.cpp @@ -152,7 +152,7 @@ DEF_SIMPLE_GM(patch_image, canvas, 1500, 1100) { const SkColor colors[SkPatchUtils::kNumCorners] = { SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE, SK_ColorCYAN }; - dopatch(canvas, colors, GetResourceAsImage("mandrill_128.png")); + dopatch(canvas, colors, GetResourceAsImage("images/mandrill_128.png")); } DEF_SIMPLE_GM(patch_alpha, canvas, 1500, 1100) { const SkColor colors[SkPatchUtils::kNumCorners] = { diff --git a/gm/readpixels.cpp b/gm/readpixels.cpp index bd2fe9bcc3..6e8a51a814 100644 --- a/gm/readpixels.cpp +++ b/gm/readpixels.cpp @@ -51,7 +51,7 @@ static const int kWidth = 64; static const int kHeight = 64; static sk_sp make_raster_image(SkColorType colorType) { - std::unique_ptr stream(GetResourceAsStream("google_chrome.ico")); + std::unique_ptr stream(GetResourceAsStream("images/google_chrome.ico")); std::unique_ptr codec = SkCodec::MakeFromStream(std::move(stream)); SkBitmap bitmap; @@ -66,7 +66,7 @@ static sk_sp make_raster_image(SkColorType colorType) { } static sk_sp make_codec_image() { - sk_sp encoded = GetResourceAsData("randPixels.png"); + sk_sp encoded = GetResourceAsData("images/randPixels.png"); return SkImage::MakeFromEncoded(encoded); } diff --git a/gm/repeated_bitmap.cpp b/gm/repeated_bitmap.cpp index a659e784f7..09f30fb7c9 100644 --- a/gm/repeated_bitmap.cpp +++ b/gm/repeated_bitmap.cpp @@ -35,9 +35,9 @@ static void draw_rotated_image(SkCanvas* canvas, const SkImage* image) { } DEF_SIMPLE_GM(repeated_bitmap, canvas, 576, 576) { - draw_rotated_image(canvas, GetResourceAsImage("randPixels.png").get()); + draw_rotated_image(canvas, GetResourceAsImage("images/randPixels.png").get()); } DEF_SIMPLE_GM(repeated_bitmap_jpg, canvas, 576, 576) { - draw_rotated_image(canvas, GetResourceAsImage("color_wheel.jpg").get()); + draw_rotated_image(canvas, GetResourceAsImage("images/color_wheel.jpg").get()); } diff --git a/gm/savelayer.cpp b/gm/savelayer.cpp index dd7ff7b54e..a5b2f9c46d 100644 --- a/gm/savelayer.cpp +++ b/gm/savelayer.cpp @@ -109,7 +109,7 @@ DEF_SIMPLE_GM(picture_savelayer, canvas, 320, 640) { // restore with kPlus mode, which should show the mandrill super-bright on the outside, but // normal where we punched the hole. DEF_SIMPLE_GM(savelayer_initfromprev, canvas, 256, 256) { - canvas->drawImage(GetResourceAsImage("mandrill_256.png"), 0, 0, nullptr); + canvas->drawImage(GetResourceAsImage("images/mandrill_256.png"), 0, 0, nullptr); SkCanvas::SaveLayerRec rec; SkPaint paint; diff --git a/gm/smallimage.cpp b/gm/smallimage.cpp deleted file mode 100644 index 6eb48d830d..0000000000 --- a/gm/smallimage.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "Resources.h" -#include "gm.h" - -DEF_SIMPLE_GM(small_image, canvas, 8, 8) { - SkBitmap bitmap; - if (GetResourceAsBitmap("randPixels.png", &bitmap)) { - canvas->drawBitmap(bitmap, 0.0f, 0.0f); - } else { - SkDebugf("\nCould not decode resource.\n"); - } -} diff --git a/gm/srgb.cpp b/gm/srgb.cpp index bbf0abddec..f0bff6922c 100644 --- a/gm/srgb.cpp +++ b/gm/srgb.cpp @@ -13,7 +13,7 @@ #include "SkColorFilter.h" DEF_SIMPLE_GM(srgb_colorfilter, canvas, 512, 256*3) { - auto img = GetResourceAsImage("mandrill_256.png"); + auto img = GetResourceAsImage("images/mandrill_256.png"); const float array[] = { 1, 0, 0, 0, 0, diff --git a/gm/subsetshader.cpp b/gm/subsetshader.cpp index a7029f481a..4657aa59e5 100644 --- a/gm/subsetshader.cpp +++ b/gm/subsetshader.cpp @@ -14,7 +14,7 @@ DEF_SIMPLE_GM(bitmap_subset_shader, canvas, 256, 256) { canvas->clear(SK_ColorWHITE); SkBitmap source; - if (!GetResourceAsBitmap("color_wheel.png", &source)) { + if (!GetResourceAsBitmap("images/color_wheel.png", &source)) { return; } SkIRect left = SkIRect::MakeWH(source.width()/2, source.height()); diff --git a/gn/gm.gni b/gn/gm.gni index 170c0694ff..4d4833f6bb 100644 --- a/gn/gm.gni +++ b/gn/gm.gni @@ -275,7 +275,6 @@ gm_sources = [ "$_gm/skbug_5321.cpp", "$_gm/skbug1719.cpp", "$_gm/smallarc.cpp", - "$_gm/smallimage.cpp", "$_gm/smallpaths.cpp", "$_gm/spritebitmap.cpp", "$_gm/srcmode.cpp", diff --git a/resources/16x1.png b/resources/16x1.png deleted file mode 100644 index 03edc41bc5..0000000000 Binary files a/resources/16x1.png and /dev/null differ diff --git a/resources/1x1.png b/resources/1x1.png deleted file mode 100644 index e4bc98dd1a..0000000000 Binary files a/resources/1x1.png and /dev/null differ diff --git a/resources/1x16.png b/resources/1x16.png deleted file mode 100644 index d3d6548522..0000000000 Binary files a/resources/1x16.png and /dev/null differ diff --git a/resources/1x3.png b/resources/1x3.png deleted file mode 100644 index e4ee2f0837..0000000000 Binary files a/resources/1x3.png and /dev/null differ diff --git a/resources/2x2.png b/resources/2x2.png deleted file mode 100644 index a933e7a39b..0000000000 Binary files a/resources/2x2.png and /dev/null differ diff --git a/resources/3x1.png b/resources/3x1.png deleted file mode 100644 index c7e4cb07a6..0000000000 Binary files a/resources/3x1.png and /dev/null differ diff --git a/resources/3x3.png b/resources/3x3.png deleted file mode 100644 index a2acb64cae..0000000000 Binary files a/resources/3x3.png and /dev/null differ diff --git a/resources/CMYK.jpg b/resources/CMYK.jpg deleted file mode 100644 index 04ed9859dd..0000000000 Binary files a/resources/CMYK.jpg and /dev/null differ diff --git a/resources/alphabetAnim.gif b/resources/alphabetAnim.gif deleted file mode 100644 index d6b7d85b0e..0000000000 Binary files a/resources/alphabetAnim.gif and /dev/null differ diff --git a/resources/arrow.png b/resources/arrow.png deleted file mode 100644 index 382ef39040..0000000000 Binary files a/resources/arrow.png and /dev/null differ diff --git a/resources/baby_tux.png b/resources/baby_tux.png deleted file mode 100644 index dd082c4e2c..0000000000 Binary files a/resources/baby_tux.png and /dev/null differ diff --git a/resources/baby_tux.webp b/resources/baby_tux.webp deleted file mode 100644 index 8764f066b9..0000000000 Binary files a/resources/baby_tux.webp and /dev/null differ diff --git a/resources/blendBG.webp b/resources/blendBG.webp deleted file mode 100644 index 46e4ce255d..0000000000 Binary files a/resources/blendBG.webp and /dev/null differ diff --git a/resources/box.gif b/resources/box.gif deleted file mode 100644 index 72884ce484..0000000000 Binary files a/resources/box.gif and /dev/null differ diff --git a/resources/brickwork-texture.jpg b/resources/brickwork-texture.jpg deleted file mode 100644 index 9a7dd11788..0000000000 Binary files a/resources/brickwork-texture.jpg and /dev/null differ diff --git a/resources/brickwork_normal-map.jpg b/resources/brickwork_normal-map.jpg deleted file mode 100644 index 4ff3c3a34e..0000000000 Binary files a/resources/brickwork_normal-map.jpg and /dev/null differ diff --git a/resources/colorTables.gif b/resources/colorTables.gif deleted file mode 100644 index cefd4120dd..0000000000 Binary files a/resources/colorTables.gif and /dev/null differ diff --git a/resources/color_wheel.gif b/resources/color_wheel.gif deleted file mode 100644 index ec9005001e..0000000000 Binary files a/resources/color_wheel.gif and /dev/null differ diff --git a/resources/color_wheel.ico b/resources/color_wheel.ico deleted file mode 100644 index fdfa381c1a..0000000000 Binary files a/resources/color_wheel.ico and /dev/null differ diff --git a/resources/color_wheel.jpg b/resources/color_wheel.jpg deleted file mode 100644 index fc2cea9d4e..0000000000 Binary files a/resources/color_wheel.jpg and /dev/null differ diff --git a/resources/color_wheel.png b/resources/color_wheel.png deleted file mode 100644 index 02f4e08453..0000000000 Binary files a/resources/color_wheel.png and /dev/null differ diff --git a/resources/color_wheel.webp b/resources/color_wheel.webp deleted file mode 100644 index 6466d4bbb5..0000000000 Binary files a/resources/color_wheel.webp and /dev/null differ diff --git a/resources/color_wheel_with_profile.png b/resources/color_wheel_with_profile.png deleted file mode 100644 index 56f2385c53..0000000000 Binary files a/resources/color_wheel_with_profile.png and /dev/null differ diff --git a/resources/cropped_mandrill.jpg b/resources/cropped_mandrill.jpg deleted file mode 100644 index e1a233ad35..0000000000 Binary files a/resources/cropped_mandrill.jpg and /dev/null differ diff --git a/resources/dng_with_preview.dng b/resources/dng_with_preview.dng deleted file mode 100644 index eb13160363..0000000000 Binary files a/resources/dng_with_preview.dng and /dev/null differ diff --git a/resources/dog.jpg b/resources/dog.jpg deleted file mode 100644 index 2598ecb8b7..0000000000 Binary files a/resources/dog.jpg and /dev/null differ diff --git a/resources/exif-orientation-2-ur.jpg b/resources/exif-orientation-2-ur.jpg deleted file mode 100644 index 70c14d4272..0000000000 Binary files a/resources/exif-orientation-2-ur.jpg and /dev/null differ diff --git a/resources/flutter_logo.jpg b/resources/flutter_logo.jpg deleted file mode 100644 index f049c22506..0000000000 Binary files a/resources/flutter_logo.jpg and /dev/null differ diff --git a/resources/gamut.png b/resources/gamut.png deleted file mode 100644 index 7e3782b3f6..0000000000 Binary files a/resources/gamut.png and /dev/null differ diff --git a/resources/google_chrome.ico b/resources/google_chrome.ico deleted file mode 100644 index 7af91eed00..0000000000 Binary files a/resources/google_chrome.ico and /dev/null differ diff --git a/resources/grayscale.jpg b/resources/grayscale.jpg deleted file mode 100644 index 6c6ae32c91..0000000000 Binary files a/resources/grayscale.jpg and /dev/null differ diff --git a/resources/half-transparent-white-pixel.png b/resources/half-transparent-white-pixel.png deleted file mode 100644 index 03565d35c1..0000000000 Binary files a/resources/half-transparent-white-pixel.png and /dev/null differ diff --git a/resources/half-transparent-white-pixel.webp b/resources/half-transparent-white-pixel.webp deleted file mode 100644 index b3a3307211..0000000000 Binary files a/resources/half-transparent-white-pixel.webp and /dev/null differ diff --git a/resources/icc-v2-gbr.jpg b/resources/icc-v2-gbr.jpg deleted file mode 100644 index 0984e9b3fd..0000000000 Binary files a/resources/icc-v2-gbr.jpg and /dev/null differ diff --git a/resources/iconstrip.png b/resources/iconstrip.png deleted file mode 100644 index 10be277afd..0000000000 Binary files a/resources/iconstrip.png and /dev/null differ diff --git a/resources/images/16x1.png b/resources/images/16x1.png new file mode 100644 index 0000000000..03edc41bc5 Binary files /dev/null and b/resources/images/16x1.png differ diff --git a/resources/images/1x1.png b/resources/images/1x1.png new file mode 100644 index 0000000000..e4bc98dd1a Binary files /dev/null and b/resources/images/1x1.png differ diff --git a/resources/images/1x16.png b/resources/images/1x16.png new file mode 100644 index 0000000000..d3d6548522 Binary files /dev/null and b/resources/images/1x16.png differ diff --git a/resources/images/1x3.png b/resources/images/1x3.png new file mode 100644 index 0000000000..e4ee2f0837 Binary files /dev/null and b/resources/images/1x3.png differ diff --git a/resources/images/2x2.png b/resources/images/2x2.png new file mode 100644 index 0000000000..a933e7a39b Binary files /dev/null and b/resources/images/2x2.png differ diff --git a/resources/images/3x1.png b/resources/images/3x1.png new file mode 100644 index 0000000000..c7e4cb07a6 Binary files /dev/null and b/resources/images/3x1.png differ diff --git a/resources/images/3x3.png b/resources/images/3x3.png new file mode 100644 index 0000000000..a2acb64cae Binary files /dev/null and b/resources/images/3x3.png differ diff --git a/resources/images/CMYK.jpg b/resources/images/CMYK.jpg new file mode 100644 index 0000000000..04ed9859dd Binary files /dev/null and b/resources/images/CMYK.jpg differ diff --git a/resources/images/alphabetAnim.gif b/resources/images/alphabetAnim.gif new file mode 100644 index 0000000000..d6b7d85b0e Binary files /dev/null and b/resources/images/alphabetAnim.gif differ diff --git a/resources/images/arrow.png b/resources/images/arrow.png new file mode 100644 index 0000000000..382ef39040 Binary files /dev/null and b/resources/images/arrow.png differ diff --git a/resources/images/baby_tux.png b/resources/images/baby_tux.png new file mode 100644 index 0000000000..dd082c4e2c Binary files /dev/null and b/resources/images/baby_tux.png differ diff --git a/resources/images/baby_tux.webp b/resources/images/baby_tux.webp new file mode 100644 index 0000000000..8764f066b9 Binary files /dev/null and b/resources/images/baby_tux.webp differ diff --git a/resources/images/blendBG.webp b/resources/images/blendBG.webp new file mode 100644 index 0000000000..46e4ce255d Binary files /dev/null and b/resources/images/blendBG.webp differ diff --git a/resources/images/box.gif b/resources/images/box.gif new file mode 100644 index 0000000000..72884ce484 Binary files /dev/null and b/resources/images/box.gif differ diff --git a/resources/images/brickwork-texture.jpg b/resources/images/brickwork-texture.jpg new file mode 100644 index 0000000000..9a7dd11788 Binary files /dev/null and b/resources/images/brickwork-texture.jpg differ diff --git a/resources/images/brickwork_normal-map.jpg b/resources/images/brickwork_normal-map.jpg new file mode 100644 index 0000000000..4ff3c3a34e Binary files /dev/null and b/resources/images/brickwork_normal-map.jpg differ diff --git a/resources/images/colorTables.gif b/resources/images/colorTables.gif new file mode 100644 index 0000000000..cefd4120dd Binary files /dev/null and b/resources/images/colorTables.gif differ diff --git a/resources/images/color_wheel.gif b/resources/images/color_wheel.gif new file mode 100644 index 0000000000..ec9005001e Binary files /dev/null and b/resources/images/color_wheel.gif differ diff --git a/resources/images/color_wheel.ico b/resources/images/color_wheel.ico new file mode 100644 index 0000000000..fdfa381c1a Binary files /dev/null and b/resources/images/color_wheel.ico differ diff --git a/resources/images/color_wheel.jpg b/resources/images/color_wheel.jpg new file mode 100644 index 0000000000..fc2cea9d4e Binary files /dev/null and b/resources/images/color_wheel.jpg differ diff --git a/resources/images/color_wheel.png b/resources/images/color_wheel.png new file mode 100644 index 0000000000..02f4e08453 Binary files /dev/null and b/resources/images/color_wheel.png differ diff --git a/resources/images/color_wheel.webp b/resources/images/color_wheel.webp new file mode 100644 index 0000000000..6466d4bbb5 Binary files /dev/null and b/resources/images/color_wheel.webp differ diff --git a/resources/images/color_wheel_with_profile.png b/resources/images/color_wheel_with_profile.png new file mode 100644 index 0000000000..56f2385c53 Binary files /dev/null and b/resources/images/color_wheel_with_profile.png differ diff --git a/resources/images/cropped_mandrill.jpg b/resources/images/cropped_mandrill.jpg new file mode 100644 index 0000000000..e1a233ad35 Binary files /dev/null and b/resources/images/cropped_mandrill.jpg differ diff --git a/resources/images/dng_with_preview.dng b/resources/images/dng_with_preview.dng new file mode 100644 index 0000000000..eb13160363 Binary files /dev/null and b/resources/images/dng_with_preview.dng differ diff --git a/resources/images/dog.jpg b/resources/images/dog.jpg new file mode 100644 index 0000000000..2598ecb8b7 Binary files /dev/null and b/resources/images/dog.jpg differ diff --git a/resources/images/exif-orientation-2-ur.jpg b/resources/images/exif-orientation-2-ur.jpg new file mode 100644 index 0000000000..70c14d4272 Binary files /dev/null and b/resources/images/exif-orientation-2-ur.jpg differ diff --git a/resources/images/flutter_logo.jpg b/resources/images/flutter_logo.jpg new file mode 100644 index 0000000000..f049c22506 Binary files /dev/null and b/resources/images/flutter_logo.jpg differ diff --git a/resources/images/gamut.png b/resources/images/gamut.png new file mode 100644 index 0000000000..7e3782b3f6 Binary files /dev/null and b/resources/images/gamut.png differ diff --git a/resources/images/google_chrome.ico b/resources/images/google_chrome.ico new file mode 100644 index 0000000000..7af91eed00 Binary files /dev/null and b/resources/images/google_chrome.ico differ diff --git a/resources/images/grayscale.jpg b/resources/images/grayscale.jpg new file mode 100644 index 0000000000..6c6ae32c91 Binary files /dev/null and b/resources/images/grayscale.jpg differ diff --git a/resources/images/half-transparent-white-pixel.png b/resources/images/half-transparent-white-pixel.png new file mode 100644 index 0000000000..03565d35c1 Binary files /dev/null and b/resources/images/half-transparent-white-pixel.png differ diff --git a/resources/images/half-transparent-white-pixel.webp b/resources/images/half-transparent-white-pixel.webp new file mode 100644 index 0000000000..b3a3307211 Binary files /dev/null and b/resources/images/half-transparent-white-pixel.webp differ diff --git a/resources/images/icc-v2-gbr.jpg b/resources/images/icc-v2-gbr.jpg new file mode 100644 index 0000000000..0984e9b3fd Binary files /dev/null and b/resources/images/icc-v2-gbr.jpg differ diff --git a/resources/images/iconstrip.png b/resources/images/iconstrip.png new file mode 100644 index 0000000000..10be277afd Binary files /dev/null and b/resources/images/iconstrip.png differ diff --git a/resources/images/index8.png b/resources/images/index8.png new file mode 100644 index 0000000000..2ff47a3bf4 Binary files /dev/null and b/resources/images/index8.png differ diff --git a/resources/images/mandrill.wbmp b/resources/images/mandrill.wbmp new file mode 100644 index 0000000000..ac84598cf0 Binary files /dev/null and b/resources/images/mandrill.wbmp differ diff --git a/resources/images/mandrill_128.png b/resources/images/mandrill_128.png new file mode 100644 index 0000000000..32f163773f Binary files /dev/null and b/resources/images/mandrill_128.png differ diff --git a/resources/images/mandrill_16.png b/resources/images/mandrill_16.png new file mode 100644 index 0000000000..e5703f52d6 Binary files /dev/null and b/resources/images/mandrill_16.png differ diff --git a/resources/images/mandrill_256.png b/resources/images/mandrill_256.png new file mode 100644 index 0000000000..0c6908424b Binary files /dev/null and b/resources/images/mandrill_256.png differ diff --git a/resources/images/mandrill_32.png b/resources/images/mandrill_32.png new file mode 100644 index 0000000000..c30e451d90 Binary files /dev/null and b/resources/images/mandrill_32.png differ diff --git a/resources/images/mandrill_512.png b/resources/images/mandrill_512.png new file mode 100644 index 0000000000..c2efb8108d Binary files /dev/null and b/resources/images/mandrill_512.png differ diff --git a/resources/images/mandrill_512_q075.jpg b/resources/images/mandrill_512_q075.jpg new file mode 100644 index 0000000000..c2c215f2e9 Binary files /dev/null and b/resources/images/mandrill_512_q075.jpg differ diff --git a/resources/images/mandrill_64.png b/resources/images/mandrill_64.png new file mode 100644 index 0000000000..d2e94cc891 Binary files /dev/null and b/resources/images/mandrill_64.png differ diff --git a/resources/images/mandrill_h1v1.jpg b/resources/images/mandrill_h1v1.jpg new file mode 100644 index 0000000000..388236d21a Binary files /dev/null and b/resources/images/mandrill_h1v1.jpg differ diff --git a/resources/images/mandrill_h2v1.jpg b/resources/images/mandrill_h2v1.jpg new file mode 100644 index 0000000000..573888a40f Binary files /dev/null and b/resources/images/mandrill_h2v1.jpg differ diff --git a/resources/images/plane.png b/resources/images/plane.png new file mode 100644 index 0000000000..03585b5cb4 Binary files /dev/null and b/resources/images/plane.png differ diff --git a/resources/images/plane_interlaced.png b/resources/images/plane_interlaced.png new file mode 100644 index 0000000000..3b217f205d Binary files /dev/null and b/resources/images/plane_interlaced.png differ diff --git a/resources/images/rainbow-gradient.png b/resources/images/rainbow-gradient.png new file mode 100644 index 0000000000..4e18a32716 Binary files /dev/null and b/resources/images/rainbow-gradient.png differ diff --git a/resources/images/randPixels.bmp b/resources/images/randPixels.bmp new file mode 100644 index 0000000000..1e4ab3b652 Binary files /dev/null and b/resources/images/randPixels.bmp differ diff --git a/resources/images/randPixels.gif b/resources/images/randPixels.gif new file mode 100644 index 0000000000..04c8bb9c3a Binary files /dev/null and b/resources/images/randPixels.gif differ diff --git a/resources/images/randPixels.jpg b/resources/images/randPixels.jpg new file mode 100644 index 0000000000..ca57fbddf3 Binary files /dev/null and b/resources/images/randPixels.jpg differ diff --git a/resources/images/randPixels.png b/resources/images/randPixels.png new file mode 100644 index 0000000000..49ef84603f Binary files /dev/null and b/resources/images/randPixels.png differ diff --git a/resources/images/randPixels.webp b/resources/images/randPixels.webp new file mode 100644 index 0000000000..135441e541 Binary files /dev/null and b/resources/images/randPixels.webp differ diff --git a/resources/images/randPixelsAnim.gif b/resources/images/randPixelsAnim.gif new file mode 100644 index 0000000000..7b12bfc6f6 Binary files /dev/null and b/resources/images/randPixelsAnim.gif differ diff --git a/resources/images/randPixelsAnim2.gif b/resources/images/randPixelsAnim2.gif new file mode 100644 index 0000000000..2b2b456155 Binary files /dev/null and b/resources/images/randPixelsAnim2.gif differ diff --git a/resources/images/randPixelsOffset.gif b/resources/images/randPixelsOffset.gif new file mode 100644 index 0000000000..df326b81f2 Binary files /dev/null and b/resources/images/randPixelsOffset.gif differ diff --git a/resources/images/required.gif b/resources/images/required.gif new file mode 100644 index 0000000000..91a9fd17e8 Binary files /dev/null and b/resources/images/required.gif differ diff --git a/resources/images/required.webp b/resources/images/required.webp new file mode 100644 index 0000000000..9f9a8f8b8d Binary files /dev/null and b/resources/images/required.webp differ diff --git a/resources/images/rle.bmp b/resources/images/rle.bmp new file mode 100644 index 0000000000..a08745fb2d Binary files /dev/null and b/resources/images/rle.bmp differ diff --git a/resources/images/sample_1mp.dng b/resources/images/sample_1mp.dng new file mode 100644 index 0000000000..c1c10787c7 Binary files /dev/null and b/resources/images/sample_1mp.dng differ diff --git a/resources/images/sample_1mp_rotated.dng b/resources/images/sample_1mp_rotated.dng new file mode 100644 index 0000000000..e0270abae1 Binary files /dev/null and b/resources/images/sample_1mp_rotated.dng differ diff --git a/resources/images/shadowreference.png b/resources/images/shadowreference.png new file mode 100644 index 0000000000..cca6fff645 Binary files /dev/null and b/resources/images/shadowreference.png differ diff --git a/resources/images/ship.png b/resources/images/ship.png new file mode 100644 index 0000000000..acb4fd4279 Binary files /dev/null and b/resources/images/ship.png differ diff --git a/resources/images/test640x479.gif b/resources/images/test640x479.gif new file mode 100644 index 0000000000..a17cb083bb Binary files /dev/null and b/resources/images/test640x479.gif differ diff --git a/resources/images/webp-animated.webp b/resources/images/webp-animated.webp new file mode 100644 index 0000000000..35a8dfcf34 Binary files /dev/null and b/resources/images/webp-animated.webp differ diff --git a/resources/images/webp-color-profile-crash.webp b/resources/images/webp-color-profile-crash.webp new file mode 100644 index 0000000000..3b0904e0f2 Binary files /dev/null and b/resources/images/webp-color-profile-crash.webp differ diff --git a/resources/images/webp-color-profile-lossless.webp b/resources/images/webp-color-profile-lossless.webp new file mode 100644 index 0000000000..4fd63d5794 Binary files /dev/null and b/resources/images/webp-color-profile-lossless.webp differ diff --git a/resources/images/webp-color-profile-lossy-alpha.webp b/resources/images/webp-color-profile-lossy-alpha.webp new file mode 100644 index 0000000000..1a13084e77 Binary files /dev/null and b/resources/images/webp-color-profile-lossy-alpha.webp differ diff --git a/resources/images/webp-color-profile-lossy.webp b/resources/images/webp-color-profile-lossy.webp new file mode 100644 index 0000000000..fdff0a9941 Binary files /dev/null and b/resources/images/webp-color-profile-lossy.webp differ diff --git a/resources/images/yellow_rose.png b/resources/images/yellow_rose.png new file mode 100644 index 0000000000..140c0b9c56 Binary files /dev/null and b/resources/images/yellow_rose.png differ diff --git a/resources/images/yellow_rose.webp b/resources/images/yellow_rose.webp new file mode 100644 index 0000000000..f7dc20839e Binary files /dev/null and b/resources/images/yellow_rose.webp differ diff --git a/resources/index8.png b/resources/index8.png deleted file mode 100644 index 2ff47a3bf4..0000000000 Binary files a/resources/index8.png and /dev/null differ diff --git a/resources/lua/slides.lua b/resources/lua/slides.lua new file mode 100644 index 0000000000..9d61a87273 --- /dev/null +++ b/resources/lua/slides.lua @@ -0,0 +1,356 @@ +gShowBounds = false +gUseBlurInTransitions = false + +gPath = "resources/" + +function load_file(file) + local prev_path = package.path + package.path = package.path .. ";" .. gPath .. file .. ".lua" + require(file) + package.path = prev_path +end + +load_file("slides_utils") + +gSlides = parse_file(io.open("resources/slides_content2.lua", "r")) + +function make_rect(l, t, r, b) + return { left = l, top = t, right = r, bottom = b } +end + +function make_paint(typefacename, style, size, color) + local paint = Sk.newPaint(); + paint:setAntiAlias(true) + paint:setSubpixelText(true) + paint:setTypeface(Sk.newTypeface(typefacename, style)) + paint:setTextSize(size) + paint:setColor(color) + return paint +end + +function draw_bullet(canvas, x, y, paint, indent) + if 0 == indent then + return + end + local ps = paint:getTextSize() + local cx = x - ps * .8 + local cy = y - ps * .4 + local radius = ps * .2 + canvas:drawCircle(cx, cy, radius, paint) +end + +function stroke_rect(canvas, rect, color) + local paint = Sk.newPaint() + paint:setStroke(true); + paint:setColor(color) + canvas:drawRect(rect, paint) +end + +function drawSlide(canvas, slide, master_template) + + if #slide == 1 then + template = master_template.title + canvas:drawText(slide[1].text, 320, 240, template[1]) + return + end + + template = master_template.slide + + local x = template.margin_x + local y = template.margin_y + local scale = 1.25 + + if slide.blockstyle == "code" then + local paint = master_template.codePaint + local fm = paint:getFontMetrics() + local height = #slide * (fm.descent - fm.ascent) + y = (480 - height) / 2 + for i = 1, #slide do + local node = slide[i] + y = y - fm.ascent * scale + canvas:drawText(node.text, x, y, paint) + y = y + fm.descent * scale + end + return + end + + for i = 1, #slide do + local node = slide[i] + local paint = template[node.indent + 1].paint + local extra_dy = template[node.indent + 1].extra_dy + local fm = paint:getFontMetrics() + local x_offset = -fm.ascent * node.indent * 1.25 + + local bounds = make_rect(x + x_offset, y, 620, 640) + local blob, newBottom = Sk.newTextBlob(node.text, bounds, paint) + draw_bullet(canvas, x + x_offset, y - fm.ascent, paint, node.indent) + canvas:drawTextBlob(blob, 0, 0, paint) + y = newBottom + paint:getTextSize() * .5 + extra_dy + + if gShowBounds then + bounds.bottom = newBottom + stroke_rect(canvas, bounds, {a=1,r=0,g=1,b=0}) + stroke_rect(canvas, blob:bounds(), {a=1,r=1,g=0,b=0}) + end + + end +end + +-------------------------------------------------------------------------------------- +function make_tmpl(paint, extra_dy) + return { paint = paint, extra_dy = extra_dy } +end + +function SkiaPoint_make_template() + normal = Sk.newFontStyle() + bold = Sk.newFontStyle(700) + local title = { + margin_x = 30, + margin_y = 100, + } + title[1] = make_paint("Arial", bold, 45, { a=1, r=1, g=1, b=1 }) + title[1]:setTextAlign("center") + title[2] = make_paint("Arial", bold, 25, { a=1, r=.75, g=.75, b=.75 }) + title[2]:setTextAlign("center") + + local slide = { + margin_x = 20, + margin_y = 25, + } + slide[1] = make_tmpl(make_paint("Arial", bold, 35, { a=1, r=1, g=1, b=1 }), 18) + slide[2] = make_tmpl(make_paint("Arial", normal, 25, { a=1, r=1, g=1, b=1 }), 10) + slide[3] = make_tmpl(make_paint("Arial", normal, 20, { a=1, r=.9, g=.9, b=.9 }), 5) + + return { + title = title, + slide = slide, + codePaint = make_paint("Courier", normal, 20, { a=1, r=.9, g=.9, b=.9 }), + } +end + +gTemplate = SkiaPoint_make_template() + +gRedPaint = Sk.newPaint() +gRedPaint:setAntiAlias(true) +gRedPaint:setColor{a=1, r=1, g=0, b=0 } + +-- animation.proc is passed the canvas before drawing. +-- The animation.proc returns itself or another animation (which means keep animating) +-- or it returns nil, which stops the animation. +-- +local gCurrAnimation + +gSlideIndex = 1 + +----------------------------------------------------------------------------- + +function new_drawable_picture(pic) + return { + picture = pic, + width = pic:width(), + height = pic:height(), + draw = function (self, canvas, x, y, paint) + canvas:drawPicture(self.picture, x, y, paint) + end + } +end + +function new_drawable_image(img) + return { + image = img, + width = img:width(), + height = img:height(), + draw = function (self, canvas, x, y, paint) + canvas:drawImage(self.image, x, y, paint) + end + } +end + +function convert_to_picture_drawable(slide) + local rec = Sk.newPictureRecorder() + drawSlide(rec:beginRecording(640, 480), slide, gTemplate) + return new_drawable_picture(rec:endRecording()) +end + +function convert_to_image_drawable(slide) + local surf = Sk.newRasterSurface(640, 480) + drawSlide(surf:getCanvas(), slide, gTemplate) + return new_drawable_image(surf:newImageSnapshot()) +end + +function new_drawable_slide(slide) + return { + slide = slide, + draw = function (self, canvas, x, y, paint) + if (nil == paint or ("number" == type(paint) and (1 == paint))) then + canvas:save() + else + canvas:saveLayer(paint) + end + canvas:translate(x, y) + drawSlide(canvas, self.slide, gTemplate) + canvas:restore() + end + } +end + +gNewDrawableFactory = { + default = new_drawable_slide, + picture = convert_to_picture_drawable, + image = convert_to_image_drawable, +} + +----------------------------------------------------------------------------- + +function next_slide() + local prev = gSlides[gSlideIndex] + + if gSlideIndex < #gSlides then + gSlideIndex = gSlideIndex + 1 + spawn_transition(prev, gSlides[gSlideIndex], true) + end +end + +function prev_slide() + local prev = gSlides[gSlideIndex] + + if gSlideIndex > 1 then + gSlideIndex = gSlideIndex - 1 + spawn_transition(prev, gSlides[gSlideIndex], false) + end +end + +gDrawableType = "default" + +load_file("slides_transitions") + +function spawn_transition(prevSlide, nextSlide, is_forward) + local transition + if is_forward then + transition = gTransitionTable[nextSlide.transition] + else + transition = gTransitionTable[prevSlide.transition] + end + + if not transition then + transition = fade_slide_transition + end + + local prevDrawable = gNewDrawableFactory[gDrawableType](prevSlide) + local nextDrawable = gNewDrawableFactory[gDrawableType](nextSlide) + gCurrAnimation = transition(prevDrawable, nextDrawable, is_forward) +end + +-------------------------------------------------------------------------------------- + +function spawn_rotate_animation() + gCurrAnimation = { + angle = 0, + angle_delta = 5, + pivot_x = 320, + pivot_y = 240, + proc = function (self, canvas, drawSlideProc) + if self.angle >= 360 then + drawSlideProc(canvas) + return nil + end + canvas:translate(self.pivot_x, self.pivot_y) + canvas:rotate(self.angle) + canvas:translate(-self.pivot_x, -self.pivot_y) + drawSlideProc(canvas) + + self.angle = self.angle + self.angle_delta + return self + end + } +end + +function spawn_scale_animation() + gCurrAnimation = { + scale = 1, + scale_delta = .95, + scale_limit = 0.2, + pivot_x = 320, + pivot_y = 240, + proc = function (self, canvas, drawSlideProc) + if self.scale < self.scale_limit then + self.scale = self.scale_limit + self.scale_delta = 1 / self.scale_delta + end + if self.scale > 1 then + drawSlideProc(canvas) + return nil + end + canvas:translate(self.pivot_x, self.pivot_y) + canvas:scale(self.scale, self.scale) + canvas:translate(-self.pivot_x, -self.pivot_y) + drawSlideProc(canvas) + + self.scale = self.scale * self.scale_delta + return self + end + } +end + +local bgPaint = nil + +function draw_bg(canvas) + if not bgPaint then + bgPaint = Sk.newPaint() + local grad = Sk.newLinearGradient( 0, 0, { a=1, r=0, g=0, b=.3 }, + 640, 480, { a=1, r=0, g=0, b=.8 }) + bgPaint:setShader(grad) + bgPaint:setDither(true) + end + + canvas:drawPaint(bgPaint) +end + +function onDrawContent(canvas, width, height) + local matrix = Sk.newMatrix() + matrix:setRectToRect(make_rect(0, 0, 640, 480), make_rect(0, 0, width, height), "center") + canvas:concat(matrix) + + draw_bg(canvas) + + local drawSlideProc = function(canvas) + drawSlide(canvas, gSlides[gSlideIndex], gTemplate) + end + + if gCurrAnimation then + gCurrAnimation = gCurrAnimation:proc(canvas, drawSlideProc) + return true + else + drawSlideProc(canvas) + return false + end +end + +function onClickHandler(x, y) + return false +end + +local keyProcs = { + n = next_slide, + p = prev_slide, + r = spawn_rotate_animation, + s = spawn_scale_animation, + ["="] = function () scale_text_delta(gTemplate, 1) end, + ["-"] = function () scale_text_delta(gTemplate, -1) end, + + b = function () gShowBounds = not gShowBounds end, + B = function () gUseBlurInTransitions = not gUseBlurInTransitions end, + + ["1"] = function () gDrawableType = "default" end, + ["2"] = function () gDrawableType = "picture" end, + ["3"] = function () gDrawableType = "image" end, +} + +function onCharHandler(uni) + local proc = keyProcs[uni] + if proc then + proc() + return true + end + return false +end diff --git a/resources/lua/slides_content.lua b/resources/lua/slides_content.lua new file mode 100644 index 0000000000..9b20e43c6b --- /dev/null +++ b/resources/lua/slides_content.lua @@ -0,0 +1,94 @@ +Skia Overview 2014 + +< transition =slide> + +One API -- many backends +- Raster [8888, 565, A8] +- GPU [opengl] +- PDF +- XPS +- Picture +- Pipe + + + +One Team -- many clients +- Chrome +- ChromeOS +- Clank +- Android Framework +- 3rd parties (e.g. FireFox) + + + + +Optimize for CPU variety +- x86 - 32bit (SSE, SSE2, ...), 64bit +- Arm - thumb, arm, NEON, ... 64bit? +- MIPS (just starting) + + + +Optimize for GPU variety +- Nvidia +- Qualcom +- Imagination +- ... +- ES2 -vs- ES3 -vs- Desktop profiles + +Lots of testing and measuring +- build-bots +-- unittests, micro-benchmarks, image-regressions +-- http://108.170.217.252:10117/console +- webpage archives (in progress) +-- "map-reduce" server for saerching/historgrams +-- macro-benchmarks, image-reressions +-- gpu : cpu fuzzy compares + +Skia Roadmap [Fall '13] + +Roadmap in a nutshell +- GPU performance +- Pictures +- Images +- Fonts +- PDF + +Roadmap : GPU Performance +- Clipping changes are expensive +- Texture cache optimizations +- Better batching / reordering +- Rely more on multi-sampling +- ES3/desktop features (e.g. path-rendering) +- ... continuo ad absurdum + +Roadmap : Pictures +- Playback performance +-- improve culling +-- multi-core support +- Record performance +-- improve hash/cache +-- improve measuring/bbox computation +- Feedback to clients +-- annotations +-- heat-map for time spent drawing +-- peep-hole optimizations + +Roadmap : Images +- HQ filtering and mipmaps +- Unpremul support +- sRGB support (future) +- Improve cache / lazy-decoding + +Roadmap : Fonts +- Color emoji +- DirectWrite on windows +-- subpixel positioning! +- new FontMgr -- extended styles + +Roadmap : PDF +- Android +-- perspective, color-filters +- New Viewer project +-- print-preview and more +-- can output picture / gpu directly diff --git a/resources/lua/slides_content2.lua b/resources/lua/slides_content2.lua new file mode 100644 index 0000000000..2b293a244a --- /dev/null +++ b/resources/lua/slides_content2.lua @@ -0,0 +1,123 @@ +Skia Update + +Skia : Access +- https://skia.org +- https://skia.googlesource.com/skia + +Skia : Overview +- portable graphics engine +- 2D transformations + perspective +- primitives: text, geometry, images +- effects: shaders, filters, antialiasing, blending + +Skia : Porting +- C++ and some SIMD assembly +- Fonts : CoreText, FreeType, GDI, DirectWrite +- Threads : wrappers for native apis +- Memory : wrappers for [new, malloc, discardable] + +Skia : Backends +- Surface +-- raster : ARGB, RGB16, A8 in software +-- gpu : transcribe to OpenGL +- Document +-- transcribe to PDF or XPS +- Record and Playback +-- Picture +-- Pipe + +Skia : Clients +- Blink : under the GraphicsContext hood +- Chrome : ui/gfx and compositor +- Android : framework +- third parties : e.g. Mozilla + +Skia In Blink + +Skia In Blink : Fonts +- SkTypeface and SkFontMgr : platform agnostic +- Runtime switch between GDI and DirectWrite +- SkTextBlob to encapsulate runs of text +- Push LCD decision-making out of Blink + +Skia In Blink : Record-Time-Rasterization +- What? : direct rendering during “Paint” pass +-- Image scaling, filters +-- SVG patterns, masks +- Problematic in modern Blink +-- CTM not always known/knowable +-- Rendering backend not always known (gpu or cpu) +-- Rasterization takes (too much) time + +Skia In Blink : RTR response +- SkImageFilter w/ CPU and GPU implementations +- Bitmap scaling : bilerp, mipmaps, fancy +- SkPicture for caching SVG +- SkPicture + saveLayer() for masks +-- PathOps for resolving complex paths +- SkPictureShader for device-independent patterns + +Skia In Blink : Recording +- GraphicsContext (now) backed by SkPicture +-- draw commands are recorded for later playback +-- all parameters must be copied or (safely) ref'd +-- may record more than is currently visible +- Resulting picture may be replayed multiple times +-- from different thread(s) + +Skia In Blink : Recording response +- New implementation +- Optimized for recording speed +-- shallow copies whenever possible +-- rearchitect all Skia effects to be immutable +- Reentrant-safe for playback in multiple threads +-- also affected effect subclasses + +Skia In Blink : Playback +- Separate pass for optimizations (optional) +-- peep-holes rewrites +-- compute bounding-box hierarchy for faster tiling +-- can be done outside of Blink thread +- GPU optimizations +-- layer "hoisting" +-- distance fields : fonts and concave paths + +Skia In Blink : multi-picture-draw +- mpd(canvas[], picture[], matrix[], paint[]) +- Requires independent canvas objects +-- all other parameters can be shared +-- draw order is unspecified +- Examples +-- 1 picture drawing to multiple tiles (canvases) +-- multiple pictures each drawing to its own layer + +Skia In Blink : MPD optimizations* +- GPU +-- "layer hoisting" to reduce rendertarget switching +-- layer atlasing (also applies to imagefilters) +-- pre-uploading of textures +-- atlas yuv (from jpeg) to convert on gpu +- CPU +-- parallel execution using thread pool +-- pre-decoding of images based on visibility + +Skia : Roadmap + +Skia : Roadmap - performance +- GPU +-- extended OpenGL features (e.g. geometry shaders) +-- reordering for increased batching +-- support for new low-level OpenGL APIs +- CPU +-- SIMD applied to floats +-- smarter culling in pictures + +Skia : Roadmap - API +- Cross process support +- Direct support for sRGB +- Robust file format +- Support PDF viewing +- Stable C ABI +-- bindings for JS, Go, Python, Lua + +Demo diff --git a/resources/lua/slides_transitions.lua b/resources/lua/slides_transitions.lua new file mode 100644 index 0000000000..bab3827767 --- /dev/null +++ b/resources/lua/slides_transitions.lua @@ -0,0 +1,208 @@ +function scale_text_delta(template, delta) + template = template.slide + for i = 1, #template do + local paint = template[i].paint + paint:setTextSize(paint:getTextSize() + delta) + end +end + +function slide_transition(prev, next, is_forward) + local rec = { + proc = function(self, canvas, drawSlideProc) + if self:isDone() then + drawSlideProc(canvas) + return nil + end + self.prevDrawable:draw(canvas, self.curr_x, 0) + self.nextDrawable:draw(canvas, self.curr_x + 640, 0) + self.curr_x = self.curr_x + self.step_x + return self + end + } + if is_forward then + rec.prevDrawable = prev + rec.nextDrawable = next + rec.curr_x = 0 + rec.step_x = -15 + rec.isDone = function (self) return self.curr_x <= -640 end + else + rec.prevDrawable = next + rec.nextDrawable = prev + rec.curr_x = -640 + rec.step_x = 15 + rec.isDone = function (self) return self.curr_x >= 0 end + end + return rec +end + +function sqr(value) return value * value end + +function set_blur(paint, alpha) + local sigma = sqr(1 - alpha) * 20 + if gUseBlurInTransitions then + paint:setImageFilter(Sk.newBlurImageFilter(sigma, sigma)) + end + paint:setAlpha(alpha) +end + +function fade_slide_transition(prev, next, is_forward) + local rec = { + paint = Sk.newPaint(), + prevDrawable = prev, + nextDrawable = next, + proc = function(self, canvas, drawSlideProc) + if self:isDone() then + drawSlideProc(canvas) + return nil + end + + set_blur(self.paint, self.prev_a) + self.prevDrawable:draw(canvas, self.prev_x, 0, self.paint) + + set_blur(self.paint, self.next_a) + self.nextDrawable:draw(canvas, self.next_x, 0, self.paint) + self:step() + return self + end + } + if is_forward then + rec.prev_x = 0 + rec.prev_a = 1 + rec.next_x = 640 + rec.next_a = 0 + rec.isDone = function (self) return self.next_x <= 0 end + rec.step = function (self) + self.next_x = self.next_x - 20 + self.next_a = (640 - self.next_x) / 640 + self.prev_a = 1 - self.next_a + end + else + rec.prev_x = 0 + rec.prev_a = 1 + rec.next_x = 0 + rec.next_a = 0 + rec.isDone = function (self) return self.prev_x >= 640 end + rec.step = function (self) + self.prev_x = self.prev_x + 20 + self.prev_a = (640 - self.prev_x) / 640 + self.next_a = 1 - self.prev_a + end + end + return rec +end + +function fade_transition(prev, next, is_forward) + local rec = { + paint = Sk.newPaint(), + prevDrawable = prev, + nextDrawable = next, + proc = function(self, canvas, drawSlideProc) + if self:isDone() then + drawSlideProc(canvas) + return nil + end + + set_blur(self.paint, self.prev_a) + self.prevDrawable:draw(canvas, 0, 0, self.paint) + + set_blur(self.paint, self.next_a) + self.nextDrawable:draw(canvas, 0, 0, self.paint) + self:step() + return self + end + } + rec.prev_a = 1 + rec.next_a = 0 + rec.isDone = function (self) return self.next_a >= 1 end + rec.step = function (self) + self.prev_a = math.max(self.prev_a - 0.025, 0) + self.next_a = 1 - self.prev_a + end + + return rec +end + +function rotate_transition(prev, next, is_forward) + local rec = { + angle = 0, + prevDrawable = prev, + nextDrawable = next, + activeDrawable = prev, + proc = function(self, canvas, drawSlideProc) + if self:isDone() then + drawSlideProc(canvas) + return nil + end + + canvas:save() + canvas:translate(320, 240) + canvas:rotate(self.angle) + canvas:translate(-320, -240) + self.activeDrawable:draw(canvas, 0, 0) + self:step() + return self + end, + isDone = function (self) return self.angle >= 360 or self.angle <= -360 end + } + if is_forward then + rec.step = function (self) + self.angle = self.angle + 10 + if self.angle >= 180 then + self.activeDrawable = self.nextDrawable + end + end + else + rec.step = function (self) + self.angle = self.angle - 10 + if self.angle <= -180 then + self.activeDrawable = self.nextDrawable + end + end + end + return rec +end + +function zoom_transition(prev, next, is_forward) + local rec = { + scale = 1, + scale_delta = .95, + scale_limit = 0.2, + pivot_x = 320, + pivot_y = 240, + prevDrawable = prev, + nextDrawable = next, + activeDrawable = prev, + proc = function(self, canvas, drawSlideProc) + if self:isDone() then + drawSlideProc(canvas) + return nil + end + + canvas:translate(self.pivot_x, self.pivot_y) + canvas:scale(self.scale, self.scale) + canvas:translate(-self.pivot_x, -self.pivot_y) + self.activeDrawable:draw(canvas, 0, 0) + self:step() + return self + end, + isDone = function (self) return self.scale > 1 end, + step = function (self) + if self.scale < self.scale_limit then + self.scale = self.scale_limit + self.scale_delta = 1 / self.scale_delta + self.activeDrawable = self.nextDrawable + end + self.scale = self.scale * self.scale_delta + end + } + return rec +end + +gTransitionTable = { + fade = fade_transition, + slide = slide_transition, + fade_slide = fade_slide_transition, + rotate = rotate_transition, + zoom = zoom_transition, +} + diff --git a/resources/lua/slides_utils.lua b/resources/lua/slides_utils.lua new file mode 100644 index 0000000000..3b1230c10b --- /dev/null +++ b/resources/lua/slides_utils.lua @@ -0,0 +1,102 @@ +function tostr(t) + local str = "" + for k, v in next, t do + if #str > 0 then + str = str .. ", " + end + if type(k) == "number" then + str = str .. "[" .. k .. "] = " + else + str = str .. tostring(k) .. " = " + end + if type(v) == "table" then + str = str .. "{ " .. tostr(v) .. " }" + elseif type(v) == "string" then + str = str .. '"' .. v .. '"' + else + str = str .. tostring(v) + end + end + return str +end + +function trim_ws(s) + return s:match("^%s*(.*)") +end + +function count_hypens(s) + local leftover = s:match("^-*(.*)") + return string.len(s) - string.len(leftover) +end + +function pretty_print_slide(slide) + io.write("{\n") + if slide.transition then + io.write(" transition = \"", slide.transition, "\",\n") + end + for i = 1, #slide do + local node = slide[i] + for j = 0, node.indent do + io.write(" ") + end + io.write("{ ") + io.write(tostr(node)) + io.write(" },\n") + end + io.write("},\n") +end + +function pretty_print_slides(slides) + io.write("gSlides = {\n") + for i = 1, #slides do + pretty_print_slide(slides[i]) + end + io.write("}\n") +end + +function parse_attr(s, lvalue) + local ts = "^<%s*" .. lvalue .. "%s*=%s*(%a+)%s*>$" + return s:match(ts) +end + +function flush(slides, block) + if #block > 0 then + slides[#slides + 1] = block + return {} + end + return block +end + +function parse_file(file) + local slides = {} + local block = {} + + for line in file:lines() do + local s = trim_ws(line) + if #s == 0 then -- done with a block + block = flush(slides, block) + else + local transition_type = parse_attr(s, "transition") + local blockstyle = parse_attr(s, "blockstyle") + if transition_type then + block["transition"] = transition_type + elseif blockstyle then + block["blockstyle"] = blockstyle + else + if block.blockstyle == "code" then + block[#block + 1] = { text = line } + else + local n = count_hypens(s) + block[#block + 1] = { + indent = n, + text = trim_ws(s:sub(n + 1, -1)) + } + end + end + end + end + flush(slides, block) + + return slides +end + diff --git a/resources/lua/test.lua b/resources/lua/test.lua new file mode 100644 index 0000000000..03201baeda --- /dev/null +++ b/resources/lua/test.lua @@ -0,0 +1,76 @@ + +local r = { left = 10, top = 10, right = 100, bottom = 80 } +local x = 0; + +local paint = Sk.newPaint(); +paint:setAntiAlias(true); + +local image -- = Sk.loadImage('/skia/sailboat.jpg'); +function setImageFilename(filename) + image = Sk.loadImage(filename) +end + + +local color = {a = 1, r = 1, g = 0, b = 0}; + +function rnd(range) + return math.random() * range; +end + +rndX = function () return rnd(640) end +rndY = function () return rnd(480) end + +function draw_rand_path(canvas); + if not path_paint then + path_paint = Sk.newPaint(); + path_paint:setAntiAlias(true); + end + path_paint:setColor({a = 1, r = math.random(), g = math.random(), b = math.random() }); + + local path = Sk.newPath(); + path:moveTo(rndX(), rndY()); + for i = 0, 50 do + path:quadTo(rndX(), rndY(), rndX(), rndY()); + end + canvas:drawPath(path, path_paint); + + paint:setColor{a=1,r=0,g=0,b=1}; + local align = { 'left', 'center', 'right' }; + paint:setTextSize(30); + for k, v in next, align do + paint:setTextAlign(v); + canvas:drawText('Hamburgefons', 320, 200 + 30*k, paint); + end +end + +function onStartup() + local paint = Sk.newPaint(); + paint:setColor{a=1, r=1, g=0, b=0}; + if false then + local doc = Sk.newDocumentPDF('out/test.pdf'); + local canvas = doc:beginPage(72*8.5, 72*11); + canvas:drawText('Hello Lua', 300, 300, paint); + doc:close(); + doc = nil; + end +end + +function onDrawContent(canvas) + draw_rand_path(canvas); + color.g = x / 100; + paint:setColor(color) + canvas:translate(x, 0); + canvas:drawOval(r, paint) + x = x + 1; + local r2 = {} + r2.left = x; + r2.top = r.bottom + 50; + r2.right = r2.left + image:width() * 1; + r2.bottom = r2.top + image:height() * 1; + canvas:drawImageRect(image, nil, r2, 0.75); + if x > 200 then x = 0 end; + + return true -- so we can animate +end + +onStartup() diff --git a/resources/mandrill.wbmp b/resources/mandrill.wbmp deleted file mode 100644 index ac84598cf0..0000000000 Binary files a/resources/mandrill.wbmp and /dev/null differ diff --git a/resources/mandrill_128.png b/resources/mandrill_128.png deleted file mode 100644 index 32f163773f..0000000000 Binary files a/resources/mandrill_128.png and /dev/null differ diff --git a/resources/mandrill_16.png b/resources/mandrill_16.png deleted file mode 100644 index e5703f52d6..0000000000 Binary files a/resources/mandrill_16.png and /dev/null differ diff --git a/resources/mandrill_256.png b/resources/mandrill_256.png deleted file mode 100644 index 0c6908424b..0000000000 Binary files a/resources/mandrill_256.png and /dev/null differ diff --git a/resources/mandrill_32.png b/resources/mandrill_32.png deleted file mode 100644 index c30e451d90..0000000000 Binary files a/resources/mandrill_32.png and /dev/null differ diff --git a/resources/mandrill_512.png b/resources/mandrill_512.png deleted file mode 100644 index c2efb8108d..0000000000 Binary files a/resources/mandrill_512.png and /dev/null differ diff --git a/resources/mandrill_512_q075.jpg b/resources/mandrill_512_q075.jpg deleted file mode 100644 index c2c215f2e9..0000000000 Binary files a/resources/mandrill_512_q075.jpg and /dev/null differ diff --git a/resources/mandrill_64.png b/resources/mandrill_64.png deleted file mode 100644 index d2e94cc891..0000000000 Binary files a/resources/mandrill_64.png and /dev/null differ diff --git a/resources/mandrill_h1v1.jpg b/resources/mandrill_h1v1.jpg deleted file mode 100644 index 388236d21a..0000000000 Binary files a/resources/mandrill_h1v1.jpg and /dev/null differ diff --git a/resources/mandrill_h2v1.jpg b/resources/mandrill_h2v1.jpg deleted file mode 100644 index 573888a40f..0000000000 Binary files a/resources/mandrill_h2v1.jpg and /dev/null differ diff --git a/resources/plane.png b/resources/plane.png deleted file mode 100644 index 03585b5cb4..0000000000 Binary files a/resources/plane.png and /dev/null differ diff --git a/resources/plane_interlaced.png b/resources/plane_interlaced.png deleted file mode 100644 index 3b217f205d..0000000000 Binary files a/resources/plane_interlaced.png and /dev/null differ diff --git a/resources/rainbow-gradient.png b/resources/rainbow-gradient.png deleted file mode 100644 index 4e18a32716..0000000000 Binary files a/resources/rainbow-gradient.png and /dev/null differ diff --git a/resources/randPixels.bmp b/resources/randPixels.bmp deleted file mode 100644 index 1e4ab3b652..0000000000 Binary files a/resources/randPixels.bmp and /dev/null differ diff --git a/resources/randPixels.gif b/resources/randPixels.gif deleted file mode 100644 index 04c8bb9c3a..0000000000 Binary files a/resources/randPixels.gif and /dev/null differ diff --git a/resources/randPixels.jpg b/resources/randPixels.jpg deleted file mode 100644 index ca57fbddf3..0000000000 Binary files a/resources/randPixels.jpg and /dev/null differ diff --git a/resources/randPixels.png b/resources/randPixels.png deleted file mode 100644 index 49ef84603f..0000000000 Binary files a/resources/randPixels.png and /dev/null differ diff --git a/resources/randPixels.webp b/resources/randPixels.webp deleted file mode 100644 index 135441e541..0000000000 Binary files a/resources/randPixels.webp and /dev/null differ diff --git a/resources/randPixelsAnim.gif b/resources/randPixelsAnim.gif deleted file mode 100644 index 7b12bfc6f6..0000000000 Binary files a/resources/randPixelsAnim.gif and /dev/null differ diff --git a/resources/randPixelsAnim2.gif b/resources/randPixelsAnim2.gif deleted file mode 100644 index 2b2b456155..0000000000 Binary files a/resources/randPixelsAnim2.gif and /dev/null differ diff --git a/resources/randPixelsOffset.gif b/resources/randPixelsOffset.gif deleted file mode 100644 index df326b81f2..0000000000 Binary files a/resources/randPixelsOffset.gif and /dev/null differ diff --git a/resources/required.gif b/resources/required.gif deleted file mode 100644 index 91a9fd17e8..0000000000 Binary files a/resources/required.gif and /dev/null differ diff --git a/resources/required.webp b/resources/required.webp deleted file mode 100644 index 9f9a8f8b8d..0000000000 Binary files a/resources/required.webp and /dev/null differ diff --git a/resources/rle.bmp b/resources/rle.bmp deleted file mode 100644 index a08745fb2d..0000000000 Binary files a/resources/rle.bmp and /dev/null differ diff --git a/resources/sample_1mp.dng b/resources/sample_1mp.dng deleted file mode 100644 index c1c10787c7..0000000000 Binary files a/resources/sample_1mp.dng and /dev/null differ diff --git a/resources/sample_1mp_rotated.dng b/resources/sample_1mp_rotated.dng deleted file mode 100644 index e0270abae1..0000000000 Binary files a/resources/sample_1mp_rotated.dng and /dev/null differ diff --git a/resources/shadowreference.png b/resources/shadowreference.png deleted file mode 100755 index cca6fff645..0000000000 Binary files a/resources/shadowreference.png and /dev/null differ diff --git a/resources/ship.png b/resources/ship.png deleted file mode 100755 index acb4fd4279..0000000000 Binary files a/resources/ship.png and /dev/null differ diff --git a/resources/slides.lua b/resources/slides.lua deleted file mode 100644 index 9d61a87273..0000000000 --- a/resources/slides.lua +++ /dev/null @@ -1,356 +0,0 @@ -gShowBounds = false -gUseBlurInTransitions = false - -gPath = "resources/" - -function load_file(file) - local prev_path = package.path - package.path = package.path .. ";" .. gPath .. file .. ".lua" - require(file) - package.path = prev_path -end - -load_file("slides_utils") - -gSlides = parse_file(io.open("resources/slides_content2.lua", "r")) - -function make_rect(l, t, r, b) - return { left = l, top = t, right = r, bottom = b } -end - -function make_paint(typefacename, style, size, color) - local paint = Sk.newPaint(); - paint:setAntiAlias(true) - paint:setSubpixelText(true) - paint:setTypeface(Sk.newTypeface(typefacename, style)) - paint:setTextSize(size) - paint:setColor(color) - return paint -end - -function draw_bullet(canvas, x, y, paint, indent) - if 0 == indent then - return - end - local ps = paint:getTextSize() - local cx = x - ps * .8 - local cy = y - ps * .4 - local radius = ps * .2 - canvas:drawCircle(cx, cy, radius, paint) -end - -function stroke_rect(canvas, rect, color) - local paint = Sk.newPaint() - paint:setStroke(true); - paint:setColor(color) - canvas:drawRect(rect, paint) -end - -function drawSlide(canvas, slide, master_template) - - if #slide == 1 then - template = master_template.title - canvas:drawText(slide[1].text, 320, 240, template[1]) - return - end - - template = master_template.slide - - local x = template.margin_x - local y = template.margin_y - local scale = 1.25 - - if slide.blockstyle == "code" then - local paint = master_template.codePaint - local fm = paint:getFontMetrics() - local height = #slide * (fm.descent - fm.ascent) - y = (480 - height) / 2 - for i = 1, #slide do - local node = slide[i] - y = y - fm.ascent * scale - canvas:drawText(node.text, x, y, paint) - y = y + fm.descent * scale - end - return - end - - for i = 1, #slide do - local node = slide[i] - local paint = template[node.indent + 1].paint - local extra_dy = template[node.indent + 1].extra_dy - local fm = paint:getFontMetrics() - local x_offset = -fm.ascent * node.indent * 1.25 - - local bounds = make_rect(x + x_offset, y, 620, 640) - local blob, newBottom = Sk.newTextBlob(node.text, bounds, paint) - draw_bullet(canvas, x + x_offset, y - fm.ascent, paint, node.indent) - canvas:drawTextBlob(blob, 0, 0, paint) - y = newBottom + paint:getTextSize() * .5 + extra_dy - - if gShowBounds then - bounds.bottom = newBottom - stroke_rect(canvas, bounds, {a=1,r=0,g=1,b=0}) - stroke_rect(canvas, blob:bounds(), {a=1,r=1,g=0,b=0}) - end - - end -end - --------------------------------------------------------------------------------------- -function make_tmpl(paint, extra_dy) - return { paint = paint, extra_dy = extra_dy } -end - -function SkiaPoint_make_template() - normal = Sk.newFontStyle() - bold = Sk.newFontStyle(700) - local title = { - margin_x = 30, - margin_y = 100, - } - title[1] = make_paint("Arial", bold, 45, { a=1, r=1, g=1, b=1 }) - title[1]:setTextAlign("center") - title[2] = make_paint("Arial", bold, 25, { a=1, r=.75, g=.75, b=.75 }) - title[2]:setTextAlign("center") - - local slide = { - margin_x = 20, - margin_y = 25, - } - slide[1] = make_tmpl(make_paint("Arial", bold, 35, { a=1, r=1, g=1, b=1 }), 18) - slide[2] = make_tmpl(make_paint("Arial", normal, 25, { a=1, r=1, g=1, b=1 }), 10) - slide[3] = make_tmpl(make_paint("Arial", normal, 20, { a=1, r=.9, g=.9, b=.9 }), 5) - - return { - title = title, - slide = slide, - codePaint = make_paint("Courier", normal, 20, { a=1, r=.9, g=.9, b=.9 }), - } -end - -gTemplate = SkiaPoint_make_template() - -gRedPaint = Sk.newPaint() -gRedPaint:setAntiAlias(true) -gRedPaint:setColor{a=1, r=1, g=0, b=0 } - --- animation.proc is passed the canvas before drawing. --- The animation.proc returns itself or another animation (which means keep animating) --- or it returns nil, which stops the animation. --- -local gCurrAnimation - -gSlideIndex = 1 - ------------------------------------------------------------------------------ - -function new_drawable_picture(pic) - return { - picture = pic, - width = pic:width(), - height = pic:height(), - draw = function (self, canvas, x, y, paint) - canvas:drawPicture(self.picture, x, y, paint) - end - } -end - -function new_drawable_image(img) - return { - image = img, - width = img:width(), - height = img:height(), - draw = function (self, canvas, x, y, paint) - canvas:drawImage(self.image, x, y, paint) - end - } -end - -function convert_to_picture_drawable(slide) - local rec = Sk.newPictureRecorder() - drawSlide(rec:beginRecording(640, 480), slide, gTemplate) - return new_drawable_picture(rec:endRecording()) -end - -function convert_to_image_drawable(slide) - local surf = Sk.newRasterSurface(640, 480) - drawSlide(surf:getCanvas(), slide, gTemplate) - return new_drawable_image(surf:newImageSnapshot()) -end - -function new_drawable_slide(slide) - return { - slide = slide, - draw = function (self, canvas, x, y, paint) - if (nil == paint or ("number" == type(paint) and (1 == paint))) then - canvas:save() - else - canvas:saveLayer(paint) - end - canvas:translate(x, y) - drawSlide(canvas, self.slide, gTemplate) - canvas:restore() - end - } -end - -gNewDrawableFactory = { - default = new_drawable_slide, - picture = convert_to_picture_drawable, - image = convert_to_image_drawable, -} - ------------------------------------------------------------------------------ - -function next_slide() - local prev = gSlides[gSlideIndex] - - if gSlideIndex < #gSlides then - gSlideIndex = gSlideIndex + 1 - spawn_transition(prev, gSlides[gSlideIndex], true) - end -end - -function prev_slide() - local prev = gSlides[gSlideIndex] - - if gSlideIndex > 1 then - gSlideIndex = gSlideIndex - 1 - spawn_transition(prev, gSlides[gSlideIndex], false) - end -end - -gDrawableType = "default" - -load_file("slides_transitions") - -function spawn_transition(prevSlide, nextSlide, is_forward) - local transition - if is_forward then - transition = gTransitionTable[nextSlide.transition] - else - transition = gTransitionTable[prevSlide.transition] - end - - if not transition then - transition = fade_slide_transition - end - - local prevDrawable = gNewDrawableFactory[gDrawableType](prevSlide) - local nextDrawable = gNewDrawableFactory[gDrawableType](nextSlide) - gCurrAnimation = transition(prevDrawable, nextDrawable, is_forward) -end - --------------------------------------------------------------------------------------- - -function spawn_rotate_animation() - gCurrAnimation = { - angle = 0, - angle_delta = 5, - pivot_x = 320, - pivot_y = 240, - proc = function (self, canvas, drawSlideProc) - if self.angle >= 360 then - drawSlideProc(canvas) - return nil - end - canvas:translate(self.pivot_x, self.pivot_y) - canvas:rotate(self.angle) - canvas:translate(-self.pivot_x, -self.pivot_y) - drawSlideProc(canvas) - - self.angle = self.angle + self.angle_delta - return self - end - } -end - -function spawn_scale_animation() - gCurrAnimation = { - scale = 1, - scale_delta = .95, - scale_limit = 0.2, - pivot_x = 320, - pivot_y = 240, - proc = function (self, canvas, drawSlideProc) - if self.scale < self.scale_limit then - self.scale = self.scale_limit - self.scale_delta = 1 / self.scale_delta - end - if self.scale > 1 then - drawSlideProc(canvas) - return nil - end - canvas:translate(self.pivot_x, self.pivot_y) - canvas:scale(self.scale, self.scale) - canvas:translate(-self.pivot_x, -self.pivot_y) - drawSlideProc(canvas) - - self.scale = self.scale * self.scale_delta - return self - end - } -end - -local bgPaint = nil - -function draw_bg(canvas) - if not bgPaint then - bgPaint = Sk.newPaint() - local grad = Sk.newLinearGradient( 0, 0, { a=1, r=0, g=0, b=.3 }, - 640, 480, { a=1, r=0, g=0, b=.8 }) - bgPaint:setShader(grad) - bgPaint:setDither(true) - end - - canvas:drawPaint(bgPaint) -end - -function onDrawContent(canvas, width, height) - local matrix = Sk.newMatrix() - matrix:setRectToRect(make_rect(0, 0, 640, 480), make_rect(0, 0, width, height), "center") - canvas:concat(matrix) - - draw_bg(canvas) - - local drawSlideProc = function(canvas) - drawSlide(canvas, gSlides[gSlideIndex], gTemplate) - end - - if gCurrAnimation then - gCurrAnimation = gCurrAnimation:proc(canvas, drawSlideProc) - return true - else - drawSlideProc(canvas) - return false - end -end - -function onClickHandler(x, y) - return false -end - -local keyProcs = { - n = next_slide, - p = prev_slide, - r = spawn_rotate_animation, - s = spawn_scale_animation, - ["="] = function () scale_text_delta(gTemplate, 1) end, - ["-"] = function () scale_text_delta(gTemplate, -1) end, - - b = function () gShowBounds = not gShowBounds end, - B = function () gUseBlurInTransitions = not gUseBlurInTransitions end, - - ["1"] = function () gDrawableType = "default" end, - ["2"] = function () gDrawableType = "picture" end, - ["3"] = function () gDrawableType = "image" end, -} - -function onCharHandler(uni) - local proc = keyProcs[uni] - if proc then - proc() - return true - end - return false -end diff --git a/resources/slides_content.lua b/resources/slides_content.lua deleted file mode 100644 index 9b20e43c6b..0000000000 --- a/resources/slides_content.lua +++ /dev/null @@ -1,94 +0,0 @@ -Skia Overview 2014 - -< transition =slide> - -One API -- many backends -- Raster [8888, 565, A8] -- GPU [opengl] -- PDF -- XPS -- Picture -- Pipe - - - -One Team -- many clients -- Chrome -- ChromeOS -- Clank -- Android Framework -- 3rd parties (e.g. FireFox) - - - - -Optimize for CPU variety -- x86 - 32bit (SSE, SSE2, ...), 64bit -- Arm - thumb, arm, NEON, ... 64bit? -- MIPS (just starting) - - - -Optimize for GPU variety -- Nvidia -- Qualcom -- Imagination -- ... -- ES2 -vs- ES3 -vs- Desktop profiles - -Lots of testing and measuring -- build-bots --- unittests, micro-benchmarks, image-regressions --- http://108.170.217.252:10117/console -- webpage archives (in progress) --- "map-reduce" server for saerching/historgrams --- macro-benchmarks, image-reressions --- gpu : cpu fuzzy compares - -Skia Roadmap [Fall '13] - -Roadmap in a nutshell -- GPU performance -- Pictures -- Images -- Fonts -- PDF - -Roadmap : GPU Performance -- Clipping changes are expensive -- Texture cache optimizations -- Better batching / reordering -- Rely more on multi-sampling -- ES3/desktop features (e.g. path-rendering) -- ... continuo ad absurdum - -Roadmap : Pictures -- Playback performance --- improve culling --- multi-core support -- Record performance --- improve hash/cache --- improve measuring/bbox computation -- Feedback to clients --- annotations --- heat-map for time spent drawing --- peep-hole optimizations - -Roadmap : Images -- HQ filtering and mipmaps -- Unpremul support -- sRGB support (future) -- Improve cache / lazy-decoding - -Roadmap : Fonts -- Color emoji -- DirectWrite on windows --- subpixel positioning! -- new FontMgr -- extended styles - -Roadmap : PDF -- Android --- perspective, color-filters -- New Viewer project --- print-preview and more --- can output picture / gpu directly diff --git a/resources/slides_content2.lua b/resources/slides_content2.lua deleted file mode 100644 index 2b293a244a..0000000000 --- a/resources/slides_content2.lua +++ /dev/null @@ -1,123 +0,0 @@ -Skia Update - -Skia : Access -- https://skia.org -- https://skia.googlesource.com/skia - -Skia : Overview -- portable graphics engine -- 2D transformations + perspective -- primitives: text, geometry, images -- effects: shaders, filters, antialiasing, blending - -Skia : Porting -- C++ and some SIMD assembly -- Fonts : CoreText, FreeType, GDI, DirectWrite -- Threads : wrappers for native apis -- Memory : wrappers for [new, malloc, discardable] - -Skia : Backends -- Surface --- raster : ARGB, RGB16, A8 in software --- gpu : transcribe to OpenGL -- Document --- transcribe to PDF or XPS -- Record and Playback --- Picture --- Pipe - -Skia : Clients -- Blink : under the GraphicsContext hood -- Chrome : ui/gfx and compositor -- Android : framework -- third parties : e.g. Mozilla - -Skia In Blink - -Skia In Blink : Fonts -- SkTypeface and SkFontMgr : platform agnostic -- Runtime switch between GDI and DirectWrite -- SkTextBlob to encapsulate runs of text -- Push LCD decision-making out of Blink - -Skia In Blink : Record-Time-Rasterization -- What? : direct rendering during “Paint” pass --- Image scaling, filters --- SVG patterns, masks -- Problematic in modern Blink --- CTM not always known/knowable --- Rendering backend not always known (gpu or cpu) --- Rasterization takes (too much) time - -Skia In Blink : RTR response -- SkImageFilter w/ CPU and GPU implementations -- Bitmap scaling : bilerp, mipmaps, fancy -- SkPicture for caching SVG -- SkPicture + saveLayer() for masks --- PathOps for resolving complex paths -- SkPictureShader for device-independent patterns - -Skia In Blink : Recording -- GraphicsContext (now) backed by SkPicture --- draw commands are recorded for later playback --- all parameters must be copied or (safely) ref'd --- may record more than is currently visible -- Resulting picture may be replayed multiple times --- from different thread(s) - -Skia In Blink : Recording response -- New implementation -- Optimized for recording speed --- shallow copies whenever possible --- rearchitect all Skia effects to be immutable -- Reentrant-safe for playback in multiple threads --- also affected effect subclasses - -Skia In Blink : Playback -- Separate pass for optimizations (optional) --- peep-holes rewrites --- compute bounding-box hierarchy for faster tiling --- can be done outside of Blink thread -- GPU optimizations --- layer "hoisting" --- distance fields : fonts and concave paths - -Skia In Blink : multi-picture-draw -- mpd(canvas[], picture[], matrix[], paint[]) -- Requires independent canvas objects --- all other parameters can be shared --- draw order is unspecified -- Examples --- 1 picture drawing to multiple tiles (canvases) --- multiple pictures each drawing to its own layer - -Skia In Blink : MPD optimizations* -- GPU --- "layer hoisting" to reduce rendertarget switching --- layer atlasing (also applies to imagefilters) --- pre-uploading of textures --- atlas yuv (from jpeg) to convert on gpu -- CPU --- parallel execution using thread pool --- pre-decoding of images based on visibility - -Skia : Roadmap - -Skia : Roadmap - performance -- GPU --- extended OpenGL features (e.g. geometry shaders) --- reordering for increased batching --- support for new low-level OpenGL APIs -- CPU --- SIMD applied to floats --- smarter culling in pictures - -Skia : Roadmap - API -- Cross process support -- Direct support for sRGB -- Robust file format -- Support PDF viewing -- Stable C ABI --- bindings for JS, Go, Python, Lua - -Demo diff --git a/resources/slides_transitions.lua b/resources/slides_transitions.lua deleted file mode 100644 index bab3827767..0000000000 --- a/resources/slides_transitions.lua +++ /dev/null @@ -1,208 +0,0 @@ -function scale_text_delta(template, delta) - template = template.slide - for i = 1, #template do - local paint = template[i].paint - paint:setTextSize(paint:getTextSize() + delta) - end -end - -function slide_transition(prev, next, is_forward) - local rec = { - proc = function(self, canvas, drawSlideProc) - if self:isDone() then - drawSlideProc(canvas) - return nil - end - self.prevDrawable:draw(canvas, self.curr_x, 0) - self.nextDrawable:draw(canvas, self.curr_x + 640, 0) - self.curr_x = self.curr_x + self.step_x - return self - end - } - if is_forward then - rec.prevDrawable = prev - rec.nextDrawable = next - rec.curr_x = 0 - rec.step_x = -15 - rec.isDone = function (self) return self.curr_x <= -640 end - else - rec.prevDrawable = next - rec.nextDrawable = prev - rec.curr_x = -640 - rec.step_x = 15 - rec.isDone = function (self) return self.curr_x >= 0 end - end - return rec -end - -function sqr(value) return value * value end - -function set_blur(paint, alpha) - local sigma = sqr(1 - alpha) * 20 - if gUseBlurInTransitions then - paint:setImageFilter(Sk.newBlurImageFilter(sigma, sigma)) - end - paint:setAlpha(alpha) -end - -function fade_slide_transition(prev, next, is_forward) - local rec = { - paint = Sk.newPaint(), - prevDrawable = prev, - nextDrawable = next, - proc = function(self, canvas, drawSlideProc) - if self:isDone() then - drawSlideProc(canvas) - return nil - end - - set_blur(self.paint, self.prev_a) - self.prevDrawable:draw(canvas, self.prev_x, 0, self.paint) - - set_blur(self.paint, self.next_a) - self.nextDrawable:draw(canvas, self.next_x, 0, self.paint) - self:step() - return self - end - } - if is_forward then - rec.prev_x = 0 - rec.prev_a = 1 - rec.next_x = 640 - rec.next_a = 0 - rec.isDone = function (self) return self.next_x <= 0 end - rec.step = function (self) - self.next_x = self.next_x - 20 - self.next_a = (640 - self.next_x) / 640 - self.prev_a = 1 - self.next_a - end - else - rec.prev_x = 0 - rec.prev_a = 1 - rec.next_x = 0 - rec.next_a = 0 - rec.isDone = function (self) return self.prev_x >= 640 end - rec.step = function (self) - self.prev_x = self.prev_x + 20 - self.prev_a = (640 - self.prev_x) / 640 - self.next_a = 1 - self.prev_a - end - end - return rec -end - -function fade_transition(prev, next, is_forward) - local rec = { - paint = Sk.newPaint(), - prevDrawable = prev, - nextDrawable = next, - proc = function(self, canvas, drawSlideProc) - if self:isDone() then - drawSlideProc(canvas) - return nil - end - - set_blur(self.paint, self.prev_a) - self.prevDrawable:draw(canvas, 0, 0, self.paint) - - set_blur(self.paint, self.next_a) - self.nextDrawable:draw(canvas, 0, 0, self.paint) - self:step() - return self - end - } - rec.prev_a = 1 - rec.next_a = 0 - rec.isDone = function (self) return self.next_a >= 1 end - rec.step = function (self) - self.prev_a = math.max(self.prev_a - 0.025, 0) - self.next_a = 1 - self.prev_a - end - - return rec -end - -function rotate_transition(prev, next, is_forward) - local rec = { - angle = 0, - prevDrawable = prev, - nextDrawable = next, - activeDrawable = prev, - proc = function(self, canvas, drawSlideProc) - if self:isDone() then - drawSlideProc(canvas) - return nil - end - - canvas:save() - canvas:translate(320, 240) - canvas:rotate(self.angle) - canvas:translate(-320, -240) - self.activeDrawable:draw(canvas, 0, 0) - self:step() - return self - end, - isDone = function (self) return self.angle >= 360 or self.angle <= -360 end - } - if is_forward then - rec.step = function (self) - self.angle = self.angle + 10 - if self.angle >= 180 then - self.activeDrawable = self.nextDrawable - end - end - else - rec.step = function (self) - self.angle = self.angle - 10 - if self.angle <= -180 then - self.activeDrawable = self.nextDrawable - end - end - end - return rec -end - -function zoom_transition(prev, next, is_forward) - local rec = { - scale = 1, - scale_delta = .95, - scale_limit = 0.2, - pivot_x = 320, - pivot_y = 240, - prevDrawable = prev, - nextDrawable = next, - activeDrawable = prev, - proc = function(self, canvas, drawSlideProc) - if self:isDone() then - drawSlideProc(canvas) - return nil - end - - canvas:translate(self.pivot_x, self.pivot_y) - canvas:scale(self.scale, self.scale) - canvas:translate(-self.pivot_x, -self.pivot_y) - self.activeDrawable:draw(canvas, 0, 0) - self:step() - return self - end, - isDone = function (self) return self.scale > 1 end, - step = function (self) - if self.scale < self.scale_limit then - self.scale = self.scale_limit - self.scale_delta = 1 / self.scale_delta - self.activeDrawable = self.nextDrawable - end - self.scale = self.scale * self.scale_delta - end - } - return rec -end - -gTransitionTable = { - fade = fade_transition, - slide = slide_transition, - fade_slide = fade_slide_transition, - rotate = rotate_transition, - zoom = zoom_transition, -} - diff --git a/resources/slides_utils.lua b/resources/slides_utils.lua deleted file mode 100644 index 3b1230c10b..0000000000 --- a/resources/slides_utils.lua +++ /dev/null @@ -1,102 +0,0 @@ -function tostr(t) - local str = "" - for k, v in next, t do - if #str > 0 then - str = str .. ", " - end - if type(k) == "number" then - str = str .. "[" .. k .. "] = " - else - str = str .. tostring(k) .. " = " - end - if type(v) == "table" then - str = str .. "{ " .. tostr(v) .. " }" - elseif type(v) == "string" then - str = str .. '"' .. v .. '"' - else - str = str .. tostring(v) - end - end - return str -end - -function trim_ws(s) - return s:match("^%s*(.*)") -end - -function count_hypens(s) - local leftover = s:match("^-*(.*)") - return string.len(s) - string.len(leftover) -end - -function pretty_print_slide(slide) - io.write("{\n") - if slide.transition then - io.write(" transition = \"", slide.transition, "\",\n") - end - for i = 1, #slide do - local node = slide[i] - for j = 0, node.indent do - io.write(" ") - end - io.write("{ ") - io.write(tostr(node)) - io.write(" },\n") - end - io.write("},\n") -end - -function pretty_print_slides(slides) - io.write("gSlides = {\n") - for i = 1, #slides do - pretty_print_slide(slides[i]) - end - io.write("}\n") -end - -function parse_attr(s, lvalue) - local ts = "^<%s*" .. lvalue .. "%s*=%s*(%a+)%s*>$" - return s:match(ts) -end - -function flush(slides, block) - if #block > 0 then - slides[#slides + 1] = block - return {} - end - return block -end - -function parse_file(file) - local slides = {} - local block = {} - - for line in file:lines() do - local s = trim_ws(line) - if #s == 0 then -- done with a block - block = flush(slides, block) - else - local transition_type = parse_attr(s, "transition") - local blockstyle = parse_attr(s, "blockstyle") - if transition_type then - block["transition"] = transition_type - elseif blockstyle then - block["blockstyle"] = blockstyle - else - if block.blockstyle == "code" then - block[#block + 1] = { text = line } - else - local n = count_hypens(s) - block[#block + 1] = { - indent = n, - text = trim_ws(s:sub(n + 1, -1)) - } - end - end - end - end - flush(slides, block) - - return slides -end - diff --git a/resources/test.lua b/resources/test.lua deleted file mode 100644 index 03201baeda..0000000000 --- a/resources/test.lua +++ /dev/null @@ -1,76 +0,0 @@ - -local r = { left = 10, top = 10, right = 100, bottom = 80 } -local x = 0; - -local paint = Sk.newPaint(); -paint:setAntiAlias(true); - -local image -- = Sk.loadImage('/skia/sailboat.jpg'); -function setImageFilename(filename) - image = Sk.loadImage(filename) -end - - -local color = {a = 1, r = 1, g = 0, b = 0}; - -function rnd(range) - return math.random() * range; -end - -rndX = function () return rnd(640) end -rndY = function () return rnd(480) end - -function draw_rand_path(canvas); - if not path_paint then - path_paint = Sk.newPaint(); - path_paint:setAntiAlias(true); - end - path_paint:setColor({a = 1, r = math.random(), g = math.random(), b = math.random() }); - - local path = Sk.newPath(); - path:moveTo(rndX(), rndY()); - for i = 0, 50 do - path:quadTo(rndX(), rndY(), rndX(), rndY()); - end - canvas:drawPath(path, path_paint); - - paint:setColor{a=1,r=0,g=0,b=1}; - local align = { 'left', 'center', 'right' }; - paint:setTextSize(30); - for k, v in next, align do - paint:setTextAlign(v); - canvas:drawText('Hamburgefons', 320, 200 + 30*k, paint); - end -end - -function onStartup() - local paint = Sk.newPaint(); - paint:setColor{a=1, r=1, g=0, b=0}; - if false then - local doc = Sk.newDocumentPDF('out/test.pdf'); - local canvas = doc:beginPage(72*8.5, 72*11); - canvas:drawText('Hello Lua', 300, 300, paint); - doc:close(); - doc = nil; - end -end - -function onDrawContent(canvas) - draw_rand_path(canvas); - color.g = x / 100; - paint:setColor(color) - canvas:translate(x, 0); - canvas:drawOval(r, paint) - x = x + 1; - local r2 = {} - r2.left = x; - r2.top = r.bottom + 50; - r2.right = r2.left + image:width() * 1; - r2.bottom = r2.top + image:height() * 1; - canvas:drawImageRect(image, nil, r2, 0.75); - if x > 200 then x = 0 end; - - return true -- so we can animate -end - -onStartup() diff --git a/resources/test640x479.gif b/resources/test640x479.gif deleted file mode 100644 index a17cb083bb..0000000000 Binary files a/resources/test640x479.gif and /dev/null differ diff --git a/resources/webp-animated.webp b/resources/webp-animated.webp deleted file mode 100755 index 35a8dfcf34..0000000000 Binary files a/resources/webp-animated.webp and /dev/null differ diff --git a/resources/webp-color-profile-crash.webp b/resources/webp-color-profile-crash.webp deleted file mode 100644 index 3b0904e0f2..0000000000 Binary files a/resources/webp-color-profile-crash.webp and /dev/null differ diff --git a/resources/webp-color-profile-lossless.webp b/resources/webp-color-profile-lossless.webp deleted file mode 100644 index 4fd63d5794..0000000000 Binary files a/resources/webp-color-profile-lossless.webp and /dev/null differ diff --git a/resources/webp-color-profile-lossy-alpha.webp b/resources/webp-color-profile-lossy-alpha.webp deleted file mode 100644 index 1a13084e77..0000000000 Binary files a/resources/webp-color-profile-lossy-alpha.webp and /dev/null differ diff --git a/resources/webp-color-profile-lossy.webp b/resources/webp-color-profile-lossy.webp deleted file mode 100644 index fdff0a9941..0000000000 Binary files a/resources/webp-color-profile-lossy.webp and /dev/null differ diff --git a/resources/yellow_rose.png b/resources/yellow_rose.png deleted file mode 100644 index 140c0b9c56..0000000000 Binary files a/resources/yellow_rose.png and /dev/null differ diff --git a/resources/yellow_rose.webp b/resources/yellow_rose.webp deleted file mode 100644 index f7dc20839e..0000000000 Binary files a/resources/yellow_rose.webp and /dev/null differ diff --git a/samplecode/SampleFilterQuality.cpp b/samplecode/SampleFilterQuality.cpp index a68fa173fc..d7edbd3e90 100644 --- a/samplecode/SampleFilterQuality.cpp +++ b/samplecode/SampleFilterQuality.cpp @@ -28,7 +28,7 @@ static sk_sp make_surface(SkCanvas* canvas, const SkImageInfo& info) } static sk_sp make_shader(const SkRect& bounds) { - sk_sp image(GetResourceAsImage("mandrill_128.png")); + sk_sp image(GetResourceAsImage("images/mandrill_128.png")); return image ? image->makeShader() : nullptr; } diff --git a/samplecode/SampleIdentityScale.cpp b/samplecode/SampleIdentityScale.cpp index 6bf948daed..2ec9112800 100644 --- a/samplecode/SampleIdentityScale.cpp +++ b/samplecode/SampleIdentityScale.cpp @@ -80,5 +80,5 @@ private: ////////////////////////////////////////////////////////////////////////////// -static SkView* MyFactory() { return new IdentityScaleView("mandrill_256.png"); } +static SkView* MyFactory() { return new IdentityScaleView("images/mandrill_256.png"); } static SkViewRegister reg(MyFactory); diff --git a/samplecode/SampleLayers.cpp b/samplecode/SampleLayers.cpp index 36ed2ab666..37dae888f9 100644 --- a/samplecode/SampleLayers.cpp +++ b/samplecode/SampleLayers.cpp @@ -213,7 +213,7 @@ public: BackdropView() { fCenter.set(200, 150); fAngle = 0; - fImage = GetResourceAsImage("mandrill_512.png"); + fImage = GetResourceAsImage("images/mandrill_512.png"); fFilter = SkDilateImageFilter::Make(8, 8, nullptr); } diff --git a/samplecode/SampleLua.cpp b/samplecode/SampleLua.cpp index 99c5525b85..848a942e00 100644 --- a/samplecode/SampleLua.cpp +++ b/samplecode/SampleLua.cpp @@ -18,8 +18,8 @@ extern "C" { #include "lauxlib.h" } -//#define LUA_FILENAME "test.lua" -#define LUA_FILENAME "slides.lua" +//#define LUA_FILENAME "lua/test.lua" +#define LUA_FILENAME "lua/slides.lua" static const char gDrawName[] = "onDrawContent"; static const char gClickName[] = "onClickHandler"; @@ -44,7 +44,7 @@ public: ~LuaView() override { delete fLua; } void setImageFilename(lua_State* L) { - SkString str = GetResourcePath("mandrill_256.png"); + SkString str = GetResourcePath("images/mandrill_256.png"); lua_getglobal(L, "setImageFilename"); if (lua_isfunction(L, -1)) { diff --git a/samplecode/SampleShadowReference.cpp b/samplecode/SampleShadowReference.cpp index ef63fc5b4e..b3d462df62 100755 --- a/samplecode/SampleShadowReference.cpp +++ b/samplecode/SampleShadowReference.cpp @@ -35,7 +35,7 @@ public: protected: void onOnceBeforeDraw() override { fRRectPath.addRRect(SkRRect::MakeRectXY(SkRect::MakeXYWH(-130, -128.5, 130, 128.5), 4, 4)); - fReferenceImage = GetResourceAsImage("shadowreference.png"); + fReferenceImage = GetResourceAsImage("images/shadowreference.png"); } // overrides from SkEventSink diff --git a/samplecode/SampleShip.cpp b/samplecode/SampleShip.cpp index 3abfaf7f05..de650af03f 100644 --- a/samplecode/SampleShip.cpp +++ b/samplecode/SampleShip.cpp @@ -48,10 +48,10 @@ static void draw_atlas_sim(SkCanvas* canvas, SkImage* atlas, const SkRSXform xfo class DrawShipView : public SampleView { public: DrawShipView(const char name[], DrawAtlasProc proc) : fName(name), fProc(proc) { - fAtlas = GetResourceAsImage("ship.png"); + fAtlas = GetResourceAsImage("images/ship.png"); if (!fAtlas) { SkDebugf("\nCould not decode file ship.png. Falling back to penguin mode.\n"); - fAtlas = GetResourceAsImage("baby_tux.png"); + fAtlas = GetResourceAsImage("images/baby_tux.png"); if (!fAtlas) { SkDebugf("\nCould not decode file baby_tux.png. Did you forget" " to set the resourcePath?\n"); diff --git a/samplecode/SampleSubpixelTranslate.cpp b/samplecode/SampleSubpixelTranslate.cpp index 79500037be..51b5ef6631 100644 --- a/samplecode/SampleSubpixelTranslate.cpp +++ b/samplecode/SampleSubpixelTranslate.cpp @@ -108,5 +108,5 @@ private: ////////////////////////////////////////////////////////////////////////////// -static SkView* MyFactory() { return new SubpixelTranslateView("mandrill_256.png", .05f, .05f); } +static SkView* MyFactory() { return new SubpixelTranslateView("images/mandrill_256.png", .05f, .05f); } static SkViewRegister reg(MyFactory); diff --git a/samplecode/SampleUnpremul.cpp b/samplecode/SampleUnpremul.cpp index 57f0efc669..108d70914f 100644 --- a/samplecode/SampleUnpremul.cpp +++ b/samplecode/SampleUnpremul.cpp @@ -176,6 +176,6 @@ private: ////////////////////////////////////////////////////////////////////////////// static SkView* MyFactory() { - return new UnpremulView(GetResourcePath()); + return new UnpremulView(GetResourcePath("images")); } static SkViewRegister reg(MyFactory); diff --git a/tests/CodecAnimTest.cpp b/tests/CodecAnimTest.cpp index b274ee538a..b09c9251d1 100644 --- a/tests/CodecAnimTest.cpp +++ b/tests/CodecAnimTest.cpp @@ -33,7 +33,7 @@ static void write_bm(const char* name, const SkBitmap& bm) { } DEF_TEST(Codec_trunc, r) { - sk_sp data(GetResourceAsData("box.gif")); + sk_sp data(GetResourceAsData("images/box.gif")); if (!data) { return; } @@ -44,7 +44,7 @@ DEF_TEST(Codec_trunc, r) { // animated image with a frame that has alpha but then blends onto an opaque // frame making the result opaque. Test that we can decode such a frame. DEF_TEST(Codec_565, r) { - sk_sp data(GetResourceAsData("blendBG.webp")); + sk_sp data(GetResourceAsData("images/blendBG.webp")); if (!data) { return; } @@ -86,13 +86,13 @@ DEF_TEST(Codec_frames, r) { int fRepetitionCount; std::vector fDisposalMethods; } gRecs[] = { - { "required.gif", 7, + { "images/required.gif", 7, { 0, 1, 2, 3, 4, 5 }, { kOpaque, kUnpremul, kUnpremul, kUnpremul, kUnpremul, kUnpremul }, { 100, 100, 100, 100, 100, 100, 100 }, 0, { kKeep, kRestoreBG, kKeep, kKeep, kKeep, kRestoreBG, kKeep } }, - { "alphabetAnim.gif", 13, + { "images/alphabetAnim.gif", 13, { SkCodec::kNone, 0, 0, 0, 0, 5, 6, SkCodec::kNone, SkCodec::kNone, 9, 10, 11 }, { kUnpremul, kUnpremul, kUnpremul, kUnpremul, kUnpremul, kUnpremul, @@ -102,7 +102,7 @@ DEF_TEST(Codec_frames, r) { { kKeep, kRestorePrev, kRestorePrev, kRestorePrev, kRestorePrev, kRestoreBG, kKeep, kRestoreBG, kRestoreBG, kKeep, kKeep, kRestoreBG, kKeep } }, - { "randPixelsAnim2.gif", 4, + { "images/randPixelsAnim2.gif", 4, // required frames { 0, 0, 1 }, // alphas @@ -112,7 +112,7 @@ DEF_TEST(Codec_frames, r) { // repetition count 0, { kKeep, kKeep, kRestorePrev, kKeep } }, - { "randPixelsAnim.gif", 13, + { "images/randPixelsAnim.gif", 13, // required frames { 0, 1, 2, 3, 4, 3, 6, 7, 7, 7, 9, 9 }, { kUnpremul, kUnpremul, kUnpremul, kUnpremul, kUnpremul, kUnpremul, @@ -124,34 +124,34 @@ DEF_TEST(Codec_frames, r) { { kKeep, kKeep, kKeep, kKeep, kRestoreBG, kRestoreBG, kRestoreBG, kRestoreBG, kRestorePrev, kRestoreBG, kRestorePrev, kRestorePrev, kRestorePrev, } }, - { "box.gif", 1, {}, {}, {}, 0, { kKeep } }, - { "color_wheel.gif", 1, {}, {}, {}, 0, { kKeep } }, - { "test640x479.gif", 4, { 0, 1, 2 }, + { "images/box.gif", 1, {}, {}, {}, 0, { kKeep } }, + { "images/color_wheel.gif", 1, {}, {}, {}, 0, { kKeep } }, + { "images/test640x479.gif", 4, { 0, 1, 2 }, { kOpaque, kOpaque, kOpaque }, { 200, 200, 200, 200 }, SkCodec::kRepetitionCountInfinite, { kKeep, kKeep, kKeep, kKeep } }, - { "colorTables.gif", 2, { 0 }, { kOpaque }, { 1000, 1000 }, 5, + { "images/colorTables.gif", 2, { 0 }, { kOpaque }, { 1000, 1000 }, 5, { kKeep, kKeep } }, - { "arrow.png", 1, {}, {}, {}, 0, {} }, - { "google_chrome.ico", 1, {}, {}, {}, 0, {} }, - { "brickwork-texture.jpg", 1, {}, {}, {}, 0, {} }, + { "images/arrow.png", 1, {}, {}, {}, 0, {} }, + { "images/google_chrome.ico", 1, {}, {}, {}, 0, {} }, + { "images/brickwork-texture.jpg", 1, {}, {}, {}, 0, {} }, #if defined(SK_CODEC_DECODES_RAW) && (!defined(_WIN32)) - { "dng_with_preview.dng", 1, {}, {}, {}, 0, {} }, + { "images/dng_with_preview.dng", 1, {}, {}, {}, 0, {} }, #endif - { "mandrill.wbmp", 1, {}, {}, {}, 0, {} }, - { "randPixels.bmp", 1, {}, {}, {}, 0, {} }, - { "yellow_rose.webp", 1, {}, {}, {}, 0, {} }, - { "webp-animated.webp", 3, { 0, 1 }, { kOpaque, kOpaque }, + { "images/mandrill.wbmp", 1, {}, {}, {}, 0, {} }, + { "images/randPixels.bmp", 1, {}, {}, {}, 0, {} }, + { "images/yellow_rose.webp", 1, {}, {}, {}, 0, {} }, + { "images/webp-animated.webp", 3, { 0, 1 }, { kOpaque, kOpaque }, { 1000, 500, 1000 }, SkCodec::kRepetitionCountInfinite, { kKeep, kKeep, kKeep } }, - { "blendBG.webp", 7, { 0, SkCodec::kNone, SkCodec::kNone, SkCodec::kNone, + { "images/blendBG.webp", 7, { 0, SkCodec::kNone, SkCodec::kNone, SkCodec::kNone, 4, 4 }, { kOpaque, kOpaque, kUnpremul, kOpaque, kUnpremul, kUnpremul }, { 525, 500, 525, 437, 609, 729, 444 }, 7, { kKeep, kKeep, kKeep, kKeep, kKeep, kKeep, kKeep } }, - { "required.webp", 7, + { "images/required.webp", 7, { 0, 1, 1, SkCodec::kNone, 4, 4 }, { kOpaque, kUnpremul, kUnpremul, kOpaque, kOpaque, kOpaque }, { 100, 100, 100, 100, 100, 100, 100 }, diff --git a/tests/CodecExactReadTest.cpp b/tests/CodecExactReadTest.cpp index d00c0bcf97..6189bdfd53 100644 --- a/tests/CodecExactReadTest.cpp +++ b/tests/CodecExactReadTest.cpp @@ -44,13 +44,13 @@ private: // end of the data. Some other SkCodecs do, but some Android apps rely on not // doing so for PNGs. Test on other formats that work. DEF_TEST(Codec_end, r) { - for (const char* path : { "plane.png", - "yellow_rose.png", - "plane_interlaced.png", - "google_chrome.ico", - "color_wheel.ico", - "mandrill.wbmp", - "randPixels.bmp", + for (const char* path : { "images/plane.png", + "images/yellow_rose.png", + "images/plane_interlaced.png", + "images/google_chrome.ico", + "images/color_wheel.ico", + "images/mandrill.wbmp", + "images/randPixels.bmp", }) { sk_sp data = GetResourceAsData(path); if (!data) { diff --git a/tests/CodecPartialTest.cpp b/tests/CodecPartialTest.cpp index 35249ac7d2..561dddd875 100644 --- a/tests/CodecPartialTest.cpp +++ b/tests/CodecPartialTest.cpp @@ -125,26 +125,26 @@ DEF_TEST(Codec_partial, r) { #if 0 // FIXME (scroggo): SkPngCodec needs to use SkStreamBuffer in order to // support incremental decoding. - test_partial(r, "plane.png"); - test_partial(r, "plane_interlaced.png"); - test_partial(r, "yellow_rose.png"); - test_partial(r, "index8.png"); - test_partial(r, "color_wheel.png"); - test_partial(r, "mandrill_256.png"); - test_partial(r, "mandrill_32.png"); - test_partial(r, "arrow.png"); - test_partial(r, "randPixels.png"); - test_partial(r, "baby_tux.png"); + test_partial(r, "images/plane.png"); + test_partial(r, "images/plane_interlaced.png"); + test_partial(r, "images/yellow_rose.png"); + test_partial(r, "images/index8.png"); + test_partial(r, "images/color_wheel.png"); + test_partial(r, "images/mandrill_256.png"); + test_partial(r, "images/mandrill_32.png"); + test_partial(r, "images/arrow.png"); + test_partial(r, "images/randPixels.png"); + test_partial(r, "images/baby_tux.png"); #endif - test_partial(r, "box.gif"); - test_partial(r, "randPixels.gif", 215); - test_partial(r, "color_wheel.gif"); + test_partial(r, "images/box.gif"); + test_partial(r, "images/randPixels.gif", 215); + test_partial(r, "images/color_wheel.gif"); } // Verify that when decoding an animated gif byte by byte we report the correct // fRequiredFrame as soon as getFrameInfo reports the frame. DEF_TEST(Codec_requiredFrame, r) { - auto path = "colorTables.gif"; + auto path = "images/colorTables.gif"; sk_sp file = GetResourceAsData(path); if (!file) { return; @@ -189,7 +189,7 @@ DEF_TEST(Codec_requiredFrame, r) { } DEF_TEST(Codec_partialAnim, r) { - auto path = "test640x479.gif"; + auto path = "images/test640x479.gif"; sk_sp file = GetResourceAsData(path); if (!file) { return; @@ -323,9 +323,9 @@ static void test_interleaved(skiatest::Reporter* r, const char* name) { } DEF_TEST(Codec_rewind, r) { - test_interleaved(r, "plane.png"); - test_interleaved(r, "plane_interlaced.png"); - test_interleaved(r, "box.gif"); + test_interleaved(r, "images/plane.png"); + test_interleaved(r, "images/plane_interlaced.png"); + test_interleaved(r, "images/box.gif"); } // Modified version of the giflib logo, from @@ -401,7 +401,7 @@ DEF_TEST(Codec_GifPreMap, r) { } DEF_TEST(Codec_emptyIDAT, r) { - const char* name = "baby_tux.png"; + const char* name = "images/baby_tux.png"; sk_sp file = GetResourceAsData(name); if (!file) { return; @@ -425,13 +425,13 @@ DEF_TEST(Codec_emptyIDAT, r) { } DEF_TEST(Codec_incomplete, r) { - for (const char* name : { "baby_tux.png", - "baby_tux.webp", - "CMYK.jpg", - "color_wheel.gif", - "google_chrome.ico", - "rle.bmp", - "mandrill.wbmp", + for (const char* name : { "images/baby_tux.png", + "images/baby_tux.webp", + "images/CMYK.jpg", + "images/color_wheel.gif", + "images/google_chrome.ico", + "images/rle.bmp", + "images/mandrill.wbmp", }) { sk_sp file = GetResourceAsData(name); if (!name) { diff --git a/tests/CodecTest.cpp b/tests/CodecTest.cpp index 91b07ef49e..ab21e4a2c1 100644 --- a/tests/CodecTest.cpp +++ b/tests/CodecTest.cpp @@ -457,70 +457,70 @@ static void check(skiatest::Reporter* r, } DEF_TEST(Codec_wbmp, r) { - check(r, "mandrill.wbmp", SkISize::Make(512, 512), true, false, true); + check(r, "images/mandrill.wbmp", SkISize::Make(512, 512), true, false, true); } DEF_TEST(Codec_webp, r) { - check(r, "baby_tux.webp", SkISize::Make(386, 395), false, true, true); - check(r, "color_wheel.webp", SkISize::Make(128, 128), false, true, true); - check(r, "yellow_rose.webp", SkISize::Make(400, 301), false, true, true); + check(r, "images/baby_tux.webp", SkISize::Make(386, 395), false, true, true); + check(r, "images/color_wheel.webp", SkISize::Make(128, 128), false, true, true); + check(r, "images/yellow_rose.webp", SkISize::Make(400, 301), false, true, true); } DEF_TEST(Codec_bmp, r) { - check(r, "randPixels.bmp", SkISize::Make(8, 8), true, false, true); - check(r, "rle.bmp", SkISize::Make(320, 240), true, false, true); + check(r, "images/randPixels.bmp", SkISize::Make(8, 8), true, false, true); + check(r, "images/rle.bmp", SkISize::Make(320, 240), true, false, true); } DEF_TEST(Codec_ico, r) { // FIXME: We are not ready to test incomplete ICOs // These two tests examine interestingly different behavior: // Decodes an embedded BMP image - check(r, "color_wheel.ico", SkISize::Make(128, 128), true, false, false); + check(r, "images/color_wheel.ico", SkISize::Make(128, 128), true, false, false); // Decodes an embedded PNG image - check(r, "google_chrome.ico", SkISize::Make(256, 256), false, false, false, true); + check(r, "images/google_chrome.ico", SkISize::Make(256, 256), false, false, false, true); } DEF_TEST(Codec_gif, r) { - check(r, "box.gif", SkISize::Make(200, 55), false, false, true, true); - check(r, "color_wheel.gif", SkISize::Make(128, 128), false, false, true, true); + check(r, "images/box.gif", SkISize::Make(200, 55), false, false, true, true); + check(r, "images/color_wheel.gif", SkISize::Make(128, 128), false, false, true, true); // randPixels.gif is too small to test incomplete - check(r, "randPixels.gif", SkISize::Make(8, 8), false, false, false, true); + check(r, "images/randPixels.gif", SkISize::Make(8, 8), false, false, false, true); } DEF_TEST(Codec_jpg, r) { - check(r, "CMYK.jpg", SkISize::Make(642, 516), true, false, true); - check(r, "color_wheel.jpg", SkISize::Make(128, 128), true, false, true); + check(r, "images/CMYK.jpg", SkISize::Make(642, 516), true, false, true); + check(r, "images/color_wheel.jpg", SkISize::Make(128, 128), true, false, true); // grayscale.jpg is too small to test incomplete - check(r, "grayscale.jpg", SkISize::Make(128, 128), true, false, false); - check(r, "mandrill_512_q075.jpg", SkISize::Make(512, 512), true, false, true); + check(r, "images/grayscale.jpg", SkISize::Make(128, 128), true, false, false); + check(r, "images/mandrill_512_q075.jpg", SkISize::Make(512, 512), true, false, true); // randPixels.jpg is too small to test incomplete - check(r, "randPixels.jpg", SkISize::Make(8, 8), true, false, false); + check(r, "images/randPixels.jpg", SkISize::Make(8, 8), true, false, false); } DEF_TEST(Codec_png, r) { - check(r, "arrow.png", SkISize::Make(187, 312), false, false, true, true); - check(r, "baby_tux.png", SkISize::Make(240, 246), false, false, true, true); - check(r, "color_wheel.png", SkISize::Make(128, 128), false, false, true, true); + check(r, "images/arrow.png", SkISize::Make(187, 312), false, false, true, true); + check(r, "images/baby_tux.png", SkISize::Make(240, 246), false, false, true, true); + check(r, "images/color_wheel.png", SkISize::Make(128, 128), false, false, true, true); // half-transparent-white-pixel.png is too small to test incomplete - check(r, "half-transparent-white-pixel.png", SkISize::Make(1, 1), false, false, false, true); - check(r, "mandrill_128.png", SkISize::Make(128, 128), false, false, true, true); - check(r, "mandrill_16.png", SkISize::Make(16, 16), false, false, true, true); - check(r, "mandrill_256.png", SkISize::Make(256, 256), false, false, true, true); - check(r, "mandrill_32.png", SkISize::Make(32, 32), false, false, true, true); - check(r, "mandrill_512.png", SkISize::Make(512, 512), false, false, true, true); - check(r, "mandrill_64.png", SkISize::Make(64, 64), false, false, true, true); - check(r, "plane.png", SkISize::Make(250, 126), false, false, true, true); - check(r, "plane_interlaced.png", SkISize::Make(250, 126), false, false, true, true); - check(r, "randPixels.png", SkISize::Make(8, 8), false, false, true, true); - check(r, "yellow_rose.png", SkISize::Make(400, 301), false, false, true, true); + check(r, "images/half-transparent-white-pixel.png", SkISize::Make(1, 1), false, false, false, true); + check(r, "images/mandrill_128.png", SkISize::Make(128, 128), false, false, true, true); + check(r, "images/mandrill_16.png", SkISize::Make(16, 16), false, false, true, true); + check(r, "images/mandrill_256.png", SkISize::Make(256, 256), false, false, true, true); + check(r, "images/mandrill_32.png", SkISize::Make(32, 32), false, false, true, true); + check(r, "images/mandrill_512.png", SkISize::Make(512, 512), false, false, true, true); + check(r, "images/mandrill_64.png", SkISize::Make(64, 64), false, false, true, true); + check(r, "images/plane.png", SkISize::Make(250, 126), false, false, true, true); + check(r, "images/plane_interlaced.png", SkISize::Make(250, 126), false, false, true, true); + check(r, "images/randPixels.png", SkISize::Make(8, 8), false, false, true, true); + check(r, "images/yellow_rose.png", SkISize::Make(400, 301), false, false, true, true); } // Disable RAW tests for Win32. #if defined(SK_CODEC_DECODES_RAW) && (!defined(_WIN32)) DEF_TEST(Codec_raw, r) { - check(r, "sample_1mp.dng", SkISize::Make(600, 338), false, false, false); - check(r, "sample_1mp_rotated.dng", SkISize::Make(600, 338), false, false, false); - check(r, "dng_with_preview.dng", SkISize::Make(600, 338), true, false, false); + check(r, "images/sample_1mp.dng", SkISize::Make(600, 338), false, false, false); + check(r, "images/sample_1mp_rotated.dng", SkISize::Make(600, 338), false, false, false); + check(r, "images/dng_with_preview.dng", SkISize::Make(600, 338), true, false, false); } #endif @@ -598,32 +598,32 @@ static void test_dimensions(skiatest::Reporter* r, const char path[]) { // Ensure that onGetScaledDimensions returns valid image dimensions to use for decodes DEF_TEST(Codec_Dimensions, r) { // JPG - test_dimensions(r, "CMYK.jpg"); - test_dimensions(r, "color_wheel.jpg"); - test_dimensions(r, "grayscale.jpg"); - test_dimensions(r, "mandrill_512_q075.jpg"); - test_dimensions(r, "randPixels.jpg"); + test_dimensions(r, "images/CMYK.jpg"); + test_dimensions(r, "images/color_wheel.jpg"); + test_dimensions(r, "images/grayscale.jpg"); + test_dimensions(r, "images/mandrill_512_q075.jpg"); + test_dimensions(r, "images/randPixels.jpg"); // Decoding small images with very large scaling factors is a potential // source of bugs and crashes. We disable these tests in Gold because // tiny images are not very useful to look at. // Here we make sure that we do not crash or access illegal memory when // performing scaled decodes on small images. - test_dimensions(r, "1x1.png"); - test_dimensions(r, "2x2.png"); - test_dimensions(r, "3x3.png"); - test_dimensions(r, "3x1.png"); - test_dimensions(r, "1x1.png"); - test_dimensions(r, "16x1.png"); - test_dimensions(r, "1x16.png"); - test_dimensions(r, "mandrill_16.png"); + test_dimensions(r, "images/1x1.png"); + test_dimensions(r, "images/2x2.png"); + test_dimensions(r, "images/3x3.png"); + test_dimensions(r, "images/3x1.png"); + test_dimensions(r, "images/1x1.png"); + test_dimensions(r, "images/16x1.png"); + test_dimensions(r, "images/1x16.png"); + test_dimensions(r, "images/mandrill_16.png"); // RAW // Disable RAW tests for Win32. #if defined(SK_CODEC_DECODES_RAW) && (!defined(_WIN32)) - test_dimensions(r, "sample_1mp.dng"); - test_dimensions(r, "sample_1mp_rotated.dng"); - test_dimensions(r, "dng_with_preview.dng"); + test_dimensions(r, "images/sample_1mp.dng"); + test_dimensions(r, "images/sample_1mp_rotated.dng"); + test_dimensions(r, "images/dng_with_preview.dng"); #endif } @@ -846,7 +846,7 @@ private: // Test that the RawCodec works also for not asset stream. This will test the code path using // SkRawBufferedStream instead of SkRawAssetStream. DEF_TEST(Codec_raw_notseekable, r) { - const char* path = "dng_with_preview.dng"; + const char* path = "images/dng_with_preview.dng"; SkString fullPath(GetResourcePath(path)); sk_sp data(SkData::MakeFromFileName(fullPath.c_str())); if (!data) { @@ -865,7 +865,7 @@ DEF_TEST(Codec_raw_notseekable, r) { // Test that even if webp_parse_header fails to peek enough, it will fall back to read() // + rewind() and succeed. DEF_TEST(Codec_webp_peek, r) { - const char* path = "baby_tux.webp"; + const char* path = "images/baby_tux.webp"; SkString fullPath(GetResourcePath(path)); auto data = SkData::MakeFromFileName(fullPath.c_str()); if (!data) { @@ -892,7 +892,7 @@ DEF_TEST(Codec_webp_peek, r) { // a couple of bits to be 1 (so long as they do not overlap with 0x9F). // Test that SkCodec now supports an image with these bits set. DEF_TEST(Codec_wbmp_restrictive, r) { - const char* path = "mandrill.wbmp"; + const char* path = "images/mandrill.wbmp"; std::unique_ptr stream(GetResourceAsStream(path)); if (!stream) { return; @@ -942,7 +942,7 @@ DEF_TEST(Codec_wbmp_max_size, r) { } DEF_TEST(Codec_jpeg_rewind, r) { - const char* path = "mandrill_512_q075.jpg"; + const char* path = "images/mandrill_512_q075.jpg"; sk_sp data(GetResourceAsData(path)); if (!data) { return; @@ -1017,8 +1017,8 @@ static void check_color_xform(skiatest::Reporter* r, const char* path) { } DEF_TEST(Codec_ColorXform, r) { - check_color_xform(r, "mandrill_512_q075.jpg"); - check_color_xform(r, "mandrill_512.png"); + check_color_xform(r, "images/mandrill_512_q075.jpg"); + check_color_xform(r, "images/mandrill_512.png"); } static bool color_type_match(SkColorType origColorType, SkColorType codecColorType) { @@ -1069,7 +1069,7 @@ static void check_round_trip(skiatest::Reporter* r, SkCodec* origCodec, const Sk } DEF_TEST(Codec_PngRoundTrip, r) { - auto codec = SkCodec::MakeFromStream(GetResourceAsStream("mandrill_512_q075.jpg")); + auto codec = SkCodec::MakeFromStream(GetResourceAsStream("images/mandrill_512_q075.jpg")); SkColorType colorTypesOpaque[] = { kRGB_565_SkColorType, kRGBA_8888_SkColorType, kBGRA_8888_SkColorType @@ -1079,10 +1079,10 @@ DEF_TEST(Codec_PngRoundTrip, r) { check_round_trip(r, codec.get(), newInfo); } - codec = SkCodec::MakeFromStream(GetResourceAsStream("grayscale.jpg")); + codec = SkCodec::MakeFromStream(GetResourceAsStream("images/grayscale.jpg")); check_round_trip(r, codec.get(), codec->getInfo()); - codec = SkCodec::MakeFromStream(GetResourceAsStream("yellow_rose.png")); + codec = SkCodec::MakeFromStream(GetResourceAsStream("images/yellow_rose.png")); SkColorType colorTypesWithAlpha[] = { kRGBA_8888_SkColorType, kBGRA_8888_SkColorType @@ -1100,7 +1100,7 @@ DEF_TEST(Codec_PngRoundTrip, r) { } } - codec = SkCodec::MakeFromStream(GetResourceAsStream("index8.png")); + codec = SkCodec::MakeFromStream(GetResourceAsStream("images/index8.png")); for (SkAlphaType alphaType : alphaTypes) { SkImageInfo newInfo = codec->getInfo().makeAlphaType(alphaType) @@ -1167,9 +1167,9 @@ static void test_conversion_possible(skiatest::Reporter* r, const char* path, } DEF_TEST(Codec_F16ConversionPossible, r) { - test_conversion_possible(r, "color_wheel.webp", false, false); - test_conversion_possible(r, "mandrill_512_q075.jpg", true, false); - test_conversion_possible(r, "yellow_rose.png", false, true); + test_conversion_possible(r, "images/color_wheel.webp", false, false); + test_conversion_possible(r, "images/mandrill_512_q075.jpg", true, false); + test_conversion_possible(r, "images/yellow_rose.png", false, true); } static void decode_frame(skiatest::Reporter* r, SkCodec* codec, size_t frame) { @@ -1186,7 +1186,7 @@ static void decode_frame(skiatest::Reporter* r, SkCodec* codec, size_t frame) { // For an animated GIF, we should only read enough to decode frame 0 if the // client never calls getFrameInfo and only decodes frame 0. DEF_TEST(Codec_skipFullParse, r) { - auto path = "test640x479.gif"; + auto path = "images/test640x479.gif"; auto streamObj = GetResourceAsStream(path); if (!streamObj) { return; @@ -1269,10 +1269,10 @@ DEF_TEST(Codec_fallBack, r) { // Formats that currently do not support incremental decoding auto files = { - "CMYK.jpg", - "color_wheel.ico", - "mandrill.wbmp", - "randPixels.bmp", + "images/CMYK.jpg", + "images/color_wheel.ico", + "images/mandrill.wbmp", + "images/randPixels.bmp", }; for (auto file : files) { auto stream = LimitedRewindingStream::Make(file, SkCodec::MinBufferedBytesNeeded()); @@ -1308,7 +1308,7 @@ DEF_TEST(Codec_fallBack, r) { // This test verifies that we fixed an assert statement that fired when reusing a png codec // after scaling. DEF_TEST(Codec_reusePng, r) { - std::unique_ptr stream(GetResourceAsStream("plane.png")); + std::unique_ptr stream(GetResourceAsStream("images/plane.png")); if (!stream) { return; } @@ -1336,7 +1336,7 @@ DEF_TEST(Codec_reusePng, r) { } DEF_TEST(Codec_rowsDecoded, r) { - auto file = "plane_interlaced.png"; + auto file = "images/plane_interlaced.png"; std::unique_ptr stream(GetResourceAsStream(file)); if (!stream) { return; @@ -1511,7 +1511,7 @@ DEF_TEST(Codec_EncodeICC, r) { } DEF_TEST(Codec_webp_rowsDecoded, r) { - const char* path = "baby_tux.webp"; + const char* path = "images/baby_tux.webp"; sk_sp data(GetResourceAsData(path)); if (!data) { return; diff --git a/tests/ColorSpaceTest.cpp b/tests/ColorSpaceTest.cpp index efbfe8a29c..19e1044162 100644 --- a/tests/ColorSpaceTest.cpp +++ b/tests/ColorSpaceTest.cpp @@ -82,22 +82,22 @@ DEF_TEST(ColorSpace_sRGB, r) { DEF_TEST(ColorSpaceParseICCProfiles, r) { #if (PNG_LIBPNG_VER_MAJOR > 1) || (PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 6) - test_path(r, "color_wheel_with_profile.png", g_sRGB_R, g_sRGB_G, g_sRGB_B, + test_path(r, "images/color_wheel_with_profile.png", g_sRGB_R, g_sRGB_G, g_sRGB_B, kSRGB_SkGammaNamed); #endif const float red[] = { 0.385117f, 0.716904f, 0.0970612f }; const float green[] = { 0.143051f, 0.0606079f, 0.713913f }; const float blue[] = { 0.436035f, 0.222488f, 0.013916f }; - test_path(r, "icc-v2-gbr.jpg", red, green, blue, k2Dot2Curve_SkGammaNamed); + test_path(r, "images/icc-v2-gbr.jpg", red, green, blue, k2Dot2Curve_SkGammaNamed); - test_path(r, "webp-color-profile-crash.webp", + test_path(r, "images/webp-color-profile-crash.webp", red, green, blue, kNonStandard_SkGammaNamed); - test_path(r, "webp-color-profile-lossless.webp", + test_path(r, "images/webp-color-profile-lossless.webp", red, green, blue, kNonStandard_SkGammaNamed); - test_path(r, "webp-color-profile-lossy.webp", + test_path(r, "images/webp-color-profile-lossy.webp", red, green, blue, kNonStandard_SkGammaNamed); - test_path(r, "webp-color-profile-lossy-alpha.webp", + test_path(r, "images/webp-color-profile-lossy-alpha.webp", red, green, blue, kNonStandard_SkGammaNamed); } diff --git a/tests/EncodeTest.cpp b/tests/EncodeTest.cpp index 6638c1e72b..40e99565cb 100644 --- a/tests/EncodeTest.cpp +++ b/tests/EncodeTest.cpp @@ -47,7 +47,7 @@ static std::unique_ptr make(SkEncodedImageFormat format, SkWStream* d static void test_encode(skiatest::Reporter* r, SkEncodedImageFormat format) { SkBitmap bitmap; - bool success = GetResourceAsBitmap("mandrill_128.png", &bitmap); + bool success = GetResourceAsBitmap("images/mandrill_128.png", &bitmap); if (!success) { return; } @@ -132,7 +132,7 @@ static inline bool almost_equals(const SkBitmap& a, const SkBitmap& b, int toler DEF_TEST(Encode_JpegDownsample, r) { SkBitmap bitmap; - bool success = GetResourceAsBitmap("mandrill_128.png", &bitmap); + bool success = GetResourceAsBitmap("images/mandrill_128.png", &bitmap); if (!success) { return; } @@ -244,7 +244,7 @@ static void testPngComments(const SkPixmap& src, SkPngEncoder::Options& options, DEF_TEST(Encode_PngOptions, r) { SkBitmap bitmap; - bool success = GetResourceAsBitmap("mandrill_128.png", &bitmap); + bool success = GetResourceAsBitmap("images/mandrill_128.png", &bitmap); if (!success) { return; } @@ -287,7 +287,7 @@ DEF_TEST(Encode_PngOptions, r) { DEF_TEST(Encode_WebpOptions, r) { SkBitmap bitmap; - bool success = GetResourceAsBitmap("google_chrome.ico", &bitmap); + bool success = GetResourceAsBitmap("images/google_chrome.ico", &bitmap); if (!success) { return; } diff --git a/tests/ExifTest.cpp b/tests/ExifTest.cpp index 4704d20caa..16f62bb778 100644 --- a/tests/ExifTest.cpp +++ b/tests/ExifTest.cpp @@ -10,7 +10,7 @@ #include "Test.h" DEF_TEST(ExifOrientation, r) { - std::unique_ptr stream(GetResourceAsStream("exif-orientation-2-ur.jpg")); + std::unique_ptr stream(GetResourceAsStream("images/exif-orientation-2-ur.jpg")); REPORTER_ASSERT(r, nullptr != stream); if (!stream) { return; @@ -21,7 +21,7 @@ DEF_TEST(ExifOrientation, r) { SkEncodedOrigin origin = codec->getOrigin(); REPORTER_ASSERT(r, kTopRight_SkEncodedOrigin == origin); - codec = SkCodec::MakeFromStream(GetResourceAsStream("mandrill_512_q075.jpg")); + codec = SkCodec::MakeFromStream(GetResourceAsStream("images/mandrill_512_q075.jpg")); REPORTER_ASSERT(r, nullptr != codec); origin = codec->getOrigin(); REPORTER_ASSERT(r, kTopLeft_SkEncodedOrigin == origin); diff --git a/tests/GifTest.cpp b/tests/GifTest.cpp index 29150baeb1..5219825f1b 100644 --- a/tests/GifTest.cpp +++ b/tests/GifTest.cpp @@ -225,7 +225,7 @@ DEF_TEST(Gif, reporter) { // Regression test for decoding a gif image with sampleSize of 4, which was // previously crashing. DEF_TEST(Gif_Sampled, r) { - auto stream = SkFILEStream::Make(GetResourcePath("test640x479.gif").c_str()); + auto stream = SkFILEStream::Make(GetResourcePath("images/test640x479.gif").c_str()); REPORTER_ASSERT(r, stream); if (!stream) { return; @@ -250,7 +250,7 @@ DEF_TEST(Gif_Sampled, r) { // If a GIF file is truncated before the header for the first image is defined, // we should not create an SkCodec. DEF_TEST(Codec_GifTruncated, r) { - sk_sp data(GetResourceAsData("test640x479.gif")); + sk_sp data(GetResourceAsData("images/test640x479.gif")); if (!data) { return; } @@ -262,7 +262,7 @@ DEF_TEST(Codec_GifTruncated, r) { } DEF_TEST(Codec_GifTruncated2, r) { - sk_sp data(GetResourceAsData("box.gif")); + sk_sp data(GetResourceAsData("images/box.gif")); if (!data) { return; } diff --git a/tests/ImageIsOpaqueTest.cpp b/tests/ImageIsOpaqueTest.cpp index bf3dea6334..9b4837a76f 100644 --- a/tests/ImageIsOpaqueTest.cpp +++ b/tests/ImageIsOpaqueTest.cpp @@ -124,8 +124,8 @@ DEF_TEST(Image_isAlphaOnly, reporter) { }; for (auto& image : { SkImage::MakeRasterCopy(pmap), - GetResourceAsImage("mandrill_128.png"), - GetResourceAsImage("color_wheel.jpg"), + GetResourceAsImage("images/mandrill_128.png"), + GetResourceAsImage("images/color_wheel.jpg"), SkImage::MakeFromPicture(make_picture(), { 10, 10 }, nullptr, nullptr, SkImage::BitDepth::kU8, SkColorSpace::MakeSRGB()), diff --git a/tests/ImageTest.cpp b/tests/ImageTest.cpp index d9140cf0f9..1ba3f1d0b4 100644 --- a/tests/ImageTest.cpp +++ b/tests/ImageTest.cpp @@ -957,7 +957,7 @@ static void test_cross_context_image(skiatest::Reporter* reporter, const GrConte } DEF_GPUTEST(SkImage_MakeCrossContextFromEncodedRelease, reporter, options) { - sk_sp data = GetResourceAsData("mandrill_128.png"); + sk_sp data = GetResourceAsData("images/mandrill_128.png"); SkASSERT(data.get()); test_cross_context_image(reporter, options, [&data](GrContext* ctx) { @@ -968,7 +968,7 @@ DEF_GPUTEST(SkImage_MakeCrossContextFromEncodedRelease, reporter, options) { DEF_GPUTEST(SkImage_MakeCrossContextFromPixmapRelease, reporter, options) { SkBitmap bitmap; SkPixmap pixmap; - SkAssertResult(GetResourceAsBitmap("mandrill_128.png", &bitmap) && bitmap.peekPixels(&pixmap)); + SkAssertResult(GetResourceAsBitmap("images/mandrill_128.png", &bitmap) && bitmap.peekPixels(&pixmap)); test_cross_context_image(reporter, options, [&pixmap](GrContext* ctx) { return SkImage::MakeCrossContextFromPixmap(ctx, pixmap, false, nullptr); @@ -1079,10 +1079,10 @@ static inline bool almost_equal(int a, int b) { DEF_TEST(Image_ColorSpace, r) { sk_sp srgb = SkColorSpace::MakeSRGB(); - sk_sp image = GetResourceAsImage("mandrill_512_q075.jpg"); + sk_sp image = GetResourceAsImage("images/mandrill_512_q075.jpg"); REPORTER_ASSERT(r, srgb.get() == image->colorSpace()); - image = GetResourceAsImage("webp-color-profile-lossy.webp"); + image = GetResourceAsImage("images/webp-color-profile-lossy.webp"); SkColorSpaceTransferFn fn; bool success = image->colorSpace()->isNumericalTransferFn(&fn); REPORTER_ASSERT(r, success); @@ -1138,7 +1138,7 @@ DEF_TEST(Image_makeColorSpace, r) { REPORTER_ASSERT(r, almost_equal(0x31, SkGetPackedG32(*adobeBitmap.getAddr32(0, 0)))); REPORTER_ASSERT(r, almost_equal(0x4C, SkGetPackedB32(*adobeBitmap.getAddr32(0, 0)))); - srgbImage = GetResourceAsImage("1x1.png"); + srgbImage = GetResourceAsImage("images/1x1.png"); p3Image = srgbImage->makeColorSpace(p3, SkTransferFunctionBehavior::kIgnore); success = p3Image->asLegacyBitmap(&p3Bitmap, SkImage::kRO_LegacyBitmapMode); REPORTER_ASSERT(r, success); diff --git a/tests/PDFDocumentTest.cpp b/tests/PDFDocumentTest.cpp index f01d0f97f3..9a79ec8c01 100644 --- a/tests/PDFDocumentTest.cpp +++ b/tests/PDFDocumentTest.cpp @@ -146,7 +146,7 @@ size_t count_bytes(const SkBitmap& bm, bool useDCT) { DEF_TEST(SkPDF_document_dct_encoder, r) { REQUIRE_PDF_DOCUMENT(SkPDF_document_dct_encoder, r); SkBitmap bm; - if (GetResourceAsBitmap("mandrill_64.png", &bm)) { + if (GetResourceAsBitmap("images/mandrill_64.png", &bm)) { // Lossy encoding works better on photographs. REPORTER_ASSERT(r, count_bytes(bm, true) < count_bytes(bm, false)); } diff --git a/tests/PDFJpegEmbedTest.cpp b/tests/PDFJpegEmbedTest.cpp index 100c9b3f11..b62b166fc1 100644 --- a/tests/PDFJpegEmbedTest.cpp +++ b/tests/PDFJpegEmbedTest.cpp @@ -49,8 +49,8 @@ static sk_sp load_resource( DEF_TEST(SkPDF_JpegEmbedTest, r) { REQUIRE_PDF_DOCUMENT(SkPDF_JpegEmbedTest, r); const char test[] = "SkPDF_JpegEmbedTest"; - sk_sp mandrillData(load_resource(r, test, "mandrill_512_q075.jpg")); - sk_sp cmykData(load_resource(r, test, "CMYK.jpg")); + sk_sp mandrillData(load_resource(r, test, "images/mandrill_512_q075.jpg")); + sk_sp cmykData(load_resource(r, test, "images/CMYK.jpg")); if (!mandrillData || !cmykData) { return; } @@ -88,11 +88,11 @@ DEF_TEST(SkPDF_JpegIdentification, r) { const char* path; bool isJfif; SkJFIFInfo::Type type; - } kTests[] = {{"CMYK.jpg", false, SkJFIFInfo::kGrayscale}, - {"color_wheel.jpg", true, SkJFIFInfo::kYCbCr}, - {"grayscale.jpg", true, SkJFIFInfo::kGrayscale}, - {"mandrill_512_q075.jpg", true, SkJFIFInfo::kYCbCr}, - {"randPixels.jpg", true, SkJFIFInfo::kYCbCr}}; + } kTests[] = {{"images/CMYK.jpg", false, SkJFIFInfo::kGrayscale}, + {"images/color_wheel.jpg", true, SkJFIFInfo::kYCbCr}, + {"images/grayscale.jpg", true, SkJFIFInfo::kGrayscale}, + {"images/mandrill_512_q075.jpg", true, SkJFIFInfo::kYCbCr}, + {"images/randPixels.jpg", true, SkJFIFInfo::kYCbCr}}; for (size_t i = 0; i < SK_ARRAY_COUNT(kTests); ++i) { sk_sp data(load_resource(r, "JpegIdentification", kTests[i].path)); if (!data) { diff --git a/tests/PipeTest.cpp b/tests/PipeTest.cpp index e5d2f09a99..42b1a4c300 100644 --- a/tests/PipeTest.cpp +++ b/tests/PipeTest.cpp @@ -46,7 +46,7 @@ static bool deep_equal(SkImage* a, SkImage* b) { } DEF_TEST(Pipe_image_draw_first, reporter) { - sk_sp img = GetResourceAsImage("mandrill_128.png"); + sk_sp img = GetResourceAsImage("images/mandrill_128.png"); SkASSERT(img.get()); SkPipeSerializer serializer; @@ -84,7 +84,7 @@ DEF_TEST(Pipe_image_draw_first, reporter) { } DEF_TEST(Pipe_image_draw_second, reporter) { - sk_sp img = GetResourceAsImage("mandrill_128.png"); + sk_sp img = GetResourceAsImage("images/mandrill_128.png"); SkASSERT(img.get()); SkPipeSerializer serializer; diff --git a/tests/SerialProcsTest.cpp b/tests/SerialProcsTest.cpp index 6361309b98..d975abb5db 100644 --- a/tests/SerialProcsTest.cpp +++ b/tests/SerialProcsTest.cpp @@ -27,7 +27,7 @@ struct State { }; DEF_TEST(serial_procs_image, reporter) { - auto src_img = GetResourceAsImage("mandrill_128.png"); + auto src_img = GetResourceAsImage("images/mandrill_128.png"); const char magic_str[] = "magic signature"; const SkSerialImageProc sprocs[] = { diff --git a/tests/StreamTest.cpp b/tests/StreamTest.cpp index 26fea37f9e..5112312678 100644 --- a/tests/StreamTest.cpp +++ b/tests/StreamTest.cpp @@ -287,7 +287,7 @@ DEF_TEST(StreamPeek, reporter) { test_fully_peekable_stream(reporter, &memStream, memStream.getLength()); // Test an arbitrary file stream. file streams do not support peeking. - SkFILEStream fileStream(GetResourcePath("baby_tux.webp").c_str()); + SkFILEStream fileStream(GetResourcePath("images/baby_tux.webp").c_str()); REPORTER_ASSERT(reporter, fileStream.isValid()); if (!fileStream.isValid()) { return; diff --git a/tests/YUVTest.cpp b/tests/YUVTest.cpp index 825e2d1628..3862952742 100644 --- a/tests/YUVTest.cpp +++ b/tests/YUVTest.cpp @@ -81,46 +81,46 @@ DEF_TEST(Jpeg_YUV_Codec, r) { sizes[0].set(128, 128); sizes[1].set(64, 64); sizes[2].set(64, 64); - codec_yuv(r, "color_wheel.jpg", sizes); + codec_yuv(r, "images/color_wheel.jpg", sizes); // H2V2 sizes[0].set(512, 512); sizes[1].set(256, 256); sizes[2].set(256, 256); - codec_yuv(r, "mandrill_512_q075.jpg", sizes); + codec_yuv(r, "images/mandrill_512_q075.jpg", sizes); // H1V1 sizes[1].set(512, 512); sizes[2].set(512, 512); - codec_yuv(r, "mandrill_h1v1.jpg", sizes); + codec_yuv(r, "images/mandrill_h1v1.jpg", sizes); // H2V1 sizes[1].set(256, 512); sizes[2].set(256, 512); - codec_yuv(r, "mandrill_h2v1.jpg", sizes); + codec_yuv(r, "images/mandrill_h2v1.jpg", sizes); // Non-power of two dimensions sizes[0].set(439, 154); sizes[1].set(220, 77); sizes[2].set(220, 77); - codec_yuv(r, "cropped_mandrill.jpg", sizes); + codec_yuv(r, "images/cropped_mandrill.jpg", sizes); sizes[0].set(8, 8); sizes[1].set(4, 4); sizes[2].set(4, 4); - codec_yuv(r, "randPixels.jpg", sizes); + codec_yuv(r, "images/randPixels.jpg", sizes); // Progressive images sizes[0].set(512, 512); sizes[1].set(512, 512); sizes[2].set(512, 512); - codec_yuv(r, "brickwork-texture.jpg", sizes); - codec_yuv(r, "brickwork_normal-map.jpg", sizes); + codec_yuv(r, "images/brickwork-texture.jpg", sizes); + codec_yuv(r, "images/brickwork_normal-map.jpg", sizes); // A CMYK encoded image should fail. - codec_yuv(r, "CMYK.jpg", nullptr); + codec_yuv(r, "images/CMYK.jpg", nullptr); // A grayscale encoded image should fail. - codec_yuv(r, "grayscale.jpg", nullptr); + codec_yuv(r, "images/grayscale.jpg", nullptr); // A PNG should fail. - codec_yuv(r, "arrow.png", nullptr); + codec_yuv(r, "images/arrow.png", nullptr); } diff --git a/tests/skbug6389.cpp b/tests/skbug6389.cpp index f52515813a..42112a7a0f 100644 --- a/tests/skbug6389.cpp +++ b/tests/skbug6389.cpp @@ -17,7 +17,7 @@ DEF_TEST(skbug_6389, r) { SkPaint p; p.setMaskFilter(SkBlurMaskFilter::Make(SkBlurStyle::kNormal_SkBlurStyle, 5, SkBlurMaskFilter::kHighQuality_BlurFlag)); - p.setImageFilter(SkImageSource::Make(GetResourceAsImage("mandrill_512.png"), {0, 0, 0, 0}, + p.setImageFilter(SkImageSource::Make(GetResourceAsImage("images/mandrill_512.png"), {0, 0, 0, 0}, {0, 0, 0, 0}, (SkFilterQuality)0)); s->getCanvas()->drawPaint(p); } diff --git a/tools/colorspaceinfo.cpp b/tools/colorspaceinfo.cpp index 0002e961cf..be23f8db9c 100644 --- a/tools/colorspaceinfo.cpp +++ b/tools/colorspaceinfo.cpp @@ -523,7 +523,7 @@ int main(int argc, char** argv) { // Load a graph of the CIE XYZ color gamut. SkBitmap gamutCanvasBitmap; - if (!GetResourceAsBitmap("gamut.png", &gamutCanvasBitmap)) { + if (!GetResourceAsBitmap("images/gamut.png", &gamutCanvasBitmap)) { SkDebugf("Program failure (could not load gamut.png).\n"); return -1; } diff --git a/tools/create_flutter_test_images.cpp b/tools/create_flutter_test_images.cpp index 2fa39f6c75..dbcd25eb80 100644 --- a/tools/create_flutter_test_images.cpp +++ b/tools/create_flutter_test_images.cpp @@ -36,7 +36,7 @@ static sk_sp wide_gamut_color_space() { } int main(int argc, char** argv) { - sk_sp image = GetResourceAsImage("flutter_logo.jpg"); + sk_sp image = GetResourceAsImage("images/flutter_logo.jpg"); if (!image) { SkDebugf("Cannot find flutter_logo.jpg in resources.\n"); return 1; diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp index 1cba520695..ddef1da1fb 100644 --- a/tools/viewer/Viewer.cpp +++ b/tools/viewer/Viewer.cpp @@ -533,7 +533,7 @@ Viewer::Viewer(int argc, char** argv, void* platformData) fImGuiFontPaint.setFilterQuality(kLow_SkFilterQuality); io.Fonts->TexID = &fImGuiFontPaint; - auto gamutImage = GetResourceAsImage("gamut.png"); + auto gamutImage = GetResourceAsImage("images/gamut.png"); if (gamutImage) { fImGuiGamutPaint.setShader(gamutImage->makeShader()); } -- cgit v1.2.3