A layered image editor for Linux and Omarchy, ported from Compositor (github.com/robbietilton/Compositor), whose Swift source is its specification. It reads and writes Compositor's .comp projects. Packages for Ubuntu, Fedora and Arch come from the release workflow; scripts/install/ holds one install script per distribution family, and flake.nix serves NixOS. Co-Authored-By: Claude <noreply@anthropic.com>
22 lines
894 B
C++
22 lines
894 B
C++
#pragma once
|
|
#include "Document/LayerEffects.h"
|
|
#include "Document/LayerTransform.h"
|
|
#include <QImage>
|
|
#include <optional>
|
|
|
|
// Swift's LayerEffectsRenderer: a layer with its effects round it.
|
|
namespace LayerEffectsRenderer {
|
|
// Swift's tuple: the grown image, the room round the pixels.
|
|
struct Rendered {
|
|
QImage image;
|
|
double inset;
|
|
};
|
|
// Reused for the same pixels, mask and effects; eight kept.
|
|
std::optional<Rendered> cached(const QImage &image, const std::optional<QImage> &mask, const std::optional<LayerEffects> &effects);
|
|
// The transform grown by the margin, the image in place.
|
|
LayerTransform placed(const LayerTransform &transform, const QImage &image, double inset);
|
|
double margin(const LayerEffects &effects);
|
|
// `mask` hides pixels first, so effects follow what shows.
|
|
Rendered render(const QImage &image, const std::optional<QImage> &mask, const LayerEffects &effects);
|
|
}
|