ImageSlide.cpp 821 B

12345678910111213141516171819202122232425262728293031323334
  1. /*
  2. * Copyright 2016 Google Inc.
  3. *
  4. * Use of this source code is governed by a BSD-style license that can be
  5. * found in the LICENSE file.
  6. */
  7. #include "tools/viewer/ImageSlide.h"
  8. #include "include/core/SkCanvas.h"
  9. #include "include/core/SkData.h"
  10. #include "include/core/SkImage.h"
  11. ImageSlide::ImageSlide(const SkString& name, const SkString& path) : fPath(path) {
  12. fName = name;
  13. }
  14. SkISize ImageSlide::getDimensions() const {
  15. return fImage ? fImage->dimensions() : SkISize::Make(0, 0);
  16. }
  17. void ImageSlide::draw(SkCanvas* canvas) {
  18. SkASSERT(fImage);
  19. canvas->drawImage(fImage, 0, 0);
  20. }
  21. void ImageSlide::load(SkScalar, SkScalar) {
  22. sk_sp<SkData> encoded = SkData::MakeFromFileName(fPath.c_str());
  23. fImage = SkImage::MakeFromEncoded(encoded);
  24. }
  25. void ImageSlide::unload() {
  26. fImage.reset(nullptr);
  27. }