Dev:Ref/Release Notes/2.40/Bug Fixes
< Dev:Ref | Release Notes | 2.40
<section begin=2.40-Source code-Bug Fixes />
Bugfixes
With no objects in scene, press F (ALT+F) for faceselect crashed. Bugfix #2755
Bug #2751 Recurring issue, but also bug in 2.37/37a: OSA sample amount versus AO sample amount conflict... if AO and OSA amounts were exact equal it gives black spots. Solution not optimal yet... but at least looks good. Still think it's useless to sample fewer than AO level 8 (64), but nevertheless. :)
- 'Delete object' didn't set object pointers to NULL for Armature/Pose constraints (old bug)
- OGL render (view3d header) had wrong first frame on anim render - Ipo 'recording' mode had wrong playback speed - Vertex-key mode now sticks to show 'active key', until frame change
Bugfix #2797 Editmesh SHIFT+F "Fill" used an unsigned char to count amount of selected edges linking to vertices, but also subtracted... causing the char to become 255. Gave crashes (or infinite loops) when using "Fill" on random input of solid meshes.
Bugfix #2791 Apply deform without object active crashed (only when using pulldowns)
Bug fix #2790 Pressing Wkey with no object active crashed.
Bug fix #2774 Using linked library files with relative paths, didn't set the correct relative root... so it only worked with files in the same directory. ALso fixed the button-lock in material buttons, it didn't allow to see which materials were linked to the mesh/object.
MetaBall editmode didn't send the DAG recalc event while transformed. :) Meaning, it didn't do polygonizing while moving elements in edit mode.
Bug fix #2772 EditMesh undo didn't restore vertex colors! That slipped our attention for almost a year... :)
Bugfix for #2768 Starting a Bake for SoftBody didn't initialize the animation system for the first frame correctly, causing an initial unwanted softbody effect.
Bug fix #2763 Depgraph missed proper relation from one armature bone to another armature bone.
Bug fix #2762 Quite harmless, but was lazy code... When you choosed "Vertex Color Paint" material, the init_render_material() also set the "Vertex color Light" option, because that flag was checked on during render to detect vertex colors. Now it has proper checks in render code.
Fix for bug #2747 Knife cut in edge selection mode can cause crashes, since it uses subdivide which isn't edge-select aware yet. Quickly patched it by making knife checking on vertex selection.
Fix "Replace Meshes" in radiosity to actually only replace Meshes, and not also delete lamps, cameras and anything else that was selected in the "Collect Meshes" phase.
- cleaned up 'version correction' a bit. There was code slowing down current files even (armatures were evaluated all, even when not in current layer, was added to make sure they get converted OK). Send me old files that crash now! :) - on reading older files with path-constraints, a fix had to be added. - error "badd call to addqueue' found when using header-less window for filewindow
#bug 2397: frame-duplicator using Constraint not evaluated.
Fix for a *very* nasty bug... somewhere in the ancient past - I tracked it back to 1.4 - comparing pointers apparently gave warnings or errors... I don't really have a memory of that. Could be the Irix compiler. What it was used for is sorting edges in arrays or hash lists, like: if( ((long)v1) > ((long)v2) ) long is defined to be pointer size, so that should work 32/64 bits, where it not that the long cast makes the value SIGNED! :) Ken Hughes discovered this... noting that when his system uses a calloc, the returned pointer had an uncommon address making the long negative. It was a very hard bug to track, since (apparently) most OS's have an address space being still in the lower part of an long... Anyhoo; I have removed a couple of (long) casts from pointer comparing now, need to get compile feedback if that's compliant for all our OS's. If so, quite a lot of such hacks have to be removed from our code, or make them casting to an unsigned long... This has been confirmed to fix bugs #2709 and #2710. Thanks Ken!
Bugfix for #2826 Initialize shadow buffer lamp accidentally altered the ob->obmat for the lamp. Never showed up before until now (depgraph).
Bug fix #2799 Sequence effect "gamma cross" didn't work since 2.36. Caused by not initialized gamma tables...
- Altered 'axismat' for PoseMode bone transform. Fix for bug #2769, bone rotations using hotkey-constraints (R, Y, Y) didn't work well.
Fix in image.c: just an unitialized variable.
Bugfix #2836 Crash in Vertex-duplicator when there's an empty Mesh. Simply added check for dm pointer. :)
Fix: outliner crash on deleting bones in editmode Further cleaned up editmesh code to be warning free and to have a little nicer style :)
Fix for bug #2848 This flushes selection upward in subdivide based on select mode. So faces with all edges selected should now be selected as well.
Bugfix #2818 On importing a file (dxf for example), the active filename got set to the imported filename, causing save-over to use that too. Tracked it down to be a very old feature... better to remove this, doesn't work according specs!
Fix for bug #2766: Shear shortcut broken
Bug fix #2856 Changing 'active material' in Editing Buttons didn't update preview in in Material Buttons.
- Bug #2857: Spin didn't create nice consistant normals - removed unnecessary call to where_is_object() in init-render phase. - Added DAG_scene_sort() calls when objects were removed (join cases) - When using texture fonts, the file window header didn't display OK - Saving a file didn't set the 'wait cursor' anymore (oldie!)
Bugfix #2875 Removed old code that was used when the global undo still saved files. It was restoring pointers in the UI based on names, which gave confusing results when loading the quit.blend file (actually undobuffer). Instead it should treat the quit.blend same as "Load without UI" option.
Work for fix of #2256 "something weird with some buttons":
Fix for bug #2859 Beautyfill didnt work in illustrated case, due to 1) face select 2) no correct edges selected...
Bugfix #2871 Selecting in Mesh edit mode or in FaceSelect mode is tied, but setting faces hidden was not tied. This caused hidden faces in edit mode to become selected, with all associated disasters. :) Now hiding faces in editmode and faceselect are tied too. Please note that leaving faceselect mode will unhide always!
Two radiosity glitches, bugs #2872 #2881 - add new scene, "Full Copy", didn't copy radio settings - switch scene didn't reset radiosity baking (note that you can only do 1 radiosity scene in Blender, switch scene will free the radiosity data)
Bug fix #2894 Using Lkey (select connected) in Armature editmode could crash, it didn't correctly check for drawing non selectable items (have index -1).
Added the 4 new proportional editing modes also to the uv editor transform. Eventually the uv editor should use the new transform code and get these automatically, but until that's done this might fix bug #2920.
Very small size of arealights (0.001) could cause weird overflows/bands. There was still one float component hanging around... saacos(). Made a double version of it. Reported by Shul. thnx!
bugfix #2931 crash if $HOME not set unchecked pointer returned from BLI_gethome().
Removed strcasestr() with version as found on web, opensolaris. It had a bug though! :) For people interested: both lines with tolower() had to be added...
do_versions() for 2.37 was reading a library data pointer that wasn't set yet. Crashed in windows... Thanks Desoto for finding it!
Bugfix #2943 Render bug. Alpha low or zero, Ztransp, didnt render with lamp halos over... Note it still doesnt work for ray-transp!
- bug fix #2935, DAG update was not called on new boolean object
Lamp-halo & Ortho didn't render correct. Thanks Desoto! :)
MEM_alloc allocated in units of 8 for 32 bits systems, and units of 4 for 64 bits systems... weird bug. :)
A large collection of fixes from Ken Hughes including: - corrections to constants - parameter type checking - correct use of METH_VARARGS vs METH_NOARGS - return objects instead of strings in Scene.getChildren() as per doc. - correct logical operators Thanks, Ken!
bugfix: #2924 Bugs in api2_2x/Material.c - BPy_Material_methods[] "setFilter" calls Material_setFresnelMirrFac() - Material_setSpecSmooth() should be setting param[3], not param[2] Contributed by Ken Hughes. Thanks!
Random() issues with rendering... - AO and soft shadow AreaLight tables were generated without fixed seed, causing animations to give unwanted amounts of noise. - Made sure these tables now are calculated before render, with fixed seed - Then found out the BLI_rand() has very bad seeding... it showed up as patterns. After some experimenting, found a nice method using noise.c hash tables. For compatibility with old code, named it BLI_srandom() to use this next to the BLI_srand(). This follows libc rand() and random() naming convention. - Then of course threading should work... so made a BLI_thread_rand version of the calls. Now supports up to 16 threads, comments added in .h and .c Result is stable animation render with AO and soft shadow. But, please test and feedback!
Bugfix #2977 Tweaked selection code for Manipulators in 'combo' mode, it gives preference now to the scale/translate widgets over the rotate arcs. This enables use of these widgets in ortho top/side views.
Bug fix #2788 in 3d window, nkey panel, click in middle of number button & press ESC moved the 3d cursor to that location. The button was passing on its event to the window event queue, which shouldn't be.
Fix for bug #2974: Circle select in uv editor crashed when an image was assigned but not loaded.
Bugfix #2999. Nkey buttons had a limit for input of 1000.0. That's not much... made it 10 times larger, to match the max zoom level. Nevertheless; on our ancient todo is that we once should give number buttons 2 limits. One for the actual min/max values, and one for the best sliding experience (matching zoom level or distance for example).
bugfix: [ #3009 ] possible memory leak in Mathutils fixed by patch [ #3013 ] patch for memleak in vector Submitted By: Ken Hughes (khughes)
Bugfix #3040, the new 'roundbox' button disabled copy/paste values in buttons. You could notice that for Constraint and Modifier panels.
Exclude only-shadow lamps to be rendered when the main render option "shadow" is off. Bugfix 3018
bug fix: UV paint tool did not work with swapped mouse buttons in user prefs.
Bug fix #3036 Particle emittor parented to Bone in armature didnt update correct. Bugfix #2971 Alpha error in unified render, causing mist and non-ztransp alpha and 'env' materials not to render correct.
Bug #2930: Fix Amiga IFF loading for little-endian platforms
Bug fix #3070 <blush>Missing "2*" caused AO tables to be only initialized half</blush> Result was bad AO quality in render, and unpredictable brightness. This bug happened in previous commit, when fixing random table issues.
Bug fix #3052 Syntax highlight in Text Window crashed with lines > 2000 chars. I now just skip the highlighting code for these cases, it remains a bit weak code... Bugfix #3041 Missing updates for Textured objects in 3d window, using copy buttons.
Bugfix #3077 Radiosity didn't add edges block, on "Replace Meshes". Caused wireframe not to draw, but also crashes like for join(). Also: added patch that sets the drawflags in edges derived from the ones set in faces. This ensures the conversion to be done correct. TODO: this edges call also used in other areas in code, that has to be catched and done differently.
Bugfix #3075 Wave Effect (and build etc) was being converted while the code later on was reading existing modifiers (and unlinking the converted data).
Bugfix #3085 When you move the mouse, while dragging numbers in buttons (or sliding), and release it over another button, the release event was passed on to that button. It happened with Radiosity buttons for example. Reason; buttons with return event 0 are passing on events to other buttons. This is needed for LABEL or ROUNDBOX buttons, to prevent them blocking events when there's another button inside. Made sure all these number/slider buttons returning B_NOP now.
Bug report #3092 Excluded the 3D cursor from being clipped with the new ALT+B clipping. Also added a refresh for the object that gets (Pkey) separated in mesh editmode, might solve issue reported by Campbell.
Bugfix #2948 For using the Fkey (add face) editmesh tool: prevented triangles being made that are partially a quad face already. Tools in editmode don't like such situations (tria->quad for example), also subsurf hates it. :)
Bugfix #2746 In Surface editmode, solid draw mode, curves are drawn in wire now (where in invisible). Its a simple fix, it shouldn't give issues with the Nurbana work. :)
Bug fix #3094 Playback of sequencer sound crashed in combination with dupliverted Objects. (confirmed in osx only btw). Found out there's old not-needed code in the update_for_newframe() call, that was intended to do updates for Manipulators (calling countall()). In countall(), the entire duplilists were generated over, just for counting the totals. First step was removing the countall from update_for_newframe, and added a count_duplilist() call which doesn't generate the full duplilist. That made Blender not crashing anymore, but gives "Error totblock", without printing the block names even... The weird thing also was that the crash showed severe memory corruption in the malloc library, when combining audio scrubbing (SDL) and duplilists. I now suspect there's a remaining issue with DerivedMesh, but for that I need help from Daniel.
Various Transform bugfixes. - Trackball rotate was missing the NoConstraints flag - Zooming didn't recalculate the 2D center correctly - Zooming in transform was sending event to the 3D window even when working on UVs. (disabled when working on
UVs for now, will need to send events to a 2D window handler eventually) - In camera mode, when the selection was exactly on the camera, initgrabz was barfing, fallback to 1.0 now, which gives ok results.
Action editor: drag with LMB did three redraws... causing slowdown. Bug since 2.0 it seems.
Ftgl patch for texture fonts got lost... somehow. That made them much slower than pixmap fonts. Test on buttons window CTRL+ALT+T timer shows it goes down from 2500 to 100 on this commit. :)
Shaded drawmode, ogl preview render, does update for lights.
set object->recalc flag when we change object's loc, rot, etc. fix for problems with frame change scene scriptlinks.
Suppressed another GL_FRONT drawing routine, causing potential slowdowns for some configs. This was an old hack for sgi's, so I've put it behind an ifdef for sgi and suns now. Test if blender still works by switching screens, and check for the borders between the blender area windows. These should draw all nice empty/black.
Possible fix for bug #3094 - use normal malloc/free for stuff that gets alloced inside SDL threads.
Ipowindow header: Curve menu crashed when no curve was created yet.
Bugfix #3046 When using 3d window "unlocked" (own layer and own camera possible), the dependency updates didn't work, these were only using Scene layers.
Bugfix #3138 Editbuttons "Centre" options didn't correctly use depgraph for linked data.
Bugfix #3133 - Rendering an image with Border didn't check for sizes smaller than 1 pixel yet. Related to this code I found 2 other fixes: - Themecolor set for drawing in Render Window was not restored correctly, sometimes causing into wrong Panel (transparency) drawing. - When rendering an image with Gauss, it now renders by default 1 pixel extra, which gets stripped. This eliminates the "ugly" darker border in images. (Yes, let's make Mr. PixelCounter Goralczyk happy! :)
- #2781, reported by Ed Blake: crash on undo when there were active space handlers. Space Handler script links belong to screen areas, which do not get saved on undo. Thanks Ton for pointing out the function that restores ui pointers gone bad. - Applied patch #2822 by Ken Hughes for bug #2647 ("Setting a Face UV"), reported by Campbell Barton. - #3022, reported by Timothy Wakeham: "Blender.BGL.glDrawPixels crashes when drawing more pixels then buffer size". Made glDrawPixels check buffer dimensions. - #2882, reported by Campbell: crash in nmesh.getMaterials(arg == 0 or 1) when nmesh came from GetRawFromMesh().Raw nmeshes are not linked to Blender meshes, so the method doesn't support these options (getting mat info from the actual mesh) for it. - #2817, reported by Tod Koeckeritz: Dir_Depth var was not being decremented in BPY_Menus.c, causing dir depth limits to be reached prematurely.
- #2954, reported by Daniel Holtz: "Python scripts crash hard with valid windows paths". Blender.Load() was not meant for background mode, now it's been update to support it, using BKE_read_file instead of BIF_read_file in this case. Also found another issue with command line scripts using Blender.Load() that could crash Blender: trying to free the Text when it wasn't available anymore (loading a new .blend already removed it). There are still issues with one case, though, causing a crash on start or "Memoryblock winopen: double free" at end, when running a script that is already a Blender Text (only if the script calls Blender.Load, of course). Will investigate.
- #2897: reported by Timothy Wakeham: object.setMaterials was asking the length of a Python list w/o confirming first if the passed obj was really a list. Thanks all for the help and for being patient (long delay, again).
Bugfix #2650. Calling ipo.delCurve() with a curve that's not been displayed in the Ipo curve editor caused a segfault.
Bugfix #3141 Ending localview didn't correctly restore selection, so oops or outline were not updated. Bugfix #3137 In UV Faceselect, the button "Set vertex color" needed Mesh update flush.
Bugfixes for #3102, #3104 - Fix incorrect usage of PySequence_Fast_GET_ITEM() - make EXPP_setFloatRange() convert its argument to float instead of short
Posemode, ALT+R,G,S didn't work always, this because SHIFT+mouse selecting accidentally could unselect the object itself. It can be that older saved files still show this issue, then just select another object, and select the armature again. :)
Bugfix #3188 Enter Vpaint or Wpaint did not redraw headers of all 3d windows, so the mode menu indicator didn't update.
Drivers cannot drive channels of own Object, added error warning for it. I might allow this once, but it's a lot of new complexities then. It also means you cannot drive one Bone with another Bone in same Pose.
- bug fix, paste clipboard on windows didn't free buffer
Bugfix #3164 Very rare; a bugreport with a fix patch! Coolness, thanks Bill Currie! (Segfault due to using un-initialized displaylist in Boolean code)
Bugfix #3163 Materials; using "Stencil" option, didn't work properly for multiply, and other related filters. This is a very old issue, but now I found the good way to fix it! :)
- swapped MFace.flag and MFace.mode code; they were reversed (thanks, Cam) - fixed bug in MFace_getFlags(): was accessing wrong field
Two very easy crash fixes, one more proper pointer check, and a check for a division by zero. Sorry... but i can't stand such known issues to be in an official build. :)
- Bugfix #3127: gives Python ability to do "reload()" on Blender Text scripts (not really a bug, just adding a missing capability)
- Bugfix #3194: calling curve.appendNurb() with any number of float param other than 4 or 5 caused segfault (thanks for catching, Cam) - Bugfix #3202: ipo.addCurve() created curve but didn't add to the Ipo (thanks, lguillaume). I think we need much more testing of the Ipo module following Ton's refactoring.
Overflow was possible for vertex index numbers in deformgroups, causing the table with bones in deform code not to work. Added a check for amount of Bones. (Orange bug!)
Memory error 'end corrupt' reports for deform groups... can't find it yet, but this code ensures the strcpy() is using BLI_strncpy now, and it uses more clear names for the mallocs.
- Bugfix #3227: throw exception in NMesh if face data doesn't contain 3 or 4 vertices
fixing most of #3096 by 'eating' contol messages still there is an issue on how transparent/opaque floating panels should be for messages ... and i am wondering if that should move to 'regular' buttons Bugix #3200 DAG_object_flush_update() always used scene layers, causing updates to go wrong with 3d windows with "Lock" off (allowing local layer and camera).
Bugfix #3210 Included a patch by Pablo Marrol! selecting with ALT+CTRL combos didnt check if there was actually a Mesh in editmode.
Bugfix #3238 ALT+C on mesh without modifier crashed. Elubie Fix for correct handling of relative filenames. Now relative filenames that are not below the .blend file in the directory hierarchy can be used
Log: FIX: BLI_makestringcode called with bad pointer mainl->curlib Moved call to before blo_join_main where pointer gets killed. Otherwise Blender crashed when appending a file and selecting relative filenames.
-Bugfix #3207: ALT-C on a mesh with modifiers would cause memory corruption. We make a copy of the mesh and perform operations on the new object using mesh_create_derived_no_deform() for the new object instead of the original. Would be really nice if Daniel would look this over to see if it's really fixed, or if I've just moved the problem somewhere else. :-) I'm leaving the bug report open until the fixed is verified.
- Bugfix #3271: saveRenderedImage() was corrupting memory while trying to build the filename (thanks for good bug report, Pablo)
Copy scene did not copy the markers... causing in memory errors on quit. No real baddie, but still very good to fix!
Bugs
Log: Copy scene did not copy the markers... causing in memory errors on quit. No real baddie, but still very good to fix!
Log: Found a potential crash where NULL could be passed to vfont_get_data(), here's the fix. Maybe it fixes Andy's file :) Log: Fix: the 'draw name in camera view' now draws the view's active camera's name rather than the scene's, so it's not misleading when you have unlocked 3D views. (#3324)
Log: Fix for item #3316 : make sure that BLI_make_file_string converts all slashes in the filenames to the system preferred direction. Leaving unix slashes caused the error in the Python module blender.Get('filename')
Bugfix #3304 Actually nice feature too: when using Scene "Set" option, that scene draws its transparent and x-ray stuff independent of the 'foreground' scene. That means that x-ray in a set will be always over the set objects, but stays behind the current scene. For transparent it works the same though... meaning that solid objects from the foreground scene will always draw over transparent from the "Set". Note; this only is true for the 3d window, or the OpenGL render, not for actual rendering of course.
Bug #3298 Unified render does not return a zbuffer, but when gauss render was used in combination with motion-blur, a buffer was accidentally created, one pixel to small even! Log: Combined bugreport, bugfix and patch from Vidar Madsen. He noted that static particles don't work with force fields yet, and added a fix for it. This however didn't work for the depgraph yet, and didn't correct the static particle's local space to world coordinates for the fields. Nevertheless, while reviewing this small patch I thought it would be fun to add now. So: static particles now update realtime on forcefield relations. Warning for potential slowdowns! Also note that work on the real particle patch still has to be done... something I really will do, but in time. To get particles correctly integrated in the animation system, quite some new development has to be done still. Fix for #3316: do not convert slashes in the relname in BLI_make_file_string Also fixed signature to const char* to indicate which parameters can be changed to make it a bit safer, because constant strings are passed into this function and changing them caused a crash.
Fix #3256 DXF: when an error message occurs during read, the main call returned without clearing the used global vars... causing crash on calling again. ALso: added warning when trying to assign a taper or bevel using Object itself. (report from opengl tracker :)
Bugfix #3249 Error in BLI_array_randomize(), an unused call in Blender until the Build Modifier was added. It did a weird modulus I don't really grasp... somehow that caused the bug (create a corrupt mesh). But why? Dunno...
Log: * Fixed a little problem when using both F* keys and header buttons to change buttons tabs wouldn't switch quite right.
Bugfix #3370 Border select on a Meta strip in Sequencer didn't work. Seems to be a year zero bug :)
Log: This is the famous proverbal example of someone trying to get a 4 legged table stable... you keep correcting leg sizes until no table is left anymore! :) This commit restores the displacement direction from 2.37a code, which was negated 5 months ago to fix a change in renderconverter.c, but somehow is not needed anymore. The regression displacement file now renders OK again.
Fix #3382 Alt+D on a Camera or Lattice did not create a linked copy. This was an ancient convention from the dark ages (1995) still. :)
Log: * Fixed an old, old, old problem where the top camera arrows couldn't be seen in a side on view because they had no wireframe.
Log: A year-zero bug, and actually another issue with auto-handles for Ipo curves. On sharp 'peaking' curves the handle was calculated using both X and Y distance. This could result in overshooting. New code only evaluates the X distance, resulting in much more moderate sized handles.
Bugs
Bugfix #3346 Decimate modifier wasn't resistant to decimating below 3 vertices. It now detects so, and doesn't add a face or edges then.
Bugfix #2841 Ancient issue with Image bumpmap & orientation... this report was about UV textures, which flipped bump direction when UV coordinates rotate. So... time to dive deeper into it, and I found a very bad old construction in the way image textures handled bump normals. Instead of using the correct dx,dy vectors it was calculating the boundbox for it, and applied it as such (loosing negative direction for the dx or dy that way). Anyhoo! To make a long story short; the weird "correct Nor Map" option now can be removed... but requires careful testing! Here's renders from file I got from env, 239 means old and 240 is this cvs. http://www.blender.org/bf/dino239.jpg http://www.blender.org/bf/dino240.jpg http://www.blender.org/bf/dino239a.jpg http://www.blender.org/bf/dino240a.jpg Note the much finer detail, and the more consistant normals direction. No, go render testing dudes!
Bugfix #3463 Very ancient bug in boxfilter for image texture popped up with new code for correct bumpmapping. Caused texture type "Extend" not to work when using for bump. Log: -- Bugfix #3139: Blender.Library.Open() was changing current .blend filename. We now save and restore file before opening library.
Bugfix #3526 Division with zero caused wrong pixels to be rendered with Ortho camera.
Log: -- Bugfix #3564: Texture.getImage() always returned None for Env maps, even if an image was assigned.
Log: Fix: reading library files with option "Relative Paths" set, whilst library was read already AND relative, caused the path for libraries to corrupt...
Bugfix #3556 Unified render didn't treat the alpha for raytraced transparent correct... unified is based on layering with alpha, so it cannot support alpha in raytraced transparent correctly.
Bug #3562 Strips with a repeat fraction (like 3.51) should also "hold" on the fraction of .51 when indicated so. Patch provided by Roland Hess, but cleaned up (exisiting) mess a bit too.
Log: -- Bugfix #3566: Entering very large numbers for scaling/rotation/translation cause a write past end of string buffers in outputNumInput(). Patched to make large numbers (+-1.0e+10) display in scientific notation format. Log: With the introduction of fixed edge arrays in Mesh, the options to render wire frame became very limited... the information of faces (vertex colors and UV reside there) got lost. Solved it nicely with creating a large index table, and use bsearch() to get quickly the matching information. Then I noticed the render code needed fixes too for wire, no proper UV's were calculated over the wire edge.
Log: Bugfix #3552 Another ancient bug in unified render... the lamphalo wasn't filled in correctly over sky, especially when the background had halos (or stars). Only shows when using filters other than box though.
Bugfix #3579 Saving envmap, with a filter set (like gauss) and with a percentage set (like 50%), saved envmaps with empty pixels inbetween the sub images.
Log: Three fixes; - On file reading, a check is added to see if a Pose has channels to missing bones. Poses are supposed to match an Armature completely. (Thanks for crash file, Johnny!... but how did you do it!) - Own collection: added depsgraph update on setting all layers (with the ACCENTGRAVEKEY). This also could potentially crash with modifiers - Renamed Xkey menu in NLA to more properly tell what it does. :)
#3592 Normal rendering; adding gamma corrected halo could cause NaN's because of a negative sqrt(). #3598 Uninitialized 'alpha' flag in Image texture could cause render errors. Didn't show in OSX though... (stupid system here inits stack to zero). But, Ken Hughes found this, so all credits are for him!
Bugfix #3608 More bump issues... Env made very nice examples, but all of it quite nasty to solve. Three improvements I found nevertheless: - bug in mipmap code for bump gave errors in one derivate, causing aliasing - when Image texture option "Clip" was used, the imagetexture function returned wrong value, causing the caller to create own normal based on color (zero!). - Mipmapped bump now also interpolates the samples (never did this...)
OS X Nvidia work around
Nvidia workarounds - partially working workaround for nvidia bug on Os X 10.4.3 - brought back the raster ops hack for GT6800 with proper driver version check so that text works both on Os X 10.4.3 and older systems. this last patch was given by Kent Miller from Apple
Log: I hesitate to call it a bugfix... but it's a removal of a very ancient (2001) hack that enforced opening renderwindows smaller than screen size. The notes I could find referred to testing old 3d cards, which failed to give graphics memory for large windows. Another note was an issue on OSX, where the topbar and windowbar gets hidden otherwise. That latter case I corrected now. Will organize good testing for this, if there's issues, will uncommit :)
<section end=2.40-Source code-Bug Fixes />