Added Pexels and ShaderToy API

This commit is contained in:
Digital Artifex
2025-09-21 07:08:58 -04:00
parent f084825732
commit e1e054234f
3 changed files with 52 additions and 3 deletions

View File

@@ -13,9 +13,22 @@ add_library(
ShaderPackModel.cpp ShaderPackModel.cpp
AudioModel.cpp AudioModel.cpp
AudioImageProvider.cpp AudioImageProvider.cpp
AudioImageProvider.h
ShaderPackMetadata.h
ShaderPackMetadata.cpp ShaderPackMetadata.cpp
GeometryProvider.cpp
GeometryProvider.h
PexelsImageMetadata.h
PexelsImageSearch.h
PexelsImageSearch.cpp
PexelsVideoMetadata.h
PexelsVideoModel.h
PexelsVideoModel.cpp
PexelsVideoSearch.h
PexelsVideoSearch.cpp
ShaderToyMetadata.h
ShaderToySearchModel.h
ShaderToySearchModel.cpp
ShaderToyAPI.h
PexelsAPI.h
) )
qt_add_qml_module( qt_add_qml_module(
@@ -34,6 +47,21 @@ qt_add_qml_module(
AudioModel.cpp AudioModel.cpp
AudioImageProvider.cpp AudioImageProvider.cpp
ShaderPackMetadata.cpp ShaderPackMetadata.cpp
GeometryProvider.cpp
GeometryProvider.h
PexelsImageMetadata.h
PexelsImageSearch.h
PexelsImageSearch.cpp
PexelsVideoMetadata.h
PexelsVideoModel.h
PexelsVideoModel.cpp
PexelsVideoSearch.h
PexelsVideoSearch.cpp
ShaderToyMetadata.h
ShaderToySearchModel.h
ShaderToySearchModel.cpp
ShaderToyAPI.h
PexelsAPI.h
NO_GENERATE_PLUGIN_SOURCE NO_GENERATE_PLUGIN_SOURCE
) )

View File

@@ -5,6 +5,10 @@
#include "AudioModel.h" #include "AudioModel.h"
#include "AudioImageProvider.h" #include "AudioImageProvider.h"
#include "ShaderPackModel.h" #include "ShaderPackModel.h"
#include "PexelsVideoSearch.h"
#include "PexelsImageSearch.h"
#include "ShaderToySearchModel.h"
#include "GeometryProvider.h"
#include "Komplex_global.h" #include "Komplex_global.h"
AudioModel *komplexAudioSingletonProvider(QQmlEngine *engine, QJSEngine *scriptEngine) AudioModel *komplexAudioSingletonProvider(QQmlEngine *engine, QJSEngine *scriptEngine)
@@ -27,13 +31,27 @@ public:
void registerTypes(const char *uri) override void registerTypes(const char *uri) override
{ {
Q_ASSERT(QLatin1String(uri) == QLatin1String("com.github.digitalartifex.komplex")); Q_ASSERT(QLatin1String(uri) == QLatin1String("com.github.digitalartifex.komplex"));
char *stUri = new char[std::strlen(uri) + std::strlen(".ShaderToy")];
std::sprintf(stUri, "%s.ShaderToy", uri);
char *pvUri = new char[std::strlen(uri) + std::strlen(".Pexels.Video")];
std::sprintf(pvUri, "%s.Pexels.Video", uri);
char *piUri = new char[std::strlen(uri) + std::strlen(".Pexels.Image")];
std::sprintf(piUri, "%s.Pexels.Image", uri);
qmlRegisterSingletonType<AudioModel*>(uri, 1, 0, "AudioModel", komplexAudioSingletonProvider); qmlRegisterSingletonType<AudioModel*>(uri, 1, 0, "AudioModel", komplexAudioSingletonProvider);
qmlRegisterType<ShaderPackModel>(uri, 1, 0, "ShaderPackModel"); qmlRegisterType<ShaderPackModel>(uri, 1, 0, "ShaderPackModel");
qmlRegisterType<GeometryProvider>(uri, 1, 0, "GeometryProvider");
qmlRegisterType<ShaderToySearchModel>(stUri, 1, 0, "SearchModel");
qmlRegisterType<PexelsVideoSearchModel>(pvUri, 1, 0, "SearchModel");
qmlRegisterType<PexelsImageSearchModel>(piUri, 1, 0, "SearchModel");
} }
void unregisterTypes() override void unregisterTypes() override
{ {
AudioModel::stopCapture();
} }
void initializeEngine(QQmlEngine *engine, const char *uri) override void initializeEngine(QQmlEngine *engine, const char *uri) override

View File

@@ -1,4 +1,7 @@
module com.github.digitalartifex.komplex module com.github.digitalartifex.komplex
plugin komplex plugin komplex
classname AudioModel classname AudioModel
classname ShaderPackModel classname ShaderPackModel
classname PexelsImageSearchModel
classname PexelsVideoSearchModel
classname ShaderToySearchModel