Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mac OS X support #12

Open
skarndev opened this issue Jun 2, 2020 · 22 comments
Open

Mac OS X support #12

skarndev opened this issue Jun 2, 2020 · 22 comments
Labels
help wanted Extra attention is needed

Comments

@skarndev
Copy link

skarndev commented Jun 2, 2020

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

@JeffHanna
Copy link
Collaborator

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.

@bob-white
Copy link
Contributor

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.

@skarndev
Copy link
Author

skarndev commented Jun 2, 2020

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

@cmcpasserby
Copy link
Member

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

@Amatobahn
Copy link
Contributor

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

@bob-white
Copy link
Contributor

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

@skarndev
Copy link
Author

skarndev commented Jun 2, 2020

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?

@hannesdelbeke
Copy link
Collaborator

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 #22

@melMass
Copy link

melMass commented Jan 3, 2023

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

@hannesdelbeke
Copy link
Collaborator

did you get a chance to test on mac?

@melMass
Copy link

melMass commented Apr 10, 2023

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

@hannesdelbeke
Copy link
Collaborator

hannesdelbeke commented Apr 10, 2023

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

@hannesdelbeke
Copy link
Collaborator

hannesdelbeke commented Jun 4, 2023

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 hannesdelbeke reopened this Jun 4, 2023
@melMass
Copy link

melMass commented Jun 4, 2023

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)

@hannesdelbeke
Copy link
Collaborator

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 hannesdelbeke added the help wanted Extra attention is needed label Jun 5, 2023
@hannesdelbeke
Copy link
Collaborator

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

@hannesdelbeke
Copy link
Collaborator

hannesdelbeke commented Sep 14, 2023

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 #47
image

TODO

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

@hannesdelbeke
Copy link
Collaborator

when I set the env var "BQT_DISABLE_WRAP" to 1, to disable wrapping, bqt seems to run great on Mac. see #66

@hannesdelbeke
Copy link
Collaborator

hannesdelbeke commented Sep 18, 2023

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

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

@melMass
Copy link

melMass commented Sep 18, 2023

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

@hannesdelbeke
Copy link
Collaborator

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.

@melMass
Copy link

melMass commented Sep 18, 2023

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 │
╰───┴────────────────────────┴──────┴──────────╯

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

7 participants