15class ScratchConfigurationPrivate;
31 auto &extensions = getExtensions();
32 for (
auto ext : extensions) {
33 if (
dynamic_cast<T *
>(ext.get()))
40 static void registerGraphicsEffect(std::shared_ptr<IGraphicsEffect> effect);
41 static void removeGraphicsEffect(
const std::string &name);
44 static const std::string &version();
45 static int majorVersion();
46 static int minorVersion();
47 static int patchVersion();
50 static const std::vector<std::shared_ptr<IExtension>> getExtensions();
51 static std::shared_ptr<ScratchConfigurationPrivate> &getImpl();
53 static inline std::shared_ptr<ScratchConfigurationPrivate> impl;
The IExtension class is an interface for extensions.
Definition iextension.h:18
The IGraphicsEffects class is an interface for custom graphics effects.
Definition igraphicseffect.h:14
static IExtension * getExtension()
Definition scratchconfiguration.h:29
static IExtension * getExtension(const std::string &name)
Definition scratchconfiguration.cpp:24
ScratchConfiguration()=delete
static void removeExtension(std::shared_ptr< IExtension > extension)
Definition scratchconfiguration.cpp:18
static void registerExtension(std::shared_ptr< IExtension > extension)
Definition scratchconfiguration.cpp:12
#define LIBSCRATCHCPP_EXPORT
Definition global.h:17
The main namespace of the library.
Definition asset.h:10