Age | Commit message (Collapse) | Author |
|
Issue was caused by precision loss in alpha under code.
Now it might be slower a bit, but it's as precise as it
could be. At least i hope so :)
|
|
|
|
|
|
correct some harmless but incorrect sizeof() use
|
|
- use URI_MAX define
- replace strcat with BLI_snprintf.
|
|
|
|
replaces BLI_join_dirfile when the dir and the destimation were the same.
|
|
|
|
also correct bad logic with converting a textblock to 3d-text, bytes-vs-number of chars wasn't handled right.
|
|
|
|
|
|
- fix for missing None check with recent 'Hidden Wire' draw option.
- avoid int overflow with mesh selection.
- remove ';' outside of functions.
|
|
|
|
|
|
the UI on OS X.
The problem is due to a large variable on the stack, and pthreads have a smaller
stack size than the main thread by default. On Linux the pthread stack size seems
to be 2MB, OS X 512KB and Windows 256KB - 512KB.
|
|
BLI_testextensie_glob every time in the file selector with a blank string.
|
|
- reading bmp images was failing (needed to increase the size of the header to 64 bytes)
- the dnd image was being incorrectly checked (was always returning true even when none was used).
|
|
|
|
characters on Windows.
Replaced some uses of stat() by BLI_stat() to properly handle such filepaths.
|
|
|
|
Added some special case for two-component channels name.
Maybe magic could be simplified to just use last char of
channel name as an id, but extra paranoid check never hurts.
|
|
There were an issues with data structures defined in headers
and being used by both C and C++ on systems with stdbool
unavailable.
This happened because bool in this case will be defined as
unsigned int, which is 4 bytes. But C++'s bool is only 1
byte and this lead to alignment issues.
Now bool is always 1 byte, also made sure there's no situation
like bool foo = BitField & BitFlag, which could give overflow
issues. Use (BitField & BitFlag) != 0 instead.
Fixes #35553: Compositor broken (Backdrop & Preview)
|
|
remove MEM_sys_types.h which was a duplicate.
|
|
|
|
2 bugs here
- missing NULL check in IMB_colormanagement_display_settings_from_ctx()
- deadlock in draw_image_paint_helpers()
Simple solution is to not draw paint helpers for render/viewer images.
|
|
float images, was not taking premul/straight convention into account properly.
|
|
include conflicts later on.
|
|
Display code was a bottleneck here, so made it so render
result draw follows Image Draw settings.
|
|
consistent with projection painting.
Also did some refactoring of this code, moving the brush image creation code
out of brush.c and making it consistent with image updating code.
|
|
also add asserts for listbase functions when the list is NULL, and use noreturn attribute for jpeg_error.
|
|
was renamed fairly recently but other similar iterators not negated
like this, would prefer to keep it as it was
|
|
This commit prevents Blender reading memory next to non-null-terminated JPEG metadata strings
|
|
|
|
|
|
Animplayer treated .tif extensions as movie files, so that didn't work.
Added another hardcoded check for it, like for png tga exr jpg etc.
Why FFmpeg thinks .tif is a movie... that's for another day :)
Quicktime QTKit did same btw.
|
|
* 2D image painting support for masking to limit the max contribution of a stroke
to a pixel, to get it working compatible with projection painting. Not strictly
a bugfix, but the inconsistency here was annoying.
* Fix python errors in Texture Mask panel in image editor, was missing overlay
options.
* Clamp paint mask to 0..1 in case some texture exceeds it, this could give black
pixels due to integer overflow.
|
|
|
|
|
|
previous fix for 2D image painting were done, and also:
* For brushes that do masking (keeping the max contribution to a pixel limited),
the alpha from textures is now part of the mask. In many cases the logic
worked out the same and where it didn't it used to cause artifacts.
* Color interpolation for smear and soften tools now happens in premultipied
space, to avoid bleeding of RGB colors from zero alpha areas.
* Fix a few cases where byte <=> float conversion was not doing the proper
straight <=> premul conversion.
* Replace some float division by constants with multiplications, is faster.
Note: float texture painting seems to have some issues updating the OpenGL
texture, but issue was already there before this commit.
|
|
old issue, the formulas here were never quite right, should all work ok now
with byte and float images.
Some differences:
* Colors with zero alpha from the background will never have an influence, so
you don't get alpha fringes when painting over such areas. This does give
hard edges when looking at the RGB channels alone, but there's no way to
avoid that and fringes at the same time, same behavior as other painting apps.
* Add/Subtract/Multiply/Lighten/Darken now leave the alpha channel unchanged
and work only the RGB channels, again same behavior as many other apps.
* Erase/Add alpha now compensates for premultiplied float images to keep the
straight RGB colors the same.
Next: fix projection painting.
|
|
code got lost after the optimizations in revision 55033.
|
|
|
|
The problem was that vertex colors only have 8 bits of precision, and integer
division always rounds down, so after some color blending iterations everything
gets darker. Instead use integer division that behaves like round() instead of
floor() for blending operations.
|
|
float/double warnings.
|
|
Skip premultiplication/de-premultiplication when acquiring display
buffer for a byte image. Will make conversion a bit faster also :)
|
|
done/invalid.
|
|
The latest ffmpeg versions include a workaround to deal with a certain
pecularity in Canon DSLR footage: instead of decoding pictures with the
proper resolution of 1920x1080 they decode it with 1920x1088 and add a
black bar at the bottom.
Needless to say, that this screws up things in a lot of areas within blender
(proxy indices, mask animations etc.)
Since all blender versions besides Linux x86 32bit seem still to include
older ffmpeg versions which still contain this bug, this patch adds
a workaround for older versions until we have all versions on all platforms
up to date.
See also: http://git.libav.org/?p=libav.git;a=commit;h=30f515091c323da59c0f1b533703dedca2f4b95d
|
|
Allocate float buffer outside of image buffer,
so work-in-progress color space conversion doesn't
interfere with other parts of blender.
Covers most of cases -- since image buffer wouldn't
have partially-update float buffer all the rest
areas would be happy.
However, if there're places which updates float
buffer from byte buffer, it's still possible
some WIP color space conversion is displayed on
the screen.
But what a heck someone will do such a crappy
conversion anyway!
|
|
Suggestion by Bjeorn Sonnenschein from report #34755.
|
|
thumbnail `size`
|