Commit Graph

23147 Commits

Author SHA1 Message Date
d3070ad9ac Bugfix #23658
Render: Alpha calculated for ray-traced transparency could overflow beyond 1.0.
Gets clamped now.
2010-12-16 11:31:04 +00:00
Dalai Felinto
0890b80ed9 Patch:[#25163] BGE support for Blender Font objects - unicode support
Problem/Bug:
------------
There were no way to have proper unicode characters (e.g. Japanese) in Blender Game Engine. Now we can :)
You can see a sample here: http://blog.mikepan.com/multi-language-support-in-blender/

Functionality Explanation:
--------------------------
This patch converts the Blender Font Objects to a new BGE type: KX_FontObject
This object inherits KX_GameObject.cpp and has the following properties:
- text (the text of the object)
- size (taken from the Blender object, usually is 1.0)
- resolution (1.0 by default, maybe not really needed, but at least for debugging/the time being it's nice to have) 

The way we deal with linked objects is different than Blender. In Blender the text and size are a property of the Text databock. Therefore linked objects necessarily share the same text (and size, although the size of the object datablock affects that too). In BGE they are stored and accessed per object. Without that it would be problematic to have addObject adding texts that don't share the same data.

Known problems/limitations/ToDo:
--------------------------------
1) support for packed font and the <builtin>
2) figure why some fonts are displayed in a different size in 3DView/BGE (BLF)
3) investigate some glitches I see some times
4) support for multiline
5) support for more Blender Font Object options (text aligment, text boxes, ...)

[1] Diego (bdiego) evantually will help on that. For the time being we are using the "default" (ui) font to replace the <builtin>.
[2] but not all of them. I need to cross check who is calculating the size/dpi in/correctly - Blender or BLF. (e.g. fonts that work well - MS Gothic)
[3] I think this may be related to the resolution we are drawing the font
[4] It can't/will not be handled inside BFL. So the way I see it is to implement a mini text library/api that works as a middlelayer between the drawing step and BLF. 
    So instead of:
      BLF_draw(fontid, (char *)text, strlen(text));
    We would do:
      MAGIC_ROUTINE_IM_NOT_BLF_draw(fontir, (char *)text, styleflag, width, height);
[5] don't hold your breath ... but if someone wants to have fun in the holidays the (4) and (5) are part of the same problem.

Code Explanation:
-----------------
The patch should be simple to read. They are three may parts:
1) BL_BlenderDataConversion.cpp:: converts the OB_FONT object into a KX_FontObject.cpp and store it in the KX_Scene->m_fonts
2) KetsjiEngine.cpp::RenderFonts:: loop through the texts and call their internal drawing routine.
3) KX_FontObject.cpp::
  a) constructor: load the font of the object, and store other values.
  b) DrawText: calculate the aspect for the given size (sounds hacky but this is how blf works) and call the render routine in RenderTools
4) KX_BlenderGL.cpp (called from rendertools) ::BL_print_game_line:: Draws the text. Using the BLF API

*) In order to handle visibility of the object added with AddObject I'm adding to the m_scene.m_fonts list only the Fonts in a visible layer - unlike Cameras and Lamps where all the objects are added.

Acknowledgements:
----------------
Thanks Benoit for the review and adjustment suggestions.
Thanks Diego for the BFL expertise, patches and support (Latin community ftw)
Thanks my boss for letting me do part of this patch during work time. Good thing we are starting a project in a partnership with a Japanese Foundation and eventual will need unicode in BGE :) for more details on that - www.nereusprogram.org - let's call it the main sponsor of this "bug feature" ;)
2010-12-16 10:25:41 +00:00
ee05792a7b missed this file before (de-duplicating enum). 2010-12-16 09:51:55 +00:00
e15f34b35f Fixed bug [#22634] sculpting/multires and wireframe display mode glitches
Added a call to flush sculpting face grid changes out to ccgsubsurf's
other data (in particular, to edge grids)

Hopefully correct fix this time :)
2010-12-16 03:39:51 +00:00
Dalai Felinto
3ae56ea1b3 small tweak, moving /* put compatibility code here until next subversion bump */ {} to a distinct (right) place
when doing a version bump, please remember to do that.
2010-12-15 22:46:43 +00:00
143573f507 Fix #25241: Wordwrap memory leak /w Undo
Looks like drawcache shouldn't be freed when restoring screen because spaces
aren't freeing and could still use caches.
2010-12-15 21:25:54 +00:00
a6855c9c21 Bugfix #25235
Image Editor: paint mode, use clone image, always showed.
Now it hides clone when paint is disabled.
2010-12-15 19:21:02 +00:00
97b0e17577 Bugfix #25243
Pressing Enter twice on enum-menus or pulldowns sent an 'OK execute'
with illegal values (no menu item active). Caused crashes too.
2010-12-15 19:10:42 +00:00
29d2e53463 Bugfix, own collection
Using RMB on menus to change hotkeys was broken.
- the input button was on a weird place outside menu, assign
  would close pulldown, so you had to reopen to check
- ESC didn't close the button, but assigned ESC as hotkey.
  This key is a protected key, and always should be escaping.
- Worst bug: if you used this on a 'user keymap' it removed
  all entries from the map...
2010-12-15 18:09:25 +00:00
7e10a9e6ce ensure pasted graph keys are always selected. 2010-12-15 17:36:08 +00:00
6b2b56c35e Fix for [#25218] No smoke is emitted when particle system starts and ends on same frame
* Depsgraph wasn't updated properly for smoke flow collision object dependencies.
* Smoke also wasn't properly using the actual emission frame of the flow particles.
* There was a lot of bloated logic in some parts of particle code so this fix turned into a small scale cleanup operation.
** As a result particle updating and cache usage should be a bit more stable too.
2010-12-15 17:05:34 +00:00
2c55dd96ad missing check for keyframe paste, was crashing when no keyframes to paste into. 2010-12-15 16:57:56 +00:00
0a3902bb55 change the cursor bounds to only use the Area if the mouse is outside the region or the region is not a WINDOW type. 2010-12-15 16:46:59 +00:00
bc64d8dcd8 Bugfix, irc report:
Stamp info was calling log10 on zero, when end-frame was zero.
Caused crash! Thanks Sergey for report.
2010-12-15 16:15:52 +00:00
ee09aeb498 dont transform hidden handles in the graph editor. 2010-12-15 16:07:49 +00:00
53adab9870 Minor annoyance with graph editor selection:
Selecting graph keys would toggle channel selection if shift was held.
this was annoying when selecting 2+ unselected keys to have the channel change color each click.
Now set the channel based on the selection state of the point, as long as points are being selected the channel will stay selected too.
2010-12-15 15:59:10 +00:00
9129750787 Bugfix #25231
File Window: text clipping was tiny bit too narrow. It was also
clipping text twice even ;)
2010-12-15 15:56:06 +00:00
95f205ed5c Bugfix 21333
"Continuous grab": the boundary is now set to Area (editor), making it work
for operators started in other regions (like toolbar, or in quad view case)
2010-12-15 15:28:03 +00:00
0efdb860f1 Bugfix #22982
Displace modifier: mapping "Global" didn't set a dependency entry.
Fix provided by the reporter himself, thanks Jacob F!
2010-12-15 13:08:34 +00:00
35fa581403 BKE_assert(), only prints the error unless cmake define WITH_ASSERT_ABORT is enabled and it will call abort().
made this option advanced so people don't enable along with other features.
2010-12-15 10:22:26 +00:00
dbd3081895 fix for annoyance found when looking into bug [#25226].
Changing the edge crease median value often wouldn't result in the median value entered because of clamping from 0-1.
Now the median crease is applied by scaling the values up/down.

also add some simple checks to speed up updates,
- don't move verts or recalculate normals if only crease changes.
- don't apply crease changes if location is being edited.
2010-12-15 07:15:51 +00:00
46ce8cdf58 replace debug popup function with call to generic function WM_operator_props_dialog_popup(). 2010-12-15 06:12:16 +00:00
97aa2287fa access bpy.app.debug_value, G.rt internally 2010-12-15 06:03:45 +00:00
eb8458b064 Centralized operator UI drawing into a new function uiLayoutOperatorButs(),
Operator drawing calls were duplicated in file selector panel, redo panels, redo & dialog popups.

note, uiDefAutoButsRNA's column's argument was misleading, renamed to label_align.
2010-12-15 05:42:23 +00:00
acd7b81c2d bugfix [#25230] Quick extrude Ctrl-LMB : wrong behaviour of 'RotateSource' option.
Problem is is with operator redo which click-extrude exposed.

Check if redo operator can run, otherwise lock the UI and add a label that the operator doesn't support redo.
This is clunky but IMHO better then failing silently and leaving the user confused.

- Merged redo functions into ED_undo_operator_repeat(), code was duplicated in a few places.
- added WM_operator_repeat_check to check if WM_operator_repeat() can run, avoids an undo call when redo work.

Unrelated changes
- GHOST_SystemWin32.cpp set to utf8 encoding.
- cmake_consistency_check.py now checks source files are utf8.
2010-12-15 04:06:19 +00:00
ff6e631c86 Fixed bug #23042, Sculpting + Multires + Noise texture tears mesh
Noise texture moved the edges of multires grids different, causing
tears in the mesh. Fixed with a call to re-stitch grids (but only done
if the brush texture is set to noise)
2010-12-15 03:53:56 +00:00
32e6f862e9 remove unused args. 2010-12-15 02:09:35 +00:00
f2d843ed2b Exposed mesh edit 'select similar' threshold as operator property, must have been missed before. 2010-12-15 00:56:15 +00:00
Nathan Letwory
100d611ce5 Apply patch [#25224] Refactor COLLADA DocumentImporter
Submitted by Martijn Berger.

Make DocumentImporter class the actual IWriter implementation and move prototype to the header.
Group together functions that we should move out of the class.

No functional changes.
2010-12-14 21:46:03 +00:00
7775a1a798 Bugfix #21724
Graph Editor: "make selected channels visible" VKEY didn't 
make unselected channels invisble.

What is left is that the active channel remains visible still.
Not sure if that's by design, for Joshua to answer.
2010-12-14 19:25:49 +00:00
9ac68ad4ab Bugfix #22040
Old bug report:

Image Editor, Painting: crash when texture was visible in 
Material or Texture preview. Was caused by paint code
freeing mipmaps. Now replaced with a mipmap tag (to be done
again), and a new mipmap function that doesn't re-allocate.
2010-12-14 18:02:41 +00:00
73ea636abb clamp colors from 0-1 which are used for display only. 2010-12-14 16:33:04 +00:00
2b53777745 Bugfix #25212
Sequencer: Properties -> Panel "Strip Input" -> file browse button
next to directory name assigned the full file name.

Added on todo: unported code still for "Change Sequence", allowing
to rebrowse strip contents.
2010-12-14 16:23:15 +00:00
4057626e55 - revert own recent change after discussion, default set hard minimum of colors to 0 but now don't set a hard min, each property needs to define.
- use_old_bump setting only applies to material texture slots.
2010-12-14 16:20:25 +00:00
2dc61df9ea Fix for [#25206] Particles system can't start at frame 0
* The basic problem is that frame 0 can't be cached, so the correct solution is to read frame 1 and interpolate backwards from that state.
2010-12-14 15:49:36 +00:00
78e7c6b329 graph editor & action keyframe paste options.
- Offset, so you can paste at the same time of the original frames, at the current frame or relative to the current frame at time of copying.
- Merge method, so the pasted keys can overwrite keys in their range or the entire curve.

Currently there is no redo panel for these space types so the only way to access these options is with F6 redo popup.
2010-12-14 15:14:16 +00:00
93cbc840e0 Fix for [#25198] Smoke gets shown before simulation starts
* Smoke is now only drawn/rendered after the simulation frame range starts.
* This does not apply to simulation end frame though, so that any remaining smoke can for example be faded away nicely through material settings.
2010-12-14 14:45:56 +00:00
ef0e29269b curve hide keys were still not right, now match mesh editmode. 2010-12-14 11:22:54 +00:00
b49ac2430c Fix for 'handle_type' submenu in Graph Editor no longer working.
Previous commit fixing rest of handle type keymaps renamed this
operator, but that brings it out of line with rest of animation editor
operators, so reverting that fix.

Also, made Action Editor/DopeSheet use same hotkey as Graph Editor for
setting handle types now (which is same as one used in 3D-View).
2010-12-14 10:52:38 +00:00
58f31f8a5d Change set handle types back to menu now menus have key access - V+A, V+V, V+L, V+F
for Graph & Edit Curve view.

Editcurve can be Hkey for hide again.
2010-12-14 10:17:13 +00:00
c52ba88f79 [#25211] Impossible to select an armature with shapes
broke since 2.49b, highly confusing function.
Stick bones dont draw solid so cant run glLoadName() in this case.

Tested pose/object mode with all armature draw types and view draw modes.
2010-12-14 06:20:28 +00:00
2fe540e0f2 disallow RNA color values to be set to negative values. Material colors could be set to -100.0 if typed in manually, this is sure to cause bad/unpredictable behavior. 2010-12-14 04:44:07 +00:00
98f642dd31 Fixed bug #23922, Sculpting - Textured display draws incorrectly
Root cause is that some drawing modes don't work with PBVH
drawing. Worked around by adding a call to update mesh normals from
the PBVH so that sculpted changes appear correctly in those
"unsupported" modes. (They'll still draw much more slowly than solid,
but should at least appear correct now.)
2010-12-14 03:30:30 +00:00
35f431b3d0 Menu UI feature common in other widget sets:
Automatically assign menu keys based on name, alternative to pressing number 0-9 on menus items.

 keys are assigned by first giving each menu item the first character of any word, if that fails any key in the name is used.

- active key is shown underlined.
- only ascii keys are assigned currently.
- can run operators, open menu items.
- currently this only works in cases where number buttons were used (UI_BLOCK_NUMSELECT), but could be enabled for file menu, splash etc by removing this check.
2010-12-14 02:38:29 +00:00
17bd906de3 Fixed bug #23826, Other kind of brushes appear in sculpt mode
Was another problem caused by each brush being allowed in more than
one paint mode.

Added a new field to the brush struct to indicate what mode the icon
was last set for; if it's changed then reset it. Not sure if it's
really worth it to cache this, could remove it for simplicity.
2010-12-14 01:19:51 +00:00
991eac85ff Initial implementation of mdisps layer interpolation
Sculpt data shouldn't be lost when making topology changes without
quads<->tris face converison.

General idea:
- Go through all grid points of each corner and convert per-corner
  coordiante to per-face cooredinate
- Apply weights and convert new point to per-corner coordinate
- Use bilinear interpolation to get needed displacement vector

Some additional work was necessery:
- Two neighbour corners could have different displacements along common
  boundary. multires_mdisp_smooth_bounds() makes displacement "symmetrical"
- Point could change it's corner, so displacement vector should be flipped
  in some way. In some cases it's not only flipping, because corner could
  be mapped with some rotation. It's not solved for triangular faces yet,
  so only z-axis displacement would be interpolated for tris.

More limitations:
- Interpolation will give incorrect result after quad<->triangle
  face conversion.
- When face normal was fillped displacement would change it's direction too.
2010-12-13 21:22:30 +00:00
bfe5ae9ff1 Compositor: Add an option to select the YCbCR conversion mode for the YCbCR combine/separate nodes. 2010-12-13 21:17:00 +00:00
33d98c4d3a Bugfix #25207
Driver fix: typing expression outside Graph Editor didn't tag the 
expression to be re-evaluated. Also missing was notifier for other
editors.
2010-12-13 19:10:35 +00:00
4d5afa04f8 Bugfix #23420
Compositor/Image viewer
In 2.4x viewer nodes had animation playback. Not restored yet.
However, when loading such older files the viewer never showed
any result.
2010-12-13 18:22:59 +00:00
d2f84e0f79 Bugfix #25191
F11 pushed a render window to back, but not popped it.
This also works for user prefs btw, not bad ;)
2010-12-13 17:40:06 +00:00