Commit Graph

279 Commits

Author SHA1 Message Date
Sean Barrett
ba49d37e6a premultiplied alpha support 2015-03-17 02:10:58 -07:00
Sean Barrett
f49c90c03d beginnings of mode support;
reconstruct full table of bit allocations per mode
2015-03-15 11:17:14 -07:00
Sean Barrett
c588d29e95 switch shader variation from runtime-with-tags to dynamic with #ifdefs;
support making all definitions static so you can have multiple copies of file (with different #ifdefs);
move all tables to end of file (this will have to be undone later because IIRC it's not compatible with C++ or with some compilers or something, but it'll make my life easier in the interim);
2015-03-15 10:18:13 -07:00
Sean Barrett
00810b7d11 correct normals for vheight floors 2015-03-14 15:02:51 -07:00
Sean Barrett
c10b3fefae correct normals for upwards slope (and dummy lighting to test it) 2015-03-13 19:00:34 -07:00
Sean Barrett
177498673e update readme with wood type status 2015-03-13 12:39:30 -07:00
Sean Barrett
6509e1d1e7 minecraft wood types (only for solid blocks) 2015-03-13 12:45:49 -07:00
Sean Barrett
f02b0d700f if vertex buffer is full, mesh builder stops gracefully and remembers where to continue 2015-03-13 12:00:00 -07:00
Sean Barrett
efcd76c9ab support texture rotation; better interaction of mouse centering & VC6 debugger; fix in-place conversion when mca blocks are written in different order 2015-03-12 19:03:49 -07:00
Sean Barrett
3d4f545fd7 remove unused gl_fragColor support 2015-03-12 11:38:10 -07:00
Sean Barrett
673cbb1ee4 remove unused code from cave_main 2015-03-12 00:07:50 -07:00
Sean Barrett
0cd5465f52 re-add README.md that was in a different branch 2015-03-12 00:00:10 -07:00
Sean Barrett
c27a6c6c36 restore old q&a 2015-03-11 23:54:45 -07:00
Sean Barrett
14b203571a forgot to check in .dsp file after the renames 2015-02-22 18:27:17 -08:00
Sean Barrett
f9c24c20fc various cleanup; vheight works (only one path tested) 2015-02-22 17:42:46 -08:00
Sean Barrett
1d18b23ea1 replace main.c & game.c with cave_main.c 2015-02-22 15:52:03 -08:00
Sean Barrett
7add4d09b9 delete game.h 2015-02-22 15:42:24 -08:00
Sean Barrett
0e2583041d minor cleanup 2015-02-22 15:25:54 -08:00
Sean Barrett
5a0dcc90d6 initialize cache mutexes in right file 2015-02-22 15:09:22 -08:00
Sean Barrett
cd17050ca4 split render.c into cave_mesher.c and cave_render.c 2015-02-22 15:03:04 -08:00
Sean Barrett
2770c92148 initial stb_voxel_render version with working minecraft viewer 2015-02-22 14:34:05 -08:00
Sean Barrett
0d840ab330 quick & dirty leak checker 2015-01-21 07:46:54 -08:00
Sean Barrett
22fa9a467a rewrite HDR rle logic 2015-01-18 10:43:42 -08:00
Sean Barrett
5b53d20c68 Put progressive JPEG AC decode logic back the way I wrote it originally (I changed it to match jpgd when I was trying to figure out why it didn't work);
add STBI__ prefixes to internal SCAN_ enum;
strip unused function arguments for progressive funcs;
tweak release notes;
forget to git commit frequently so these would all be in their own commits;
2014-12-23 05:11:36 -08:00
Sean Barrett
16d9ed7211 return truetype test code to old path 2014-12-21 08:32:09 -08:00
Sean Barrett
53008c0922 default tests 2014-12-21 08:25:13 -08:00
Sean Barrett
33e24eafa0 in progress progressive stuff 2014-12-21 07:53:05 -08:00
Sean Barrett
ba5e333faf STBI_MALLOC etc.
some documentation cleanup
2014-12-20 05:46:13 -08:00
Sean Barrett
bd6b78f268 finalize scalar YCbCr conversion back-ported from SSE version;
add missing STBIDEFs to a few functions;
update documentation with full 1.49 info even though most isn't implemented yet
2014-12-20 05:13:25 -08:00
Sean Barrett
f259bf27e9 VC6:
support using inline asm for cpuid

YCbCr:
  switch SSE code to constants that match old C;
  create C version that is same as SSE;
  tiny optimization(?) of SSE
2014-12-19 04:39:04 -08:00
Sean Barrett
f547761c15 Fix assert() that should be STBI_ASSERT() 2014-12-14 18:14:14 -08:00
Sean Barrett
f9e593c25c Merge branch 'optimize' of https://github.com/rygorous/stb into working
Conflicts:
	stb_image.h

Also disable VC6 automatic precompiled headers which were enabled in some projects.
2014-12-14 01:57:22 -08:00
Sean Barrett
8ac015c03f fix 1/2/4-bit png to filter bytes before decoding to pixels;
rename pngsuite/part1 to pngsuite/primary;
check in pngsuite
2014-12-14 01:43:23 -08:00
Sean Barrett
01d2c9d957 test program now verifies pngsuite tests against refererence versions 2014-12-14 00:01:50 -08:00
Sean Barrett
8679ce08b7 fix incorrect img_n variable for interlaced files, caused files to be totally incorrect if forcing channel count 2014-12-13 23:35:55 -08:00
Sean Barrett
26439254e8 fix use of stbrp_coord if no stb_rect_pack;
fix a few assert()s that weren't STBTT_asserts();
fix missing cast for C++
fix typo in C++ test compilation that prevented it from trying to compile stb_truetype
2014-12-10 00:27:11 -08:00
nothings
8ac41a413d fix typo 2014-12-08 11:42:47 -08:00
nothings
3a5caacaae Update README.md 2014-12-06 23:50:34 -08:00
nothings
49d5456de9 Update README.md 2014-12-06 23:49:29 -08:00
nothings
916800aae5 Update README.md 2014-12-06 23:48:10 -08:00
nothings
cd5b5a5684 Update README.md 2014-12-06 23:46:40 -08:00
nothings
b62bc08c34 Update README.md 2014-12-06 23:31:12 -08:00
nothings
ae5bc8dfe9 Update README.md 2014-12-06 23:30:46 -08:00
nothings
9b1e1c50c0 Update README.md 2014-12-06 23:28:28 -08:00
nothings
7d0cec62c8 Update README.md 2014-12-06 23:28:04 -08:00
nothings
4b87ba76fe Update README.md 2014-12-06 23:22:14 -08:00
nothings
539dc3996b Update README.md 2014-12-06 23:21:11 -08:00
nothings
19b24bba1a Update README.md 2014-12-06 23:19:25 -08:00
nothings
c6e1ec0cec Create README.md 2014-12-06 23:17:44 -08:00
Sean Barrett
22dbcffef7 stbtt_Pack* documentation
oversample test tweaks
2014-12-06 23:00:59 -08:00
Sean Barrett
f03e352093 stb_rect_pack: fix LARGE_RECT bug
stb_truetype: oversampling, including oversampling demo app
2014-12-06 12:28:46 -08:00
Sean Barrett
b6f8358f47 various fixes for compilation test 2014-12-02 03:00:08 -08:00
Sean Barrett
d97c160e4a tilemap editor 0.30 2014-10-19 21:18:07 -07:00
Sean Barrett
17647014b3 fix c++ compilation 2014-09-23 17:56:03 -07:00
Sean Barrett
17e82a4080 Merge branch 'master' into working 2014-09-18 07:10:18 -07:00
Sean Barrett
37faf29f69 Merge branch 'resample' 2014-09-17 07:10:40 -07:00
Sean Barrett
0fc13e997b optimization attempts, no meaningful changes 2014-09-17 06:24:40 -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
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
9f66b441bd new quickstart docs;
reformat docs;
new simple uint32 test
2014-09-14 14:55:23 -07:00
Jorge Rodriguez
f0ba7f5f7e Get rid of old perf tests. 2014-09-13 13:42:50 -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
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
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
0fa5b5c66f rename cubic to cubicbspline;
tweak filter type documentation
2014-09-13 05:52:19 -07: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
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
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
Sean Barrett
4e580cf9ed fix compile 2014-09-10 15:11:35 -07:00
Jorge Rodriguez
c9d67446d2 Reverse allocation routines parameter order so that the context is at the back. 2014-09-09 22:57:15 -07:00
Jorge Rodriguez
41e6aad693 Avoid repeated adds and ensure correct round-trip result. 2014-09-09 21:57:46 -07:00
Jorge Rodriguez
969ff7c850 Make sure calculate_memory matches with the allocations. Fix some errant asserts. 2014-09-09 20:51:29 -07:00
Jorge Rodriguez
4b69c0637e If alpha is zero then sneakily replace it with a very small nonzero so that the color data is preserved.
Pre-process n1 so that we don't have to do it later on. Can't do n0 since it's used to find the coefficient index.
2014-09-09 18:38:05 -07:00
Jorge Rodriguez
084baed15c Replace premul test with better premul test that doesn't require visual inspection. 2014-09-09 16:30:06 -07:00
Jorge Rodriguez
497eab8339 Normalize downsample coefficients. 2014-09-09 15:22:29 -07:00
Jorge Rodriguez
43fbc1d5e3 Rearrange the algebra on two of the filters to avoid repeating decimals which cause precision loss. Use int32 to test filters because it's more accurate. 2014-09-09 14:10:14 -07:00
Jorge Rodriguez
ca241daefa Use rounding to try to preserve the original value. Fix test case. 2014-09-09 12:16:23 -07:00
Jorge Rodriguez
118f28557e Tests to ensure images of a solid color stay the same solid color after resampling. 2014-09-07 16:47:02 -07:00
Jorge Rodriguez
e6c47ec657 Fix kernel lookup for downsampling. 2014-09-07 12:57:53 -07:00
Jorge Rodriguez
8cc6a3abfc If there's no context we're using the simple API functions - fall back to malloc and free. 2014-09-07 10:02:51 -07:00
Sean Barrett
36db03f390 tighten bounds on filter normalization test 2014-09-07 05:31:40 -07:00
Sean Barrett
7f8ac35e42 check whether filter kernels are normalized 2014-09-07 05:29:43 -07:00
Sean Barrett
7da729bfce restore correct definition of box 2014-09-07 04:07:07 -07:00
Sean Barrett
08ca345839 Merge branch 'resample2' into resample 2014-09-07 03:36:16 -07:00
Sean Barrett
cd1fbacbb6 rename NEAREST to BOX
write test for BOX
2014-09-07 03:19:18 -07:00
Jorge Rodriguez
586e84087c Correctly specify alpha channels. 2014-09-06 21:50:28 -07:00
Jorge Rodriguez
38ce5494bc Clarify some comments. Make stbir__resize_arbitrary an internal function. Update test cases to use actual API functions. 2014-09-06 20:17:19 -07:00
Sean Barrett
41555b5d53 update test cases to work on things other than barbara.png 2014-09-06 14:58:32 -07:00
Jorge Rodriguez
fb059fcece Progress report. 2014-09-06 10:57:21 -07:00
Jorge Rodriguez
75bdd2da83 Fix malloc context and whitespace. 2014-09-06 08:48:46 -07:00
Sean Barrett
aee30095c7 refactor internal interfaces to avoid passing things multiple times;
finish prepping 'stbir__info' even before calculate_memory;
get rid of 'noinfo' functions since now calculate_memory doesn't need 'em;
add new binary-searched sRGB function (untested)
2014-09-01 16:52:04 -07:00
Sean Barrett
732fec68ee tweak new API, get it partly working 2014-08-31 08:55:41 -07:00
Sean Barrett
664d8961f5 new API partially in-use 2014-08-31 08:34:05 -07:00
Sean Barrett
2549d8156e in-progress refactoring 2014-08-31 07:23:34 -07:00
Sean Barrett
5dfa79fb31 stride doesn't have to be multiples of pixels 2014-08-18 10:18:59 -07:00
Sean Barrett
6ef563d089 rename to stb_image_resize.h 2014-08-18 09:12:59 -07:00
Sean Barrett
eb0781fda0 add comments describing the purpose of the s,t-rectangle tests 2014-08-18 09:01:33 -07:00
Sean Barrett
9ba3dc1fc5 make resample tests work in VC6 2014-08-18 08:56:44 -07:00
Sean Barrett
14e8b66119 fix broken map generation 2014-08-17 21:08:43 -07:00
Jorge Rodriguez
1353909477 Allow user to force the alpha channel to be handled as a linear value even if the color channels are sRGB. 2014-08-12 13:37:06 -07:00
Jorge Rodriguez
bbc340d481 Support different edge behavior on vertical and horizontal axis. 2014-08-12 12:22:38 -07:00
Jorge Rodriguez
6ae729d61a Four new tests of subpixel stuff. 2014-08-12 12:15:12 -07:00
Jorge Rodriguez
45fa6ec900 Update test cases for premul channel -1 meaning don't do any premul handling, fix another no-more-advanced. 2014-08-11 12:38:27 -07:00
Jorge Rodriguez
e75ed1d381 Update test cases for no more advanced API. 2014-08-11 12:21:55 -07:00
Sean Barrett
a0537bfd04 Allow compiling as C pre-C99 (don't rely on declare-anywhere) 2014-08-11 01:56:47 -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
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
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
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
6c8cac0a66 Support for sRGB color space. 2014-07-26 23:44:45 -07:00
Jorge Rodriguez
01fb58d6b4 Add a bicubic filter. 2014-07-26 13:07:04 -07:00
Jorge Rodriguez
7abd4ccf34 Support for filters with larger support. Initial support for edge behavior. 2014-07-26 11:51:02 -07:00
Jorge Rodriguez
297266b27b Starting to implement downsampling. 2014-07-24 19:10:45 -07:00
Jorge Rodriguez
55c5f0b3a0 Beginning of a more sophisticated resample algorithm, starting with calculating filter contributions per scan line. 2014-07-23 22:17:56 -07:00
Jorge Rodriguez
0155bd3ab6 We are going to support SRGB. 2014-07-21 19:51:11 -07:00
Jorge Rodriguez
ba861fa493 Allow specifying a stride. 2014-07-21 18:01:05 -07:00
Jorge Rodriguez
06b7b00696 It does nothing now but I want to support edge behavior in the future. 2014-07-21 16:14:32 -07:00
Jorge Rodriguez
d54e74092e stb_resample initial implementation 2014-07-21 00:16:03 -07:00
Sean Barrett
e454b82a78 remove tabs 2014-07-07 07:46:39 -07:00
Sean Barrett
816f31e9bc fixes and tests 2014-07-07 04:54:52 -07:00
Sean Barrett
4b590c0a62 first pass at stb-izing complete, now need to debug 2014-07-04 09:34:57 -07:00
Sean Barrett
88c99e47fb initial commit 2014-07-04 08:06:36 -07:00
Sean Barrett
b000f920ac update stb_image version number 2014-06-22 11:21:11 -07:00
Sean Barrett
2452f0002f Merge branch 'textedit' 2014-06-19 20:21:32 -07:00