Skip to content

Commit 3c0e2ff

Browse files
committed
fixes
1 parent f330912 commit 3c0e2ff

9 files changed

Lines changed: 59 additions & 38 deletions

File tree

pkgs/ai-deno/src/deno/module_loader/jsr_package_manager.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,11 @@ impl JsrPackageManager {
346346
) -> Result<(), JsErrorBox> {
347347
let base_dir = self.compute_package_dir(&nv.name, Some(&nv.version.to_string().as_str()));
348348

349+
if base_dir.exists() {
350+
// TODO: Offline Support
351+
return Ok(());
352+
}
353+
349354
self.sys.fs_create_dir_all(&base_dir).map_err(|e| {
350355
JsErrorBox::generic(format!("Failed to create package directory: {}", e))
351356
})?;

pkgs/ai-deno/src/js/src/main.ts

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,16 @@ import { toFileUrl, join, fromFileUrl } from "jsr:@std/path@1.0.8";
55
import { isEqual } from "jsr:@es-toolkit/es-toolkit@1.33.0";
66
import { homedir } from "node:os";
77

8-
// import { blurEffect } from "./live-effects/blurEffect.ts";
98
import { chromaticAberration } from "./live-effects/chromatic-aberration.ts";
109
import { testBlueFill } from "./live-effects/test-blue-fill.ts";
1110
import { ChangeEventHandler, ui, UINode } from "./ui/nodes.ts";
1211
import { directionalBlur } from "./live-effects/directional-blur.ts";
13-
import { kirakiraGlow } from "./live-effects/kirakira-glow.ts";
12+
import { kirakiraBlur } from "./live-effects/kirakira-blur.ts";
1413
import { dithering } from "./live-effects/dithering.ts";
1514
import { pixelSort } from "./live-effects/pixel-sort.ts";
1615
import { glitch } from "./live-effects/glitch.ts";
1716
import { logger } from "./logger.ts";
18-
import { outlineEffect } from "./live-effects/outline.ts";
17+
import { outline } from "./live-effects/outline.ts";
1918
import { innerGlow } from "./live-effects/inner-glow.ts";
2019
import { cropImageData, resizeImageData } from "./live-effects/_utils.ts";
2120
import { coastic } from "./live-effects/coastic.ts";
@@ -32,9 +31,8 @@ import { gaussianBlur } from "./live-effects/gaussian-blur.ts";
3231
const EFFECTS_DIR = new URL(toFileUrl(join(homedir(), ".ai-deno/effects")));
3332

3433
const allPlugins: AIPlugin<any, any>[] = [
35-
// blurEffect,
36-
coastic,
3734
chromaticAberration,
35+
coastic,
3836
dataMosh,
3937
directionalBlur,
4038
dithering,
@@ -45,8 +43,8 @@ const allPlugins: AIPlugin<any, any>[] = [
4543
halftone,
4644
// innerGlow,
4745
kaleidoscope,
48-
kirakiraGlow,
49-
outlineEffect,
46+
kirakiraBlur,
47+
outline,
5048
// pixelSort,
5149
// randomNoiseEffect,
5250
selectiveColorCorrection,
@@ -98,9 +96,6 @@ try {
9896
}
9997
}
10098

101-
console.log(_AI_DENO_.op_ai_deno_get_user_locale());
102-
console.log(_AI_DENO_.op_ai_get_plugin_version());
103-
10499
export async function loadEffects() {
105100
ensureDirSync(EFFECTS_DIR);
106101

pkgs/plugin/AiWebGPUPlugin.xcodeproj/xcshareddata/xcschemes/release + Ai.xcscheme

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@
4848
ignoresPersistentStateOnLaunch = "NO"
4949
debugDocumentVersioning = "YES"
5050
debugServiceExtension = "internal"
51+
enableGPUFrameCaptureMode = "3"
52+
enableGPUValidationMode = "1"
5153
allowLocationSimulation = "YES">
5254
<PathRunnable
5355
runnableDebuggingMode = "0"

pkgs/plugin/Source/AiDenoPlugin.cpp

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -102,13 +102,11 @@ ASErr HelloWorldPlugin::InitLiveEffect(SPInterfaceMessage* message) {
102102
"%s%s", EFFECT_PREFIX.c_str(), effectDef["id"].get<std::string>().c_str()
103103
));
104104

105-
// char *title =
106-
// ai::UnicodeString(effectDef["title"].get<std::string>().c_str(),
107-
// kAIUTF8CharacterEncoding).as_UTF8().data();
108-
effect.title = suai::str::strdup(
109-
suai::str::toAiUnicodeStringUtf8(effectDef["title"].get<std::string>())
110-
);
111-
// effect.title = title;
105+
char title[128];
106+
suai::str::toAiUnicodeStringUtf8(effectDef["title"].get<std::string>())
107+
.as_Platform(title, 128);
108+
109+
effect.title = title;
112110
effect.majorVersion = effectDef["version"]["major"].get<int>();
113111
effect.minorVersion = effectDef["version"]["minor"].get<int>();
114112
effect.prefersAsInput = AIStyleFilterPreferredInputArtType::kInputArtDynamic;
@@ -121,9 +119,7 @@ ASErr HelloWorldPlugin::InitLiveEffect(SPInterfaceMessage* message) {
121119
AddLiveEffectMenuData menu;
122120
menu.category =
123121
suai::str::strdup(ai::UnicodeString("Deno Effectors", kAIUTF8CharacterEncoding));
124-
menu.title = suai::str::strdup(
125-
suai::str::toAiUnicodeStringUtf8(effectDef["title"].get<std::string>())
126-
);
122+
menu.title = title;
127123
menu.options = 0;
128124

129125
csb("title", effect.title);
@@ -162,7 +158,7 @@ ASErr HelloWorldPlugin::GoLiveEffect(AILiveEffectGoMessage* message) {
162158

163159
// csl("art JSON: %s", suai::art::serialize::ArtToJSON(art).dump(2).c_str());
164160
// Test calling for checking it works
165-
suai::art::serialize::ArtToJSON(art);
161+
// suai::art::serialize::ArtToJSON(art);
166162

167163
PluginParams params;
168164
error = this->getDictionaryValues(
@@ -568,7 +564,7 @@ ASErr HelloWorldPlugin::EditLiveEffectParameters(AILiveEffectEditParamMessage* m
568564
}
569565
};
570566

571-
ImGuiModal::OnChangeCallback modaloOnChangeCallback =
567+
ImGuiModal::OnChangeCallback modalOnChangeCallback =
572568
[&pluginParams, &isModalOpened, &isPreviewed, &error, &message, &currentParams,
573569
&nodeTree, &modal, this](json patch) {
574570
if (isModalOpened) isPreviewed = true;
@@ -618,7 +614,7 @@ ASErr HelloWorldPlugin::EditLiveEffectParameters(AILiveEffectEditParamMessage* m
618614
}
619615
};
620616

621-
modaloOnChangeCallback(initialParams);
617+
modalOnChangeCallback(initialParams);
622618

623619
PluginPreferences pref = this->getPreferences(&error);
624620
CHKERR();
@@ -633,7 +629,7 @@ ASErr HelloWorldPlugin::EditLiveEffectParameters(AILiveEffectEditParamMessage* m
633629
isModalOpened = true;
634630
csl("Opening modal: %s", nodeTree.dump().c_str());
635631
ModalStatusCode dialogResult = modal->runModal(
636-
nodeTree, effectTitle, lastPosition, modaloOnChangeCallback,
632+
nodeTree, effectTitle, lastPosition, modalOnChangeCallback,
637633
modalOnFireEventCallback
638634
);
639635

@@ -668,8 +664,11 @@ ASErr HelloWorldPlugin::EditLiveEffectParameters(AILiveEffectEditParamMessage* m
668664
}
669665
} catch (ai::Error& ex) {
670666
error = ex;
671-
csl("Error: %s (code: %s [raw: %d])", ex.what(), stringify_ASErr(error).c_str(),
667+
cse("Error: %s (code: %s [raw: %d])", ex.what(), stringify_ASErr(error).c_str(),
672668
error);
669+
} catch (std::exception& ex) {
670+
error = kCantHappenErr;
671+
cse("Error: %s", ex.what());
673672
} catch (...) { error = kCantHappenErr; }
674673

675674
return error;

pkgs/plugin/Source/bridging.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@ extern "C" {
3030
ai::UnicodeString locale;
3131
sAIUser->GetAILanguageCode(locale);
3232

33-
std::cout << "locale: " << suai::str::toUtf8StdString(locale) << std::endl;
34-
3533
const char* localeStr = suai::str::strdup(locale.as_UTF8().c_str());
3634
return localeStr;
3735
}

pkgs/plugin/Source/debugHelper.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,16 @@ void csl(const char* format, Args... args) {
4848
std::cout << indentLines(ss.str(), "\033[1m[deno_ai(C)]\033[0m ") << std::endl;
4949
}
5050

51+
template <typename... Args>
52+
void cse(const char* format, Args... args) {
53+
if (!AI_DENO_DEBUG) return;
54+
55+
std::ostringstream ss;
56+
ss << string_format(format, args...) << std::endl;
57+
58+
std::cerr << indentLines(ss.str(), "\033[1m[deno_ai(C)]\033[0m ") << std::endl;
59+
}
60+
5161
// print as hex binary json array
5262
void csb(const char* label, const char* value) {
5363
if (!AI_DENO_DEBUG) return;

pkgs/plugin/Source/super-illustrator.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,10 @@ namespace suai {
389389
std::string getTitle() {
390390
const char* effectTitle = NULL;
391391
sAILiveEffect->GetLiveEffectTitle(effectHandle, &effectTitle);
392-
return str::toUtf8StdString(effectTitle);
392+
393+
ai::UnicodeString title = ai::UnicodeString(effectTitle, kAIPlatformCharacterEncoding);
394+
395+
return title.as_UTF8().data();
393396
}
394397
};
395398

pkgs/plugin/Source/views/ImGuiRenderComponents.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,10 @@ ModalStatusCode AiDenoImGuiRenderComponents(
3636
) {
3737
ModalStatusCode resultStatus = ModalStatusCode::None;
3838

39+
std::cout << "renderTree: " << renderTree.dump() << std::endl;
40+
3941
std::function<void(json)> renderNode = [&](json node) -> void {
40-
if (!node.contains("type")) return;
42+
if (node.is_null() || !node.contains("type")) return;
4143

4244
std::string type = node["type"];
4345
std::string nodeId = node["nodeId"];
@@ -48,15 +50,15 @@ ModalStatusCode AiDenoImGuiRenderComponents(
4850

4951
if (type == "group") {
5052
std::string direction = node["direction"];
51-
std::optional<bool> disabled = node["disabled"];
53+
std::optional<bool> disabled = getOptional<bool>(node["disabled"]);
5254

5355
ImGui::BeginGroup();
54-
if (disabled) { ui::styleStack.beginDisabled(); }
56+
if (disabled.value_or(false)) { ui::styleStack.beginDisabled(); }
5557
for (json& child : node["children"]) {
5658
renderNode(child);
5759
if (direction == "row") ImGui::SameLine();
5860
}
59-
if (disabled) { ui::styleStack.endDisabled(); }
61+
if (disabled.value_or(false)) { ui::styleStack.endDisabled(); }
6062
ImGui::EndGroup();
6163

6264
} else if (type == "text") {

pkgs/plugin/Source/views/ImgUIEditModal_osx.h

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ using json = nlohmann::json;
5656
lastPosition:(std::tuple<int, int>*)lastPosition
5757
onChange:(ImGuiModal::OnChangeCallback)onChange
5858
onFireEvent:(ImGuiModal::OnFireEventCallback)onFireEventCallback;
59-
- (void)restoreWindowPosition:(NSWindow*)window pos:(std::tuple<int, int>)pos;
59+
- (void)restoreWindowPosition:(std::tuple<int, int>*)pos;
6060
- (void)releaseDialog;
6161
@end
6262

@@ -105,12 +105,19 @@ class ImGuiModalOSX : public ImGuiModal::IModalImpl {
105105
) override {
106106
ModalStatusCode result = ModalStatusCode::None;
107107

108-
[this->controller setTitle:title];
108+
try {
109+
[this->controller setTitle:title];
110+
111+
result = [this->controller runModal:renderTree
112+
lastPosition:lastPosition
113+
onChange:onChange
114+
onFireEvent:onFireEventCallback];
115+
} catch (...) {
116+
[this->controller releaseDialog];
117+
this->controller = nullptr;
118+
throw;
119+
}
109120

110-
result = [this->controller runModal:renderTree
111-
lastPosition:lastPosition
112-
onChange:onChange
113-
onFireEvent:onFireEventCallback];
114121
[this->controller releaseDialog];
115122
this->controller = nullptr;
116123

0 commit comments

Comments
 (0)