Revision: 57026
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57026
Author:   alexk
Date:     2013-05-25 21:59:34 +0000 (Sat, 25 May 2013)
Log Message:
-----------
Live resize on Windows. Based on Ton's patch for mac.
Removing old resize stuff. 
Windows has resize lag, which creates black gap with openGL. Still looking to 
fix it.

Modified Paths:
--------------
    trunk/blender/intern/ghost/CMakeLists.txt
    trunk/blender/intern/ghost/SConscript
    trunk/blender/intern/ghost/intern/GHOST_SystemWin32.cpp
    trunk/blender/intern/ghost/intern/GHOST_WindowWin32.cpp
    trunk/blender/intern/ghost/intern/GHOST_WindowWin32.h
    trunk/blender/source/blender/windowmanager/intern/wm_window.c

Removed Paths:
-------------
    trunk/blender/intern/ghost/intern/GHOST_SizerWin32.cpp
    trunk/blender/intern/ghost/intern/GHOST_SizerWin32.h

Modified: trunk/blender/intern/ghost/CMakeLists.txt
===================================================================
--- trunk/blender/intern/ghost/CMakeLists.txt   2013-05-25 21:24:09 UTC (rev 
57025)
+++ trunk/blender/intern/ghost/CMakeLists.txt   2013-05-25 21:59:34 UTC (rev 
57026)
@@ -296,7 +296,6 @@
                intern/GHOST_SystemPathsWin32.cpp
                intern/GHOST_WindowWin32.cpp
                intern/GHOST_DropTargetWin32.cpp
-               intern/GHOST_SizerWin32.cpp
 
                intern/GHOST_DisplayManagerWin32.h
                intern/GHOST_DropTargetWin32.h
@@ -304,7 +303,6 @@
                intern/GHOST_SystemPathsWin32.h
                intern/GHOST_WindowWin32.h
                intern/GHOST_TaskbarWin32.h
-               intern/GHOST_SizerWin32.h
        )
 
        if(WITH_INPUT_NDOF)

Modified: trunk/blender/intern/ghost/SConscript
===================================================================
--- trunk/blender/intern/ghost/SConscript       2013-05-25 21:24:09 UTC (rev 
57025)
+++ trunk/blender/intern/ghost/SConscript       2013-05-25 21:59:34 UTC (rev 
57026)
@@ -37,7 +37,7 @@
     sources += env.Glob('intern/*.mm')
 
 
-pf = ['GHOST_DisplayManager', 'GHOST_System', 'GHOST_SystemPaths', 
'GHOST_Window', 'GHOST_DropTarget', 'GHOST_NDOFManager', 'GHOST_Sizer']
+pf = ['GHOST_DisplayManager', 'GHOST_System', 'GHOST_SystemPaths', 
'GHOST_Window', 'GHOST_DropTarget', 'GHOST_NDOFManager']
 defs=['_USE_MATH_DEFINES']
 
 incs = [

Deleted: trunk/blender/intern/ghost/intern/GHOST_SizerWin32.cpp
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_SizerWin32.cpp      2013-05-25 
21:24:09 UTC (rev 57025)
+++ trunk/blender/intern/ghost/intern/GHOST_SizerWin32.cpp      2013-05-25 
21:59:34 UTC (rev 57026)
@@ -1,202 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2013 Blender Foundation.
- * All rights reserved.
- *
- * Contributor(s): Alexandr Kuznetsov
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file ghost/intern/GHOST_SizerWin32.cpp
- *  \ingroup GHOST
- */
-
-#ifndef __GHOST_SIZERWIN32_CPP__
-#define __GHOST_SIZERWIN32_CPP__
-
-
-#include "GHOST_SizerWin32.h"
-#include <windowsx.h>
-
-#define T_NONE (0)
-#define T_SIZE (1)
-#define T_MOVE (2)
-#define T_MOVESIZE (3)
-
-
-static void RectCopyH(RECT * t, RECT * f)
-{
-       t->left = f->left;
-       t->right = f->right;
-}
-
-static void RectCopyV(RECT * t, RECT * f)
-{
-       t->top = f->top;
-       t->bottom = f->bottom;
-}
-
-static void RectCopy(RECT * t, RECT * f)
-{
-       RectCopyH(t,f);
-       RectCopyV(t,f);
-}
-
-
-GHOST_SizerWin32::GHOST_SizerWin32(void)
-{
-       hortransf = vertransf = 0;
-       minsize[0] = minsize[1] = 0;
-       hwnd = 0;
-}
-
-GHOST_SizerWin32::~GHOST_SizerWin32(void)
-{
-       if(isWinChanges())
-               cancel();
-}
-
-void GHOST_SizerWin32::setMinSize(int minx, int miny)
-{
-       minsize[0] = minx;
-       minsize[1] = miny;
-
-
-}
-
-bool GHOST_SizerWin32::isWinChanges(void)
-{
-       return hortransf||vertransf;
-}
-
-
-void GHOST_SizerWin32::startSizing(unsigned short type)
-{
-       //SetCapture(hwnd);
-       POINT coord;
-
-       switch(type & 0xf)
-       {
-
-       case WMSZ_LEFT:                 hortransf = T_MOVESIZE;
-                                                       vertransf = T_NONE; 
break;
-       case WMSZ_RIGHT:                hortransf = T_SIZE;
-                                                       vertransf = T_NONE; 
break;              
-       case WMSZ_TOP:                  hortransf = T_NONE;
-                                                       vertransf = T_MOVESIZE; 
break;
-       case WMSZ_TOPLEFT:              hortransf = T_MOVESIZE;
-                                                       vertransf = T_MOVESIZE; 
break;
-       case WMSZ_TOPRIGHT:             hortransf = T_SIZE;
-                                                       vertransf = T_MOVESIZE; 
break;
-       case WMSZ_BOTTOM:               hortransf = T_NONE;
-                                                       vertransf = T_SIZE; 
break;
-       case WMSZ_BOTTOMLEFT:   hortransf = T_MOVESIZE;
-                                                       vertransf = T_SIZE; 
break;
-       case WMSZ_BOTTOMRIGHT:  hortransf = T_SIZE;
-                                                       vertransf = T_SIZE; 
break;
-
-       }
-
-
-
-       POINT mp;
-       GetCursorPos(&mp);
-       startpos[0]=mp.x;
-       startpos[1]=mp.y;
-
-       GetWindowRect(hwnd, &initrect);
-       initrect.bottom-=initrect.top;
-       initrect.right-=initrect.left;
-       RectCopy(&goodrect,&initrect);
-
-}
-
-void GHOST_SizerWin32::setHWND(HWND hWnd)
-{
-       this->hwnd = hWnd;
-}
-
-
-void GHOST_SizerWin32::updateWindowSize(void)
-{
-       if(!isWinChanges())
-               return;
-       if(hortransf||vertransf){
-               POINT mp;
-               GetCursorPos(&mp);
-               int hordelta = mp.x-startpos[0];
-               int verdelta = mp.y-startpos[1];
-
-               RECT newrect;
-               RectCopy(&newrect, &initrect);
-
-               switch(hortransf)
-               {
-                       case T_SIZE: 
-                               newrect.right+=hordelta;
-                               break;
-                               case T_MOVESIZE:
-                               newrect.right-=hordelta;
-                               case T_MOVE:
-                               newrect.left+=hordelta;
-                               break;
-               }
-
-               switch(vertransf)
-               {
-                       case T_SIZE: 
-                               newrect.bottom+=verdelta;
-                               break;
-                               case T_MOVESIZE:
-                               newrect.bottom-=verdelta;
-                               case T_MOVE:
-                               newrect.top+=verdelta;
-                               break;
-               }
-
-                               
-               if(newrect.right<minsize[0])
-                       RectCopyH(&newrect,&goodrect);
-               if(newrect.bottom<minsize[1])
-                       RectCopyV(&newrect,&goodrect);
-
-       SetWindowPos(hwnd,0,newrect.left, newrect.top, 
-               newrect.right, newrect.bottom,
-               0);
-
-       RectCopy(&goodrect, &newrect);
-
-
-}
-}
-
-void GHOST_SizerWin32::cancel(void)
-{
-       accept();
-       SetWindowPos(hwnd,0,initrect.left, initrect.top, 
-               initrect.right, initrect.bottom, 0);
-}
-
-void GHOST_SizerWin32::accept(void)
-{
-       hortransf=vertransf=0;
-}
-
-
-#endif /* __GHOST_SIZERWIN32_CPP__*/
\ No newline at end of file

Deleted: trunk/blender/intern/ghost/intern/GHOST_SizerWin32.h
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_SizerWin32.h        2013-05-25 
21:24:09 UTC (rev 57025)
+++ trunk/blender/intern/ghost/intern/GHOST_SizerWin32.h        2013-05-25 
21:59:34 UTC (rev 57026)
@@ -1,63 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2013 Blender Foundation.
- * All rights reserved.
- *
- * Contributor(s): Alexandr Kuznetsov
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file ghost/intern/GHOST_SizerWin32.h
- *  \ingroup GHOST
- */
-#ifndef __GHOST_SIZERWIN32_H__
-#define __GHOST_SIZERWIN32_H__
-
-#define _WIN32_WINNT 0x501 // require Windows XP or newer
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-class GHOST_SizerWin32
-{
-       private:
-               HWND hwnd;
-               int startpos[2];
-               int minsize[2];
-               RECT initrect;
-               RECT goodrect;
-               unsigned char hortransf, vertransf;
-
-
-       public:
-               GHOST_SizerWin32(void);
-               ~GHOST_SizerWin32(void);
-
-               bool isWinChanges(void);
-               void startSizing(unsigned short type);
-               void updateWindowSize(void);
-
-               void setHWND(HWND hWnd);
-               void setMinSize(int minx, int miny);
-
-               void cancel(void);
-               void accept(void);
-
-       
-};
-
-#endif /*#ifndef __GHOST_SIZERWIN32_H__*/

Modified: trunk/blender/intern/ghost/intern/GHOST_SystemWin32.cpp
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_SystemWin32.cpp     2013-05-25 
21:24:09 UTC (rev 57025)
+++ trunk/blender/intern/ghost/intern/GHOST_SystemWin32.cpp     2013-05-25 
21:59:34 UTC (rev 57026)
@@ -984,14 +984,7 @@
                                        if (wParam == SC_KEYMENU) 
                                        {
                                                eventHandled = true;
-                                       }// else
-                                               /* XXX Disable for now due to 
area resizing issue. bug# 34990 */
-                                       /*if((wParam&0xfff0)==SC_SIZE)
-                                       {
-                                               
window->registerMouseClickEvent(0);
-                                               
window->m_wsh.startSizing(wParam);
-                                               eventHandled = true;
-                                       }*/
+                                       }
                                        break;
                                
////////////////////////////////////////////////////////////////////////
                                // Tablet events, processed
@@ -1029,10 +1022,7 @@
                                        break;
                                case WM_LBUTTONUP:
                                        window->registerMouseClickEvent(1);
-                                       if(window->m_wsh.isWinChanges())
-                                               window->m_wsh.accept();
-                                       else
-                                               event = 
processButtonEvent(GHOST_kEventButtonUp, window, GHOST_kButtonMaskLeft);
+                                       event = 
processButtonEvent(GHOST_kEventButtonUp, window, GHOST_kButtonMaskLeft);
                                        break;
                                case WM_MBUTTONUP:
                                        window->registerMouseClickEvent(1);
@@ -1052,10 +1042,7 @@
                                        }
                                        break;
                                case WM_MOUSEMOVE:
-                                       if(window->m_wsh.isWinChanges())
-                                               
window->m_wsh.updateWindowSize();
-                                       else
-                                               event = 
processCursorEvent(GHOST_kEventCursorMove, window);
+                                       event = 
processCursorEvent(GHOST_kEventCursorMove, window);
                                        break;
                                case WM_MOUSEWHEEL:
                                        /* The WM_MOUSEWHEEL message is sent to 
the focus window 
@@ -1129,6 +1116,19 @@
                                        lResult = ::DefWindowProc(hwnd, msg, 
wParam, lParam);
                                        break;
                                }
+                               case WM_ENTERSIZEMOVE:
+                                       /* The WM_ENTERSIZEMOVE message is sent 
one time to a window after it enters the moving 
+                                        * or sizing modal loop. The window 
enters the moving or sizing modal loop when the user 
+                                        * clicks the window's title bar or 
sizing border, or when the window passes the 
+                                        * WM_SYSCOMMAND message to the 
DefWindowProc function and the wParam parameter of the 
+                                        * message specifies the SC_MOVE or 
SC_SIZE value. The operation is complete when 
+                                        * DefWindowProc returns. 
+                                        */
+                                       window->m_inLiveResize = 1;
+                                       break;
+                               case WM_EXITSIZEMOVE:
+                                       window->m_inLiveResize = 0;
+                                       break;
                                case WM_PAINT:
                                        /* An application sends the WM_PAINT 
message when the system or another application 
                                         * makes a request to paint a portion 
of an application's window. The message is sent
@@ -1136,8 +1136,14 @@

@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to