forked from processing/processing4
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Stephan Max edited this page Aug 5, 2025
·
2 revisions
Scratchpad for software architecture, ideas, and comparisons of approaches.
classDiagram
class Base {
-Mode coreMode
buildCoreModes()
getDefaultModeIdentifier() String
}
class Mode {
<<abstract>>
#Base base
#File folder
+getTitle()* String
+createEditor(Base base, String path, EditorState state)* Editor
+getDefaultExtension()* String
+getExtensions()* String[]
+getIgnorable()* String[]
}
class p5Mode
Mode <|-- p5Mode
Base --> Mode
---
config:
flowchart:
defaultRenderer: "elk"
---
flowchart TB
subgraph main["Main (privileged)"]
mainFile@{ shape: doc, label: "main.js" }
preloadFile@{ shape: doc, label: "preload.js" }
win["`**BrowserWindow**
- webContents`"]
ipcMain@{ shape: trap-t, label: "ipcMain.on('channel', message)"}
mainFile --> ipcMain
mainFile --> win
preloadFile -- webPreferences.preload --- win
end
subgraph renderer["Renderers (sandboxed)"]
indexFile@{ shape: docs, label: "index.html" }
proxy(("`*Proxy*
console`"))
rendererFile@{ shape: doc, label: "renderer.js" }
sketchFile@{ shape: docs, label: "sketch.js" }
global[window.electron.sendMessage]
indexFile -.-> rendererFile
indexFile -.-> sketchFile
rendererFile --> proxy
sketchFile -.-> proxy
proxy -.-> global
end
sto@{ shape: lean-r, label: "Standard Output\nPiped into PDE console"}
win -. loadFile() .-> indexFile
preloadFile -- "`**contextBridge**.exposeInMainWorld()`" --- global
global messaging@== "`ipcRenderer.send('channel', message)`" ==> ipcMain
messaging@{animate: true}
ipcMain -- "`console.log`" --- sto