1 module stb.image.binding;
2 
3 import core.stdc.stdio : FILE;
4 
5 
6 enum
7 {
8 	STBI_default,
9 	STBI_grey,
10 	STBI_grey_alpha,
11 	STBI_rgb,
12 	STBI_rgb_alpha
13 }
14 
15 extern(C) @nogc nothrow:
16 
17 struct stbi_io_callbacks
18 {
19 	int function(void* user, char* data, int size) read;
20 	void function(void* user, int n) skip;
21 	int function(void* user) eof;
22 }
23 
24 ubyte* stbi_load_from_memory(in void* buffer, int len, int* x, int* y, int* channels_in_file, int desired_channels);
25 ubyte* stbi_load_from_callbacks(const(stbi_io_callbacks)* clbk, void* user, int* x, int* y, int* channels_in_file, int desired_channels);
26 
27 ubyte* stbi_load_gif_from_memory(in void* buffer, int len, int** delays, int* x, int* y, int* z, int* comp, int req_comp);
28 
29 ubyte* stbi_load(const(char)* filename, int* x, int* y, int* channels_in_file, int desired_channels);
30 ubyte* stbi_load_from_file(FILE* f, int* x, int* y, int* channels_in_file, int desired_channels);
31 
32 ushort* stbi_load_16_from_memory(in void* buffer, int len, int* x, int* y, int* channels_in_file, int desired_channels);
33 ushort* stbi_load_16_from_callbacks(const(stbi_io_callbacks)* clbk, void* user, int* x, int* y, int* channels_in_file, int desired_channels);
34 
35 ushort* stbi_load_16(const(char)* filename, int* x, int* y, int* channels_in_file, int desired_channels);
36 ushort* stbi_load_from_file_16(FILE* f, int* x, int* y, int* channels_in_file, int desired_channels);
37 
38 float* stbi_loadf_from_memory(in void* buffer, int len, int* x, int* y, int* channels_in_file, int desired_channels);
39 float* stbi_loadf_from_callbacks(const(stbi_io_callbacks)* clbk, void* user, int* x, int* y, int* channels_in_file, int desired_channels);
40 
41 float* stbi_loadf(const(char)* filename, int* x, int* y, int* channels_in_file, int desired_channels);
42 float* stbi_loadf_from_file(FILE* f, int* x, int* y, int* channels_in_file, int desired_channels);
43 
44 void stbi_hdr_to_ldr_gamma(float gamma);
45 void stbi_hdr_to_ldr_scale(float scale);
46 
47 void stbi_ldr_to_hdr_gamma(float gamma);
48 void stbi_ldr_to_hdr_scale(float scale);
49 
50 int stbi_is_hdr_from_callbacks(const(stbi_io_callbacks)* clbk, void* user);
51 int stbi_is_hdr_from_memory(in void* buffer, int len);
52 
53 int stbi_is_hdr(const(char)* filename);
54 int stbi_is_hdr_from_file(FILE* f);
55 
56 const(char)* stbi_failure_reason();
57 
58 void stbi_image_free(void* retval_from_stbi_load);
59 
60 int stbi_info_from_memory(in void* buffer, int len, int* x, int* y, int* comp);
61 int stbi_info_from_callbacks(const(stbi_io_callbacks)* clbk, void* user, int* x, int* y, int* comp);
62 int stbi_is_16_bit_from_memory(in void* buffer, int len);
63 int stbi_is_16_bit_from_callbacks(const(stbi_io_callbacks)* clbk, void* user);
64 
65 int stbi_info(const(char)* filename, int* x, int* y, int* comp);
66 int stbi_info_from_file(FILE* f, int* x, int* y, int* comp);
67 int stbi_is_16_bit(const(char)* filename);
68 int stbi_is_16_bit_from_file(FILE* f);
69 
70 void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply);
71 
72 void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert);
73 
74 void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip);
75 
76 char* stbi_zlib_decode_malloc_guesssize(const(char)* buffer, int len, int initial_size, int* outlen);
77 char* stbi_zlib_decode_malloc_guesssize_headerflag(const(char)* buffer, int len, int initial_size, int* outlen, int parse_header);
78 char* stbi_zlib_decode_malloc(const(char)* buffer, int len, int* outlen);
79 int stbi_zlib_decode_buffer(char* obuffer, int olen, const(char)* ibuffer, int ilen);
80 
81 char* stbi_zlib_decode_noheader_malloc(const(char)* buffer, int len, int* outlen);
82 int stbi_zlib_decode_noheader_buffer(char* obuffer, int olen, const(char)* ibuffer, int ilen);