MCPcopy Create free account
hub / github.com/XorTroll/uLaunch / EM_JS

Function EM_JS

projects/uDesigner/source/main.cpp:1126–1181  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1124}
1125
1126EM_JS(void, LoadElementImage, (Element *elem), {
1127 var input = document.createElement("input");
1128 input.type = "file";
1129 input.id = "file-selector";
1130 input.accept = ".jpg,.jpeg,.png";
1131 input.addEventListener("change", (event) => {
1132 var file = event.target.files[0];
1133 var reader = new FileReader();
1134 reader.addEventListener("load", () => {
1135 var file_data = new Uint8Array(reader.result);
1136 var file_ptr = Module._malloc(file_data.length);
1137 Module.HEAPU8.set(file_data, file_ptr);
1138 Module.ccall("cpp_LoadElementImage", null, ["number", "number", "number"], [elem, file_ptr, file_data.length]);
1139 }, false);
1140 reader.readAsArrayBuffer(file);
1141 });
1142
1143 if(document.createEvent) {
1144 var event = document.createEvent("MouseEvents");
1145 event.initEvent("click", true, true);
1146 input.dispatchEvent(event);
1147 }
1148 else {
1149 input.click();
1150 }
1151});
1152
1153constexpr ImWchar StandardGlyphRanges[] = {
1154 0x0020, 0x00FF, // Basic Latin + Latin Supplement
1155 0x0000
1156};
1157
1158constexpr ImWchar ExtendedGlyphRanges[] = {
1159 0x25A0, 0xE200, // Special Nintendo buttons
1160 0x0000
1161};
1162
1163void ReloadFonts() {
1164 auto &io = ImGui::GetIO();
1165
1166 #define _LOAD_ASSET_FONT_FOR_SIZE(name, size) { \
1167 ImFontConfig config; \
1168 config.MergeMode = true; \
1169 g_FontStandard_##name = io.Fonts->AddFontFromMemoryTTF(g_FontData, g_FontDataSize, size * g_Scale, nullptr, StandardGlyphRanges); \
1170 g_FontExtended_##name = io.Fonts->AddFontFromFileTTF("assets/FontExtended.ttf", size * g_Scale, &config, ExtendedGlyphRanges); \
1171 }
1172
1173 if(g_FontData != nullptr) {
1174 _LOAD_ASSET_FONT_FOR_SIZE(Small, 27.0f)
1175 _LOAD_ASSET_FONT_FOR_SIZE(Medium, 30.0f)
1176 _LOAD_ASSET_FONT_FOR_SIZE(MediumLarge, 37.0f)
1177 _LOAD_ASSET_FONT_FOR_SIZE(Large, 45.0f)
1178
1179 io.Fonts->Build();
1180 }
1181}
1182
1183extern "C" EMSCRIPTEN_KEEPALIVE void cpp_LoadFont(void *font_data, const size_t font_data_size) {

Callers

nothing calls this directly

Calls 3

LoadThemeJsonAssetFunction · 0.85
ShowErrorFmtFunction · 0.85
LoadMethod · 0.80

Tested by

no test coverage detected