Commit Graph

751 Commits

Author SHA1 Message Date
3df0db98d3 Fix [#22088] Object's material changes (links) to other when moving an object
to an other layer

WM_operator_props_popup() and subsequent block handle function redo_cb()
was popping an operator undo, without having pushed one previously - 
this would undo one too many times when using the properties invoke popup.

Fixed by adding an undo push to WM_operator_props_popup()
2010-04-22 11:35:11 +00:00
a56b72fd82 BugFix:
[#20854] PROPERTIES STAMP: Rendering stamp flickers in output renders

Blenfont was not thread safe, that is why one thread can change
the font properties (size, dpi, color, etc) at the same time
that the stamp draw on the image, and then the problem.

To make blenfont thread safe I have to change two important things:

1) Every BLF_* function take one argument, the font id.
2) We have two new function to make font "thread safe":
	BLF_load_unique
	BLF_load_mem_unique

This two function are for case like stamp, that need and own font
that don't share the glyph cache, so can draw without problem
in a different thread.

Why the BLF_*_unique function ?

Because blenfont keep only one copy of a font and keep a list of
"glyph cache". Every glyph cache have size and dpi, so if two
different thread access the same font at the same time, they can
change value and finish with something like the stamp problem.

Why don't remove the glyph cache ?

Because if we do that, we finish with a font object for every size
and dpi, and the stamp is really a special case that happen in
the rendering process, so I really thing is better keep the
glyph cache and make this two new function to handle this
special case.

(When I say "font object" I mean have the same freetype font multiple
times just to have differents size and dpi)

As Matt point we still can have one case that two thread access
the BLF_*_unique function at the same time, but I am looking to
fix this with some class of thread lock.

For now I test and work fine, so if some one found problem, please
let me know.

Campbell I have to change the python api (python/generic/blf_api.c)
to the new syntax, so maybe you can take a look at this.
2010-04-22 10:56:45 +00:00
716e9c5f47 Fix case of accessing freed windowmanager memory after reading a file. 2010-04-20 14:58:46 +00:00
3a04262c4c Added ability to use up to F19 on the keyboard (previous max was F12).
GHOST is already collecting up to F24, but I've only got up to F19 on this 
keyboard so I've just committed what I could test here.
2010-04-20 00:08:27 +00:00
37a1297a55 Fix crash when invoking File->Save from the menu
Operator can't call itself! Just call the actual exec function instead.
2010-04-19 18:11:00 +00:00
45441c07d4 various minor fixes
- collada export would run MEM_freeN on an un-initialized pointer in some cases.
- makesrna was missing a call to close a file.
- text cursor update function was missing a NULL check for st->text.
- possible (unlikely) un-initialized return value for bge python lamp.type, set error instead.
- possible (unlikely) missing NULL terminator with strncpy for ffmpeg.
2010-04-18 09:12:18 +00:00
911c136c89 Fix warning, also added error message for the case of no filename passed. 2010-04-16 05:24:58 +00:00
9a85013692 Merge various small changes from render branch:
* Division by zero fix for TNT SVD code.
* Sound fix, in case ffmpeg decode fails, don't use the samples.
* Fix for incorrect bounds of transformed objects in new raytracing code.
* Gave memory arena's a name used for allocations for easier memory
  usage debugging.
* Dupligroup no_draw option was using layers but not restrict view/render
  setting. (not a bugfix exactly but would do display list context switching
  while drawing for no reason).
* Fix objects instanced on hair particles not giving consistent results
  when the object is transformed.
* New math functions: madd_v4_v4fl, len_squared_v3v3, interp_v4_v4v4v4,
  mul_v4_m4v4, SH and form factor functions, box_minmax_bounds_m4.
* mul_m4_m4m4 and mul_m3_m3m3 now accept the same pointers for multiple
  arguments.
* endjob callback for WM jobs system.
* Geometry node uv/color layer now has search list/autocomplete.
* Various small buildsystem tweaks, not strictly needed yet in trunk.
2010-04-15 10:28:32 +00:00
57a1ff0df0 Allow shift-tweak to be used for border select extend
(end border select on any key modifier + lmb)
2010-04-15 01:35:32 +00:00
a02a4f0fc4 fix [#22007] Saving a read-only file on windows : no warning and temporary files left there
* small improvement to last commit: actually pass the error value from WM_write_file back to the operator and cancel the operator if not successful. This also preserves the indication that the file hasn't been saved in case of error.
2010-04-14 20:45:36 +00:00
72a73fc9fb fix [#22007] Saving a read-only file on windows : no warning and temporary files left there
* return OPERATOR_FINISHED from file save, so reports are not suppressed - this results in popup with the expected error in this case.
2010-04-14 20:27:45 +00:00
eb30a66aa6 Fix for crash using splash screen recent files.
Need to find a better method for menu refreshing..
2010-04-14 08:08:15 +00:00
486796ce31 * Interaction Presets
This adds a new presets menu in the splash screen and the Input section of
User Preferences to choose a preset interaction style, consisting of key configurations
and also other user preferences such as select mouse button, view rotation style, etc.
Currently, just 'Blender' and 'Maya' presets are included, hopefully we can have more
presets contributed (and maintained!) by the community.

It's best to keep these presets minimal to avoid too many key conflicts. In the Maya one
I changed the view manipulation key/mouse combos and also the transform 
manipulator keys, not much more than that.

To save an interaction preset, open the user preferences Input section, and press the 
[ + ] button next to the presets menu. It will save out a .py file containing any edited key 
maps and navigation preferences to the presets/interaction folder in your scripts folder.

---

Part of this commit changes the way that key maps are exported/displayed in 
preferences - now partial key configs are allowed. Previously it would export/import the 
entire key configuration, regardless of whether individual key maps were edited or not 
(which would make them more susceptible to conflicts in unexpected areas).

(note, in blender terminology, a key map is a category of key items, such as 
'Object Mode' or 'View 2d'.)

Now, the export and the UI display work in a similar way to how key maps are 
processed internally - Locally edited key maps (after pressing the 'Edit' button) are 
processed first, falling back to other key maps in the current key config, and then falling 
back to the default key config. So it's possible for a key config to only include a few 
key maps, and the rest just gets pulled from the default key config. The preferences 
UI display works like this too behind the scenes in deciding what to show users, 
however using it is just like it was before, the complexity is hidden.
2010-04-14 06:27:50 +00:00
85590301a5 fix for crash when a register script sets material colors, also made some changes to modifier formatting. 2010-04-13 22:43:48 +00:00
42db34b126 three things:
- ALT+Scrollwheel zooms backdrop in node editor
- Blender -d debug print will also print every event except mouse moves
  (needed to debug WM, some events are catched by OS)
- Changed order of keymaps... the default maps now are evaluated *after*
  the own custom maps, so you can make overrides or defaults.
2010-04-08 16:36:50 +00:00
eedce6b322 Bringing back code style to how WM was made.
Check this diff to see difference... mixed styles in 1 file are not OK!
2010-04-08 13:12:53 +00:00
23e6ada74f bugfix [#21929] linking in groups into a linked in scene is possible and those groups can't be deleted
- Disallow this and report a warning in the console when it happens.
 - File selector operators now report in the global report console.
 - Cleared some warnings.
2010-04-08 11:46:52 +00:00
45ce1c003d Modes are now toggled on using operators on load if the file was saved in
that mode. This ensures proper initialization happens like creating the
cursor or building an acceleration structure. It also means edit and
particle mode are now saveable.

Not sure yet if this is a good feature, though personally I like being able
to load my exact state again after saving, but maybe entering edit mode is
too slow in some cases? It's easy to make it work only for the sculpt/paint
modes again if wanted.

This fixes bug #21004 about a missing sculpt cursor on load.
2010-04-07 08:27:13 +00:00
50726e7eb3 Fix [#21677] mouse dragging the translated object doesn't release the object
after a while

Drag code was inadvertently changing the eventstate->type, which isn't 
necessary. Patch #21723 by Anthony Edlin fixes this. Thanks!
2010-04-07 05:39:24 +00:00
86b38129c6 Fix #21402: python operator redo properties not refreshed. Now sends a
NC_WM|ND_HISTORY notifier on registering an operator.
2010-04-06 09:07:39 +00:00
93cc8eea45 Fix #21383: appending a group would also instance it by default, which
will give duplicate objects since the actual object are appended already,
so only enable this option by default for linking now.
2010-04-06 01:16:39 +00:00
ec5527cb52 Fix #21349: triple buffer drawing doesn't work well with thousands of
colors setting on Mac, just disabled it in that case.
2010-04-05 10:25:40 +00:00
4021db8af8 Added a new 'straight line' gesture type that can be used in any operator.
Use this for image editor Line Sample tool, rather than custom modal operator/
custom drawing.
2010-04-04 00:21:37 +00:00
824be96dc0 More work on Drag Immediate:
- Rename option and flag to something more sane
- Add property to manipulator operator and set true by default

Confirm on Release can now be forced true or false per operator, in which case it won't use the default value (the user preference).
2010-04-03 17:38:43 +00:00
7b98f6220b Bugfix #21853: Border zoom in the 2D-Views zooms out
* Fixed the way the operator was checking for what the user wanted when using the operator
* Added a few specific defines to a copy of the gesture border modal keymap (added one for zooming only) labelled 'In' and 'Out' which make this more useful than being hacked to use select and deselect
2010-04-02 03:52:44 +00:00
df827a6400 move operator reports into a global list so they display in the console. 2010-04-01 13:54:53 +00:00
8f5438dcd4 Fix [#21775] Double-clicking icons in the file browser doesn't open files
Complicated issue, but this should be correct, and testing goes fine. fingers crossed.
2010-04-01 01:27:22 +00:00
9a99b7d193 Fix [#21083] Collada exporter defaults to ".blend" extension...
Also added a filter category for COLLADA files to the file selector.
2010-03-29 08:33:35 +00:00
bd7ed4f077 Fix [#21708] Copy/Paste Texture channels for Lamps/World not working 2010-03-29 05:37:34 +00:00
dc4ac8a263 Fix [#21689] for coordinate issue (y flipped) when setting mouse cursor position
Mem leak when using BGE fixed too.
2010-03-28 19:42:08 +00:00
991f6f5998 - game engine checking for autoexec was using the wrong global flag.
- 'Trusted Source' option was being overwritten on read making it usless.
2010-03-26 11:35:57 +00:00
8456995181 xaspect and yaspect were not working with uv project modifier & panorama, also removed some includes. 2010-03-24 16:20:13 +00:00
93c7b8a2d0 remove unused includes UI_*.h, WM_*.h, ED_*.h 2010-03-24 10:56:37 +00:00
26736ac0f0 remove unused rna includes 2010-03-24 09:51:32 +00:00
377f06082a enable compiling without python again 2010-03-23 21:37:02 +00:00
cb6d2685bd rna/py-api fix.
C functions and python used different argument order, this relied on mapping non-keyword arguments to 'REQUIRED' arguments but meant that you could not have an optional, non-keyword argument.

next commit will make order of arguments consistant (currently only changed order that rna wrapped).
(commit 27674 by Campbell from render25 branch)
2010-03-23 15:25:33 +00:00
09b1c681e1 Sculpt Mode Bugfixes:
* #20833: layer brush doesn't work with multires.
* #20946: sculpt mode partially removes parts of the mesh in the viewport.
* #20420: grab brush stops after moving some distance.
* #20906: sculpt grab tool moves in wrong direction.
* #21132 and #21272: undo on object with subdivision surface modifier crashes.
* #21115: subsurf + multires + sculpting + undo causes crash.
* #20683: sculpt + multires apply + undo crash.
* #19094: wrong outline in solid mode.
2010-03-22 11:59:36 +00:00
1e9bf0cfdb spaces -> tabs, (4 spaces == 1 tab, only for white space preceding text) 2010-03-22 09:30:00 +00:00
74b3336107 rotate_m4 was using degrees rather then radians. 2010-03-22 00:14:56 +00:00
42ac4a3e7d Fix syntax for ID keyword. 2010-03-21 01:14:04 +00:00
66ccd94e3f patch #21680 from Richard Olsson
wm.invoke_props_dialog()

This is so python scripts can have popups which do not redo all the time.
2010-03-20 18:03:59 +00:00
618b459e8b F-Modifier Goodies (as requested by @ndy):
* Copy/Paste operators for F-Modifiers
Available in Graph and NLA Editors. Use the Copy/Paste buttons beside the 'Add Modifier' buttons.

Copy copies all the modifiers of the ACTIVE F-Curve or Strip depending on the editor.
Paste pastes modifiers from the buffer to all the selected F-Curves or Strips, adding the new modifiers to the ends of each list.

* 'Stepped Interpolation' F-Modifier
This modifier holds each interpolated value from the F-Curve for several frames without changing the timing. 

This allows to preview motions 'on-twos' for example without altering the timing, or having to go through setting heaps of keyframes. In this case, Andy wanted to use this for CG <-> StopMo.
2010-03-18 13:04:46 +00:00
3566400dc5 Removed the 'recover temp' option from the splash screen - the way the temp saving currently
works, it's mostly non-functional there (i.e. when you've just started the application).

It would be nice if blender could name the temp files in a special way so that it could actually
search through the temp folder and find the most recently saved temp file, but for now, I'll
just remove the option.
2010-03-18 07:05:20 +00:00
63a368ceaa - menu for selecting add scenes for the sequencer.
- update internal 'btempdir' from userprefs on changing and initializing the temp dir.
- add sequence strip operators nolonger require the sequence view to be active (better for automation).
(commit 27434 by Campbell from render25 branch)
2010-03-16 17:23:20 +00:00
ea4a987fd4 == Massive Keying Sets Recode ==
After a few days of wrong turns and learning the finer points of RNA-type-subclassing the hard way, this commit finally presents a refactored version of the Keying Sets system (now version 2) based on some requirements from Cessen.

For a more thorough discussion of this commit, see 
http://sites.google.com/site/aligorith/keyingsets_2.pdf?attredirects=0&d=1

------

The main highlight of this refactor is that relative Keying Sets have now been recoded so that Python callbacks are run to generate the Keying Set's list of paths everytime the Keying Set is used (to insert or delete keyframes), allowing complex heuristics to be used to determine whether a property gets keyframed based on the current context. These checks may include checking on selection status of related entities, or transform locks.

Built-In KeyingSets have also been recoded, and moved from C and out into Python. These are now coded as Relative Keying Sets, and can to some extent serve as basis for adding new relative Keying Sets. However, these have mostly been coded in a slightly 'modular' way which may be confusing for those not so familiar with Python in general. A usable template will be added soon for more general usage.

Keyframing settings (i.e. 'visual', 'needed') can now be specified on a per-path basis now, which is especially useful for Absolute Keying Sets, where control over this is often beneficial.

Most of the places where Auto-Keyframing is performed have been tidied up for consistency. I'm sure quite a few issues still exist there, but these I'll clean up over the next few days.
2010-03-16 06:18:49 +00:00
352754d355 Fix [#21603] Mip-mapping setting not saved in User preferences 2010-03-15 01:12:41 +00:00
64078786cc Fix #20486: blender hangs upon import attempt of an .obj with >40k polys.
Added automatic generation of lookup_int callbacks for collections, for
quicker lookup by index instead of looping over the whole thing. Import
is still quite slow, though now it only takes a few seconds.

The next bottleneck seems to be running update (depsgraph, notifiers, ..)
on setting every property. I fixed part of that by avoiding a notifier
to be added each time, now it checks for duplicates.
2010-03-14 22:30:57 +00:00
d8d92b5d93 user preference to disable the splash screen 2010-03-14 18:08:12 +00:00
e3c746659e strip quites off buildinfo at startup (was doing this for splash screen and python api) 2010-03-14 17:18:36 +00:00
bd34be86bf Bugfix for [#21560] space bar in edit mode of bezier curves doesnt work
The wrong flag was used, OB_CURVE instead of OB_FONT.
2010-03-14 12:12:48 +00:00