diff options
| author | raysan5 <[email protected]> | 2019-07-12 14:33:06 +0200 |
|---|---|---|
| committer | raysan5 <[email protected]> | 2019-07-12 14:33:06 +0200 |
| commit | f9a2d89ed2de26eb143c1509492146390efdbc9c (patch) | |
| tree | 844a72dcf65fcce96b04217c5779b7b9af0b504f /src/models.c | |
| parent | 4ad1fa85a4e118430b405cf7af4f2ae708716c91 (diff) | |
| download | raylib-f9a2d89ed2de26eb143c1509492146390efdbc9c.tar.gz raylib-f9a2d89ed2de26eb143c1509492146390efdbc9c.zip | |
Use function GetSizeBase64()
Diffstat (limited to 'src/models.c')
| -rw-r--r-- | src/models.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/src/models.c b/src/models.c index 761b617f..49263889 100644 --- a/src/models.c +++ b/src/models.c @@ -3278,16 +3278,7 @@ static int GetSizeBase64(char *input) static unsigned char *DecodeBase64(char *input, int *size) { - *size = 0; - for (int i = 0; input[4*i] != 0; i++) - { - if (input[4*i + 3] == '=') - { - if (input[4*i + 2] == '=') *size += 1; - else *size += 2; - } - else *size += 3; - } + *size = GetSizeBase64(input); unsigned char *buf = (unsigned char *)RL_MALLOC(*size); for (int i = 0; i < *size/3; i++) @@ -3421,7 +3412,7 @@ static Model LoadGLTF(const char *fileName) if (data->materials[i].pbr_metallic_roughness.base_color_texture.texture) { - cgltf_image* img = data->materials[i].pbr_metallic_roughness.base_color_texture.texture->image; + cgltf_image *img = data->materials[i].pbr_metallic_roughness.base_color_texture.texture->image; if (img->uri) { @@ -3443,9 +3434,11 @@ static Model LoadGLTF(const char *fileName) else { int size; - unsigned char *data = DecodeBase64(img->uri+i+1, &size); + unsigned char *data = DecodeBase64(img->uri + i + 1, &size); + int w, h; unsigned char *raw = stbi_load_from_memory(data, size, &w, &h, NULL, 4); + Image image = LoadImagePro(raw, w, h, UNCOMPRESSED_R8G8B8A8); ImageColorTint(&image, tint); texture = LoadTextureFromImage(image); @@ -3474,12 +3467,13 @@ static Model LoadGLTF(const char *fileName) for (int i = 0; i < img->buffer_view->size; i++) { - data[i] = ((unsigned char*)img->buffer_view->buffer->data)[n]; + data[i] = ((unsigned char *)img->buffer_view->buffer->data)[n]; n += stride; } int w, h; unsigned char *raw = stbi_load_from_memory(data, img->buffer_view->size, &w, &h, NULL, 4); + Image image = LoadImagePro(raw, w, h, UNCOMPRESSED_R8G8B8A8); ImageColorTint(&image, tint); texture = LoadTextureFromImage(image); |
