Commit Graph

165 Commits

Author SHA1 Message Date
617e6a83bc object/paint/misc-files: floats were being implicitly promoted to doubles, adjust to use floats.
- also UV angle stretching was using radians->deg which wasn't needed.
2011-03-27 14:59:55 +00:00
3c184def72 use NULL instead of 0 for pointers, (editors) 2011-03-03 17:59:04 +00:00
Nathan Letwory
95100afc12 doxygen: blender/editors tagged. 2011-02-27 20:29:51 +00:00
47d2353f26 Fix for [#26205] Crash when duplicating window
* Timeline duplication code freed the original time caches too.
2011-02-25 08:40:57 +00:00
Nathan Letwory
5b607701a7 doxygen: prevent GPL license block from being parsed as doxygen comment. 2011-02-23 10:52:22 +00:00
Nathan Letwory
322ff7dfe4 I swear, it was just an innocence change in guardedalloc!
The butterfly wing flap, causing a nice storm in the rest of blender.

Now all dependencies should point ok again. CMakers, do double-test.
2011-02-21 12:35:04 +00:00
8b7482892b made most variables which are only used in a single file and not defined in header static for blenlib, blenkernel and editors. 2011-02-14 17:55:27 +00:00
efd1d0f901 Bugfix [#25902] alt+a over 3D view don't up date dropesheet editor
Migrating "redraws" settings from TimeLine view data to per Screen.
The options are now still shown in the TimeLine "Playback" menu
though.

This means that whatever redraw settings you set in a TimeLine editor
will be used throughout a screen (i.e. editor layout) to determine
which editors will get updated during playback, instead of only
certain editors doing certain things at vague times.

---

Also, I moved some version patches pre 2.56 version bump into a
version-check for 2.56. These must've been missed when doing the
release...
2011-02-01 23:41:01 +00:00
89c617a116 remove nan-makefiles 2011-01-30 15:29:22 +00:00
b445467f15 In the Timeline, keyframe lines are now drawn in front of the frame
indicator. This is so that it will be possible to see if there is a
keyframe on the current frame by just looking in the timeline.
2011-01-28 00:52:31 +00:00
8f21a43535 split BKE_utildefines.h, now it only has blender specific defines like GS() MAKE_ID, FILE_MAXDIR, moved the generic defines to BLI_utildefines.h.
no functional changes.
2011-01-07 18:36:47 +00:00
8c86d2da3a Quiet warnings from last commit.
Janne: could you check if ptcache_file_pointers_seek() & ptcache_read_init() can be removed?
2011-01-02 10:13:17 +00:00
9f88e0faeb Fix for [#25427] cloth or soft body crash un Undo
* Argh my bad, sorry about this!
* Now only the actual data array is saved to avoid constant re-allocations, but no relations to active data are kept.
* Also reverted Ton's quick fix for the crash as it's not needed anymore.
2011-01-02 03:55:26 +00:00
5e382eb8e5 rename blenderlib to blender_add_lib 2010-12-22 23:09:30 +00:00
6a79de7698 Fix for [#25325] Timeline doesn't show status of baked psys until frame is advanced
* Timeline didn't listen to file read notifier, so the pointcache frames indicator didn't get updated.
* Also added listens to particle & modifier (cloth, sb & smoke) notifiers as changes that cleared a pointcache weren't shown directly in the timeline either.
* The timeline display was also always one frame behind the actual state, since the notifiers are handled before the actual dynamics are calculated.
** This is now fixed too, by creating the actual drawn data always at drawtime.
2010-12-21 20:18:43 +00:00
555427765d Pointcache frame markers in timeline look a bit nicer if they are aligned exactly on frames. 2010-12-18 21:19:55 +00:00
afacd18498 use lowercase for cmake builtin names and macros, remove contents in else() and endif() which is no longer needed. 2010-12-08 08:43:06 +00:00
e8397e6193 include headers in cmake source, added a script to check for consistency, reporting missing headers & C files.
this is important so IDE's using CMake integration always get blender headers. - QtCreator & MSVC for eg, probably others too.
2010-11-29 04:35:56 +00:00
3367ef8b65 initialize structs to zero rather then using memset(). 2010-10-31 15:39:37 +00:00
c6976e7351 use explicit file paths for CMake rather then globing, This is recommended by cmake devs.
globbing vs explicit is discussed here.
http://www.cmake.org/pipermail/cmake/2008-December/025694.html

Practical implications are:
- developers need to keep CMakeLists.txt files up to date.
- Users wont get strange linking errors if they build after a file is added, since CMake detects CMakeLists.txt is modified and automatically reconfigure.
2010-10-23 04:05:55 +00:00
e5fbd93cec editors/space_* build without unused args warnings 2010-10-16 08:03:28 +00:00
f81248265d tag UNUSED() for operator exec() and invoke() functions. 2010-10-15 01:36:14 +00:00
a9197c3aa2 remove unused args in draw*.c and some in view*.c, tag some as UNUSED(). 2010-10-14 01:22:14 +00:00
e4964a3477 Fix #24167: Timeline keyframes don't update when selecting objects from outliner
Based on patch from Alexander Kuznetsov. Own changes:
- Keyframes in timelime depends on active object, so timelime better be
  listeing to ND_OB_ACTIVE notifier rather than ND_OB_SELECT
- When scene is changing in this operator NC_WINDOW notifier would be send
  and the whole interface would be redrawed, so no need in ND_OB_ACTIVE in
  this case
2010-10-07 16:41:42 +00:00
Nathan Letwory
7f7f3f5025 Fix [#24046] Keyframe display in Timeline isn't updated
Reported by Alex Glawion

Add necessary object selecction notifier handling to redraw timeline properly.
2010-09-29 12:34:32 +00:00
afa4b855ca Fixed: Showing pointcached frames in the timeline was terribly slow when using disk cache.
* The existence of cached frames was checked each frame causing hundreds of disk operations per frame update.
* Pointcache now keeps an updated array of the cached frames for fast "frame exists in cache" queries.
* This fix also speeds up some other pointcache operations nicely.
2010-09-27 09:58:37 +00:00
dea59cc5eb warning fixes and minor cmake changes. 2010-09-18 03:55:56 +00:00
c4a83ec086 Bugfix: Timeline did not refresh when changing selecting a bone
This happened/was most noticeable when clicking on a bone of an armature in posemode but not active (i.e. some object other than the armature is active when trying to select the bone).
2010-09-13 00:47:12 +00:00
76918e6f90 Timeline Notifier Listener:
* Added ND_FRAME_RANGE to the header listener, changing frame range in Properties Window didn't update it in the timeline, reported by Hardworker in IRC. Thanks! 
* Main Area Listener doesn't listen to all NC_SCENE Notifiers now, only selected ND Notifiers, like the header does. This is more efficient. If there is a reason to let it listen to all NC_SCENE notifiers, please tell me. :)
2010-08-28 15:04:42 +00:00
d1759639dc - remove unused includes IMB_*, BIF_* & MEM_*
- remove MEM_guardedalloc.h from header files (include directly)
2010-08-16 05:46:10 +00:00
95aa8cfa4a Update address in license block. 2010-08-10 21:22:26 +00:00
f2d77e4496 remove unused includes from editors/space_* 2010-08-08 08:14:07 +00:00
e531f3736d drawing in the timeline could change bezier keys while rendering, disable. 2010-07-10 21:09:38 +00:00
ebde8a7ccc new notifier for FRAME_RANGE, use to recalculate the timeline scrollbar range. 2010-06-26 19:17:48 +00:00
ee14cc198b fix for timeline drawing with new cache visualization.
memcpy buffer overrun when the first frame wasnt 0.
2010-06-23 08:18:14 +00:00
2849201339 hopefully fix some flickering in timeline cache display 2010-06-22 09:12:22 +00:00
1d6c2f214b Timeline addition: Display cached frames
This started off doing pointcache debugging but it's also very useful for users too.
Previously it was very hard to see the state of the system when you're working caches
such as physics point cache - is it baked? which frames are cached? is it out of date?

Now, for better feedback, cached frames are drawn for the active object at the bottom 
of the timeline - a semitransparent area shows the entire cache extents, and more 
solid blocks on top show the frames that are cached. Darker versions indicate it's 
using a disk cache.

It can be disabled in general in the timeline View -> Caches menu, or by each individual
system that can be shown.

There's still a bit to do on this, behaviour needs to be clarified still eg. deciding what
shows when it's out of date, or when it's been played back but not cached, etc. etc. 
Part of this is due to a lack of definition in the point cache system itself, so we should
try and clean up/clarify this behaviour and what it means to users, at the same time.

Also would be interested in extending this to other caches such as fluid cache, 
sequencer memory cache etc. in the future, too.
2010-06-22 02:29:52 +00:00
129bee4743 remove cruft from cmake files, more to go 2010-06-04 20:56:56 +00:00
55d3a2014c have cmake build editors as different libs like scons and nan-makefiles 2010-06-04 11:34:57 +00:00
5304a65b50 Fix [#21516] UI artifacts in array modifier
Modify the glClearColor used to draw disabled buttons, when creating a ROUNDBOX
ui element. Made a convenience function and rippled it though, too.
2010-04-06 07:02:16 +00:00
f743b583bf more lint includes
Only source/blender/editors/ dir, should not give errors on different platforms
Only removing:  UI_*.h, ED_*.h, WM_*.h, DNA_*.h, IMB_*.h, RNA_*.h, PIL_*.h
2010-03-23 14:09:09 +00:00
42ac4a3e7d Fix syntax for ID keyword. 2010-03-21 01:14:04 +00:00
062d215b10 Fix #21214 Changing frame range on render panel doesn't update on timeline...
Was missing notifier

Also made a description slightly more consistent
2010-02-21 20:27:13 +00:00
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
148435b70a batch remove .'s used with RNA_def_struct_ui_text 2010-02-10 21:15:44 +00:00
b119ce5fcc Drag and drop 2.5 integration! Finally, slashdot regulars can use
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-26 18:18:21 +00:00
a8a5defc0c Preview Range Tweak:
Made preview range be turned on/off using a proper flag instead of just relying on checking for start-frame = 0. It is no longer satisfactory to do that since we can have negative frame numbers, and also having it as a proper flag means that the range can be toggled on/off non-destructively.
2010-01-19 20:30:04 +00:00
e6697dfe4a setting the timeline endframe didnt work if the preview range was used. 2010-01-19 10:36:33 +00:00
56660fab4b Timeline: Keyframe Drawing for All Selected Objects
When 'Only Selected' is ON, or the Active Object is in PoseMode, only the keyframes for the active Object are drawn (*).

Otherwise, the keyframes for the scene (sequence+nodes+world), and the selected Objects (including the Active Object) are drawn.


(*) I've also made some changes here to try and get only the selected bones showing here, but some further changes are still needed for that to be able to work.

---

Also, fixed bug in makesrna caused by missing newlines for error prints. This resulted in all error-output from makesrna appearing on a single line.
2010-01-18 23:31:46 +00:00
980e97923b Key map related things:
* Moved 'change shortcut' (previously directly RMB on menu items) to a context-menu item, and added Remove Shortcut and Add Shortcut. This is all available now in a RMB context menu for operator buttons and menu entries.
* Renamed a bunch of key maps to be consistent with UI names, and human-readable. Since these key map names are now being directly used in the UI for people to find things, they should be understandable and in plain language.

This renaming may break some older saved key map setups - though previously saved .b25.blends should convert over ok. Exported .py files may need some find/replacing - in this commit check the changes in resources.c to see what's changed.
2009-12-24 09:26:06 +00:00