@@ -24,6 +24,27 @@ namespace yup
2424
2525// ==============================================================================
2626
27+ class NoOpRenderBuffer : public rive ::RenderBuffer
28+ {
29+ public:
30+ NoOpRenderBuffer ()
31+ : rive::RenderBuffer (rive::RenderBufferType::index, rive::RenderBufferFlags::none, 0 )
32+ {
33+ }
34+
35+ void * onMap () override { return nullptr ; }
36+ void onUnmap () override {}
37+ };
38+
39+ // ==============================================================================
40+
41+ class NoOpRenderShader : public rive ::RenderShader
42+ {
43+ public:
44+ };
45+
46+ // ==============================================================================
47+
2748class NoOpRenderImage : public rive ::RenderImage
2849{
2950public:
@@ -89,7 +110,7 @@ class NoOpFactory : public rive::Factory
89110 rive::RenderBufferFlags,
90111 size_t ) override
91112 {
92- return nullptr ;
113+ return rive::make_rcp<NoOpRenderBuffer>() ;
93114 }
94115
95116 rive::rcp<rive::RenderShader> makeLinearGradient (
@@ -101,7 +122,7 @@ class NoOpFactory : public rive::Factory
101122 const float stops[],
102123 size_t count) override
103124 {
104- return nullptr ;
125+ return rive::make_rcp<NoOpRenderShader>() ;
105126 }
106127
107128 rive::rcp<rive::RenderShader> makeRadialGradient (
@@ -112,7 +133,7 @@ class NoOpFactory : public rive::Factory
112133 const float stops[],
113134 size_t count) override
114135 {
115- return nullptr ;
136+ return rive::make_rcp<NoOpRenderShader>() ;
116137 }
117138
118139 rive::rcp<rive::RenderPath> makeRenderPath (rive::RawPath&, rive::FillRule) override
@@ -132,7 +153,7 @@ class NoOpFactory : public rive::Factory
132153
133154 rive::rcp<rive::RenderImage> decodeImage (rive::Span<const uint8_t >) override
134155 {
135- return nullptr ;
156+ return rive::make_rcp<NoOpRenderImage>() ;
136157 }
137158};
138159
0 commit comments