Update README.md, and add workaround to get SVG screenshots working again

This commit is contained in:
Yousef Khadadeh 2026-01-10 22:29:34 +03:00
parent e487731834
commit 1212780441
13 changed files with 18 additions and 5 deletions

View file

@ -61,8 +61,14 @@ CanvasComponentContainer::ObjInfoIterator DrawingProgramLayerManager::get_edited
}
void DrawingProgramLayerManager::draw(SkCanvas* canvas, const DrawData& drawData) {
if(layerTreeRoot)
layerTreeRoot->draw(canvas, drawData);
if(layerTreeRoot) {
if(drawData.onlyRenderLayerBeingEdited) {
if(is_a_layer_being_edited())
editingLayer.lock()->get_layer().draw(canvas, drawData);
}
else
layerTreeRoot->draw(canvas, drawData);
}
}
std::vector<CanvasComponentContainer::ObjInfo*> DrawingProgramLayerManager::get_flattened_component_list() const {

View file

@ -63,6 +63,8 @@ void ScreenshotTool::gui_toolbox() {
});
if(controls.selectedType != SCREENSHOT_SVG)
t.gui.checkbox_field("Display Grid", "Display Grid", &controls.displayGrid);
else
t.gui.text_label("Note: Screenshot will only capture\nlayer currently being edited");
if(controls.selectedType != 0)
t.gui.checkbox_field("Transparent Background", "Transparent Background", &controls.transparentBackground);
if(controls.imageSize.x() != oldImgSize.x()) {
@ -273,8 +275,10 @@ void ScreenshotTool::take_screenshot_svg(SkCanvas* canvas, bool transparentBackg
drawP.world.main.transparentBackground = transparentBackground;
drawP.world.drawData.drawGrids = false;
drawP.world.drawData.dontUseDrawProgCache = true;
drawP.world.drawData.onlyRenderLayerBeingEdited = true;
drawP.world.main.draw(canvas);
drawP.world.drawData.onlyRenderLayerBeingEdited = false;
drawP.world.main.takingScreenshot = false;
drawP.world.main.transparentBackground = false;
drawP.world.drawData.drawGrids = oldDrawGrids;