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

Side by Side Diff: gm/astcbitmap.cpp

Issue 444093002: - Add astcbitmap to gm slides (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Decode trits/quints into temp buffers Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | gyp/gmslides.gypi » ('j') | src/images/SkImageDecoder_astc.cpp » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*
2 * Copyright 2014 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
8 #include "gm.h"
9
10 #include "Resources.h"
11 #include "SkCanvas.h"
12 #include "SkData.h"
13 #include "SkDecodingImageGenerator.h"
14 #include "SkImageDecoder.h"
15 #include "SkOSFile.h"
16 #include "SkTextureCompressor.h"
17
18 static const char *kASTCFilenames[] = {
19 "mandrill_128x128_4x4.astc", // kASTC_4x4_Format
20 "mandrill_130x128_5x4.astc", // kASTC_5x4_Format
21 "mandrill_130x130_5x5.astc", // kASTC_5x5_Format
22 "mandrill_132x130_6x5.astc", // kASTC_6x5_Format
23 "mandrill_132x132_6x6.astc", // kASTC_6x6_Format
24 "mandrill_128x130_8x5.astc", // kASTC_8x5_Format
25 "mandrill_128x132_8x6.astc", // kASTC_8x6_Format
26 "mandrill_128x128_8x8.astc", // kASTC_8x8_Format
27 "mandrill_130x130_10x5.astc", // kASTC_10x5_Format
28 "mandrill_130x132_10x6.astc", // kASTC_10x6_Format
29 "mandrill_130x128_10x8.astc", // kASTC_10x8_Format
30 "mandrill_130x130_10x10.astc", // kASTC_10x10_Format
31 "mandrill_132x130_12x10.astc", // kASTC_12x10_Format
32 "mandrill_132x132_12x12.astc", // kASTC_12x12_Format
33 };
34
35 static const int kNumASTCFilenames = SK_ARRAY_COUNT(kASTCFilenames);
36
37 static inline const char *get_astc_filename(int idx) {
38 if (idx < 0 || kNumASTCFilenames <= idx) {
39 return "";
40 }
41
42 return kASTCFilenames[idx];
43 }
44
45 namespace skiagm {
46
47 /**
48 * Test decoding an image from an ASTC file and then from compressed ASTC data.
49 */
50 class ASTCBitmapGM : public GM {
51 public:
52 ASTCBitmapGM() { }
53 virtual ~ASTCBitmapGM() { }
54
55 protected:
56 virtual SkString onShortName() SK_OVERRIDE {
57 return SkString("astcbitmap");
58 }
59
60 virtual SkISize onISize() SK_OVERRIDE {
61 return SkISize::Make(kGMDimension, kGMDimension);
62 }
63
64 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
65 for (int j = 0; j < 4; ++j) {
66 for (int i = 0; i < 4; ++i) {
67 SkString filename = GetResourcePath(get_astc_filename(j*4+i));
68 if (filename == GetResourcePath("")) {
69 continue;
70 }
71
72 SkAutoTUnref<SkData> fileData(SkData::NewFromFileName(filename.c _str()));
73 if (NULL == fileData) {
74 SkDebugf("Could not open the file. Did you forget to set the resourcePath?\n");
75 return;
76 }
77
78 SkBitmap bm;
79 if (!SkInstallDiscardablePixelRef(
80 SkDecodingImageGenerator::Create(
81 fileData, SkDecodingImageGenerator::Options()), &bm) ) {
82 SkDebugf("Could not install discardable pixel ref.\n");
83 return;
84 }
85
86 const SkScalar bmX = static_cast<SkScalar>(i*kBitmapDimension);
87 const SkScalar bmY = static_cast<SkScalar>(j*kBitmapDimension);
88 canvas->drawBitmap(bm, bmX, bmY);
89 }
90 }
91 }
92
93 private:
94 static const int kGMDimension = 600;
95 static const int kBitmapDimension = kGMDimension/4;
96
97 typedef GM INHERITED;
98 };
99
100 } // namespace skiagm
101
102 //////////////////////////////////////////////////////////////////////////////
103
104 DEF_GM( return SkNEW(skiagm::ASTCBitmapGM); )
OLDNEW
« no previous file with comments | « no previous file | gyp/gmslides.gypi » ('j') | src/images/SkImageDecoder_astc.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698