[Bf-committers] I found a GHOSTBuster ;)

Jürgen Herrmann shadowrom at me.com
Mon Apr 29 10:18:22 CEST 2013


Hey Ton,

I enjoyed it. GHOST is quite cool and I learned a lot while debugging the code.

Jürgen

Am 29.04.2013 um 09:56 schrieb Ton Roosendaal <ton at blender.org>:

> Hi Jürgen,
> 
> Cool stuff, we welcome a bit of love for our Windows GHOST code!
> 
> -Ton-
> 
> ------------------------------------------------------------------------
> Ton Roosendaal  Blender Foundation   ton at blender.org    www.blender.org
> Blender Institute   Entrepotdok 57A  1018AD Amsterdam   The Netherlands
> 
> On 28 Apr, 2013, at 20:15, Jürgen Herrmann wrote:
> 
>> Hi Campbell, 
>> 
>> it was quite hard to find because there were multiple exceptions on different points in the message loop.
>> One was here:
>> 
>> void GHOST_WindowWin32::bringTabletContextToFront()
>> {
>> ->>    if (m_wintab) {
>> .
>> .
>> .
>> 
>> This had tob e fixed by making m_wintab static.
>> 
>> Another one was here:
>> LRESULT WINAPI GHOST_SystemWin32::s_wndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
>> {
>> ...
>> 
>>            if (LOWORD(lParam) == HTCLIENT) {
>>                    // Load the current cursor
>> -->                    window->loadCursor(window->getCursorVisibility(), window->getCursorShape());
>> ...
>> 
>> And so on
>> 
>> This was the point where i took a closer look at the window* at the beginning of s_wndProc
>> 
>> It was:
>> GHOST_WindowWin32 *window = (GHOST_WindowWin32 *)::GetWindowLong(hwnd, GWL_USERDATA);
>> 
>> I changed it to:
>> GHOST_WindowWin32 *window = (GHOST_WindowWin32 *)::GetWindowLongPtr(hwnd, GWL_USERDATA);
>> 
>> I'll provide a patch on patchtracker for this ;)
>> 
>> - Jürgen
>> -----Ursprüngliche Nachricht-----
>> Von: bf-committers-bounces at blender.org [mailto:bf-committers-bounces at blender.org] Im Auftrag von Campbell Barton
>> Gesendet: Sonntag, 28. April 2013 20:01
>> An: bf-blender developers
>> Betreff: Re: [Bf-committers] I found a GHOSTBuster ;)
>> 
>> On Mon, Apr 29, 2013 at 3:46 AM, Jürgen Herrmann <shadowrom at me.com> wrote:
>>> I finally found the crashing factor in GHOST Win32 on Win8.
>>> It was a nasty GetWindowLong that should have been a GetWindowLongPtr.
>>> 
>>> I tested the change in MSVC 2008, 2010 and 2012. Everything seems to work fine and smooth.
>>> 
>>> I'll upload 3 test builds and the patch to my site. This could take a while due to a slow Internet connection.
>>> 
>>> Now I'll focus on fixing OpenCOLLADA and libmv compilation. Maybe I'll find time to build cuda binaries with 2012 too, this guide looks promising:
>>> 
>>> http://blog.norture.com/2012/10/gpu-parallel-programming-in-vs2012-wit
>>> h-nvidia-cuda/
>>> 
>>> If someone wants to try: http://shadowrom.de
>>> 
>>> Jürgen
>> 
>> Good to hear you found the problem,
>> Sounds like this fix should be applied to trunk too?, could you make a patch available?
>> 
>> Out of curiosity what made this problem so hard to track down?
>> 
>> --
>> - Campbell
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-committers
>> 
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-committers
> 
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers


More information about the Bf-committers mailing list