History

CanvasCommand stuff building properly but not functional from script yet

Ada committed 1 year ago

Commit 4a7edd91 parent 7e1be7a4 files · +85 −4Browse files

Showing the changes to libraries/entities/src/EntityScriptingInterface.cpp (1 of 4 files). Show all

Unified · Split

libraries/entities/src/EntityScriptingInterface.cpp+46−3
@@ -2706,17 +2706,60 @@ void EntityScriptingInterface::canvasPushImage(const QUuid& entityID, const Canv · 2705 unmodified lines
27062706 auto canvas = std::dynamic_pointer_cast<CanvasEntityItem>(entity);
27072707
27082708 if (image.buffer.length() != (int)(4 * image.width * image.height)) {
2709− qCWarning(entities) << "canvasPushImage: \"image\" has invalid buffer size, expected " << (4 * image.width * image.height) << ", got " << image.buffer.length();
2709+ qCCritical(entities) << "canvasPushImage: \"image\" has invalid buffer size, expected " << (4 * image.width * image.height) << ", got " << image.buffer.length();
27102710 return;
27112711 }
27122712
27132713 if (image.width != canvas->getWidth() || image.height != canvas->getHeight()) {
2714− qCWarning(entities) << "canvasPushImage: \"image\" dimensions don't match canvas, expected " << canvas->getWidth() << "x" << canvas->getHeight() << ", got " << image.width << "x" << image.height;
2714+ qCCritical(entities) << "canvasPushImage: \"image\" dimensions don't match canvas, expected " << canvas->getWidth() << "x" << canvas->getHeight() << ", got " << image.width << "x" << image.height;
27152715 return;
27162716 }
27172717
27182718 canvas->setImageData(image);
27192719 } else {
2720− qCWarning(entities) << "canvasSubmitImage called on a non-canvas entity " << entityID;
2720+ qCWarning(entities) << "canvasPushImage called on a non-canvas entity " << entityID;
2721+ }
2722+}
2723+
2724+void EntityScriptingInterface::canvasPushCommands(const QUuid& entityID, const QVector<CanvasCommand>& commands) {
2725+ EntityItemPointer entity = _entityTree->findEntityByEntityItemID(EntityItemID(entityID));
2726+ if (!entity) {
2727+ return;
2728+ }
2729+
2730+ if (entity->getType() == EntityTypes::Canvas) {
2731+ auto canvas = std::dynamic_pointer_cast<CanvasEntityItem>(entity);
2732+ canvas->pushCommands(commands);
2733+ } else {
2734+ qCWarning(entities) << "canvasPushCommands called on a non-canvas entity " << entityID;
2735+ }
2736+}
2737+
2738+CanvasImage EntityScriptingInterface::canvasGetImage(const QUuid& entityID) {
2739+ EntityItemPointer entity = _entityTree->findEntityByEntityItemID(EntityItemID(entityID));
2740+ if (!entity) {
2741+ return CanvasImage();
2742+ }
2743+
2744+ if (entity->getType() == EntityTypes::Canvas) {
2745+ auto canvas = std::dynamic_pointer_cast<CanvasEntityItem>(entity);
2746+ return CanvasImage { canvas->getImageData(), canvas->getWidth(), canvas->getHeight() };
2747+ } else {
2748+ qCWarning(entities) << "canvasCommit called on a non-canvas entity " << entityID;
2749+ return CanvasImage();
2750+ }
2751+}
2752+
2753+void EntityScriptingInterface::canvasCommit(const QUuid& entityID) {
2754+ EntityItemPointer entity = _entityTree->findEntityByEntityItemID(EntityItemID(entityID));
2755+ if (!entity) {
2756+ return;
2757+ }
2758+
2759+ if (entity->getType() == EntityTypes::Canvas) {
2760+ auto canvas = std::dynamic_pointer_cast<CanvasEntityItem>(entity);
2761+ canvas->commit();
2762+ } else {
2763+ qCWarning(entities) << "canvasCommit called on a non-canvas entity " << entityID;
27212764 }
27222765 }