Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-07-17style cleanupCampbell Barton
2013-07-15Fix #36127: 10 bit DPX render would crash when doing rendering animations fromBrecht Van Lommel
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.
2013-07-13remove NULL checks on fixed size arrays, also was calling ↵Campbell Barton
BLI_testextensie_glob every time in the file selector with a blank string.
2013-07-13fix for 2 bugs in animation playbackCampbell Barton
- 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).
2013-07-11fix [#36089] crash when using a tiff without TIFFTAG_EXTRASAMPLESCampbell Barton
2013-06-25Fix #35824: finding missing files not working correct for filepaths with specialBrecht Van Lommel
characters on Windows. Replaced some uses of stat() by BLI_stat() to properly handle such filepaths.
2013-06-21Code cleanup: fix some vs2012 compiler warningsBrecht Van Lommel
2013-06-10Fix #35658: OpenEXR (from Maya) - missing passesSergey Sharybin
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.
2013-05-29Make sure bool will always have the same size in C and C++Sergey Sharybin
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)
2013-05-28move BLO_sys_types.h -> BLI_sys_types.h (it had nothing todo with loading)Campbell Barton
remove MEM_sys_types.h which was a duplicate.
2013-05-27style cleanup: nodesCampbell Barton
2013-05-27fix [#35518] UV Mapping crashes the Blender with specific image fileCampbell Barton
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.
2013-05-23Fix #35469: image editor smear and soften paint tools not working correct forBrecht Van Lommel
float images, was not taking premul/straight convention into account properly.
2013-05-20code cleanup: split scons includes onto multiple lines, reduce chance of ↵Campbell Barton
include conflicts later on.
2013-05-12Speedup for rendered viewport for blender internalSergey Sharybin
Display code was a bottleneck here, so made it so render result draw follows Image Draw settings.
2013-05-12Image paint: 2D painting now supports texture masks and does masking moreBrecht Van Lommel
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.
2013-05-12correct assert for driver evaluation,Campbell Barton
also add asserts for listbase functions when the list is NULL, and use noreturn attribute for jpeg_error.
2013-05-08rename BLI_ghashIterator_notDone() -> BLI_ghashIterator_done()Campbell Barton
was renamed fairly recently but other similar iterators not negated like this, would prefer to keep it as it was
2013-05-05Fix for non-terminated reading of JPEG metadataSv. Lockal
This commit prevents Blender reading memory next to non-null-terminated JPEG metadata strings
2013-05-01Fix double free error in OpenEXR when file cannot be savedSv. Lockal
2013-05-01style cleanupCampbell Barton
2013-04-30Bug fix #35143Ton Roosendaal
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.
2013-04-30More image painting fixes:Brecht Van Lommel
* 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.
2013-04-29Fix for --debug-ffmpeg not giving enough informationSergey Sharybin
2013-04-29Fix for non-linear float buffer displaying on raw displaySergey Sharybin
2013-04-28Fix #34233: bad alpha blending for 3D texture painting. Same changes as theBrecht Van Lommel
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.
2013-04-27Fix part of #34233: bad alpha blending for 2D image painting. This is a veryBrecht Van Lommel
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.
2013-04-26Fix image painting not adding alpha when 2D painting in the image editor. ThisBrecht Van Lommel
code got lost after the optimizations in revision 55033.
2013-04-25style cleanupCampbell Barton
2013-04-25Fix part of #34640: colors darkening when using the vertex paint blur tool.Brecht Van Lommel
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.
2013-04-16skip calling BKE_editmesh_tessface_calc() from BKE_bmbvh_new(), also quiet ↵Campbell Barton
float/double warnings.
2013-04-15Fix #34967: Display transform makes byte image with alpha=0 blackSergey Sharybin
Skip premultiplication/de-premultiplication when acquiring display buffer for a byte image. Will make conversion a bit faster also :)
2013-04-15code cleanup: minor BMESH_TODO's, some were left in even though they were ↵Campbell Barton
done/invalid.
2013-04-14== FFMPEG / Canon DSLR footage workaround ==Peter Schlaile
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
2013-04-11Fix issue with bright frames appearing in clip editor when compositor is open.Sergey Sharybin
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!
2013-04-11Use SWS_FULL_CHR_H_INT for SWS context for more accurate conversionSergey Sharybin
Suggestion by Bjeorn Sonnenschein from report #34755.
2013-04-05correction to previous warning cleanup, also quiet shadow-warning for ↵Campbell Barton
thumbnail `size`
2013-04-04Use GLSL display for compositor backdrop and sequencer previewSergey Sharybin
Now only background images remained to be ported. Plus implement GLSL for dithering and RGB curves.
2013-04-04code cleanup: use bools in UI and WM code, quiet some shadow warnings, ↵Campbell Barton
remove unused function uiEmboss()
2013-04-03Bunch of fixes for GLSL display transformSergey Sharybin
- GLSL shader wasn't aware of alpha predivide option, always assuming alpha is straight. Gave wrong results when displaying transparent float buffers. - GLSL display wasn't aware of float buffers with number of channels different from 4, crashing when trying to display image with different number of channels. This required a bit larger changes, namely now it's possible to pass format (GL_RGB, GL_RGBAm GL_LUMINANCE) to glaDrawPixelsTex, This also implied adding format to glaDrawPixelsAuto and modifying all places where this functions are called. Now GLSL will handle both 3 and 4 channels buffers, single channel images are handled by CPU. - Replaced hack for render result displaying with a bit different hack. Namely CPU conversion will happen only during render, once render is done GLSL would be used for displaying render result on a screen. This is so because of the way renderer updates parts of the image -- it happens without respect to active render layer in image user. This is harmless because only display buffer is modifying, but this is tricky because we don't have original buffer opened during rendering. One more related fix here was about when rendering multiple layers, wrong image would be displaying when rendering is done. Added a signal to invalidate display buffer once rendering is done (only happens when using multiple layers). This solves issue with wrong buffer stuck on the display when using regular CPU display space transform and if GLSL is available it'll make image displayed with a GLSL shader. - As an additional change, byte buffers now also uses GLSL display transform. So now only dutehr and RGB curves are stoppers for using GLSL for all kind of display transforms.
2013-04-02Fix for potential missing draw-update when building without OCIOSergey Sharybin
2013-04-02More usage of GLSL for color managed image drawingSergey Sharybin
Uses GLSL for drawing image in Image Editor space. This requires change in image_buffer_rect_update, so original float buffer is being updated as well. This is unlikely be something bad, but will keep an eye on this change. Also no byte buffer allocation happens there, this is so because byte buffer used for display only and in case of GLSL display such allocation and partial update is just waste of time. Also switched OpenGL render from using CPU color space linearization to GLSL color space transform. Makes OpenGL rendering pretty much faster (but still slower than in 2.60). internal changes: - Added functions to setup GLSL shader for color space conversion in colormanagement.c. Currently conversion form a colorspace defined by a role to linear space is implemented. Easy to extend to other cases. - Added helper functions to glutil.c which does smarter image buffer draw (calling all needed OCIO stuff, editors now could draw image buffer with a single function call -- all the checks are done in glutil.c). - Also added helper function for buffer linearization from a given role to glutil.c. Everyone now able to linearize buffer with a single call. This function will do nothing is GLSL routines fails or not supported. And one last this: this function uses offscreen drawing, could potentially give issues on some cards, also will keep an eye on this.
2013-04-02Fixes for recent GLSL display space conversionsSergey Sharybin
- Building without OCIO will give correct results again - If GLSL failed to compile, fallback to glaDrawPixelsAuto will happen.
2013-04-01Fix for recent changes in IMB_display_buffer_acquireSergey Sharybin
Do early out when ibuf has 4 channels only, allocate 4-channels display buffer. So now we could always assume byte buffer is always in RGBA format.
2013-04-01Fix for GLSL display: NULL view_settings are allowed nowSergey Sharybin
Currently no functional changes for users, but this change is crucial for further GLSL images display.
2013-03-31style cleanupCampbell Barton
2013-03-29Implement GPU-side display transform for clip editorSergey Sharybin
Implemented using GLSL API from OpenColorIO library and some general functions were added to it's c-api: - OCIO_setupGLSLDraw prepares OpenGL context for GPU-based transformation for a giver processor. This function compiles and links shader, sets up it's argument. After this transformation would be applied on an image displaying as a 2D texture. So, glaDrawPixelsTex called after OCIO_setupGLSLDraw will do a proper color space transform. - OCIO_finishGLSLDraw restores OpenGL context after all color-managed display is over. - OCIO_freeOGLState frees allocated state structure used for cacheing some GLSL-related stuff. There're some utility functions in IMB_colormanagent which are basically proxies to lower level OCIO functions but which could be used from any place in blender. Chacheing of movie clip frame on GPU is also removed now, and either glaDrawPixelsTex or glaDrawPixelsAuto are used for display now. This is so no code duplication happens now and no large textures are lurking around in GPU memory. Known issues: - Texture buffer and GLSL are no longer checking for video card capabilities, possibly could lead to some artifacts on crappy drivers/cards. - Only float buffers are displaying using GLSL, byte buffers will still use fallback display method. This is to be addressed later. - If RGB curves are used as a part of display transform, GLSL display will also be disabled. This is also thing to be solved later. Additional changes: - glaDrawPixelsTexScaled will now use RGBA16F as an internal format of storing textures when it's used to draw float buffer. This is needed so LUT are applied without precision loss.
2013-03-29misc minor edits.Campbell Barton
- pass string size to BLI_timestr() to avoid possible buffer overrun. - quiet warning for mingw. - include guards for windows utf conversion funcs. - fix for mistage in edge-angle-selection check. - some style cleanup.
2013-03-26style cleanup:Campbell Barton
also rename mesh_getVertexCos() --> BKE_mesh_vertexCos_get() to match curve function.
2013-03-25code cleanup:Campbell Barton
- remove unused defines. - quiet some shadow warnings. - bevel, ifdef out some asserts that are too common. - style