MCPcopy Create free account
hub / github.com/Tencent/tgfx / TGFX_TEST

Function TGFX_TEST

test/src/ReadPixelsTest.cpp:36–156  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

34 }
35
36TGFX_TEST(ReadPixelsTest, PixelMap) {
37 auto codec = MakeImageCodec("resources/apitest/test_timestretch.png");
38 EXPECT_TRUE(codec != nullptr);
39 auto width = codec->width();
40 auto height = codec->height();
41 auto RGBAInfo = ImageInfo::Make(width, height, ColorType::RGBA_8888, AlphaType::Unpremultiplied);
42 auto byteSize = RGBAInfo.byteSize();
43 Buffer pixelsA(byteSize);
44 Buffer pixelsB(byteSize * 2);
45 auto result = codec->readPixels(RGBAInfo, pixelsA.data());
46 EXPECT_TRUE(result);
47
48 Pixmap RGBAMap(RGBAInfo, pixelsA.data());
49 CHECK_PIXELS(RGBAInfo, pixelsA.data(), "PixelMap_RGBA_Original");
50
51 result = RGBAMap.readPixels(RGBAInfo, pixelsB.data());
52 EXPECT_TRUE(result);
53 CHECK_PIXELS(RGBAInfo, pixelsB.data(), "PixelMap_RGBA_to_RGBA");
54
55 pixelsB.clear();
56 auto RGB565Info = RGBAInfo.makeColorType(ColorType::RGB_565);
57 result = RGBAMap.readPixels(RGB565Info, pixelsB.data());
58 EXPECT_TRUE(result);
59 CHECK_PIXELS(RGB565Info, pixelsB.data(), "PixelMap_RGBA_to_RGB565");
60
61 pixelsB.clear();
62 auto Gray8Info = RGBAInfo.makeColorType(ColorType::Gray_8);
63 result = RGBAMap.readPixels(Gray8Info, pixelsB.data());
64 EXPECT_TRUE(result);
65 CHECK_PIXELS(Gray8Info, pixelsB.data(), "PixelMap_RGBA_to_Gray8");
66
67 pixelsB.clear();
68 auto RGBAF16Info = RGBAInfo.makeColorType(ColorType::RGBA_F16);
69 result = RGBAMap.readPixels(RGBAF16Info, pixelsB.data());
70 EXPECT_TRUE(result);
71 CHECK_PIXELS(RGBAF16Info, pixelsB.data(), "PixelMap_RGBA_to_RGBA_F16");
72
73 pixelsB.clear();
74 auto RGBA1010102Info = RGBAInfo.makeColorType(ColorType::RGBA_1010102);
75 result = RGBAMap.readPixels(RGBA1010102Info, pixelsB.data());
76 EXPECT_TRUE(result);
77 CHECK_PIXELS(RGBA1010102Info, pixelsB.data(), "PixelMap_RGBA_to_RGBA_1010102");
78
79 pixelsB.clear();
80 result = RGBAMap.readPixels(RGBAInfo, pixelsB.data(), 100, 100);
81 EXPECT_TRUE(result);
82 CHECK_PIXELS(RGBAInfo, pixelsB.data(), "PixelMap_RGBA_to_RGBA_100_100");
83
84 auto RGBARectInfo = ImageInfo::Make(500, 500, ColorType::RGBA_8888, AlphaType::Premultiplied);
85 pixelsB.clear();
86 result = RGBAMap.readPixels(RGBARectInfo, pixelsB.data(), -100, -100);
87 EXPECT_TRUE(result);
88 CHECK_PIXELS(RGBARectInfo, pixelsB.data(), "PixelMap_RGBA_to_RGBA_-100_-100");
89
90 pixelsB.clear();
91 result = RGBAMap.readPixels(RGBARectInfo, pixelsB.data(), 100, -100);
92 EXPECT_TRUE(result);
93 CHECK_PIXELS(RGBARectInfo, pixelsB.data(), "PixelMap_RGBA_to_RGBA_100_-100");

Callers

nothing calls this directly

Calls 15

MakeImageCodecFunction · 0.85
MakeFunction · 0.85
CreateGLTextureFunction · 0.85
PixmapClass · 0.85
MakeNativeCodecFunction · 0.85
CompareFunction · 0.85
makeColorTypeMethod · 0.80
makeAlphaTypeMethod · 0.80
orientationMethod · 0.80
widthMethod · 0.45
heightMethod · 0.45
byteSizeMethod · 0.45

Tested by

no test coverage detected