mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-08-02 07:50:31 +00:00
Initial import
This commit is contained in:
commit
c91b3c5006
14915 changed files with 590219 additions and 0 deletions
118
third_party/stb/stb_image.h
vendored
Normal file
118
third_party/stb/stb_image.h
vendored
Normal file
|
@ -0,0 +1,118 @@
|
|||
#ifndef COSMOPOLITAN_THIRD_PARTY_STB_STB_IMAGE_H_
|
||||
#define COSMOPOLITAN_THIRD_PARTY_STB_STB_IMAGE_H_
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
COSMOPOLITAN_C_START_
|
||||
|
||||
enum {
|
||||
STBI_default = 0, // only used for desired_channels
|
||||
STBI_grey = 1,
|
||||
STBI_grey_alpha = 2,
|
||||
STBI_rgb = 3,
|
||||
STBI_rgb_alpha = 4
|
||||
};
|
||||
|
||||
struct FILE;
|
||||
|
||||
typedef struct {
|
||||
int (*read)(void *user, char *data,
|
||||
int size); // fill 'data' with 'size' bytes. return number of
|
||||
// bytes actually read
|
||||
void (*skip)(void *user, int n); // skip the next 'n' bytes, or 'unget' the
|
||||
// last -n bytes if negative
|
||||
int (*eof)(void *user); // returns nonzero if we are at end of file/data
|
||||
} stbi_io_callbacks;
|
||||
|
||||
//
|
||||
// 8-bits-per-channel interface
|
||||
//
|
||||
|
||||
unsigned char *stbi_load_from_memory(unsigned char const *buffer, int len,
|
||||
int *x, int *y, int *channels_in_file,
|
||||
int desired_channels) mallocesque;
|
||||
unsigned char *stbi_load_from_callbacks(stbi_io_callbacks const *clbk,
|
||||
void *user, int *x, int *y,
|
||||
int *channels_in_file,
|
||||
int desired_channels);
|
||||
|
||||
unsigned char *stbi_load(char const *filename, int *x, int *y,
|
||||
int *channels_in_file, int desired_channels);
|
||||
unsigned char *stbi_load_from_file(struct FILE *f, int *x, int *y,
|
||||
int *channels_in_file, int desired_channels);
|
||||
// for stbi_load_from_file, file pointer is left pointing immediately after
|
||||
// image
|
||||
|
||||
unsigned char *stbi_load_gif_from_memory(unsigned char const *buffer, int len,
|
||||
int **delays, int *x, int *y, int *z,
|
||||
int *comp, int req_comp);
|
||||
|
||||
//
|
||||
// 16-bits-per-channel interface
|
||||
//
|
||||
|
||||
unsigned short *stbi_load_16_from_memory(unsigned char const *buffer, int len,
|
||||
int *x, int *y, int *channels_in_file,
|
||||
int desired_channels);
|
||||
unsigned short *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk,
|
||||
void *user, int *x, int *y,
|
||||
int *channels_in_file,
|
||||
int desired_channels);
|
||||
|
||||
unsigned short *stbi_load_16(char const *filename, int *x, int *y,
|
||||
int *channels_in_file, int desired_channels);
|
||||
unsigned short *stbi_load_from_file_16(struct FILE *f, int *x, int *y,
|
||||
int *channels_in_file,
|
||||
int desired_channels);
|
||||
|
||||
// get a VERY brief reason for failure
|
||||
// NOT THREADSAFE
|
||||
const char *stbi_failure_reason(void);
|
||||
|
||||
// free the loaded image -- this is just free()
|
||||
void stbi_image_free(void *retval_from_stbi_load);
|
||||
|
||||
// get image dimensions & components without fully decoding
|
||||
int stbi_info_from_memory(unsigned char const *buffer, int len, int *x, int *y,
|
||||
int *comp);
|
||||
int stbi_info_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x,
|
||||
int *y, int *comp);
|
||||
int stbi_is_16_bit_from_memory(unsigned char const *buffer, int len);
|
||||
int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *clbk, void *user);
|
||||
|
||||
int stbi_info(char const *filename, int *x, int *y, int *comp);
|
||||
int stbi_info_from_file(struct FILE *f, int *x, int *y, int *comp);
|
||||
int stbi_is_16_bit(char const *filename);
|
||||
int stbi_is_16_bit_from_file(struct FILE *f);
|
||||
|
||||
// for image formats that explicitly notate that they have premultiplied alpha,
|
||||
// we just return the colors as stored in the file. set this flag to force
|
||||
// unpremultiplication. results are undefined if the unpremultiply overflow.
|
||||
void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply);
|
||||
|
||||
// indicate whether we should process iphone images back to canonical format,
|
||||
// or just pass them through "as-is"
|
||||
void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert);
|
||||
|
||||
// flip the image vertically, so the first pixel in the output array is the
|
||||
// bottom left
|
||||
void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip);
|
||||
|
||||
// ZLIB client - used by PNG, available for other purposes
|
||||
|
||||
char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len,
|
||||
int initial_size, int *outlen);
|
||||
char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len,
|
||||
int initial_size,
|
||||
int *outlen,
|
||||
int parse_header);
|
||||
char *stbi_zlib_decode_malloc(const char *buffer, int len, int *outlen);
|
||||
int stbi_zlib_decode_buffer(char *obuffer, int olen, const char *ibuffer,
|
||||
int ilen);
|
||||
|
||||
char *stbi_zlib_decode_noheader_malloc(const char *buffer, int len,
|
||||
int *outlen);
|
||||
int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen,
|
||||
const char *ibuffer, int ilen);
|
||||
|
||||
COSMOPOLITAN_C_END_
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_THIRD_PARTY_STB_STB_IMAGE_H_ */
|
Loading…
Add table
Add a link
Reference in a new issue