Commit Graph

510 Commits

Author SHA1 Message Date
Sean Barrett
d26beed67d comments/ version update for platformID = Unicode 2014-08-07 04:41:02 -07:00
Sean Barrett
0adfac0abe Merge branch 'master' of https://github.com/HouQiming/stb into working 2014-08-07 04:35:51 -07:00
Sean Barrett
85c39da625 Merge branch 'rc/const' of https://github.com/ronnychevalier/stb into working 2014-08-07 04:25:12 -07:00
Ronny Chevalier
2119c17ae9 stb_vorbis: fix unused variables
Conflicts:
	stb_vorbis.c
2014-08-07 04:23:33 -07:00
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
2014-08-07 04:20:58 -07:00
Ronny Chevalier
758c165d2c stb_vorbis: fix unused functions 2014-08-07 03:26:27 -07:00
Ronny Chevalier
b8b6e7c31a stb_image: fix unused parameter 2014-08-07 03:26:20 -07:00
Ronny Chevalier
422e29017c stb_vorbis: fix signed/unsigned comparison 2014-08-07 03:26:14 -07:00
Ronny Chevalier
893ef013b2 stb_image: fix undefined preprocessor definition 2014-08-07 03:26:08 -07:00
Ronny Chevalier
c28e92e856 stb_vorbis: use const char* when appropriate 2014-08-03 23:43:54 +02:00
Jorge Rodriguez
e05ebdbf1e My guess is people who care about premultiply also care about color space. 2014-07-31 19:37:42 -07:00
Jorge Rodriguez
d75488b0e8 Do the multiply inline, it should be a tad faster and not corrupt our data. 2014-07-31 19:00:48 -07:00
Jorge Rodriguez
13acfca829 I had the whole premultiply thing backwards. 2014-07-31 18:46:00 -07:00
Jorge Rodriguez
21c7c8f5d9 Another stab at the api, offering classes of functions for different common tasks. 2014-07-31 18:04:57 -07:00
Jorge Rodriguez
8063ea0952 Specify a channel as having premultiplied alpha and use it to un-premultiply all other channels before resampling. 2014-07-31 17:20:00 -07:00
Jorge Rodriguez
a32fa8b4df This to-do item done. 2014-07-31 16:36:09 -07:00
Jorge Rodriguez
daf325dc03 Sub pixel source area test cases. No problems. 2014-07-31 16:31:45 -07:00
Jorge Rodriguez
aae1c7ca41 ZOOM AND ENHANCE! 2014-07-31 15:16:36 -07:00
Jorge Rodriguez
1b2d104e00 Some error conditions. 2014-07-31 00:52:03 -07:00
Jorge Rodriguez
35cb95b803 Allow for specifying a sub-region of the source image to use. Downsampling only, currently. 2014-07-31 00:39:33 -07:00
Jorge Rodriguez
52ac93225a C<99 ports 2014-07-30 17:33:47 -07:00
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. 2014-07-30 17:30:25 -07:00
Jorge Rodriguez
c5de2f3298 Test channels. 2014-07-30 09:42:12 -07:00
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. 2014-07-30 09:27:42 -07:00
Jorge Rodriguez
c2449acc3e Tests for edge behavior 2014-07-30 09:14:38 -07:00
Jorge Rodriguez
59cb71ea18 Fix float conversion. 2014-07-30 08:47:55 -07:00
Jorge Rodriguez
6625259959 Try to keep integer precision by briefly casting to double while decoding and encoding. 2014-07-30 01:18:23 -07:00
Jorge Rodriguez
11897fbf96 More fixing shorts. 2014-07-30 00:34:25 -07:00
Jorge Rodriguez
1fcbe0daaf Fix shorts. Add test cases for shorts. 2014-07-30 00:16:13 -07:00
Jorge Rodriguez
7ead9a748d Fix. Ring buffers are a height value. 2014-07-29 23:09:41 -07:00
Jorge Rodriguez
043fa28c11 Same deal with height. 2014-07-29 23:02:56 -07:00
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. 2014-07-29 22:50:06 -07:00
Jorge Rodriguez
68f93b72d5 Update documentation and add helper functions. 2014-07-29 20:18:28 -07:00
Jorge Rodriguez
5b40906271 My perf testing code. 2014-07-29 17:44:45 -07:00
Jorge Rodriguez
d96c97298c This is still faster than the function pointer solution, and neater. 2014-07-29 16:22:22 -07:00
Jorge Rodriguez
3a3e06029e This is definitely faster than the function pointer solution. 2014-07-29 12:11:03 -07:00
Jorge Rodriguez
9bd5abb52d Both versions run within the margin of error on my machine so we'll go with the simpler one. 2014-07-29 11:44:32 -07:00
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. 2014-07-29 11:39:42 -07:00
Jorge Rodriguez
05f775e977 Merge branch 'master' of https://github.com/BSVino/stb 2014-07-29 00:33:54 -07:00
Jorge Rodriguez
1fcf30ada0 Fix a math error. 2014-07-29 00:33:29 -07:00
Jorge Rodriguez
e2ac4f6505 More resample ideas 2014-07-27 12:05:17 -07:00
Jorge Rodriguez
ef3a460ec4 Some better looking horners save another multiplication. 2014-07-27 00:55:47 -07:00
Jorge Rodriguez
7d47582578 Support for 16 and 32 bit integer images, and float images. 2014-07-27 00:09:22 -07:00
Jorge Rodriguez
6c8cac0a66 Support for sRGB color space. 2014-07-26 23:44:45 -07:00
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. 2014-07-26 22:49:56 -07:00
Jorge Rodriguez
af1ed58f51 Add wrap, fix reflect so it doesn't wrap. 2014-07-26 19:30:13 -07:00
Jorge Rodriguez
8723567439 Add edge reflect mode. 2014-07-26 19:11:02 -07:00
Jorge Rodriguez
6cd81d4dd5 Put the polynomials in horner form to save a multiplication. 2014-07-26 15:36:15 -07:00
Jorge Rodriguez
fb2f8df5cc Add mitchell filter. 2014-07-26 15:06:31 -07:00
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. 2014-07-26 14:52:28 -07:00