xref: /aosp_15_r20/external/skia/docs/examples/Bitmap_getAddr16.cpp (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1 // Copyright 2019 Google LLC.
2 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
3 #include "tools/fiddle/examples.h"
4 REG_FIDDLE(Bitmap_getAddr16, 256, 256, true, 3) {
draw(SkCanvas * canvas)5 void draw(SkCanvas* canvas) {
6     SkBitmap bitmap16;
7     SkImageInfo dstInfo = SkImageInfo::Make(source.width(), source.height(), kARGB_4444_SkColorType,
8                      kPremul_SkAlphaType);
9     bitmap16.allocPixels(dstInfo);
10     if (source.readPixels(dstInfo, bitmap16.getPixels(), bitmap16.rowBytes(), 0, 0)) {
11         uint16_t* row0 = bitmap16.getAddr16(0, 0);
12         uint16_t* row1 = bitmap16.getAddr16(0, 1);
13         size_t interval = (row1 - row0) * bitmap16.bytesPerPixel();
14         SkDebugf("addr interval %c= rowBytes\n", interval == bitmap16.rowBytes() ? '=' : '!');
15     }
16 }
17 }  // END FIDDLE
18