Files
pdf/engine/tests/skia_renderer_test.cpp
T
2026-05-25 10:34:39 +05:30

43 lines
1.3 KiB
C++

#include <gtest/gtest.h>
#include <pdfengine/display_list.hpp>
#include <pdfengine/skia_renderer.hpp>
#ifdef PDFENGINE_WITH_SKIA
#include <include/core/SkBitmap.h>
#include <include/core/SkCanvas.h>
#endif
using namespace pdfengine;
TEST(SkiaRendererTest, RenderSimpleDisplayList) {
#ifdef PDFENGINE_WITH_SKIA
SkBitmap bitmap;
bitmap.allocN32Pixels(100, 100);
SkCanvas canvas(bitmap);
canvas.clear(SK_ColorWHITE);
DisplayList dl;
// Push state and set fill color to red
dl.saveState();
dl.fillRect(10, 10, 50, 50); // Will be filled with red (we need a SetFillColorCommand, but right now GraphicsState doesn't expose it directly via Command yet. It will use default black)
dl.restoreState();
SkiaRenderer renderer(&canvas);
renderer.render(dl);
// Let's verify that a pixel at (20,20) was drawn. Since default color is black (0,0,0), we check that.
SkColor c = bitmap.getColor(20, 20);
EXPECT_EQ(SkColorGetR(c), 0);
EXPECT_EQ(SkColorGetG(c), 0);
EXPECT_EQ(SkColorGetB(c), 0);
// Check outside the rect
SkColor bg = bitmap.getColor(5, 5);
EXPECT_EQ(SkColorGetR(bg), 255);
EXPECT_EQ(SkColorGetG(bg), 255);
EXPECT_EQ(SkColorGetB(bg), 255);
#else
GTEST_SKIP() << "PDFENGINE_WITH_SKIA not defined. Skia tests skipped.";
#endif
}