Age | Commit message (Collapse) | Author |
|
Thanks to jesterKing!
|
|
Actual problem was caused by insufficient buffer size
in ui_text_leftclip()
Also fixed possible invalid memory write in GHOST_SystemWin32::getClipboard
which was caused by accessing clipboard buffer after closing
clipboard. This mustn't happen.
Also fixed possible crush when buffer was failed to be locked.
|
|
unintentional, since there is already a toggle to enable/disable it.
|
|
Should fix MingW build problems - mingw users, please test too :)
|
|
already.
|
|
|
|
|
|
|
|
some WMs not only send 'crossing' events when really moving from one
window to another, but also when mousewheeling.
distinguishing those events 'mode' property fixed this.
brecht++ for figuring out the details.
|
|
|
|
Sebastian Korczak
(patch co-reviewed by Nathan Letwory)
Overview: GHOST using rawinput for keyboard input. GHOST window receives WM_INPUT only when it is the active window. Child window cannot be active, so when embedding blenderplayer, WM_INPUT is consumed by top level parent window (for Burster it is the web browser window). Patch register raw input device as 'inputsink' - it makes GHOST window receives all keyboard messages. Window procedure check if GHOST window is active or focused.
::TranslateMessage(&msg) generates WM_CHAR etc. messages from WM_KEYDOWN, WM_KEYUP etc. Because of using RawInput only WM_INPUT messages are processed, so we doesn't need WM_CHAR, WM_KEYDOWN etc. [this is why ::TranslateMessage is no longer getting called].
Note: It's responsibility of the parent window (aka the wrapper) to send WM_SETFOCUS to child window (embedded blenderplayer).
However some parent windows (e.g. webbrowsers) will not send WM_SETFOCUS to the child window when someone clicks on it.
In those cases the blenderplayer needs to be patched to call setFocus(&msg); in the event of WM_LBUTTONDOWN (see GHOST_SystemWin32.cpp)
|
|
anything, only contained a hash map and functions to pass command line args
to the game engine. Moved those to container and BlenderRoutines modules.
|
|
Sebastian Korczak (with some small tweaks) + adding GHOST_PRINTF
The patch can also be found in http://codereview.appspot.com/4431072/
##############
This patch fix anti-aliasing (multisampling) implementation for win32 platform. It also gives opportunity to embed blenderplayer inside parent window.
Usage:
blenderplayer.exe -i 123456 -m 16 file.blend
where:
123456 - parent window handler (integer, default: 0)
16 - multisample level (integer, default: 0, max: 16. Put there maximum level you want. If not supported, player will automatically try 15,14,13,...,3,2,1)
##############
This patch was originally created as part of the Burster (aka webplugin) project but benefit any one embedding the bge in a custom OpenGL context. By the way, to embed the BGE in a .Net application is really straightforward now =)
The Multisampling work for blenderplayer as a whole.
Missing functionalities:
- to expose the multisampling to the ui (so far it only works in console)
- window focus and keyboard messages for embedded blenderplayer (supported in their previous patch for 2.49, yet to be ported over)
- handle resizing (to be investigated, indeed the changes in getState() in GHOST_WindowWin32.cpp are going to get in the way of that if I'm not mistaken. To be addressed together.
Doxygen documentation to be added whenever I sort out how to do so. Sorry Nathan too many stuff to deal with at the same time. The sooner this patch gets in, the sooner the missing functionalities can be patched on top of that.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
- ghost C api, BLI_get_folder_version() could assign garbage values.
- pointcache ptcache_find_frames_around() had a superfluous NULL check which would have crashed anyway if actually NULL.
|
|
|
|
|
|
FFMPEG was reallocating buffers it didn't own and wasn't allowed to. This workaround should work now flawlessly.
Also fixing a bug regarding unpacking sounds, the UI stated unpacking to //audio/filename while it was unpacking to //sounds/filename
|
|
ensure start of text is always visible.
- also left in test for fix [#26933] which left it broken.
- quiet warning in AUD Py API.
|
|
This video card need a bit different approach to buffer swapping.
Patch provided by nico_ga from IRC.
|
|
This crash was discovered by Dalai and this happened because of
unset current context (as result of call wglMakeCurrent(NULL, NULL)).
In this case glGetString(GL_VENDOR) returns NULL. Rather than add check
for vendor != NULL before string comparison, I've changed a bit logic of
context creation:
- Create context and set it as current
- If it's crappy Intel card -- delete this context and
share the only one context between all Windows
- Otherwise, use initial logic (with sharing lists and so on)
This could also fix crash when opening userprefs from a menu with Intel card.
|
|
-> The feature was completely missing o_O
Also fixed an ffmpeg seeking bug.
|
|
|
|
|
|
Intel video cards don't work fine with multiple contexts and
have to share the same context for all windows. This could work
incorrect with multiple video cards configuration, so suppose
there'll be no such situation (Intel cards are mostly in portable
devices like notebooks and laptops, where there's actually no
dual video cards). Anyway, it should work much better now.
Non-Intel cards behavior was kept unchanged.
Thanks to Ton for debug session :)
|
|
own glew library.
|
|
patch from Richard Shaw
|
|
console when unwrapping.
|
|
|
|
adjust to use floats.
+ minor update to demo_mode
|
|
|
|
the event consumer was being freed twice, once when going out of C++ scope, another when freeing the system.
|
|
this way portable builds wont find scripts in /usr/share.
|
|
|
|
|
|
reported by Georg K
with patch [#26469] Windows mouse fix
by Alexander Kuznetsov
The amount of mouse grabs wasn't properly balanced with ungrabs, thus preventing from using proper mouse input outside client area.
|
|
size is 32 on XP, while sizeof(ri) gives 40. Pick the smaller one to pass to memcpy to prevent crashes.
|
|
comparisons).
|
|
The typo resulted in bad keyboard input handling in MinGW builds.
|
|
Reported by Michael R
This was one thing I didn't test when accepting patch [#26364]. It is important to not
send repeats of modifier keys.
|
|
Submitted by Alexander Kuznetsov
Fixes [#25279] Shift-Numpad Combinations fail to align view to selected
and addresses [#26328] Blender uses global keyboard message hook which hurts system responsiveness on Windows
A whole new way of handling keyboard input improves greatly both code readability and event handling. Thanks for the great patch, Alexander!
|
|
also use <> for system includes
|
|
|
|
|