bqt icon indicating copy to clipboard operation
bqt copied to clipboard

Mac OS X support

Open skarndev opened this issue 5 years ago • 25 comments

I see there is an option to run this code for MacOSX. Is it supported?

skarndev avatar Jun 02 '20 20:06 skarndev

I believe a tech art community member completed the Mac support, yes. I do not own a Macintosh so I can not test it for you. the blender_applications\darwin_blender_application.py file looks complete to me.

JeffHanna avatar Jun 02 '20 21:06 JeffHanna

I believe there is a dependency on the PyObjc project to make it work. Much like we need pywin32 to make the windows version work.

bob-white avatar Jun 02 '20 22:06 bob-white

I can't seem to be able to install AppKit with pip. Where can I grab the dependencies?

skarndev avatar Jun 02 '20 22:06 skarndev

unless someone else has taken it, over i was never able to get mac support fully working

cmcpasserby avatar Jun 02 '20 22:06 cmcpasserby

Last I recall we had it partially working but not at the same level of functionality as we have currently on windows

Amatobahn avatar Jun 02 '20 22:06 Amatobahn

I can't seem to be able to install AppKit with pip. Where can I grab the dependencies?

pip install pyobjc should get you AppKit

bob-white avatar Jun 02 '20 22:06 bob-white

It seems there is still an issue. In the Darwin Blender application, there is a method with __ (double underscore) being called which does not exist in the class. And the handler does not start the Window correctly as "startup" in file condition is not fulfilled? Any idea on how to fix the last one?

skarndev avatar Jun 02 '20 23:06 skarndev

there is a method with __ (double underscore) being called which does not exist in the class

which method is this? afraid I won't be much help here since I don't have a mac.

And the handler does not start the Window correctly as "startup" in file condition is not fulfilled? Any idea on how to fix the last one?

the missing startup file has now been added, see PR https://github.com/techartorg/bqt/pull/22

hannesdelbeke avatar Sep 24 '22 22:09 hannesdelbeke

Hi,

Last time I tried bqt it wasn't working on either mac or windows, @hannesdelbeke just notified me on blender chat that the current master should fix my issues, I will give it another go today and I'm able to test/debug it on mac if needed

melMass avatar Jan 03 '23 13:01 melMass

did you get a chance to test on mac?

hannesdelbeke avatar Apr 10 '23 20:04 hannesdelbeke

Yep my bad it works well, I ended up using a fork of bqt for the specific use case I had but I also tried again with bqt master with similar results

melMass avatar Apr 10 '23 21:04 melMass

thanks for your quick response 🙏 will close this thread for now then, sounds like it works

hannesdelbeke avatar Apr 10 '23 21:04 hannesdelbeke

This might not work as intended due to the focus operator. curious if @melMass noticed any errors?

Right now it should run the following code whenever the window focus changes. Which I believe would not run on Mac. Could someone try run this manually on Mac in Blender and see if this errors?

import ctypes

keycodes = [
	("_ALT", 0x12),
	("_CTRL", 0x11),
	("_SHIFT", 0x10),
	("VK_LWIN", 0x5B),
	("VK_RWIN", 0x5C),
	("OSKEY", 0x5B),  # dupe oskey, blender names it this
]

for name, code in keycodes:
	ctypes.windll.user32.keybd_event(code, 0, 2, 0)  # release key

hannesdelbeke avatar Jun 04 '23 18:06 hannesdelbeke

Did it change recently? I did not encounter any error besides that it always segfaults when closing blender (not sure if it's a Mac specific or not though)

melMass avatar Jun 04 '23 19:06 melMass

It didn't change, just surprised you didn't get any errors tbh. The issue on closing also happens on windows. Thanks for the quick reply :)

hannesdelbeke avatar Jun 04 '23 20:06 hannesdelbeke

tested myself on mac, and noticed bqt is completely broken. one of the reasons is that the requirements dont include appkit and pyobjc

hannesdelbeke avatar Sep 14 '23 11:09 hannesdelbeke

after small fix where method was named with _ but called with __, and manually installing the modules above with pip install iterm2 instead of appkit and pyobjc, bqt now loads without crashing and wraps blender on mac but it also freezes blender ...

Also on exit I get an error, just like on windows https://github.com/techartorg/bqt/issues/47 image

TODO

  • [ ] wrap blender without freeze
  • [ ] instructions on how to install dependencies
  • [ ] auto install dependencies based on different OS

hannesdelbeke avatar Sep 14 '23 14:09 hannesdelbeke

when I set the env var "BQT_DISABLE_WRAP" to 1, to disable wrapping, bqt seems to run great on Mac. see https://github.com/techartorg/bqt/issues/66

hannesdelbeke avatar Sep 14 '23 14:09 hannesdelbeke

released some more fixes, since code broken when init on blender startup. likely some code functions different if startup is not finished yet. seems to be running alright now if wrapping is disabled

error

also running into this warning when creating a dock widget. repro 100% image

  • this error is also mentioned here https://github.com/brainglobe/brainrender/issues/215

locall modules PySide2 5.15.2.1 (believe we only use this one) Qt.py 1.3.8 Qt5.py 0.1.0

hannesdelbeke avatar Sep 18 '23 10:09 hannesdelbeke

Honestly it was months ago so I could'nt tell, I feel like I would just have solved the issues you mention locally since they seem straightforward, but I think I would have specify it here (maybe not 😅)...

Anyway now my main driver isn't a Mac anymore but I can still test anything needed on an m1 laptop. Don't hesitate

melMass avatar Sep 18 '23 10:09 melMass

i wonder if perhaps you pip installed bqt on mac before we updated it on pip. it was outdated for over a year on pip, and only a few months ago was updated that version likely worked on mac.

hannesdelbeke avatar Sep 18 '23 10:09 hannesdelbeke

Nope I used this here which is now very outdated: https://github.com/melMass/bqt

I'll start fresh and rety bqt soon as I'm currently reimplementing a lot of my tools in pyside6.

I don't know if you use/heard of Prism v2, it's a pretty awesome asset/shot manager. Most of its core will be open source (it already is but just not "deployed" anywhere yet). The most impressive feature to me is how each integrations are seamless and really well made (some of these will be payed at the end of this month), it's all pyqt based but they seem to be able to ship a very minimal build, I just asked over their discord to know more:

ls blender_integration
╭───┬────────────────────────┬──────┬──────────╮
│ # │          name          │ type │   size   │
├───┼────────────────────────┼──────┼──────────┤
│ 0 │ space_topbar1.py       │ file │     72 B │
│ 1 │ space_topbar2.py       │ file │    534 B │
│ 2 │ PrismAutoSaveRender.py │ file │   3.0 KB │
│ 3 │ PrismInit.py           │ file │   6.1 KB │
│ 4 │ qminimal.dll           │ file │  36.4 KB │
│ 5 │ python3.dll            │ file │  59.0 KB │
│ 6 │ qoffscreen.dll         │ file │ 650.8 KB │
│ 7 │ qwindows.dll           │ file │   1.2 MB │
╰───┴────────────────────────┴──────┴──────────╯

melMass avatar Sep 18 '23 10:09 melMass

Hello! Are there any updates regarding Mac support? It currently opens 2 windows and one of them is blank with a gray colour, can't interact with any of them. I'd be happy to test stuff out and debug as well :3

Zophiekat avatar Jul 02 '24 09:07 Zophiekat

Hello! Are there any updates regarding Mac support? It currently opens 2 windows and one of them is blank with a gray colour, can't interact with any of them. I'd be happy to test stuff out and debug as well :3

I found an interesting fix:

cd /Applications/Blender/Contents/MacOS/
./Blender

running it like this form terminal makes the addon and widgets work without any issues at all for some reason

Zophiekat avatar Jul 04 '24 12:07 Zophiekat

That might explain why I never had any issues, I only run software from the command line

melMass avatar Jul 04 '24 12:07 melMass