Sean Barrett
17e82a4080
Merge branch 'master' into working
2014-09-18 07:10:18 -07:00
Fabian Giesen
f36b7116e2
Fix a few bugs with subpixel shifts, shift_y in particular.
...
1. In the presence of nonzero shift_x / shift_y,
stbtt_GetGlyphBitmapBoxSubpixel would return a nonzero-sized bounding
box for empty glyphs (e.g. spaces). Since such glyphs don't have any
outlines, the rasterizer wouldn't do anything, resulting in a 1x1-pixel
image with uninitialized memory.
2. GetGlyphBitmapBoxSubpixel added shift_y then flipped the y axis,
whereas the rasterizer flipped the y axis then added shift_y.
Consistently flip-then-add in both places. This also makes the pattern
of floors/ceils in GetGlyphBitmapBoxSubpixel simpler.
3. The rasterizer added shift_y after multiplying by the vertical
oversampling factor, instead of before.
Vertical shifts now work much better, in my tests anyway.
2014-09-17 22:54:16 -07:00
Sean Barrett
dea604b896
add stb_image_resize
2014-09-17 07:11:56 -07:00
Sean Barrett
37faf29f69
Merge branch 'resample'
2014-09-17 07:10:40 -07:00
Sean Barrett
7c0ae19a42
documentation, release data
2014-09-17 07:10:21 -07:00
Sean Barrett
0fc13e997b
optimization attempts, no meaningful changes
2014-09-17 06:24:40 -07:00
Sean Barrett
8024673461
switch srgb convert to second ryg method, which is a bit faster (8% total speedup on upsampling test);
...
remove extra table in slowpath
2014-09-17 06:07:16 -07:00
Jorge Rodriguez
a12d3dedf0
Some todo notes.
2014-09-16 10:50:41 -07:00
Jorge Rodriguez
cbf5ebbd35
Install ryg's float -> uint8 sRGB conversion code, which is much faster.
2014-09-16 10:36:19 -07:00
Jorge Rodriguez
600d80387e
Make a guess at the value before doing the binary search, cuts the number of conditionals by half. Not as much gain as I hoped but something.
2014-09-15 14:01:11 -07:00
Jorge Rodriguez
7602c99e77
Quick formatting fix.
2014-09-15 11:29:40 -07:00
Sean Barrett
dd28033b34
don't encode alpha channel twice when alpha is different colorspace from other channels
2014-09-15 07:23:22 -07:00
Sean Barrett
bdbf1e0ef4
uint32 images need to round with uint32 cast, not int cast
2014-09-14 15:01:10 -07:00
Sean Barrett
9f66b441bd
new quickstart docs;
...
reformat docs;
new simple uint32 test
2014-09-14 14:55:23 -07:00
Jorge Rodriguez
3c261481a6
Add a very quick guide.
2014-09-13 14:33:13 -07:00
Jorge Rodriguez
f0ba7f5f7e
Get rid of old perf tests.
2014-09-13 13:42:50 -07:00
Jorge Rodriguez
a0d4f79074
Merge pull request #7 from nothings/resample
...
Resample
2014-09-13 12:31:18 -07:00
Sean Barrett
385d7a417c
delete some unused functions;
...
get rid of stbir__inline for some functions that don't need it
2014-09-13 08:50:10 -07:00
Sean Barrett
f711fdcb0f
disable performance test in test code, back to regression test path
2014-09-13 08:22:15 -07:00
Sean Barrett
8849501a3f
add documentation explaining why even a 64K table for srgb_to_uint8 would be inaccurate
2014-09-13 08:21:14 -07:00
Sean Barrett
9a6af9a8d3
replace int(floor()) with int(), since that produces same results for non-negative values and is much faster on 32-bit x86
2014-09-13 08:12:37 -07:00
Sean Barrett
1dcca19ae0
because of we divide by /255 not /256, we lose numerical precision, so can't guarantee that box filter results round to same results as naive
2014-09-13 08:06:39 -07:00
Sean Barrett
adbbe8dabd
move x loop inside switch in horizontal_downsample
2014-09-13 07:46:09 -07:00
Sean Barrett
7a8c9196d1
unroll vertical_upsample inner loop, and reverse loop nesting to minimize work
2014-09-13 07:41:39 -07:00
Sean Barrett
9c2ae9bdb8
cache filter-width derived computations that use floor/ceil because those were showing up like crazy on VC6 profile despite only being per-scanline-ish?!?
...
unroll inner loop in horizontal_resample
2014-09-13 07:29:04 -07:00
Sean Barrett
972456cb63
explicit performance tests variants
2014-09-13 06:53:53 -07:00
Sean Barrett
c9600c012f
unroll channel loops in downsampler
2014-09-13 06:23:07 -07:00
Sean Barrett
3ee97c221f
compile as C
2014-09-13 06:12:40 -07:00
Sean Barrett
59898db411
tweak grammar
2014-09-13 06:05:00 -07:00
Sean Barrett
a2f1cadde8
convert tabs to spaces so it's consistent with other stb libs
2014-09-13 06:03:48 -07:00
Sean Barrett
60064f9803
add stb_image_resize.h to readme
2014-09-13 05:56:06 -07:00
Sean Barrett
0fa5b5c66f
rename cubic to cubicbspline;
...
tweak filter type documentation
2014-09-13 05:52:19 -07:00
Ken Miller
316beb987d
Merge branch 'master' of https://github.com/kennethdmiller3/stb
2014-09-13 00:38:04 -05:00
Sean Barrett
29b36b3dea
rename filters, document them
2014-09-12 05:28:24 -07:00
Sean Barrett
da2aa8f6b7
checkboard test to verify srgb
2014-09-12 05:04:38 -07:00
Sean Barrett
a9778b8dbd
tweak docs; fix compile error in UNUSED_PARAM stuff
2014-09-12 04:46:41 -07:00
Sean Barrett
99f3b78bbd
Merge branch 'resample' of http://github.com/bsvino/stb into resample
2014-09-12 03:54:17 -07:00
Sean Barrett
df128b7995
update STBIR__UNUSED_PARAM to match stb_image.h version
2014-09-12 03:53:36 -07:00
Jorge Rodriguez
ca88b6fba6
Calculate and store vertical contributors first so that they can be normalized and optimized.
2014-09-11 12:45:18 -07:00
Jorge Rodriguez
a25c1d2bbd
Merge remote-tracking branch 'remotes/nothings/resample' into resample
2014-09-11 10:00:57 -07:00
Jorge Rodriguez
36b417f6b4
Optimizations: Skip zero-coefficient contributions. Reduce the size of the coefficients array when downsampling.
2014-09-11 09:53:14 -07:00
Sean Barrett
27f26f8337
Documentation;
...
rename STBIR_FLAG_PREMULTIPLED_ALPHA to STBIR_FLAG_ALPHA_PREMULTIPLIED so that both flags have "ALPHA" first
2014-09-11 03:02:20 -07:00
Sean Barrett
7a4f1f4665
update with new tests for srgb conversion
2014-09-11 02:10:37 -07:00
Sean Barrett
16d68d14f8
fix stbir__linear_to_srgb_uchar:
...
1. table stored threshhold of transition from i to i+1, but wants to be i-1 to i
2. table was computed by dividing uchar by 256.0 instead of 255.0, causing it to be 100% wrong
2014-09-11 02:05:53 -07:00
Sean Barrett
30c7a981ec
compile as C;
...
fix some unsigned/signed comparisons;
avoid round() since it's not in pre-C99 C;
remove MAX_CHANNELS since I never ended up needing it;
rename STBIR_EPSILON to STBIR_ALPHA_EPSILON;
don't use STBIR_ALPHA_EPSILON on float input (can't remove it properly due to numeric precision, and they can do it themselves);
optimize subtraction of STBIR_ALPHA_EPSILON;
sorry i forgot to commit these separately!;
2014-09-11 01:47:50 -07:00
Sean Barrett
1208730e1e
Merge branch 'resample' of http://github.com/bsvino/stb into resample
2014-09-11 01:15:09 -07:00
Jorge Rodriguez
793818d1af
Skip zero-coefficient contributors, a fairly decent speedup.
2014-09-10 20:26:14 -07:00
Jorge Rodriguez
46dc8f84fb
Use vertical pixel width for the ring buffer.
2014-09-10 20:12:38 -07:00
Jorge Rodriguez
953a637841
Use a carefully shaped trapezoid instead of a box filter to avoid jumps between pixel values.
2014-09-10 19:08:11 -07:00
Sean Barrett
671f04bd7e
debugging truetype crash
2014-09-10 15:35:06 -07:00