Skip to content

Combined PRs into large update - #87

Open
timothyschoen wants to merge 141 commits into
agraef:masterfrom
timothyschoen:pdlua-combined-prs
Open

timothyschoen wants to merge 141 commits into
agraef:masterfrom
timothyschoen:pdlua-combined-prs

Conversation

@timothyschoen

@timothyschoen timothyschoen commented Mar 16, 2026 •

Copy link
Copy Markdown
Contributor

Work in progress to take some work away from @agraef for the next update.

I've merged most of the opened PRs into a new branch, resolving conflicts and adding missing plugdata implementations if needed. It includes:

#84: SVG rendering by @timothyschoen
#82: Makefile improvement by @umlaeute
#80: Clock deprecation fix by @ben-wes
#79: Github actions runner fix by @ben-wes
#77: Property menu support by @charlesneimog
#76: Fix compilation against new Pd version by @ben-wes
#70: Add mouse enter/exit callbacks by @ben-wes
#69: Fix path:close() documentation error by @ben-wes
#66: Make some gfx arguments optional by @ben-wes
#65: Add alignment feature to text drawing by @ben-wes
timothyschoen#7: Fix missing return value by @KottV
timothyschoen#9: Avoid canvas scrollbars for GUI objects in pd vanilla by @ben-wes
timothyschoen#10: Fix pd-0.57 zoom support, fix memory leak, fix freeze caused by save dialog by @ben-wes

On top of that:

  • plugdata fixes:
    • Multi-instance now runs with a true independent lua instance per Pd instead, instead of using lua threads
    • Ported new property menu feature
    • Ported new text alignment feature
    • Ported mouse enter/exit callbacks
  • Cleaned up properties implementation
    • Remove unused variables and unnecessary checks
    • Moved to separate file, since it works independently from pdlua graphics
    • Also allow properties on non-gui objects
    • Fix properties dialog title
    • Added float/int/combo property options
    • Fix properties button greying out when no properties() function is available
    • Make properties "apply" behaviour like other Pd property dialogs
  • Added option to render images (using stb_image on pd)
  • Added runtime choice between Lua and LuaJIT (chosen based on .pd_lua or .pd_luajit filename)
  • Fixed Github Actions building with UCRT instead of MSVCRT (causing crashes on Windows when reading files)
  • Fixed glitches when pdlua graphics objects get recreated on the same address as a previous pdlua object
  • Fixed bug in rounded rectangle drawing on pd-vanilla
  • Small code style fixes
  • Updated to Lua 5.5
  • Added documentation for new features

Planned:

  • Port features to purr-data
    • SVG rendering
    • Image rendering
    • Mouse enter/exit
    • Text alignment
    • Properties panels
      • Basics are implemented, though the UI could be better

I'm aware that this is gonna be a big set of changes. To ensure stability, I was hoping to get some assistance with testing from @ben-wes and @charlesneimog, once I get this out of the draft stage.

ben-wes and others added 30 commits October 22, 2024 22:38
with proxy function for canvas messages and clock for cleanup
…f warnings, clean up buffered tcl/tk images when object is deleted
…addcheckbox`, `_properties_addtextinput` and `_properties_addcolorpicker`
pd-lib-builder has means to install entire directories,
so we should probably use them, rather than build our own
(and broken) install replacement.

Closes: agraef#81
@ben-wes

ben-wes commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

@timothyschoen one minor detail i realized when using the luajit version lately: obviously, messages like reload to pdluax don't work in this case. i assume that's expected - but not sure. i got used to that for updating lua objects during development. so for luajit, this mechanism is not intended?

ben-wes and others added 12 commits September 16, 2026 12:48
the previous separate coords update does not track Pd's Tcl-side canvas zoom; one-shot create matches draw_line/fill_rect
one-shot create matches updated path/line/rect
instead of minting new id on every create
clock-driven repaints were writing canvas commands immediately, so a save dialog that stops the GUI from reading could fill the blocking socket and hang Pd.
fixes for new pd zoom, avoid excessive gui tag generation

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants