Rene,
New findings…
After printing the pointer with NSLog(“%@“, ptr); I have found that the pointer
is actually for a NSView
Unfortunately, when I create a QWindow::fromWinId((Wid)ptr), the program
crashes…
I have been inspecting QWindow and in case of qcocoa, it is actually expecting
a NSView to be passed.
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000002b00000000
VM Regions Near 0x2b00000000:
MALLOC_LARGE (reserved 000000012ddd0000-0000000423db6000 [ 11.8G] rw-/rwx
SM=NUL reserved VM address space (unallocated)
-->
__TEXT 0000123400000000-0000123400509000 [ 5156K] r-x/rwx
SM=COW
/System/Library/Extensions/AppleIntelHD5000GraphicsGLDriver.bundle/Contents/MacOS/AppleIntelHD5000GraphicsGLDriver
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_c.dylib 0x00007fff8a9ab152 strlen + 18
1 org.qt-project.QtCore 0x00000001204def27
QCoreApplication::arguments() + 199
2 org.qt-project.QtQuick 0x000000011f933d76 0x11f8a4000 + 589174
3 org.qt-project.QtQuick 0x000000011f934299
QSGContext::createWindowManager() + 9
4 org.qt-project.QtQuick 0x000000011f9494c7
QSGRenderLoop::instance() + 71
5 org.qt-project.QtQuick 0x000000011f97acc3
QQuickWindowPrivate::init(QQuickWindow*, QQuickRenderControl*) + 307
6 org.qt-project.QtQuick 0x000000011fa2639d
QQuickView::QQuickView(QWindow*) + 189
7 com.imaginando.Audiolab 0x000000011efd9e3b
IVstEditor::open(void*) + 107 (IVstEditor.cpp:34)
Nuno Santos
Founder / CEO / CTO
www.imaginando.pt
+351 91 621 69 62
> On 08 Jun 2015, at 16:12, Nuno Santos <[email protected]> wrote:
>
> Rene,
>
> Answers below...
>
>> On 08 Jun 2015, at 12:05, René J.V. Bertin <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> On Monday June 08 2015 11:51:25 Nuno Santos wrote:
>>
>>> NSWindow *nsw = [[NSWindow alloc] initWithWindowRef:(WindowRef*)ptr];
>>
>>> 2015-06-08 11:45:36.795 Live[65095:685104] A Carbon window's attributes
>>> couldn't be gotten.
>>> 2015-06-08 11:45:36.795 Live[65095:685104] A Carbon window's features
>>> couldn't be gotten.
>>> 2015-06-08 11:45:36.795 Live[65095:685104] Couldn't get window modality:
>>> error=-5600
>>
>> %> /usr/bin/macerror -5600
>> Mac OS error -5600 (errInvalidWindowRef): tried to pass a bad WindowRef
>> argument
>
> This is a nice tip. Didn’t knew about macerror tool
>
>>
>> Are you by chance passing a pointer to a WindowRef?
>
> Well, VST SDK says that in case of windows a HWND will be passed and in case
> of Mac OS X a WindowRef will be passed. The open function argument is a void*
>
>>
>> Also, heed the advice at the bottom of this page:
>> http://www.cocoabuilder.com/archive/cocoa/298219-initializing-nswindow-with-carbon-window.html
>>
>> <http://www.cocoabuilder.com/archive/cocoa/298219-initializing-nswindow-with-carbon-window.html>
>> . There is a CoreAudio mailing list on which you're likely to get better
>> answers, if this has to do with AU.
>>
>>> 2015-06-08 11:45:36.795 Live[65095:685104] frame - 0.000000 0.000000
>>> 0.000000 0.000000
>>>
>>> I’m also not doing anything else with the Window. If I use it as a parent
>>> of QQuickView (approach that works on Windows), the host app crashes with
>>> the following:
>>
>> That's a crash in the video driver (with a weird backtrace suggesting it's
>> in strlen() called from QCoreApplication::arguments(), or maybe it really is
>> in that function). It's bad that it's so easy to provoke that, but it
>> probably comes directly from the error above. The window you get isn't valid.
>>
>> R.
>>>
>>> Crashed Thread: 0 Dispatch queue: com.apple.main-thread
>>>
>>> Exception Type: EXC_BAD_ACCESS (SIGSEGV)
>>> Exception Codes: KERN_INVALID_ADDRESS at 0x0000002b00000000
>>>
>>> VM Regions Near 0x2b00000000:
>>> MALLOC_LARGE (reserved 000000012d200000-00000004231e6000 [ 11.8G]
>>> rw-/rwx SM=NUL reserved VM address space (unallocated)
>>> -->
>>> __TEXT 0000123400000000-0000123400509000 [ 5156K]
>>> r-x/rwx SM=COW
>>> /System/Library/Extensions/AppleIntelHD5000GraphicsGLDriver.bundle/Contents/MacOS/AppleIntelHD5000GraphicsGLDriver
>>>
>>> Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
>>> 0 libsystem_c.dylib 0x00007fff8a9ab152 strlen + 18
>>> 1 org.qt-project.QtCore 0x000000011f4f6f27
>>> QCoreApplication::arguments() + 199
>>> 2 org.qt-project.QtQuick 0x000000011e94bd76 0x11e8bc000 + 589174
>>> 3 org.qt-project.QtQuick 0x000000011e94c299
>>> QSGContext::createWindowManager() + 9
>>> 4 org.qt-project.QtQuick 0x000000011e9614c7
>>> QSGRenderLoop::instance() + 71
>>> 5 org.qt-project.QtQuick 0x000000011e992cc3
>>> QQuickWindowPrivate::init(QQuickWindow*, QQuickRenderControl*) + 307
>>> 6 org.qt-project.QtQuick 0x000000011ea3e39d
>>> QQuickView::QQuickView(QWindow*) + 189
>>> 7 com.imaginando.Audiolab 0x000000011dff1e1b
>>> IVstEditor::open(void*) + 107 (IVstEditor.cpp:34)
>>>
>>>
>>>
>>> Nuno Santos
>>> Founder / CEO / CTO
>>> www.imaginando.pt <http://www.imaginando.pt/>
>>> +351 91 621 69 62
>>>
>>>> On 08 Jun 2015, at 11:36, René J.V. Bertin <[email protected]> wrote:
>>>>
>>>> On Monday June 08 2015 09:24:56 Nuno Santos wrote:
>>>>
>>>> Hi Nuno:
>>>>
>>>>> I'm trying to instantiate a QWindow inside a Carbon WindowRef, but
>>>>> QWindow fromWid method needs a NSView to be passed by parameter and not
>>>>> a WindowRef.
>>>>>
>>>>> I have seen been saying that it is not possible to have a NSView inside
>>>>> a CarbonWindow. Maybe someone more experienced in Mac OSX architecture
>>>>> could confirm me this.
>>>>
>>>> Try this:
>>>>
>>>> https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindow_Class/index.html#//apple_ref/occ/instm/NSWindow/initWithWindowRef:
>>>>
>>>> Then you send a contentView message to the NSWindow instance you got. Note
>>>> that that gives you "the window’s content view, the highest accessible
>>>> NSView object in the window’s view hierarchy." If that's not the one you
>>>> need, you'll have to figure out how to get the subviews (answer via
>>>> google!) and pick the right one.
>>>>
>>>> R.
>>>>
>>>>
>>>> _______________________________________________
>>>> Interest mailing list
>>>> [email protected]
>>>> http://lists.qt-project.org/mailman/listinfo/interest
>>>
>>
>
> _______________________________________________
> Interest mailing list
> [email protected] <mailto:[email protected]>
> http://lists.qt-project.org/mailman/listinfo/interest
> <http://lists.qt-project.org/mailman/listinfo/interest>
_______________________________________________
Interest mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/interest