From fe1a556ad893b3fc1012652c70ac0e6fc0a2891f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=8A=B2=E9=B9=8F?= Date: Sat, 14 Dec 2019 11:30:12 +0800 Subject: [PATCH] add shader plugin register --- doric/driver/driver.h | 4 ++++ doric/driver/native_driver.cpp | 6 ++++++ doric/driver/native_driver.h | 4 ++-- doric/engine/js_engine.h | 3 +++ doric/native/native_bridge.cpp | 1 + doric/registry.cpp | 1 + doric/registry.h | 3 --- 7 files changed, 17 insertions(+), 5 deletions(-) diff --git a/doric/driver/driver.h b/doric/driver/driver.h index 7150138a..0bcac900 100644 --- a/doric/driver/driver.h +++ b/doric/driver/driver.h @@ -3,6 +3,8 @@ #include +#include "registry.h" + class Driver { public: @@ -12,6 +14,8 @@ public: virtual void invokeContextEntityMethod(int contextId, QString *method, ...) = 0; virtual void invokeDoricMethod(QString *method, ...) = 0; + virtual Registry *getRegistry() = 0; + virtual ~Driver() = default; }; diff --git a/doric/driver/native_driver.cpp b/doric/driver/native_driver.cpp index 5a524228..9eb55d4c 100644 --- a/doric/driver/native_driver.cpp +++ b/doric/driver/native_driver.cpp @@ -1,3 +1,5 @@ +#include + #include "stdarg.h" #include "native_driver.h" @@ -50,3 +52,7 @@ void NativeDriver::invokeContextEntityMethod(int contextId, QString *method, ... void NativeDriver::invokeDoricMethod(QString *method, ...) { } + +Registry* NativeDriver::getRegistry() { + return jsEngine->registry; +} diff --git a/doric/driver/native_driver.h b/doric/driver/native_driver.h index 9535f690..2d2d6590 100644 --- a/doric/driver/native_driver.h +++ b/doric/driver/native_driver.h @@ -1,8 +1,6 @@ #ifndef NATIVE_DRIVER_H #define NATIVE_DRIVER_H -#include - #include "driver.h" #include "engine/js_engine.h" @@ -28,6 +26,8 @@ public: void invokeContextEntityMethod(int contextId, QString *method, ...) override; void invokeDoricMethod(QString *method, ...) override; + + Registry * getRegistry() override; }; #endif // NATIVE_DRIVER_H diff --git a/doric/engine/js_engine.h b/doric/engine/js_engine.h index 66fa65c1..70bd2328 100644 --- a/doric/engine/js_engine.h +++ b/doric/engine/js_engine.h @@ -7,12 +7,15 @@ #include "native/native_empty.h" #include "native/native_log.h" #include "native/native_timer.h" +#include "registry.h" class JSEngine { public: QJSEngine *engine = new QJSEngine(); + Registry *registry = new Registry(); + JSEngine(); void prepareContext(int contextId, QString *script); diff --git a/doric/native/native_bridge.cpp b/doric/native/native_bridge.cpp index 5e5c2d45..5ca356db 100644 --- a/doric/native/native_bridge.cpp +++ b/doric/native/native_bridge.cpp @@ -8,4 +8,5 @@ Q_INVOKABLE void NativeBridge::function(int contextId, QString module, QString m "callbackId: " + callbackId + ", " + "arguments: " + jsValue.toString(); Context *context = ContextManager::getInstance()->getContext(contextId); + context->driver->getRegistry(); } diff --git a/doric/registry.cpp b/doric/registry.cpp index b4e6e79a..76465f75 100644 --- a/doric/registry.cpp +++ b/doric/registry.cpp @@ -1,6 +1,7 @@ #include #include "registry.h" +#include "plugin/shader_plugin.h" Registry::Registry() { registerNativePlugin(typeid(ShaderPlugin).name()); diff --git a/doric/registry.h b/doric/registry.h index 30ddc9a6..8947446d 100644 --- a/doric/registry.h +++ b/doric/registry.h @@ -2,9 +2,6 @@ #define REGISTRY_H #include -#include - -#include "plugin/shader_plugin.h" class Registry {