Set up work for making a 3.5 prerelease. Set version stuff to 3.5.0-rc1. Copy the CHANGELOG from 3.4-working. Rename the obt-4.0 and obrender-4.0 pkgconfig stuff to obt-3.5 and obrender-3.5 Rename the "render" directory to "obrender" so that the public headers can be installed in <obrender/*>
Fix memory corruption when y2sz is 0. data is incremented one too many times when y2sz is zero, leading to memory corruption. [ also changed % 2 to & 1 -- Mikael ]
give the compiler hints about what can be kept in registers so that it can optimize the gradient code better with all the pointers going on
Remove double newlines.
speed up the pyramid gradient using memcpy's. also make it not crash for 1px high textures. here are some sample profiling results. pyramid2 is the new code % cumulative self self total time seconds seconds calls ms/call ms/call name 58.78 1.54 1.54 255 6.04 6.04 gradient_pyramid1 40.46 2.60 1.06 255 4.16 4.16 gradient_pyramid2 54.88 2.25 2.25 504 4.46 4.46 gradient_pyramid1 44.88 4.09 1.84 504 3.65 3.65 gradient_pyramid2
a small optimization for the vertical gradients, and use the same log(n) strategy to use less memcpy's for filling out the horizontal gradients
use memcpy's to speed up vertical gradients too. split the fancy memcpy() code out into the repeat_pixel function.
use memcpy's to make splitvertical gradient much faster - using log n memcpy's is much quicker than setting a pointer value n times Here are some profiling results. splitvertical1 is the original code, splitvertical2 is some slight improvements in locality for it, and splitvertical3 is the new O(log n) memcpy code % cumulative self self total time seconds seconds calls ms/call ms/call name 49.44 0.88 0.88 1063 0.83 0.83 gradient_splitvertical1 47.19 1.72 0.84 1063 0.79 0.79 gradient_splitvertical2 2.81 1.77 0.05 1063 0.05 0.05 gradient_splitvertical3 i also tested this with 'time' to draw 1000 gradients, and the new code used approximately half the user time, and finished 10 seconds quicker. so yeah, it's magical and works well.
make horizontal gradients faster by not jumping around in memory as much
remove trailing whitespace
80 cols everywhere
no more crash in splitvertical. i think i changed the size of the middle gradient too. it's always 1px now unless the texture is very small, then it can be 0. if theres a discrepency, the bottom color gets the extra pixel.
don't alloc/free colors every time splitvertical is drawn
make bevel strengths theme-selectable
wrongly indented line
fix when 1or2px splitvertical
no crashing in splitvertical
middle gradient in splitvertical
fix parentrel bevels
combine the parent and child textures in fun ways when a parentrelative texture with a bevel is placed right overtop of another texture with a bevel