43 lines
1.3 KiB
C++
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
|
|
}
|