29 lines
740 B
C++
29 lines
740 B
C++
#include <pdfengine/path_interpreter.hpp>
|
|
|
|
namespace pdfengine {
|
|
|
|
void PathObjectInterpreter::interpret(const PathObject& pathObj, DisplayList& displayList) {
|
|
if (pathObj.path.empty()) {
|
|
return;
|
|
}
|
|
|
|
displayList.saveState();
|
|
displayList.setTransform(pathObj.transform);
|
|
|
|
switch (pathObj.paintOp) {
|
|
case PathPaintOp::Stroke:
|
|
displayList.strokePath(pathObj.path);
|
|
break;
|
|
case PathPaintOp::Fill:
|
|
displayList.fillPath(pathObj.path, pathObj.fillRule);
|
|
break;
|
|
case PathPaintOp::FillStroke:
|
|
displayList.fillStrokePath(pathObj.path, pathObj.fillRule);
|
|
break;
|
|
}
|
|
|
|
displayList.restoreState();
|
|
}
|
|
|
|
} // namespace pdfengine
|