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 <nunosan...@imaginando.pt> wrote:
> 
> Rene,
> 
> Answers below...
> 
>> On 08 Jun 2015, at 12:05, René J.V. Bertin <rjvber...@gmail.com 
>> <mailto:rjvber...@gmail.com>> 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 <rjvber...@gmail.com> 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
>>>> Interest@qt-project.org
>>>> http://lists.qt-project.org/mailman/listinfo/interest
>>> 
>> 
> 
> _______________________________________________
> Interest mailing list
> Interest@qt-project.org <mailto:Interest@qt-project.org>
> http://lists.qt-project.org/mailman/listinfo/interest 
> <http://lists.qt-project.org/mailman/listinfo/interest>
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to