Commit Graph

2173 Commits

Author SHA1 Message Date
Fabian Giesen 56a7113cd0 stb_image: Reorder format test sequence
Put the formats that start with a clear magic number first,
the dodgy ones that don't have much of a distinctive header
should be tested for later after we've ruled out the clearer
ones.

Fixes issue #787, hopefully. (Never got a clean repro.)
2021-07-04 01:39:10 -07:00
Fabian Giesen 618dbd01c8 stb_image: Document image size limits
Both the buffer size limits and the image dimension limits.

Fixes issue #672.
2021-07-04 01:39:10 -07:00
Fabian Giesen 55a180671c readme: Add "how to use these libs" section
Try to be a bit more explicit still.

Fixes issue #903, or so I hope.
2021-07-04 01:39:09 -07:00
Fabian Giesen 4d3b93f589 stb_image: Erorr in BMP should error, not assert.
There was both the assert and the error check; should just be
the error check.

Fixes issue #881 (or rather, part of it).
2021-07-04 01:39:09 -07:00
Fabian Giesen 31ba943e3f stb_image: UB fix in stbi__get32le
Need to do the second-part shift on uint32 not int.
2021-07-04 01:39:09 -07:00
Fabian Giesen d6ab7faec0 stb_image: Update comment
As per recent patches, we do support 16-bit PNMs.
2021-07-04 01:39:09 -07:00
Fabian Giesen bb09317445 stb_image: Avoid left-shifts of signed values
It's implementation-specified behavior. Writing this code and then
relying on compiler strength reduction to turn it back into shifts
feels extremely silly but it is what it is.

Fixes issue #1097.
2021-07-04 01:39:09 -07:00
Fabian Giesen 43b32c7bab stb_image: Avoid shift of signed values in extend_receive
Use an equivalent formulation that has sgn=0 or 1, not 0 or -1.
This avoids right-shifting signed values, at least in this place.

Fixes issue #1061.
2021-07-04 01:39:09 -07:00
Fabian Giesen 6d857933d5 stb_image, stb_image_write: Fix compare sign warnings
For the stb_image fix, also replace the magic 288 with a more
descriptive name while I'm at it.

Fixes #1100
2021-07-04 01:39:09 -07:00
Fabian Giesen 265b73bb0b stb_image: Fix lrot definition, small extend_receive tweak
Define lrot in a way that doesn't involve UB when n==0.
Also, the previous patch ensures that n <= 15 for all callers
of stbi__extend_receive, so can remove the (less restrictive)
bounds check for 0 <= n < 17 (the bounds of stbi__bmask)
entirely.

Fixes issue #1065.
2021-07-04 01:39:09 -07:00
Fabian Giesen 86b7570cfb stb_image: Fix bug on JPEGs with malformed DC deltas
extend_receive implicitly requires n <= 15 (code length);
the maximum that actually makes sense for 8-bit baseline JPEG is
11, but 15 is the natural limit for us because the AC coding path
stores the number of magnitude bits in a nibble.

Check that DC delta bits are in range before attempting to call
extend_receive.

Fixes issue #1108.
2021-07-04 01:39:09 -07:00
Fabian Giesen 6ab6303f98 stb_image: Check results of all mallocs.
A few were missing. Make sure to always report ouf-of-memory
errors.

Fixes issue #1056.
2021-07-04 01:39:09 -07:00
Fabian Giesen 6199b717bc README: updated supported stb_image and stb_image_write formats 2021-07-04 01:39:05 -07:00
Fabian Giesen 8e8f7d9b69 stb_image: Update credits, change log 2021-07-04 01:38:24 -07:00
Simon Breuss 8c15cc9c79 Adds 16-bit support for pnm files. 2021-07-04 01:38:24 -07:00
Jacko Dirks c62af85657 stb_image.h: Suppress warnings about out_size, delay_size
These two variables are unused on some targets, resulting in
warnings. Add STBI_NOTUSED around them to suppress those
warnings.
2021-07-04 01:38:24 -07:00
Fabian Giesen 448bb137e3 stb_image: Better docs for stbi_info.
Fixes #1026.
2021-07-04 01:38:24 -07:00
Fabian Giesen 1203eb554b stb_image: Fix issue #994.
Accidentally introduced during a merge.
2021-07-04 01:38:24 -07:00
Fabian Giesen a49749a57d stb_textedit: Docs fix.
Fixes issue #1041.
2021-07-04 01:38:24 -07:00
Fabian Giesen 0afc39f59a stb_truetype: Turn codepoint assert into error check
Fixes the bug covered by PR #1066, but with a slightly different
fix that's hopefully a bit clearer.
2021-07-04 01:38:24 -07:00
Doj 067655993a stb_sprintf: fix stbsp_ddtoS64 macro
Should use xh argument not ph (which is the name of the
variable that it actually gets instantiated with the
one time it is used).
2021-07-04 01:38:24 -07:00
Jan CW Kroeze 04007a071c Note GL blend state for stb_truetype 2021-07-04 01:38:24 -07:00
Rafael Sachetto 02578923d3 Fix compilation warnings in the s390x architeture. Fixes #1082. 2021-07-04 01:38:24 -07:00
Valentin Lenhart 2de22bde0a stb_sprintf.h: stdlib.h is not needed
va_arg() is in stdarg.h, which is already being included
2021-07-04 01:38:24 -07:00
Fabian Giesen dc2aa370c0 stb_dxt: Remove dithering support.
Keep STB_DXT_DITHER so as not to break existing code that tries
to enable it, but just leave it permanently off. I originally
introduced it somewhat superstitiously because of the RGB565
endpoint resolution but it never improved either perceptual quality
or objective quality metrics, and the code is appreciably simpler
without it.
2021-07-04 01:38:24 -07:00
Fabian Giesen ae3ed90b0c stb_dxt: Better error calc for single-color table
Don't truncate error as aggressively; easily done, but wanted
to keep it separate from the previous change.
2021-07-04 01:38:24 -07:00
Alan Hickman 98623b9577 stb_dxt: Initialize tables at compile time
Also fix a "potentially uninitialized variable" warning.

This is a modified version of Alan's original PR that keeps the
table generator in the file (in case there's interest) and also
replaces the expand[] tables with math, since it's trivial.

Fixes issue #1117.
2021-07-04 01:38:24 -07:00
Michael Aganier 696cb038a3 stb_sprintf: add attribute format to variadic functions
This allows for compiler verification of the format string
just like printf.
2021-07-04 01:38:24 -07:00
Fabian Giesen 6294c6cfa2 Move stb.h to deprecated.
It was never designed to be used by anyone but Sean and has
numerous problems; new code should definitely not be using
this.
2021-07-04 01:38:24 -07:00
Fabian Giesen 5c0cc31fb0 stb_image: Update credits 2021-07-03 01:00:46 -07:00
Eugene Golushkov 69a7dd32a8 stb_image: fix building by MSVC for Windows 10 on ARM 2021-07-03 00:59:26 -07:00
Fabian Giesen a0231a9e94 stb_image: Key Win32 UTF-8 support off _WIN32 not _MSC_VER
So that it also works on MinGW.

Fixes issue #729.
2021-07-03 00:46:04 -07:00
Fabian Giesen e3a63f3793 stb_image: Fix wrong buffer sizes passed to MultiByteToWideChar
Fixes issue #772.
2021-07-03 00:38:30 -07:00
Fabian Giesen 3870fb6a93 stb_image: Reorder format test sequence
Put the formats that start with a clear magic number first,
the dodgy ones that don't have much of a distinctive header
should be tested for later after we've ruled out the clearer
ones.

Fixes issue #787, hopefully. (Never got a clean repro.)
2021-07-02 23:06:44 -07:00
Fabian Giesen e795306bbc stb_image: Document image size limits
Both the buffer size limits and the image dimension limits.

Fixes issue #672.
2021-07-02 22:52:15 -07:00
Fabian Giesen ba739e54ed readme: Add "how to use these libs" section
Try to be a bit more explicit still.

Fixes issue #903, or so I hope.
2021-07-02 22:31:41 -07:00
Fabian Giesen d343a29fe6 stb_image: Erorr in BMP should error, not assert.
There was both the assert and the error check; should just be
the error check.

Fixes issue #881 (or rather, part of it).
2021-07-02 22:01:23 -07:00
Fabian Giesen 41e93836d9 stb_image: UB fix in stbi__get32le
Need to do the second-part shift on uint32 not int.
2021-07-02 21:57:25 -07:00
Fabian Giesen cf00c67c57 stb_image: Update comment
As per recent patches, we do support 16-bit PNMs.
2021-07-02 21:38:44 -07:00
Fabian Giesen 48632c1752 stb_image: Avoid left-shifts of signed values
It's implementation-specified behavior. Writing this code and then
relying on compiler strength reduction to turn it back into shifts
feels extremely silly but it is what it is.

Fixes issue #1097.
2021-07-02 21:09:11 -07:00
Fabian Giesen 026013546c stb_image: Avoid shift of signed values in extend_receive
Use an equivalent formulation that has sgn=0 or 1, not 0 or -1.
This avoids right-shifting signed values, at least in this place.

Fixes issue #1061.
2021-07-02 20:59:22 -07:00
Fabian Giesen 4d067e8b2b stb_image, stb_image_write: Fix compare sign warnings
For the stb_image fix, also replace the magic 288 with a more
descriptive name while I'm at it.

Fixes #1100
2021-07-02 18:42:01 -07:00
Fabian Giesen 1d7bf85877 stb_image: Fix lrot definition, small extend_receive tweak
Define lrot in a way that doesn't involve UB when n==0.
Also, the previous patch ensures that n <= 15 for all callers
of stbi__extend_receive, so can remove the (less restrictive)
bounds check for 0 <= n < 17 (the bounds of stbi__bmask)
entirely.

Fixes issue #1065.
2021-07-02 18:28:41 -07:00
Fabian Giesen a3f2897b85 stb_image: Fix bug on JPEGs with malformed DC deltas
extend_receive implicitly requires n <= 15 (code length);
the maximum that actually makes sense for 8-bit baseline JPEG is
11, but 15 is the natural limit for us because the AC coding path
stores the number of magnitude bits in a nibble.

Check that DC delta bits are in range before attempting to call
extend_receive.

Fixes issue #1108.
2021-07-02 18:10:49 -07:00
Fabian Giesen 50072f6658 stb_image: Check results of all mallocs.
A few were missing. Make sure to always report ouf-of-memory
errors.

Fixes issue #1056.
2021-07-02 17:52:29 -07:00
Sean Barrett 8e51be04dc Merge branch 'master' of https://github.com/nothings/stb 2021-07-02 06:57:02 -07:00
Sean Barrett 52ad6bd4c9 update stb_vorbis version 2021-07-02 06:56:34 -07:00
Sean Barrett 99e905e50b Merge branch 'pull_req' of https://github.com/anthofoxo/stb into working 2021-07-02 06:49:03 -07:00
Fabian Giesen 67b247ba49 README: updated supported stb_image and stb_image_write formats 2021-07-01 17:49:11 -07:00
Fabian Giesen b4891baa6c stb_image: Update credits, change log 2021-07-01 17:35:40 -07:00