Sean Barrett
260741ed33
vorbis warnings from ronny chevalier
...
I manually made these changes because they
disabled some substantial amounts of code,
and I wanted to make sure this wasn't due to
original code having bugs or deviating from
the specification
ago%!(EXTRA string=11 years)
Ronny Chevalier
758c165d2c
stb_vorbis: fix unused functions
ago%!(EXTRA string=11 years)
Ronny Chevalier
b8b6e7c31a
stb_image: fix unused parameter
ago%!(EXTRA string=11 years)
Ronny Chevalier
422e29017c
stb_vorbis: fix signed/unsigned comparison
ago%!(EXTRA string=11 years)
Ronny Chevalier
893ef013b2
stb_image: fix undefined preprocessor definition
ago%!(EXTRA string=11 years)
Ronny Chevalier
c28e92e856
stb_vorbis: use const char* when appropriate
ago%!(EXTRA string=11 years)
Jorge Rodriguez
e05ebdbf1e
My guess is people who care about premultiply also care about color space.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
d75488b0e8
Do the multiply inline, it should be a tad faster and not corrupt our data.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
13acfca829
I had the whole premultiply thing backwards.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
21c7c8f5d9
Another stab at the api, offering classes of functions for different common tasks.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
8063ea0952
Specify a channel as having premultiplied alpha and use it to un-premultiply all other channels before resampling.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
a32fa8b4df
This to-do item done.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
daf325dc03
Sub pixel source area test cases. No problems.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
aae1c7ca41
ZOOM AND ENHANCE!
ago%!(EXTRA string=11 years)
Jorge Rodriguez
1b2d104e00
Some error conditions.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
35cb95b803
Allow for specifying a sub-region of the source image to use. Downsampling only, currently.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
52ac93225a
C<99 ports
ago%!(EXTRA string=11 years)
Jorge Rodriguez
fdc979e48b
Some minor ports for Linux. No idea how it worked at all in Windows with STB_RESIZE_IMPLEMENTATION instead of STB_RESAMPLE_IMPLEMENTATION.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
c5de2f3298
Test channels.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
985ac75251
When doing a perfect po2 nearest neighbor downsample don't allow -0.5 and 0.5 to both contribute to a texel or you'll get a double tap.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
c2449acc3e
Tests for edge behavior
ago%!(EXTRA string=11 years)
Jorge Rodriguez
59cb71ea18
Fix float conversion.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
6625259959
Try to keep integer precision by briefly casting to double while decoding and encoding.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
11897fbf96
More fixing shorts.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
1fcbe0daaf
Fix shorts. Add test cases for shorts.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
7ead9a748d
Fix. Ring buffers are a height value.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
043fa28c11
Same deal with height.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
ebe0473d8b
Add a test suite to do a bunch of different resizes to find problems. One problem found was an incorrect calculation of texel support how many margin texels needed when downsampling. When downsampling we need to spread out the support of each contributing texel, so to compensate you need more margin texels.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
68f93b72d5
Update documentation and add helper functions.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
5b40906271
My perf testing code.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
d96c97298c
This is still faster than the function pointer solution, and neater.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
3a3e06029e
This is definitely faster than the function pointer solution.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
9bd5abb52d
Both versions run within the margin of error on my machine so we'll go with the simpler one.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
5dff80ed31
Trying some different strategies for optimizing the decoder. The code in #ifdef 1 is slightly faster by my measurements, but a whole lot uglier.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
05f775e977
Merge branch 'master' of https://github.com/BSVino/stb
ago%!(EXTRA string=11 years)
Jorge Rodriguez
1fcf30ada0
Fix a math error.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
e2ac4f6505
More resample ideas
ago%!(EXTRA string=11 years)
Jorge Rodriguez
ef3a460ec4
Some better looking horners save another multiplication.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
7d47582578
Support for 16 and 32 bit integer images, and float images.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
6c8cac0a66
Support for sRGB color space.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
41dc4c476c
In some situations with certain filter kernels with negative values it's possible to generate valid results > 1.0, so saturate it before we write it to make sure it doesn't overflow. Also fix incorrect filter radius while downsampling.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
af1ed58f51
Add wrap, fix reflect so it doesn't wrap.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
8723567439
Add edge reflect mode.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
6cd81d4dd5
Put the polynomials in horner form to save a multiplication.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
fb2f8df5cc
Add mitchell filter.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
69af963c42
Add catmull rom filter. Also, move the debug asserts for values <= 1 to the very end of the process. This will make these bugs a lot harder to find, but because some filter kernels have negative values it's possible for the buffers to have values > 1 up until the point where it's converted back to an int.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
12acf87eec
When downsampling start the buffer loop at -filter_texel_margin to make sure that all contributors get their taps in at the ring buffer.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
155c71fb90
Reorder these loops because I think we get a cache win if we write the entire ring buffer entry at once.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
01fb58d6b4
Add a bicubic filter.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
a95da9ee1d
Unroll the multiply-add loops. At the cost of a function pointer dereference we get a whole lot of conditionals eliminated. Should be a solid win once the debug asserts are gone.
ago%!(EXTRA string=11 years)