Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-02-06Cleanup: remove redundant doxygen \file argumentCampbell Barton
Move \ingroup onto same line to be more compact and make it clear the file is in the group.
2019-02-01Cleanup: remove redundant, invalid info from headersCampbell Barton
BF-admins agree to remove header information that isn't useful, to reduce noise. - BEGIN/END license blocks Developers should add non license comments as separate comment blocks. No need for separator text. - Contributors This is often invalid, outdated or misleading especially when splitting files. It's more useful to git-blame to find out who has developed the code. See P901 for script to perform these edits.
2019-01-14Windows: add support for Windows Ink.Christopher Peerman
Before this Blender always needed the Wintab driver. This adds support for the native pressure API in Windows 8+, making it possible to get pressure sensitivity on e.g. Microsoft Surface hardware without any extra drivers. By default Blender will automatically use Wintab if available, and if not use Windows Ink instead. There is also a new user preference to explicitly specify which API to use if automatic detection fails. Fixes T57869: no pressure sensitivity with Surface pen or laptop. Code by Christopher Peerman with some tweaks by Brecht Van Lommel. Differential Revision: https://developer.blender.org/D4165
2018-06-29Cleanup: trailing newlinesCampbell Barton
2018-06-04Cleanup: strip ghost trailing spaceCampbell Barton
2017-03-25Automatic DPI for all platforms, per monitor DPI for Windows.Wouter
For Windows 8.1 and X11 (Linux, BSD) now use the DPI specified by the operating system, which previously only worked on macOS. For Windows this is handled per monitor, for X11 this is based on Xft.dpi or xrandr --dpi. This should result in appropriate font and button sizes by default in most cases. The UI has been simplified to a single UI Scale factor relative to the automatic DPI, instead of two DPI and Virtual Pixel Size settings. There is forward and backwards compatibility for existing user preferences. Reviewed By: brecht, LazyDodo Differential Revision: https://developer.blender.org/D2539
2016-08-18NDOF: compile 3D mouse code only if WITH_INPUT_NDOFMike Erwin
When WITH_INPUT_NDOF is disabled, 3D mouse handling code is removed from: - GHOST (was mostly done, finished the job) - window manager - various editors - RNA - keymaps The input tab of user prefs does not show 3D mouse settings. Key map editor does not show NDOF mappings. DNA does not change. On my Mac the compiled binary is 42KB smaller after this change. It runs fine WITH_INPUT_NDOF on or off.
2016-07-18[bf_intern_ghost/Windows] CleanupRay Molenkamp
This patch addresses the following issues in bf_intern_ghost ``` Warning C4312 'type cast': conversion from 'GHOST_TEmbedderWindowID' to 'HWND' of greater size bf_intern_ghost K:\BlenderGit\blender\intern\ghost\intern\GHOST_WindowWin32.cpp 179 Warning C4312 'type cast': conversion from 'GHOST_TEmbedderWindowID' to 'HWND' of greater size bf_intern_ghost K:\BlenderGit\blender\intern\ghost\intern\GHOST_WindowWin32.cpp 198 ``` GHOST_TEmbedderWindowID is defined as long, handles are however of pointer size, so this should have been an issue when we moved to 64 bits, guess we got lucky. fixed by turning GHOST_TEmbedderWindowID from long into void* ``` Warning C4302 'reinterpret_cast': truncation from 'HKL' to 'LANGID' bf_intern_ghost K:\BlenderGit\blender\intern\ghost\intern\GHOST_ImeWin32.cpp 67 ``` reinterpret_cast emits warnings on truncation, LOWORD does the job just as well with no warnings. ``` Warning C4838 conversion from 'int' to 'DWORD' requires a narrowing conversion bf_intern_ghost K:\BlenderGit\blender\intern\ghost\intern\GHOST_ContextWGL.cpp 734 Warning C4838 conversion from 'int' to 'BYTE' requires a narrowing conversion bf_intern_ghost K:\BlenderGit\blender\intern\ghost\intern\GHOST_ContextWGL.cpp 734 ``` Weird warning, it does a really bad job at telling you what parameter is causing the warning , tuns out there's a bunch of parameters that cause it but it still only yields a single warning, the problem is that every (somevar ? a : b) construct results in an integer type. which needs to be properly cast to get rid of the warning. ``` Warning C4996 'GetVersionExA': was declared deprecated bf_intern_ghost K:\BlenderGit\blender\intern\ghost\intern\GHOST_WindowWin32.cpp 105 Warning C4996 'GetVersionExA': was declared deprecated bf_intern_ghost K:\BlenderGit\blender\intern\ghost\intern\GHOST_WindowWin32.cpp 107 ``` The warning was clear, the code not as much. The version check in place here is quite convoluted and could be replaced by including VersionHelpers.h and calling IsWindows7OrGreater, However, CreateInstance will just return NULL in m_Bar if the interface is not supported, so the whole check is useless. This however did require that the CreateInstance call actually asked for ITaskbarList3 and not ITaskBarlist . (You're not really allowed to assign different interface types to each-other, a roundtrip through QueryInterface is required there, we were violating spec here by asking for ITaskBarlist and storing it in ITaskbarList3* ) Reviewers: sergey Reviewed By: sergey Subscribers: sergey Differential Revision: https://developer.blender.org/D2094
2016-06-09BGE: alpha on frame buffer and precedence of MSAA over swap.Benoit Bolsee
A new option '-a' can be passed to the blenderplayer. It forces the framebuffer to have an alpha channel. This can be used in VideoTexture to return a image with alpha channel with ImageViewport (provided alpha is set to True on the ImageViewport object and that the background color alpha channel is 0, which is the default). Without the -a option, the frame buffer has no alpha channel and ImageViewport always returns an opaque image, no matter what. In Linux, the player window will be rendered transparently over the desktop. In Windows, the player window is still rendered opaque because transparency of the window is only possible using the 'compositing' functions of Windows. The code is there but not enabled (look for WIN32_COMPOSITING) because 1) it doesn't work so well 2) it requires a DLL that is only available on Vista and up. give precedence to AA over Swap copy: Certain GPU (intel) will not allow MSAA together with swap copy. Previously, swap copy had priority over MSAA: fewer AA samples would be chosen if it was the condition to get swap copy. This patch reverse the logic: swap copy will be abandonned if another swap method (undefined or exchange) will provide the number of AA samples requested. If no AA samples is requested, swap copy still has the priority of course.
2016-05-10Fix T48369: Missing suport for main '+' key.Bastien Montagne
Many keyboard layouts (italian, spanish, german...) have direct access to '+' key on main keyboard area (not the numpad one), ans x11 has own define for this key, so use it instead of generating an unkown key event. Note that we most likely have much more missing 'specific' keycodes for non-US keyboard layout, but think since we already had a 'minus' keyevent, supporting 'plus' one is totally consistent. And we had a spare space in our defined values just for it even! This keyevent is only supported/generated by x11 and cocoa Ghost backends for now, neither SDL nor win32 seem to have matching key events...
2015-11-22Error out on Windows if driver does not support OpenGL 2.1 with an errorAntony Riakiotakis
messagebox.
2015-07-02Make OpenGL debug contexts a flag --debug-gpu instead of a compile timeAntony Riakiotakis
option. This makes sense, since contexts get created at runtime, there is little reason to require recompilation for this. Only works on linux currently, will be doing more OSs later
2015-04-08Cleanup: remove unused definesCampbell Barton
2015-02-25Fix silly mistake with flags which would make stereo buffers unsupportedAntony Riakiotakis
2015-02-25Warning messagebox for windows when an unsupported implementation ofAntony Riakiotakis
OpenGL is detected: Hoping to decrease the frequency of by far one of the most frequent bug reports by windows users. There is some reorganization of the GHOST API to allow easy addition of further OpenGL options in the future. The change is not propagated too deep to keep the size of the patch managable. We might reorganize things here later. For OpenGL we do two checks here: One is a combination of GDI generic renderer or vendor microsoft corporation and OpenGL version 1.1. This means the system does not use GPU acceleration at all. We warn user to install a graphics driver and of cases where this might happen (remote connection, using blender through virtual machine) The other one just checks if OpenGL version is less than 1.4 (we can easily change that in the future of course) and warns that it is deprecated. Both cases will still let blender startup correctly but users should now have a clear idea of the system being unsupported. A user preference flag is provided to turn the warning off. Now stop posting those bug reports without installing a driver first - please?
2014-12-07Input Method Editor (IME) support for text buttonsSeverin
Original patch by @random (D765) with some minor work done by @campbell and me. At this place, I'd like call out a number of people who were involved and deserve a big "Thank you!": * At the first place @randon who developed and submitted the patch * The Blendercn community which helped a lot with testing - espacially * @yuzukyo, @leon_cheung and @kjym3 * @campbellbarton, @mont29 and @sergey for their help and advises during * review * @ton who realized the importance of this early on and asked me for * reviewing We are still not finished, as this is only the first part of the implementaion, but there's more to come!
2014-01-11Events: support for buttons 6 & 7 (some trackballs have these) X11 onlyCampbell Barton
Patch by Marcus von Appen Note: this patch makes ISMOUSE accept INBETWEEN_MOUSEMOVE as a mouse event where before it didnt.
2013-01-12Mac HiDPI ("retina") handling:Ton Roosendaal
OK - so you have this nice crisp screen, and still you want to add extra monitors to the laptop! That means Blender should switch back and forth to HiDPI modes, when you move a window to another monitor. This code makes the pixelsize scale factor a window property, and handles an event when a window moves to another monitor. It then changes the native pixelsize nicely and refreshes entire UI. You can also have one Blender window on high, and other on low resolution. Stretching a Blender window from 1 monitor to the other works too, but that is Apple magic handling it.
2012-10-21style cleanup: trailing tabs & expand some non prefix tabs into spaces.Campbell Barton
2012-10-15code cleanup: check for msvc directly when using warning pragma's.Campbell Barton
2012-09-06code clenup: comments and some style edits on ghost/osx (odd indentation)Campbell Barton
2012-06-25more guardedalloc use in C++, also make compositorMutex a static var, was ↵Campbell Barton
allocated and never freed.
2012-06-07style cleanupCampbell Barton
2012-05-19style cleanup: ghost headersCampbell Barton
2012-02-17unify include guard defines, __$FILENAME__Campbell Barton
without the underscores these clogged up the namespace for autocompleation which was annoying.
2011-10-23remove $Id: tags after discussion on the mailign list: ↵Campbell Barton
http://markmail.org/message/fp7ozcywxum3ar7n
2011-10-21cleanup scons build flags, many duplicates because because of confusion ↵Campbell Barton
between CFLAGS/CPPFLAGS/CCFLAGS/CXXFLAGS, devs would set multiple to be on the safe side. - defines go in CPPFLAGS - C & C++ flags go in CCFLAGS - CFLAGS / CXXFLAGS are C OR C++ only. also commented intended ghost unicode/ascii usage.
2011-10-20initial support for unicode keyboard input for ghost & blenders WM.Campbell Barton
- currently X11 only, depends on Xinput (but should not break other os's). - ghost stores utf8 buffer, copies to wmEvent's - UI text input is currently the only area that uses this - not console or text editor. - no rna access yet.
2011-10-07spaces -> tabs (only whitespace changes)Campbell Barton
2011-07-21svn merge -r37276:38555 ↵Nathan Letwory
https://svn.blender.org/svnroot/bf-blender/trunk/blender .
2011-07-15more consistent and modal-friendly ndof events, fly mode v1Mike Erwin
2011-07-12correction to cursor enum and make GHOST_SystemX11's convertXKey into a ↵Campbell Barton
static function.
2011-06-11SpaceNav works on LinuxMike Erwin
2011-06-09migrated NDOF code from soc-2010-merwin, SpaceNavigator now works on Mac blenderMike Erwin
2011-02-25doxygen: fixup and tag intern/ghost.Nathan Letwory
2011-02-23doxygen: make sure license blocks don't interfere.Nathan Letwory
2011-02-19Adding support for the "media" play/pause/stop/next/prev buttonsJoshua Leung
available on many keyboards these days, so that they can be used for animation playback (giving more options over alt-a and alt-a ad- infinitum). Currently, this is Windows only as I don't have a Linux/Mac system to test on (it should compile with both mingw and msvc, at least using scons). Maintainers for those systems can probably easily add this in once they find out the relevant mappings for those systems.
2011-01-05ToDo: long outstanding patch to allow access to system paths in background modeAndrea Weikert
Thanks Damien Plisson for contributing the Carbon and Cocoa implementation
2010-12-07Added WITH_CXX_GUARDEDALLOC support for GHOST, disabled by default.Campbell Barton
2010-12-03- added GCC warning -Wstrict-prototypesCampbell Barton
- fixed bug in paste material, exposed by stricter warnings. - removed/renamed various shadowed vars. - removed BGE lamp.colour, only allow lamp.color attribute.
2010-10-05rename Command key to OSKey, Window manager already called it the OSKey but ↵Campbell Barton
internally it was mixed.
2010-09-16Partial fix [#21395] Command key for keyboard mapping not functionalNathan Letwory
Reported by Andy Braham. Handle VK_LWIN and VK_RWIN (The infamous Windows keys). Note, these are not separate, so handled as one command key.
2010-08-07SpaceNav turntable and fit in 3D view. Tablet data rides with cursor/button ↵Mike Erwin
events (incomplete! Mac-only for now). Grease pencil works better with pen.
2010-07-22revamped NDOF event system for ghost, added (untested) Mac supportMike Erwin
2010-07-03preparing for NDOF overhaulMike Erwin
2010-02-12correct fsf addressCampbell Barton
2010-02-01Cocoa : implement opening .blend file by double-clicking on it in OSX FinderDamien Plisson
When the user double-clicks on a document file in the Finder, OSX doesn't simply give the filename as a command-line argument when calling Blender, as it is done in other OSes. Instead, it launches the app if needed, and then sends an "openFile" event. The user can also open a document file by dropping its icon on the app dock icon. But as this is not real Drag'n'drop, I've renamed the Ghost event to a less confusing "GHOST_kEventOpenMainFile" name. DND Ghost wiki page updated : http://wiki.blender.org/index.php/BlenderDev/Blender2.5/DragnDrop
2010-01-26Drag and drop 2.5 integration! Finally, slashdot regulars can useTon Roosendaal
Blender too now! :) ** Drag works as follows: - drag-able items are defined by the standard interface ui toolkit - each button can get this feature, via uiButSetDragXXX(but, ...). There are calls to define drag-able images, ID blocks, RNA paths, file paths, and so on. By default you drag an icon, exceptionally an ImBuf - Drag items are registered centrally in the WM, it allows more drag items simultaneous too, but not implemented ** Drop works as follows: - On mouse release, and if drag items exist in the WM, it converts the mouse event to an EVT_DROP type. This event then gets the full drag info as customdata - drop regions are defined with WM_dropbox_add(), similar to keymaps you can make a "drop map" this way, which become 'drop map handlers' in the queues. - next to that the UI kit handles some common button types (like accepting ID or names) to be catching a drop event too. - Every "drop box" has two callbacks: - poll() = check if the event drag data is relevant for this box - copy() = fill in custom properties in the dropbox to initialize an operator - The dropbox handler then calls its standard Operator with its dropbox properties. ** Currently implemented Drag items: - ID icons in browse buttons - ID icons in context menu of properties region - ID icons in outliner and rna viewer - FileBrowser icons - FileBrowser preview images Drag-able icons are subtly visualized by making them brighter a bit on mouse-over. In case the icon is a button or UI element too (most cases), the drag-able feature will make the item react to mouse-release instead of mouse-press. Drop options: - UI buttons: ID and text buttons (paste name) - View3d: Object ID drop copies object - View3d: Material ID drop assigns to object under cursor - View3d: Image ID drop assigns to object UV texture under cursor - Sequencer: Path drop will add either Image or Movie strip - Image window: Path drop will open image ** Drag and drop Notes: - Dropping into another Blender window (from same application) works too. I've added code that passes on mousemoves and clicks to other windows, without activating them though. This does make using multi-window Blender a bit friendler. - Dropping a file path to an image, is not the same as dropping an Image ID... keep this in mind. Sequencer for example wants paths to be dropped, textures in 3d window wants an Image ID. - Although drop boxes could be defined via Python, I suggest they're part of the UI and editor design (= how we want an editor to work), and not default offered configurable like keymaps. - At the moment only one item can be dragged at a time. This is for several reasons.... For one, Blender doesn't have a well defined uniform way to define "what is selected" (files, outliner items, etc). Secondly there's potential conflicts on what todo when you drop mixed drag sets on spots. All undefined stuff... nice for later. - Example to bypass the above: a collection of images that form a strip, should be represented in filewindow as a single sequence anyway. This then will fit well and gets handled neatly by design. - Another option to check is to allow multiple options per drop... it could show the operator as a sort of menu, allowing arrow or scrollwheel to choose. For time being I'd prefer to try to design a singular drop though, just offer only one drop action per data type on given spots. - What does work already, but a tad slow, is to use a function that detects an object (type) under cursor, so a drag item's option can be further refined (like drop object on object = parent). (disabled) ** More notes - Added saving for Region layouts (like split points for toolbar) - Label buttons now handle mouse over - File list: added full path entry for drop feature. - Filesel bugfix: wm_operator_exec() got called there and fully handled, while WM event code tried same. Added new OPERATOR_HANDLED flag for this. Maybe python needs it too? - Cocoa: added window move event, so multi-win setups work OK (didnt save). - Interface_handlers.c: removed win->active - Severe area copy bug: area handlers were not set to NULL - Filesel bugfix: next/prev folder list was not copied on area copies ** Leftover todos - Cocoa windows seem to hang on cases still... needs check - Cocoa 'draw overlap' swap doesn't work - Cocoa window loses focus permanently on using Spotlight (for these reasons, makefile building has Carbon as default atm) - ListView templates in UI cannot become dragged yet, needs review... it consists of two overlapping UI elements, preventing handling icon clicks. - There's already Ghost library code to handle dropping from OS into Blender window. I've noticed this code is unfinished for Macs, but seems to be complete for Windows. Needs test... currently, an external drop event will print in console when succesfully delivered to Blender's WM.
2010-01-11Multitouch trackpad 2 fingers gestures implementationDamien Plisson
- 2 fingers scroll (MOUSEPAN / GHOST_kTrackpadEventScroll event) pans/scrolls the view - 2 fingers pinch (MOUSEZOOM / GHOST_kTrackpadEventMagnify event) zooms the view And in 3D view: - alt + 2 fingers scroll rotates the view - 2 fingers rotation (MOUSEROTATE / GHOST_kTrackpadEventRotate) orbits the view. The implementation uses a new GHOST event type: GHOST_kEventTrackpad, that is then dispatched as Blender MOUSEPAN, MOUSEZOOM or MOUSEROTATE events. This is currently fully implemented for OSX (GHOST Cocoa fires the new events), with auto-detection of the source peripheral, so that a regular mouse still sends MOUSEWHEEL events.
2009-11-10Drag & drop implementation at GHOST level (only OSX for now)Damien Plisson
The dragging sequence is performed in four phases: - Start sequence (GHOST_kEventDraggingEntered) that tells a drag'n'drop operation has started. Already gives the object data type, and the entering mouse location - Update mouse position (GHOST_kEventDraggingUpdated) sent upon each mouse move until the drag'n'drop operation stops, to give the updated mouse position. Useful to highlight a potential destination, and update the status (through GHOST_setAcceptDragOperation) telling if the object can be dropped at the current cursor position. - Abort drag'n'drop sequence (GHOST_kEventDraggingExited) sent when the user moved the mouse outside the window. - Send the dropped data (GHOST_kEventDraggingDropDone) - Outside of the normal sequence, dropped data can be sent (GHOST_kEventDraggingDropOnIcon). This can happen when the user drops an object on the application icon. (Also used in OSX to pass the filename of the document the user doubled-clicked in the finder) Note that the event handler is responsible for freeing the received data. And the mouse position is sent directly in blender client coordinates (y=0 at bottom) The GHOST_setAcceptDragOperation(TRUE) call must be placed before the user drops the object for it to be accepted. Current handled data types : - Text string - Array of filenames (full paths) - Bitmap image (not implemented yet)