Commit Graph

2132 Commits

Author SHA1 Message Date
Sergey Sharybin
0ce2d278b7 Follow general mathutils rules for naming straight<->premul functions 2013-01-15 08:37:17 +00:00
Campbell Barton
c93e127e7a code cleanup: style and replace (float)sin, (float)cos with sinf, cosf 2013-01-12 14:28:23 +00:00
Campbell Barton
f68e9db583 add padding for node view-all, view-home operators. 2013-01-11 04:34:15 +00:00
Campbell Barton
7c64109bce bmesh todo: uv stretch area draw mode wasn't calculating ngon area - added area_poly_v2(). 2013-01-10 08:16:19 +00:00
Campbell Barton
682df047a0 style cleanup 2013-01-08 02:06:16 +00:00
Campbell Barton
08358a60b0 style cleanup 2013-01-08 01:48:14 +00:00
Antony Riakiotakis
44ab30caf6 comment fix.
Looks like no scaling is done elsewhere on blender for this code. I hope
this bug is squashed for good.
2013-01-07 21:56:13 +00:00
Antony Riakiotakis
c3b5c726c7 * Fix for #31581. The issue was that we scaled the face prior to
projecting it. The original paper suggests to simply interpolate between
the two points of an edge if the distance of the point to that edge is
smaller than a threshold.

* Fixed both 3D and 2D code to utilize this. Possibly other places in
blender where this scaling is done will have to be adjusted.

* Changed vertex interpolation to use 2D interpolation, since it already
did projection on plane and 2d calculations are faster.

* Also added notifier on hard recalc when uvcalc_transfor_correction is
used. Results in instant feedback on UV editor when edge sliding.
2013-01-07 21:42:40 +00:00
Campbell Barton
0e26a67c85 add area_poly_v3_max() for use with area_poly_v3 2013-01-07 12:16:11 +00:00
Campbell Barton
6747dec926 style cleanup 2013-01-07 03:24:22 +00:00
Jason Wilkins
92481161d6 BLI_assert uses printf so stdio.h should be included instead of relying on it to be included by other headers accidentally 2013-01-06 09:24:45 +00:00
Sergey Sharybin
52a81c8364 There was a typo in previous commit
Additional changes:

- Made mipmapping operate with unsigned short instead of char
  which allowed to eliminate extra division by 255, so prevision
  should be a bit better now.

- Actually, this is not real unsigned short range, but it's a
  range of 255*255 which is more convenient for mipmapping, so
  made conversion functions private for scaling.c

  Not sure it worth making this functions operate in 65535
  range, for now current behavior seems to be just fine.
2013-01-04 20:34:06 +00:00
Sergey Sharybin
4990883664 Optimization for speed regression in mipmap generation
Regression was caused by alpha premul cleanup commit and the reason
of slowdown was uchar <-> float conversion which is slow.

Replaced with uchar <-> int conversion which seeps to be accurate
enough and mostly eliminates slowdown.

Slowdown was easy to notice when movie clip is used for 3d vierport
background and undistortion is enabled. In this case every frame
will re-calculate mipmaps.

It's still a nit slower than mipmap generation before cleanup
commit, but couldn't think about extra boost here atm.
2013-01-04 17:28:58 +00:00
Campbell Barton
0d95dde79b add assert to BLI_buffer_at if a type is given different to 'elem_size' 2013-01-02 05:19:55 +00:00
Campbell Barton
9190c493c1 extend BLI_buffer
- add option to calloc or not, existing code wasnt consistent here, would calloc on first alloc but not on realloc, also - the static memory was never zero'd.
  use flag BLI_BUFFER_USE_CALLOC to ensure all new memory is zero'd (static/alloc/realloc's).

- add BLI_buffer_declare_static / BLI_buffer_declare so its possible to have a buffer that never uses static memory.
2013-01-02 05:00:02 +00:00
Campbell Barton
ec1681fae7 style cleanup 2013-01-02 01:49:07 +00:00
Bastien Montagne
6ea766be0e Intent to fix windows not compiling after r53480.
Looks like _Bool is also a type in std (at least with msvc), so the 'typdef bool _Bool;' generates a name collision... Now using _BLI_Bool as placeholder instead.
2013-01-01 18:18:45 +00:00
Campbell Barton
80ff313495 patch [#33331] Time To Start Moving To Stdbool
by Lawrence D'Oliveiro (ldo)

so BKE_utildefines.h allows use of C99's bool type and true/false.

currently scons wont try to use stdbool.h, and works as if its never found.
2013-01-01 12:47:58 +00:00
Sergey Sharybin
08cea96ab0 Alpha premul pipeline cleanup
This assumptions are now made:
- Internally float buffers are always linear alpha-premul colors
- Readers should worry about delivering float buffers with that
  assumptions.
- There's an input image setting to say whether it's stored with
  straight/premul alpha on the disk.
- Byte buffers are now assumed have straight alpha, readers should
  deliver straight alpha.

Some implementation details:

- Removed scene's color unpremultiply setting, which was very
  much confusing and was wrong for default settings.
  Now all renderers assumes to deliver premultiplied alpha.

- IMB_buffer_byte_from_float will now linearize alpha when
  converting from buffer.

- Sequencer's effects were changed to assume bytes have got
  straight alpha. Most of effects will work with bytes still,
  however for glow it was more tricky to avoid data loss, so
  there's a commented out glow implementation which converts
  byte buffer to floats first, operates on floats and returns
  bytes back. It's slower and not sure if it should actually
  be used -- who're using glow on alpha anyway?

- Sequencer modifiers should also be working nice with straight
  bytes now.

- GLSL preview will predivide float textures to make nice shading,
  shading with byte textures worked nice (GLSL was assuming straight
  alpha).

- Blender Internal will set alpha=1 to the whole sky. The same
  happens in Cycles and there's no way to avoid this -- sky is
  neither straight nor premul and doesn't fit color pipeline well.

- Straight alpha mode for render result was also eliminated.

- Conversion to correct alpha need to be done before linearizing
  float buffer.

- TIFF will now load and save files with proper alpha mode setting
  in file meta data header.

- Remove Use Alpha from texture mapping and replaced with image
  datablock setting.

  Behaves much more predictable and clear from code point of view
  and solves possible regressions when non-premultiplied images were
  used as textures with ignoring alpha channel.
2012-12-31 13:52:13 +00:00
Nicholas Bishop
2c9d22fe31 Add BLI_buffer, an alternative to BLI_array
BLI_buffer is a dynamic homogeneous array similar to BLI_array, but it
allocates a structure that can be passed around making it possible to
resize the array outside the function it was declared in.
2012-12-30 18:28:10 +00:00
Nicholas Bishop
66e70e6caa Add function to find closest point in triangle to another point
New function is closest_to_tri_v3() in BLI_math_geom.
2012-12-30 18:23:03 +00:00
Campbell Barton
4a427d8e0d style cleanup 2012-12-29 01:54:58 +00:00
Campbell Barton
f0c1bc830c add option to BLI_scanfill_calc() - BLI_SCANFILL_CALC_HOLES, gives some speedup for BMesh ngons which never have holes and ensures predictable triangle count (totvert - 2), which is needed for pre-calculating array size. 2012-12-27 06:39:27 +00:00
Campbell Barton
f9b2788ddc correction for poly_to_tri_count() when given zero poly count. 2012-12-27 05:08:16 +00:00
Campbell Barton
1d6c3ccf09 display the number of tri's in object mode status, often requested feature from users who model for realtime/game-engine output,
the total number of faces wasn't so useful and could be especially misleading with ngons.
2012-12-27 03:51:45 +00:00
Campbell Barton
2c38c32661 make weight paint respect box & near clipping.
also replace strncmp with BLI_path_ncmp for BLI_rebase_path, (so its case insensitive on windows)
2012-12-25 14:09:51 +00:00
Campbell Barton
fb989c2a65 code cleanup: don't alloca zero size and remove paranoid NULL checks (checked all uses and there not needed). 2012-12-24 14:59:15 +00:00
Campbell Barton
9090049505 code cleanup 2012-12-23 16:09:26 +00:00
Campbell Barton
cb70c5ba0f fix for bug where weight paint would draw hidden faces but not draw then with the backbuffer (depth selection). 2012-12-23 08:20:44 +00:00
Campbell Barton
f25618f29a make Node.links return a tuple, this may you can't do socket.links.append() by mistake.
removed RNAMeta mixin class since you cant register subclasses.

also some minor code cleanup
2012-12-21 12:16:13 +00:00
Campbell Barton
b2c66e268f replace MIN/MAX 3,4 with inline functions 2012-12-21 05:07:26 +00:00
Bastien Montagne
ab2c273b12 Added GPL header to sconscripts!
Also changed shebang to '#!/usr/bin/env python', this is more portable across unixes...
2012-12-17 08:01:43 +00:00
Campbell Barton
a6bee579e9 move pbvh into BKE, it used many BKE bad level includes.
now blenlib/BLI doesn't depend on any blenkern/BKE functions,
there are still some bad level includes but these are only to access G.background and the blender version define.
2012-12-15 15:59:25 +00:00
Campbell Barton
21a9fa9089 move bpath module from BLI to BKE, it was making many bad level calls into BKE. 2012-12-15 15:31:50 +00:00
Campbell Barton
865b547b44 add checks to style checker script for 'a . b' and 'a []'
also use BLI_findindex for modifiers_indexInObject
2012-12-15 04:44:10 +00:00
Campbell Barton
cc32540c48 style cleanup: stop the style checker script from complaining about '!*ptr' 2012-12-15 02:48:25 +00:00
Brecht Van Lommel
071a43f754 Fix #33497: seting object scale to 0 on one axis made moving verts in edit mode
impossible. In this case matrix inversion failed and didn't give a useful result.
Now it falls back to a pseudoinverse in that case, so that moving along the
other axes still works.

There may be other places that can benefit from this, but this is a place where
it has no significant performance impact, doing this in general for e.g. bone
matrices could be quite slow.
2012-12-14 21:41:22 +00:00
Campbell Barton
566af58e1c add assert if both args to invert_m4_m4 are the same. 2012-12-14 00:49:55 +00:00
Campbell Barton
0f97d53c74 add include so alloca() is found on mingw. 2012-12-13 11:59:07 +00:00
Campbell Barton
1ab6306177 minor edits
- add BLENDER_QUIT_FILE define.
- use const for passing rcti's in widget drawing.
2012-12-13 02:40:49 +00:00
Ton Roosendaal
12b642062c Holiday coding log :)
Nice formatted version (pictures soon):
http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.66/Usability

Short list of main changes:

- Transparent region option (over main region), added code to blend in/out such panels.
- Min size window now 640 x 480
- Fixed DPI for ui - lots of cleanup and changes everywhere. Icon image need correct size still, layer-in-use icon needs remake.
- Macbook retina support, use command line --no-native-pixels to disable it
- Timeline Marker label was drawing wrong
- Trackpad and magic mouse: supports zoom (hold ctrl)
- Fix for splash position: removed ghost function and made window size update after creation immediate
- Fast undo buffer save now adds UI as well. Could be checked for regular file save even...
  Quit.blend and temp file saving use this now.
- Dixed filename in window on reading quit.blend or temp saves, and they now add a warning in window title: "(Recovered)"
- New Userpref option "Keep Session" - this always saves quit.blend, and loads on start.
  This allows keeping UI and data without actual saves, until you actually save.
  When you load startup.blend and quit, it recognises the quit.blend as a startup (no file name in header)
- Added 3D view copy/paste buffers (selected objects). Shortcuts ctrl-c, ctrl-v (OSX, cmd-c, cmd-v). 
  Coded partial file saving for it. Could be used for other purposes. Todo: use OS clipboards. 
- User preferences (themes, keymaps, user settings) now can be saved as a separate file.
  Old option is called "Save Startup File" the new one "Save User Settings".
  To visualise this difference, the 'save startup file' button has been removed from user preferences window. That option is available as CTRL+U and in File menu still.
- OSX: fixed bug that stopped giving mouse events outside window.
  This also fixes "Continuous Grab" for OSX. (error since 2009)
2012-12-12 18:58:11 +00:00
Campbell Barton
1eadcf743d fix for building with msvc 2012-12-11 15:29:08 +00:00
Campbell Barton
71730f26d7 replace BLI_array_fixedstack_declare with() new macro BLI_array_alloca() which uses stack memory always and doesn't need to be freed explicitly. 2012-12-11 15:10:19 +00:00
Campbell Barton
7c699a217a define the size of matrix args for both rows/cols. 2012-12-11 14:29:01 +00:00
Campbell Barton
634b22fc46 code cleanup: spelling labda -> lambda 2012-12-11 14:18:37 +00:00
Campbell Barton
361eb23a42 switch BLI_ghashutil_strhash() to "djb" hash (as used by glib),
Gives approx 10% speedup in my own micro-benchmark looking up operators.
2012-12-11 13:57:58 +00:00
Campbell Barton
bc94b8300e de-duplicate labda_PdistVL2Dfl() & line_point_factor_v2() 2012-12-10 06:14:43 +00:00
Campbell Barton
9e5dc7de01 revert most of r52820 (patch to fix [#33452]), this caused a regression in text stepping when ctrl is held.
This adds back the problem that double-clicking on a single char wont select it. Double click selection may need its own logic.
2012-12-10 02:06:26 +00:00
Campbell Barton
f795e1cfd2 style cleanup 2012-12-09 05:15:21 +00:00
Campbell Barton
78c7951463 patch [#33452] Double click select does not work properly + patch
from Tobias Johansson (mutze)

with some minor edits (don't treat '!' as an operator - python centric)
2012-12-09 03:57:10 +00:00