Commit Graph

246 Commits

Author SHA1 Message Date
svdijk
8603c6e809 stb_image.h: Only define stbi__l2h_{gamme,scale} when needed.
This fixes a (well, actually the only) compiler warning.
2015-11-05 23:32:40 +01:00
Sean Barrett
6b8938124e Merge branch 'fix-vs2015-warnings' of https://github.com/Reedbeta/stb into working 2015-09-13 11:09:23 -07:00
Sean Barrett
d5b8af12cb fix missing "defined" in #if defined(STBI_NO_foo);
fix incorrect initialization of alpha channel for RGB PSD
2015-09-13 11:08:40 -07:00
Nathan Reed
36574182c0 Fix new VS2015 warnings in stb_image 2.07
- conversion from int to stbi_uc
- unused parameter
2015-09-13 11:00:46 -07:00
Sean Barrett
90dc93a1cc fix bug where we couldn't rewind a file that reached EOF, which can happen with < 92-byte PIC,PNM,HDR,TGA 2015-09-13 05:41:21 -07:00
Sean Barrett
28a29dd0f1 credit for michaelangel007 patch 2015-09-13 05:15:09 -07:00
Sean Barrett
ddd05479e9 Merge branch 'master' of https://github.com/Michaelangel007/stb into working 2015-09-13 05:13:57 -07:00
Sean Barrett
0eb5da55a7 er, fix typo in the fix-rmitton checkin 2015-09-13 05:12:53 -07:00
Sean Barrett
082289b528 Merge branch 'master' of https://github.com/rmitton/stb into working 2015-09-13 05:12:35 -07:00
Sean Barrett
5607c25cf4 tweak rmitton 16-bit psd patch;
adjust credits
2015-09-13 05:11:51 -07:00
Sean Barrett
69d6fd573c Merge branch 'psd16' of https://github.com/rmitton/stb into working 2015-09-13 04:58:48 -07:00
Sean Barrett
1ea670e0a5 Merge branch 'urraka-gif-patch' of https://github.com/urraka/stb into working 2015-09-13 04:49:04 -07:00
Sean Barrett
52d400741c detect all 0-alpha bmp and replace with all-255;
fix bug in reedbeta patch
2015-09-13 04:46:50 -07:00
Sean Barrett
fee80f3d83 tweaks to patch from reedbeta 2015-09-13 04:27:24 -07:00
Nathan Reed
26c98260b6 Fix warnings about "conversion to a greater size" that appear in VS2015 in x64 with /W4.
The warning concerns the return value of stbi_err, which is an int, being converted to a pointer. In VS2015 it seems casting directly from a 32-bit int to a 64-bit pointer triggers this warning. Worked around by first converting to a 64-bit int (here size_t) and then to a pointer.
2015-09-10 01:20:35 -07:00
Nathan Reed
6d613ed8ce Fix variable-shadowing warnings that appear in VS2015 on /W4 2015-09-10 01:13:54 -07:00
Sean Barrett
7ac0f9c9b0 fix typo in accidentally-checked-in stb_image.h 2015-09-03 22:55:01 -07:00
Sean Barrett
60939ec653 fix some more signed shifts 2015-09-03 11:18:40 -07:00
urraka
23dfb8c06b GIF loading improvements.
- Fixed possible memory leak.
- Fix for transparent backgrounds.
- Adapted internal function to allow proper animation loading.
2015-08-03 22:59:16 -03:00
Sean Barrett
c9859afcf9 reverse some of the public-domain-license changes that I didn't
actually want
2015-08-01 23:53:49 -07:00
Ryan Whitworth
f0e456b809 Added public domain license text 2015-08-01 14:52:12 -04:00
rmitton
6645ea5915 Fixed stupid endianness bug.
Incorrect endianness hilariously doesn't manifest _if_ the original
image was upconverted from 8-bit to 16-bit.
2015-07-24 12:00:09 -07:00
rmitton
608cbec1f5 Fixed overflow for high values.
0xffff would accidentally round to 0x10000.
2015-07-07 15:47:37 -07:00
rmitton
a371b204f5 Added support for 16-bit PSD loading.
This extends the current PSD loader to add support for 16-bit images, by
quantizing them down to 8-bit upon load.
2015-07-07 15:15:38 -07:00
rmitton
fcfa17b847 Fixed double-free in JPEG allocation
It was incorrectly setting the wrong field to NULL, causing it to get
freed again later.
2015-07-06 13:32:40 -07:00
Michaelangel007
c11532b872 Cleanup unused functions 2015-06-30 08:54:14 -06:00
Michaelangel007
2762b410fe Fix unused vars warning in stbi_is_hdr_from_file stbi_is_hdr_from_callbacks 2015-06-30 08:02:24 -06:00
Sean Barrett
aa89970d6b stb_image.h: fix *comp value when loading PSDs
stb_voxel_render.h: fix STBVOX_CONFIG_OPTIMIZED_VHEIGHT
2015-05-28 22:11:45 -07:00
Sean Barrett
947bdcd027 update version numbers & docs 2015-04-19 04:19:55 -07:00
Sean Barrett
8f9c8b682d Merge branch 'master' of https://github.com/nguillemot/stb 2015-04-19 04:17:21 -07:00
Sean Barrett
ac5e25ae01 bump stb_image to version 2.05, tweak docs 2015-04-19 04:15:33 -07:00
Fabian Giesen
f224bc2cdb stb_image: Progressive AC decoding - fix ZRL code.
The original AC decoding logic handled ZRL (runs of 16 zeros)
incorrectly.

The problem is that the original flow set r=16 and skipped the
final coeff write when s=0. This is not actually correct. The
problem is the intervening "refinement" bits.

With the original logic, even once we decrement r to 0, we keep
reading more refinement bits for subsequent coefficients until
we find the next currently-unsent AC in the current scan. That is,
it works as if it was trying to place 17 new AC values, and only
bails at the last minute from actually setting that 17th value.

This is wrong. Once we've found the 16th previously-unsent AC, we
need to stop reading refinement bits, otherwise we get out of sync
with the bit stream (which expects us to read a huffman code next).

The easiest fix is to just do what the JPEG standard implicitly
assumes anyway: treat ZRL as a run of 15 zeros followed by an
explicit magnitude-zero AC coeff. (That is, leave s=0 and actually
write s). So this is what this fix does.
2015-04-19 01:49:16 -07:00
Nicolas Guillemot
1894bede3f fix signed/unsignted compare warning 2015-04-18 21:23:34 -07:00
Sean Barrett
d710ada2f9 try to re-enable SSE2 support by default on mingw 64-bit 2015-04-15 02:31:12 -07:00
Sean Barrett
66a75195dc rename STBI_X86_TARGET to STBI__X86_TARGET 2015-04-12 09:36:01 -07:00
Sean Barrett
c83abb051a Merge branch 'mingwfix' of https://github.com/rygorous/stb into work2
Conflicts:
	stb_image.h
2015-04-12 09:33:26 -07:00
Sean Barrett
e5fde30800 merge two x86/x64 tests into one; update credits 2015-04-12 09:30:05 -07:00
Sean Barrett
c8852111cc Merge branch 'master' of https://github.com/pmj/stb into work2 2015-04-12 09:26:25 -07:00
Sean Barrett
f22efc6151 update credits/docs 2015-04-12 09:26:16 -07:00
Sean Barrett
9d7499bca6 Merge branch 'master' of https://github.com/hpesoj/stb into work2 2015-04-12 09:23:07 -07:00
Sean Barrett
040df963c8 modifications to vertical flip API:
more consistent name,
 refactor stbi_load_main to preserve old code,
 support float HDR path,
 minor bugfix
2015-04-12 09:20:31 -07:00
Sean Barrett
e3214d7ff7 Merge branch 'master' of https://github.com/nguillemot/stb into work2 2015-04-12 09:07:32 -07:00
Sean Barrett
24e50cbd5d remove asserts that are now run-time checks;
bump version and update credits;
minor whitespace changes;
2015-04-12 09:04:43 -07:00
Martins Mozeiko
b2d440cfb5 Fixing various crashes when loading jpg, png and tga images. 2015-04-11 15:51:20 -07:00
Nicolas Guillemot
c500a90375 added stbi_vertically_flip_on_load 2015-03-29 03:03:09 -07:00
Sean Barrett
0b05bde303 quick fixes w/o version updates 2015-02-22 14:26:21 -08:00
Joseph Thomson
a60912f145 Avoid GCC sign-compare warning.
GCC 4.7 gave the warning "signed and unsigned type in conditional
expression" because the ternary operator mixes signed and unsigned
integers. Fixed by casting to unsigned inside the "if" branch instead
of casting the result of the entire conditional.
2015-02-20 10:15:08 +00:00
Fabian Giesen
4b0c6f6634 stb_image: NEON and SSE2 SIMD detection fixes.
This fixes two things. First, the logic to disable SSE2 on
GCC unless "-msse2" was not specific enough, and ended up
disabling SIMD support on NEON targets entirely. Shuffle
the detection logic around to make that bit x86-specific.

Second, 32-bit MinGW assumes 16-byte aligned stacks, but this is
not in the Windows ABI and hence DLLs and callbacks don't
necessarily provide it. This caused a crash.

This can be fixed by providing the right command-line option,
which we have no control over. As a compromise, disable the SSE2
path on MinGW unless a specific #define explained in the comments
is set. That way, we default to safe (never-crashing) behavior
unless the user explicitly signals they know what they're doing.
2015-02-17 01:21:40 -08:00
Laura Dennis-Jordan
abe81006db Fixed bug where NEON code was #ifdef’d out on GCC/clang even where explicitly requested. 2015-02-05 20:49:04 +01:00
Sean Barrett
5bad081711 fix incorrectly-named assert, attempt to fix (char) cast warning (tricky since char's signedness is unknown) 2015-01-19 05:18:37 -08:00
Sean Barrett
5c121a9921 don't use SIMD on gcc if it's going to fail anyway 2015-01-17 08:32:57 -08:00
Sean Barrett
6f3bda396d credits, version number 2015-01-17 08:25:08 -08:00
Sean Barrett
68c8e4851a Merge branch 'master' of https://github.com/enginmanap/stb 2015-01-17 08:22:28 -08:00
Sean Barrett
d673e85e94 update credits 2015-01-17 08:22:19 -08:00
engin manap
50c5c8e8ca remove unused variable "ha"
this variable was causing a warning while compiling with gcc.
2015-01-12 11:41:00 +02:00
engin manap
1a9be15c1e Fix dangling else warnings 2015-01-12 11:34:48 +02:00
Sergio Gonzalez
a2df517a1a Fix for warning 4244. Cast to short 2014-12-29 18:43:57 -06:00
Sean Barrett
a7c8694d69 fix missing STBI_MALLOC 2014-12-25 11:11:59 -08:00
Sean Barrett
6e0ae49f87 update version number, minor docs 2014-12-25 01:40:04 -08:00
Fabian Giesen
febbc34a16 stb_image: Rename SSE2/NEON IDCTs to idct_simd. 2014-12-24 10:53:31 +01:00
Fabian Giesen
d92ab86c65 stb_image: Fix PNG initial size guess for 1/2/4 bpc. 2014-12-24 10:15:28 +01:00
Fabian Giesen
fb109abeaf stb_image: Update comments. 2014-12-24 10:07:52 +01:00
Sean Barrett
7f94e7e591 add #defines to allow disabling decoders for unwanted formats 2014-12-23 21:36:20 -08:00
Sean Barrett
53ca163e85 cleanup merge of ARM NEON support
tweak docs
2014-12-23 20:58:22 -08:00
Sean Barrett
de385bb6bb Merge branch 'fastjpeg' into working 2014-12-23 20:24:46 -08:00
Fabian Giesen
fd987527f1 stb_image: NEON YCbCr->RGB kernel.
Also ran a bunch of test cases to make sure the IDCT and H2V2
resamplers were correct.
2014-12-24 01:38:59 +01:00
Fabian Giesen
7d32f74d8a Merge branch 'fastjpeg' of https://github.com/nothings/stb into fastjpeg
Conflicts:
	stb_image.h
2014-12-23 23:52:12 +01: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
6403f319f7 tweak documentation
stbi__ prefix on two functions that were missing it
2014-12-21 08:30:27 -08:00
Sean Barrett
e4fb737f66 Merge branch 'ppm' into working
Conflicts:
	stb_image.h
2014-12-21 08:23:34 -08:00
Sean Barrett
49d4d3193f fix non-progressive jpegs (had commented out a line accidentally);
fix long-standing bug where gifs were just broken AFAICT
2014-12-21 08:21:17 -08:00
Sean Barrett
33e24eafa0 in progress progressive stuff 2014-12-21 07:53:05 -08:00
Fabian Giesen
a32d73dc3b stb_image: NEON integer IDCT (not yet tested!) 2014-12-21 12:55:50 +01:00
Fabian Giesen
0f3bf1564b stb_image: JPEG resampler func for NEON 2014-12-21 12:46:57 +01:00
Sean Barrett
9ad85cc8d2 tweak release docs
tweak credits
tweak revision history
remove trailing whitespace
2014-12-20 06:22:17 -08:00
Sean Barrett
b4e526d7cf PNM cleanup
fix a few old error messages
2014-12-20 06:09:23 -08:00
Sean Barrett
97949493fb Merge branch 'master' of https://github.com/kennethdmiller3/stb into ppm 2014-12-20 05:49:19 -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
Fabian Giesen
b082091bcb stb_image: GCC fix for new SIMD stuff. 2014-12-18 08:31:03 -08:00
Fabian Giesen
42bb08b10b stb_image: Add SSE2 h2v2 resampling kernel. 2014-12-18 08:11:05 -08:00
Fabian Giesen
c625d24197 stb_image: First-pass stbi__sse2_available for GCC 2014-12-18 07:52:44 -08:00
Fabian Giesen
aabf2c5c49 stb_image: SSE2 YCbCr->RGB kernel 2014-12-18 07:41:41 -08:00
Fabian Giesen
d95f7acb32 stb_image: Remove old installable IDCT path. 2014-12-18 07:25:41 -08:00
Fabian Giesen
e5db25f637 stb_image: Add SSE2 IDCT for JPEG decoder.
Also add SSE2 detection for MSVC++. Detection on GCC will follow
later.
2014-12-18 07:22:42 -08:00
Fabian Giesen
fb2c841bb8 stb_image: Add more of the SSE2 skeleton. 2014-12-18 07:03:21 -08:00
Fabian Giesen
c6a3235995 stb_image: IDCT kernel func ptr in stbi__jpeg
I want to support SSE2 kernels that auto-detect. If implemented
using globals, this would trigger thread race checkers if stb_image
was used in multiple threads. Just make the kernels be explicitly
per-stbi__jpeg to avoid this.

(This commit is the first step in replacing existing STBI_SIMD
functionality.)
2014-12-18 06:49:41 -08:00
Fabian Giesen
518306517c stb_image: JPEG dequant in decode_block not IDCT.
Inside decode_block, we're still sparse, and we can use that
sparsity pattern without doing extra work to discover it.
2014-12-18 06:31:53 -08:00
Fabian Giesen
1d5652044d stb_image: JPEG fast_ac table - decode entire AC at once. 2014-12-18 06:30:42 -08:00
Fabian Giesen
a1bd1f7f1f stb_image: Faster stbi__extend_receive. 2014-12-18 06:25:42 -08:00
Ken Miller
bdc918751d Merge branch 'master' of https://github.com/nothings/stb 2014-12-15 01:09:59 -06:00
Sean Barrett
f547761c15 Fix assert() that should be STBI_ASSERT() 2014-12-14 18:14:14 -08:00
Sean Barrett
91255cb1cd update stb_image version & changelog 2014-12-14 02:06:33 -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
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
Fabian Giesen
1996a019ac stb_image: Guess decoded image size before zlib decode to avoid unnecessary reallocs. 2014-12-13 19:15:38 -08:00
Fabian Giesen
3d6dccf0c4 stb_image: Make 'fast' table contain code size and value directly. 2014-12-13 18:48:37 -08:00
Fabian Giesen
007de5eb6e stb_image: Extract zhuffman_decode slow path into own function. 2014-12-13 18:18:36 -08:00
Fabian Giesen
cdc230598e stb_image: Fast path for matches with dist=1 (runs) in stbi__parse_huffman_block. 2014-12-13 18:07:00 -08:00
Fabian Giesen
92b9e262b7 stb_image: Keep zout in a local var during stbi__parse_huffman_block. 2014-12-13 17:58:36 -08:00
Fabian Giesen
8188e842e2 stb_image: Add 'static' for some internal funcs, STBIDEF for external ones. 2014-12-13 17:31:51 -08:00
Fabian Giesen
61428d4526 stb_image: Trivial optimizations for filter path when img_n==out_n. 2014-12-13 17:22:57 -08:00
ocornut
1be86b37d6 Documentation 2014-09-26 00:06:30 +01:00
ocornut
50d9752612 Removing tabs and using 3-spaces indents to match local coding style 2014-09-26 00:01:45 +01:00
ocornut
09a1ab87a0 Fix for interlaced and small images + cleanup 2014-09-25 23:52:24 +01:00
ocornut
3b3e2996e7 Unpack 1/2/4 bpp into 8 bpp scanline buffer + support grayscale 1/2/4 bpp 2014-09-25 21:59:50 +01:00
ocornut
f2b3ebd470 Support for 1/2/4-bit palettized PNG 2014-09-25 19:30:47 +01:00
Ken Miller
8e91cb2b7d treat vertical tab and form feed characters as whitespace 2014-09-07 00:48:48 -05:00
Ken Miller
e003c66498 support PGM and PPM formats 2014-09-07 00:38:18 -05:00
Tero Hänninen
a5f1cb5657 Fix comments 2014-09-05 18:38:39 +03:00
Sean Barrett
a14339a019 fix handling of tRNS chunk in PNG (used wrong variable for output channels) 2014-08-26 13:39:53 -07:00
Sean Barrett
b36f9908ce Merge branch 'master' of https://github.com/thedmd/stb into working
Conflicts:
	stb_image.h
2014-08-16 13:45:32 -07:00
Michał Cichoń
10def9b150 fix MSVC-ARM internal compiler error by wrapping malloc
For some reason Microsoft CL compiler for ARM is unable to compile malloc when parameter is an expression. malloc(x * y) will cause internal compiler error, malloc(x) is however fine.
2014-08-08 00:46:45 +02:00
Sean Barrett
29f59c0460 update version number 2014-08-07 04:44:17 -07:00
Ronny Chevalier
b8b6e7c31a stb_image: fix unused parameter 2014-08-07 03:26:20 -07:00
Ronny Chevalier
893ef013b2 stb_image: fix undefined preprocessor definition 2014-08-07 03:26:08 -07:00
Sean Barrett
bcefca10f7 fix bad fix in previous fix 2014-07-15 22:26:01 -07:00
Sean Barrett
75b9e9cc1b update stb_image version number 2014-07-09 23:45:58 -07:00
Sean Barrett
e0d86b0f5c STBI_ASSERT 2014-07-09 23:35:25 -07:00
Sean Barrett
3bf91543f4 revert img_n=0 initialization to original location 2014-07-09 23:26:03 -07:00
Sean Barrett
a2b9aa8d06 modifiy jpeg img_n fix
switch from fopen to fopen_s on later MSVCs
2014-07-09 23:23:48 -07:00
Sean Barrett
70de0adb28 Merge branch 'master' of https://github.com/LysanderGG/stb into working 2014-07-09 23:03:32 -07:00
Sean Barrett
932d485146 fix warnings in certain console compilers 2014-07-09 23:01:29 -07:00
Lysander
efd6b2698f Fix crash when trying to load progressive jpeg due to uninitialized s->img_n
Proper pointer check before deleting
2014-07-09 22:41:22 +09:00
Sean Barrett
df29024046 fix old stb_image.h search&replace that screwed up comments 2014-06-25 15:29:29 -07:00
Sean Barrett
b000f920ac update stb_image version number 2014-06-22 11:21:11 -07:00
johan
52f1a7614d remove gcc4.9.0 / c++11 warnings
corrected annoying warnings about 'missing initializer'. The memset
version is not better, but gcc like it more.
2014-06-22 19:47:17 +02:00
Sean Barrett
23a775cc13 update release notes at end of file 2014-06-15 13:11:10 -07:00
Sean Barrett
5753c13f25 Merge branch 'load-bmp-v5-header' of https://github.com/saitoha/stb into working
Update version number
2014-06-15 13:08:12 -07:00
Sean Barrett
fa30cdba89 Merge branch 'rewind-after-bmp-testing' of https://github.com/saitoha/stb into working 2014-06-15 13:01:11 -07:00
Sean Barrett
d0c33a77f9 TGA loader fix to new optimized path by Jerry Jansson 2014-06-15 13:00:00 -07:00
Sean Barrett
2fb6df190b fix accidental stb__skip renames in comments 2014-06-15 12:49:32 -07:00
Hayaki Saito
cd6819374c Make sure to rewind after BMP test, to fix broken GIF test 2014-06-15 13:57:03 +09:00
Hayaki Saito
381ae02955 Add support for loading BMP v5 header 2014-06-15 13:47:41 +09:00
Sean Barrett
3557e66362 fix accidental rename of 'skip' 2014-06-06 12:17:39 -07:00
Sean Barrett
47a34c1723 stb_image.h version number increase 2014-06-06 10:17:32 -07:00
Sean Barrett
c28ffbbf0d Change byte casts in stb_image.h that intentionally truncate to do so explicitly for MSVC runtime check compatibility 2014-06-06 10:15:30 -07:00
Sean Barrett
df3dcb5d0d remove duplicate typedef of stbi_uc 2014-06-04 17:56:18 -07:00
Sean Barrett
334cec8d8c Fix handling of iphone-procesed image to not accidentally appear corrupt (instead they just load wrong).
Add a proper testing path to image test
2014-06-03 08:45:34 -07:00
Sean Barrett
236004f573 finished renaming all private functions & globals with stbi__ prefix 2014-05-31 06:55:48 -07:00
Sean Barrett
d5272d32e4 renaming completed through png decoder 2014-05-31 06:27:37 -07:00
Sean Barrett
9549e83e5d renaming completed through jpeg decoder 2014-05-31 05:40:05 -07:00
Sean Barrett
2514fbc2c7 more renaming 2014-05-31 05:38:26 -07:00
Sean Barrett
927b455d85 start converting stb_image.c to a .h file 2014-05-31 04:49:43 -07:00