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-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
2013-03-25fix [#34745] TGA with size of 4Kx8K won't loadCampbell Barton
Checked the size limit on TGA files in svn history and this is was just an arbitrary limit that might have made sense some years back, but not now.
2013-03-22Fix #34689: Multilayer EXRs don't load correctly if one layer is named and ↵Sergey Sharybin
the other is not OpenEXR's ChannelList.layers() will not include empty layer names, which caused the issue. Made it so if there's one non-empty layer name, check for empty names happens. If there's empty layer name in case one non-empty layer name, file will be considered multilayer now.
2013-03-22code cleanup: use NULL rather then 0 for pointers, and make vars static ↵Campbell Barton
where possible. also found unintentionally defined enum/struct variables that where only meant to be defining the type.
2013-03-20Prefetching for movie clipsSergey Sharybin
This commit basically implements frames prefetching for movie clip datablock. Number of frames to be prefetched is controlled in User Preferences, System tab, Prefetch Frames option. Currently prefetching is destructive-less for movie cache, meaning mo frames will be removed from the cache when while prefetching. This is because it's half of simplier to implement, but it also makes sense from tracking point of view -- we could want to playback in both directions and removing frames from behind time cursor is not always a good idea. Anyway, smarter prefetching strategy could be developed later. Some implementation notes: - Added MEM_CacheLimiter_get_memory_in_use function to get memory usage of specified memory limiter. - Fixed prototype of MEM_CacheLimiter_get_maximum which was simply wrong (used wrong data type for output). - Added some utility functions to movie clip and movie cache for direct cache interaction and obtaining cache statistics. - Prefetching is implemented using general jobs system. which is invoking from clip draw function. - Prefetcing will stop as soon other job or playback starts. This is done from performance point of view. Jobs will likely require lots of CPU power and better to provide whole CPU to it. Playback is a bit more complicated case. For jpeg sequence playback prefetching while paying back is nice. But trying to prefetch heavy exr images and doing color space conversion slows down both playback and prefetching. TODO: - Think of better policy of dealing with already cached frames (like when cached frames from other clips prevents frames from current clip to be prefetched) - Currently a bit funky redraw notification happens from prefetch job. Perhaps own ND_ is better to have here. - Hiding clip while prefetch is active in theory shall stop prefetching job. - Having multiple clips opened on file load will prefetch frames for only one of them.
2013-03-19Fix: Clamp alpha to 1.0 or adding alpha in paint creates "isolines" dueAntony Riakiotakis
to integer overflow. One of the beautiful bugs that is sad to see fixed. Also remove unused timer variable