mirror of
https://github.com/rive-app/rive-cpp.git
synced 2026-01-18 21:21:17 +01:00
fix(scripting): search first parent transform component to build script node feature: modulate opacity (#11427) 128d9d61e0 * feature: modulate opacity * fix: clang-format * fix: rust renderer has a no-op modulateOpacity * fix: no-op modulateOpacity for canvas android * feature: modulate opacity on android canvas * fix: rcp ref * fix: missing override * fix: gms * fix: make flutter_renderer match cg one * fix: josh pr feedback * fix: remove CG transparency layer * fix: save modulated gradient up-front * fix: store only one gradient ref * fix: remove specific constructor * fix: use GradDataArray! * fix: expose currentModulatedOpacity * fix: cg_factory modulated opacity value * fix: modulate negative opacity test * fix: verify double modulate negative also clamps Co-authored-by: Luigi Rosso <luigi-rosso@users.noreply.github.com> Co-authored-by: hernan <hernan@rive.app>
45 lines
1.2 KiB
C++
45 lines
1.2 KiB
C++
/*
|
|
* Copyright 2022 Rive
|
|
*/
|
|
|
|
#ifndef _RIVE_SKIA_RENDERER_HPP_
|
|
#define _RIVE_SKIA_RENDERER_HPP_
|
|
|
|
#include "rive/renderer.hpp"
|
|
#include <vector>
|
|
|
|
class SkCanvas;
|
|
|
|
namespace rive
|
|
{
|
|
class SkiaRenderer : public Renderer
|
|
{
|
|
protected:
|
|
SkCanvas* m_Canvas;
|
|
std::vector<float> m_opacityStack{1.0f};
|
|
|
|
public:
|
|
SkiaRenderer(SkCanvas* canvas) : m_Canvas(canvas) {}
|
|
void save() override;
|
|
void restore() override;
|
|
void transform(const Mat2D& transform) override;
|
|
void modulateOpacity(float opacity) override;
|
|
void clipPath(RenderPath* path) override;
|
|
void drawPath(RenderPath* path, RenderPaint* paint) override;
|
|
void drawImage(const RenderImage*,
|
|
const rive::ImageSampler,
|
|
BlendMode,
|
|
float opacity) override;
|
|
void drawImageMesh(const RenderImage*,
|
|
const rive::ImageSampler,
|
|
rcp<RenderBuffer> vertices_f32,
|
|
rcp<RenderBuffer> uvCoords_f32,
|
|
rcp<RenderBuffer> indices_u16,
|
|
uint32_t vertexCount,
|
|
uint32_t indexCount,
|
|
BlendMode,
|
|
float opacity) override;
|
|
};
|
|
} // namespace rive
|
|
#endif
|