Winenv seems to be missing ghost_systemwin32.h Adding this in header should fix it
#ifdef FREE_WINDOWS #ifdef WINVER #undef WINVER #endif /* Some stuff requires WINVER 0x500, but mingw's default is 0x400 */ #define WINVER 0x0501 #endif But I cannot test it right now. Sent from my phone On May 2, 2011, at 7:06 AM, Joshua Leung <[email protected]> wrote: > This seems to break compiling with mingw+scons (gcc 4.5.0), but works > fine with msvc 2008 > > Compiling ==> 'GHOST_SystemWin32.cpp' > intern\ghost\intern\GHOST_SystemWin32.cpp: In member function 'virtual > int GHOST_SystemWin32::toggle > Console(int)': > intern\ghost\intern\GHOST_SystemWin32.cpp:1225:32: error: > 'GetConsoleWindow' was not declared in thi > s scope > scons: *** [C:\blenderdev\b250\build\intern\ghost\intern\GHOST_SystemWin32.o] > Error 1 > > > On Mon, May 2, 2011 at 8:07 PM, Nathan Letwory > <[email protected]> wrote: >> Revision: 36426 >> >> http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36426 >> Author: jesterking >> Date: 2011-05-02 08:07:24 +0000 (Mon, 02 May 2011) >> Log Message: >> ----------- >> Fix [#26981] Command window is not opening in 2.57.0 >> Reported by Thomas Engel >> Fix [#26938] Blender Zoom not working after startup (Windows) >> Reported by Ilija Boshkov >> >> by applying patch [#26881] Fix for console disappearing in debug mode >> [Windows] >> Submitted by Alexander Kuznetsov (AlexK) >> >> The patch moves console toggling code into GHOST and improves on the >> toggling behaviour. >> >> The patch changes handling of WM_SYSCOMMAND so that alt-key toggling isn't a >> problem anymore. >> >> Modified Paths: >> -------------- >> trunk/blender/intern/ghost/GHOST_C-api.h >> trunk/blender/intern/ghost/GHOST_ISystem.h >> trunk/blender/intern/ghost/intern/GHOST_C-api.cpp >> trunk/blender/intern/ghost/intern/GHOST_SystemWin32.cpp >> trunk/blender/intern/ghost/intern/GHOST_SystemWin32.h >> trunk/blender/source/blender/blenlib/BLI_winstuff.h >> trunk/blender/source/blender/blenlib/intern/winstuff.c >> trunk/blender/source/blender/windowmanager/intern/wm_init_exit.c >> trunk/blender/source/blender/windowmanager/intern/wm_operators.c >> >> Modified: trunk/blender/intern/ghost/GHOST_C-api.h >> =================================================================== >> --- trunk/blender/intern/ghost/GHOST_C-api.h 2011-05-02 08:04:05 UTC (rev >> 36425) >> +++ trunk/blender/intern/ghost/GHOST_C-api.h 2011-05-02 08:07:24 UTC (rev >> 36426) >> @@ -845,6 +845,18 @@ >> extern void GHOST_putClipboard(GHOST_TInt8 *buffer, int selection); >> >> >> + >> +/** >> + * Toggles console >> + * @action 0 - Hides >> + * 1 - Shows >> + * 2 - Toggles >> + * 3 - Hides if it runs not from command line >> + * * - Does nothing >> + * @return current status (1 -visible, 0 - hidden) >> + */ >> +extern int GHOST_toggleConsole(int action); >> + >> #ifdef __cplusplus >> } >> #endif >> >> Modified: trunk/blender/intern/ghost/GHOST_ISystem.h >> =================================================================== >> --- trunk/blender/intern/ghost/GHOST_ISystem.h 2011-05-02 08:04:05 UTC (rev >> 36425) >> +++ trunk/blender/intern/ghost/GHOST_ISystem.h 2011-05-02 08:07:24 UTC (rev >> 36426) >> @@ -355,6 +355,16 @@ >> */ >> virtual GHOST_TSuccess getButtonState(GHOST_TButtonMask mask, bool& >> isDown) const = 0; >> >> + /** >> + * Toggles console >> + * @action 0 - Hides >> + * 1 - Shows >> + * 2 - Toggles >> + * 3 - Hides if it runs not from command line >> + * * - Does nothing >> + * @return current status (1 -visible, 0 - hidden) >> + */ >> + virtual int toggleConsole(int action) = 0; >> >> >> /*************************************************************************************** >> ** Access to clipboard. >> >> Modified: trunk/blender/intern/ghost/intern/GHOST_C-api.cpp >> =================================================================== >> --- trunk/blender/intern/ghost/intern/GHOST_C-api.cpp 2011-05-02 08:04:05 >> UTC (rev 36425) >> +++ trunk/blender/intern/ghost/intern/GHOST_C-api.cpp 2011-05-02 08:07:24 >> UTC (rev 36426) >> @@ -877,3 +877,9 @@ >> GHOST_ISystem* system = GHOST_ISystem::getSystem(); >> system->putClipboard(buffer, selection); >> } >> + >> +int GHOST_toggleConsole(int action) >> +{ >> + GHOST_ISystem* system = GHOST_ISystem::getSystem(); >> + return system->toggleConsole(action); >> +} >> >> Modified: trunk/blender/intern/ghost/intern/GHOST_SystemWin32.cpp >> =================================================================== >> --- trunk/blender/intern/ghost/intern/GHOST_SystemWin32.cpp 2011-05-02 >> 08:04:05 UTC (rev 36425) >> +++ trunk/blender/intern/ghost/intern/GHOST_SystemWin32.cpp 2011-05-02 >> 08:07:24 UTC (rev 36426) >> @@ -174,6 +174,8 @@ >> GHOST_ASSERT(m_displayManager, >> "GHOST_SystemWin32::GHOST_SystemWin32(): m_displayManager==0\n"); >> m_displayManager->initialize(); >> >> + m_consoleStatus = 1; >> + >> // Check if current keyboard layout uses AltGr and save keylayout ID >> for >> // specialized handling if keys like VK_OEM_*. I.e. french keylayout >> // generates VK_OEM_8 for their exclamation key (key left of right >> shift) >> @@ -186,6 +188,7 @@ >> { >> // Shutdown COM >> OleUninitialize(); >> + toggleConsole(1); >> } >> >> >> @@ -847,7 +850,14 @@ >> * a dead key that is pressed while >> holding down the alt key. >> * To prevent the sound, >> DefWindowProc must be avoided by return >> */ >> - return 0; >> + break; >> + case WM_SYSCOMMAND: >> + /* The WM_SYSCHAR message is sent to >> the window when system commands such as >> + * maximize, minimize or close the >> window are triggered. Also it is sent when ALT >> + * button is press for menu. To >> prevent this we must return preventing DefWindowProc. >> + */ >> + if(wParam==SC_KEYMENU) return 0; >> + break; >> >> //////////////////////////////////////////////////////////////////////// >> // Tablet events, processed >> >> //////////////////////////////////////////////////////////////////////// >> @@ -1047,8 +1057,12 @@ >> * DestroyWindow function sends the >> WM_NCDESTROY message to the window following the WM_DESTROY >> * message. WM_DESTROY is used to >> free the allocated memory object associated with the window. >> */ >> + break; >> case WM_KILLFOCUS: >> - /* The WM_KILLFOCUS message is sent >> to a window immediately before it loses the keyboard focus. */ >> + /* The WM_KILLFOCUS message is sent >> to a window immediately before it loses the keyboard focus. >> + * We want to prevent this if a >> window is still active and it loses focus to nowhere*/ >> + if(!wParam && >> hwnd==GetActiveWindow()) >> + SetFocus(hwnd); >> case WM_SHOWWINDOW: >> /* The WM_SHOWWINDOW message is sent >> to a window when the window is about to be hidden or shown. */ >> case WM_WINDOWPOSCHANGING: >> @@ -1196,3 +1210,32 @@ >> return; >> } >> } >> + >> +int GHOST_SystemWin32::toggleConsole(int action) >> +{ >> + switch(action) >> + { >> + case 3: //hide if no console >> + { >> + CONSOLE_SCREEN_BUFFER_INFO csbi = {{0}}; >> + >> if(!GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi) || >> csbi.dwCursorPosition.X || csbi.dwCursorPosition.Y>1) >> + break; >> + } >> + case 0: //hide >> + ShowWindow(GetConsoleWindow(),SW_HIDE); >> + m_consoleStatus = 0; >> + break; >> + case 1: //show >> + ShowWindow(GetConsoleWindow(),SW_SHOW); >> + m_consoleStatus = 1; >> + break; >> + case 2: //toggle >> + >> ShowWindow(GetConsoleWindow(),m_consoleStatus?SW_HIDE:SW_SHOW); >> + m_consoleStatus=!m_consoleStatus; >> + break; >> + >> + }; >> + >> + >> + return m_consoleStatus; >> +} >> >> Modified: trunk/blender/intern/ghost/intern/GHOST_SystemWin32.h >> =================================================================== >> --- trunk/blender/intern/ghost/intern/GHOST_SystemWin32.h 2011-05-02 >> 08:04:05 UTC (rev 36425) >> +++ trunk/blender/intern/ghost/intern/GHOST_SystemWin32.h 2011-05-02 >> 08:07:24 UTC (rev 36426) >> @@ -415,6 +415,17 @@ >> * Initiates WM_INPUT messages from keyboard >> */ >> GHOST_TInt32 initKeyboardRawInput(void); >> + >> + /** >> + * Toggles console >> + * @action 0 - Hides >> + * 1 - Shows >> + * 2 - Toggles >> + * 3 - Hides if it runs not from command line >> + * * - Does nothing >> + * @return current status (1 -visible, 0 - hidden) >> + */ >> + int toggleConsole(int action); >> >> /** The current state of the modifier keys. */ >> GHOST_ModifierKeys m_modifierKeys; >> @@ -431,6 +442,9 @@ >> /** stores keyboard layout. */ >> HKL m_keylayout; >> >> + /** Console status */ >> + int m_consoleStatus; >> + >> /** handle for user32.dll*/ >> HMODULE user32; >> #ifdef NEED_RAW_PROC >> @@ -471,6 +485,5 @@ >> } >> } >> } >> - >> #endif // _GHOST_SYSTEM_WIN32_H_ >> >> >> Modified: trunk/blender/source/blender/blenlib/BLI_winstuff.h >> =================================================================== >> --- trunk/blender/source/blender/blenlib/BLI_winstuff.h 2011-05-02 08:04:05 >> UTC (rev 36425) >> +++ trunk/blender/source/blender/blenlib/BLI_winstuff.h 2011-05-02 08:07:24 >> UTC (rev 36426) >> @@ -127,7 +127,6 @@ >> struct dirent direntry; >> } DIR; >> >> -int IsConsoleEmpty(void); >> void RegisterBlendExtension(void); >> DIR *opendir (const char *path); >> struct dirent *readdir(DIR *dp); >> >> Modified: trunk/blender/source/blender/blenlib/intern/winstuff.c >> =================================================================== >> --- trunk/blender/source/blender/blenlib/intern/winstuff.c 2011-05-02 >> 08:04:05 UTC (rev 36425) >> +++ trunk/blender/source/blender/blenlib/intern/winstuff.c 2011-05-02 >> 08:07:24 UTC (rev 36426) >> @@ -66,14 +66,6 @@ >> return 1; >> } >> >> -int IsConsoleEmpty(void) >> -{ >> - CONSOLE_SCREEN_BUFFER_INFO csbi = {{0}}; >> - HANDLE hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE); >> - >> - return GetConsoleScreenBufferInfo(hStdOutput, &csbi) && >> csbi.dwCursorPosition.X == 0 && csbi.dwCursorPosition.Y == 0; >> -} >> - >> void RegisterBlendExtension_Fail(HKEY root) >> { >> printf("failed\n"); >> >> Modified: trunk/blender/source/blender/windowmanager/intern/wm_init_exit.c >> =================================================================== >> --- trunk/blender/source/blender/windowmanager/intern/wm_init_exit.c >> 2011-05-02 08:04:05 UTC (rev 36425) >> +++ trunk/blender/source/blender/windowmanager/intern/wm_init_exit.c >> 2011-05-02 08:07:24 UTC (rev 36426) >> @@ -75,6 +75,7 @@ >> #include "SYS_System.h" >> #endif >> #include "GHOST_Path-api.h" >> +#include "GHOST_C-api.h" >> >> #include "RNA_define.h" >> >> @@ -104,7 +105,6 @@ >> >> #include "BKE_depsgraph.h" >> #include "BKE_sound.h" >> -#include "GHOST_C-api.h" >> >> static void wm_init_reports(bContext *C) >> { >> @@ -120,17 +120,11 @@ >> /* only called once, for startup */ >> void WM_init(bContext *C, int argc, const char **argv) >> { >> - >> if (!G.background) { >> wm_ghost_init(C); /* note: it assigns C to ghost! */ >> wm_init_cursor_data(); >> -#ifdef WIN32 >> - if (IsConsoleEmpty()) /* never hide if the console window >> pre-existed */ >> - WM_console_toggle(C, wm_start_with_console); >> -#endif >> } >> GHOST_CreateSystemPaths(); >> - >> wm_operatortype_init(); >> >> set_free_windowmanager_cb(wm_close_and_free); /* library.c */ >> @@ -144,7 +138,6 @@ >> >> BLF_init(11, U.dpi); /* Please update >> source/gamengine/GamePlayer/GPG_ghost.cpp if you change this */ >> BLF_lang_init(); >> - >> /* get the default database, plus a wm */ >> WM_read_homefile(C, NULL, G.factory_startup); >> >> @@ -167,6 +160,9 @@ >> (void)argv; /* unused */ >> #endif >> >> + if (!G.background && !wm_start_with_console) >> + GHOST_toggleConsole(3); >> + >> wm_init_reports(C); /* reports cant be initialized before the wm */ >> >> if (!G.background) { >> @@ -194,7 +190,6 @@ >> */ >> >> BLI_strncpy(G.lib, G.main->name, FILE_MAX); >> - >> } >> >> void WM_init_splash(bContext *C) >> @@ -357,9 +352,6 @@ >> >> sound_exit(); >> >> -#ifdef WIN32 >> - WM_console_toggle(C, 1); /* never leave behind invisible consoles */ >> -#endif >> >> /* first wrap up running stuff, we assume only the active WM is >> running */ >> /* modal handlers are on window level freed, others too? */ >> @@ -481,7 +473,6 @@ >> getchar(); >> } >> #endif >> - >> exit(G.afbreek==1); >> } >> >> >> Modified: trunk/blender/source/blender/windowmanager/intern/wm_operators.c >> =================================================================== >> --- trunk/blender/source/blender/windowmanager/intern/wm_operators.c >> 2011-05-02 08:04:05 UTC (rev 36425) >> +++ trunk/blender/source/blender/windowmanager/intern/wm_operators.c >> 2011-05-02 08:07:24 UTC (rev 36426) >> @@ -38,13 +38,8 @@ >> #include <stddef.h> >> #include <assert.h> >> >> -#ifdef WIN32 >> -#include "BLI_winstuff.h" >> -#include <windows.h> >> +#include "GHOST_C-api.h" >> >> -#include <io.h> >> -#endif >> - >> #include "MEM_guardedalloc.h" >> >> #include "DNA_ID.h" >> @@ -2001,7 +1996,6 @@ >> #endif >> >> >> - >> /* *********************** */ >> >> static void WM_OT_window_fullscreen_toggle(wmOperatorType *ot) >> @@ -2035,28 +2029,10 @@ >> } >> >> /* *********************** */ >> -#if defined(WIN32) >> -static int console= 1; >> -void WM_console_toggle(bContext *UNUSED(C), short show) >> -{ >> - if(show) { >> - ShowWindow(GetConsoleWindow(),SW_SHOW); >> - console= 1; >> - } >> - else { >> - ShowWindow(GetConsoleWindow(),SW_HIDE); >> - console= 0; >> - } >> -} >> >> static int wm_console_toggle_op(bContext *C, wmOperator *UNUSED(op)) >> { >> - if(console) { >> - WM_console_toggle(C, 0); >> - } >> - else { >> >> @@ Diff output truncated at 10240 characters. @@ >> _______________________________________________ >> Bf-blender-cvs mailing list >> [email protected] >> http://lists.blender.org/mailman/listinfo/bf-blender-cvs >> > _______________________________________________ > Bf-committers mailing list > [email protected] > http://lists.blender.org/mailman/listinfo/bf-committers _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
