done phase 1 code base

This commit is contained in:
azeeee05
2026-05-25 10:34:39 +05:30
parent 52cef2cecf
commit 21b9390e48
7 changed files with 177 additions and 2 deletions
@@ -0,0 +1,31 @@
#pragma once
#include <pdfengine/display_list.hpp>
#include <pdfengine/graphics_state.hpp>
class SkCanvas;
namespace pdfengine {
// A visitor that replays a DisplayList onto a Skia canvas.
class SkiaRenderer : public CommandVisitor {
public:
// Takes a pointer to an external SkCanvas.
// The caller is responsible for the canvas's lifecycle.
explicit SkiaRenderer(SkCanvas* canvas);
void visit(const SaveStateCommand& cmd) override;
void visit(const RestoreStateCommand& cmd) override;
void visit(const SetTransformCommand& cmd) override;
void visit(const FillRectCommand& cmd) override;
void visit(const DrawTextCommand& cmd) override;
// Renders the entire display list to the canvas
void render(const DisplayList& displayList);
private:
SkCanvas* m_canvas;
GraphicsStateStack m_stateStack;
};
} // namespace pdfengine