<!DOCTYPE html><html><head>
<style type="text/css">body { font-family:'Helvetica'; font-size:12px}</style>
</head>
<body>Lucas Dupin <oi@lucasdup.in> писал(а) в своём письме Sun, 28 Apr 2013 18:22:19 +0400:<br><br><blockquote style="margin: 0 0 0.80ex; border-left: #0000FF 2px solid; padding-left: 1ex"><div>Hey guys,</div><div>I'm working on Mac OS native fullscreen support for VirtualBox.</div><div>It's my first time hacking the source, so I'll need some help. Ok?</div><div><br></div><div>I've already found the class where you call showFullscreen() and modified the UIMachineWindow to show the arrow on the right corner of the title bar.</div><div>The code is self contained so I don't think we're going to have compatibility issues, even with older versions of MacOs, like 10.6.</div><div><br></div><div>One minor caveat is that you'll need MacOS SDK 10.7 to compile the source. I don't think it's a problem since you'll still be able to target older versions, like 10.6.</div><div><br></div><div>What I really need to do now is to test the code I've written in a proper way but I can't manage to turn my Virtual Machines on.</div><div>I ran the loadall.sh script, so I don't think it's a kernel module problem.</div><div><br></div><div>Could you give me some directions on what to do? The error I receive is:</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>Failed to load VMMR0.r0 (VERR_GENERAL_FAILURE)</div><div><br></div><div>And the details say:</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>Result Code: </div><div><span class="Apple-tab-span" style="white-space:pre">   </span>NS_ERROR_FAILURE (0x80004005)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>Component: </div><div><span class="Apple-tab-span" style="white-space:pre">     </span>Console</div><div><span class="Apple-tab-span" style="white-space:pre">      </span>Interface: </div><div><span class="Apple-tab-span" style="white-space:pre">     </span>IConsole {db7ab4ca-2a3f-4183-9243-c1208da92392}</div><div><br></div><div><br></div><div>In debug mode, this is the stacktrace:</div><div><span class="Apple-tab-span" style="white-space:pre">       </span>Thread 11 Crashed:: EMT-0</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>0   VBoxRT.dylib                  <span class="Apple-tab-span" style="white-space:pre">        </span>0x000000011082ba0d rtkldrConvertError(int) + 973 (ldrkStuff.cpp:197)</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>1   VBoxRT.dylib                  <span class="Apple-tab-span" style="white-space:pre">        </span>0x000000011082bf8a rtldrkLdrOpen + 762 (ldrkStuff.cpp:880)</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>2   VBoxRT.dylib                  <span class="Apple-tab-span" style="white-space:pre">        </span>0x0000000110724f9c rtldrOpenWithReader + 1052 (ldrEx.cpp:160)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>3   VBoxRT.dylib                  <span class="Apple-tab-span" style="white-space:pre">        </span>0x000000011072763d RTLdrOpen + 541 (ldrFile.cpp:278)</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>4   VBoxRT.dylib                  <span class="Apple-tab-span" style="white-space:pre">        </span>0x0000000110871614 supLoadModule(char const*, char const*, char const*, void**) + 1204 (SUPLib.cpp:1854)</div><div><span class="Apple-tab-span" style="white-space:pre">     </span>5   VBoxRT.dylib                  <span class="Apple-tab-span" style="white-space:pre">        </span>0x0000000110873a00 SUPR3LoadModule + 160 (SUPLib.cpp:1606)</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>6   VBoxVMM.dylib                 <span class="Apple-tab-span" style="white-space:pre">     </span>0x00000001101fd14e pdmR3LoadR0U(UVM*, char const*, char const*, char const*) + 830 (PDMLdr.cpp:673)</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>7   VBoxVMM.dylib                 <span class="Apple-tab-span" style="white-space:pre">     </span>0x00000001101fc3dc PDMR3LdrLoadVMMR0U + 44 (PDMLdr.cpp:82)</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>8   VBoxVMM.dylib                 <span class="Apple-tab-span" style="white-space:pre">     </span>0x0000000110305b16 vmR3CreateU(UVM*, unsigned int, int (*)(UVM*, VM*, void*), void*) + 38 (VM.cpp:586)</div><div><span class="Apple-tab-span" style="white-space:pre">       </span>9   VBoxVMM.dylib                 <span class="Apple-tab-span" style="white-space:pre">     </span>0x0000000110312113 vmR3ReqProcessOneU(UVM*, VMREQ*) + 643 (VMReq.cpp:1254)</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>10  VBoxVMM.dylib                 <span class="Apple-tab-span" style="white-space:pre">     </span>0x000000011031327e VMR3ReqProcessU + 1262 (VMReq.cpp:1170)</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>11  VBoxVMM.dylib                 <span class="Apple-tab-span" style="white-space:pre">     </span>0x000000011030fab8 vmR3EmulationThreadWithId(RTTHREADINT*, UVMCPU*, unsigned int) + 856 (VMEmt.cpp:123)</div><div><span class="Apple-tab-span" style="white-space:pre">      </span>12  VBoxVMM.dylib                 <span class="Apple-tab-span" style="white-space:pre">     </span>0x000000011030bce4 vmR3EmulationThread + 52 (VMEmt.cpp:62)</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>13  VBoxRT.dylib                  <span class="Apple-tab-span" style="white-space:pre">        </span>0x00000001107754d9 rtThreadMain + 473 (thread.cpp:698)</div><div><span class="Apple-tab-span" style="white-space:pre">       </span>14  VBoxRT.dylib                  <span class="Apple-tab-span" style="white-space:pre">        </span>0x00000001108648ec rtThreadNativeMain(void*) + 444 (thread-posix.cpp:312)</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>15  libsystem_c.dylib             <span class="Apple-tab-span" style="white-space:pre">       </span>0x00007fff95ed47a2 _pthread_start + 327</div><div><span class="Apple-tab-span" style="white-space:pre">      </span>16  libsystem_c.dylib             <span class="Apple-tab-span" style="white-space:pre">       </span>0x00007fff95ec11e1 thread_start + 13</div><div><br></div><div><br></div><div>Best,</div><div>Lucas Dupin</div></blockquote><br><div><br></div><div>Hi Lucas.<br></div><div><br></div><div>I just have a few words to tell about native MacOS X fullscreen feature:</div><div>1. Within the current Runtime UI architecture having native MacOS X fullscreen support is not something easy (if possible at all).</div><div>Fullscreen-mode is not just "an arrow at the right corner", its internal mechanism which takes into account different aspects of VirtualBox GUI behavior.</div><div>When GUI changes mode representation (from normal to fullscreen, seamless or scale) through the menu action it recreates internal Runtime UI logic and finally machine-window(s), so entering fullscreen "the true Mac way" is not quite possible in such case.</div><div>Note: The VirtualBox Runtime UI architecture was developed in 2010, before the MacOS X Lion (2011) and ML (2012) was introduced, so such things like "animated fullscreen support" was not taken into account at all.</div><div>2. Moreover, iirc we are still supporting build on MacOS X SDK 10.5 and wish to do so for now.</div><div>3. And finally MacOS X Lion which supports "native fullscreen mode" doesn't have possibility to enter fullscreen on other than primary screen (multi-screen fullscreen support appeared in MacOS X Mountain Lion) which is totally unacceptable.</div><div><br></div><div>Taking into account these facts I'd say implementing and maintaining something *only* for MacOS X Mountain Lion is not our way.</div><br><div id="M2Signature"><div>-- </div><div><div><strong><em>With Best Regards,</em></strong></div><div><strong><em>[Oracle/VirtualBox] Sergey Dubov<br></em></strong></div><div><strong><em><br></em></strong></div></div></div></body></html>