summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRay San <[email protected]>2017-10-30 13:51:46 +0100
committerRay San <[email protected]>2017-10-30 13:51:46 +0100
commit415e7e972c920cbf3194c4dfbbfe402d7c4406c5 (patch)
tree5d99b048337fe996343d3c7f518e7ac71c39aef7
parentf460b3842e76e110daf0d1e81c39fb9f1b44e95e (diff)
downloadraylib-415e7e972c920cbf3194c4dfbbfe402d7c4406c5.tar.gz
raylib-415e7e972c920cbf3194c4dfbbfe402d7c4406c5.zip
Review some issues, view description
- Review RPI compilation (core_drop_files not supported) - Review ImageFormat(), some issues - GetTextureData() reviewed for RPI
-rw-r--r--examples/Makefile5
-rw-r--r--src/rlgl.c4
-rw-r--r--src/textures.c37
3 files changed, 24 insertions, 22 deletions
diff --git a/examples/Makefile b/examples/Makefile
index 2942f110..485368c4 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -267,7 +267,6 @@ EXAMPLES = \
core/core_input_gamepad \
core/core_random_values \
core/core_color_select \
- core/core_drop_files \
core/core_storage_values \
core/core_gestures_detection \
core/core_3d_mode \
@@ -326,6 +325,10 @@ EXAMPLES = \
physac/physics_restitution \
physac/physics_shatter \
fix_dylib \
+
+ifneq ($(PLATFORM),PLATFORM_RPI)
+ EXAMPLES += core/core_drop_files
+endif
CURRENT_MAKEFILE = $(lastword $(MAKEFILE_LIST))
diff --git a/src/rlgl.c b/src/rlgl.c
index 35c812a6..5854a494 100644
--- a/src/rlgl.c
+++ b/src/rlgl.c
@@ -2226,8 +2226,8 @@ void *rlReadTexturePixels(Texture2D texture)
glEnable(GL_DEPTH_TEST);
//glDisable(GL_BLEND);
- glViewport(0, 0, width, height);
- rlOrtho(0.0, width, height, 0.0, 0.0, 1.0);
+ glViewport(0, 0, texture.width, texture.height);
+ rlOrtho(0.0, texture.width, texture.height, 0.0, 0.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glUseProgram(GetShaderDefault().id);
diff --git a/src/textures.c b/src/textures.c
index 814c3028..5e71d029 100644
--- a/src/textures.c
+++ b/src/textures.c
@@ -536,14 +536,13 @@ Image GetTextureData(Texture2D texture)
{
image.width = texture.width;
image.height = texture.height;
+ image.format = texture.format;
image.mipmaps = 1;
- if (rlGetVersion() == OPENGL_ES_20)
- {
- // NOTE: Data retrieved on OpenGL ES 2.0 comes as RGBA (from framebuffer)
- image.format = UNCOMPRESSED_R8G8B8A8;
- }
- else image.format = texture.format;
+ // NOTE: Data retrieved on OpenGL ES 2.0 should be RGBA
+ // coming from FBO color buffer, but it seems original
+ // texture format is retrieved on RPI... weird...
+ //image.format = UNCOMPRESSED_R8G8B8A8;
TraceLog(LOG_INFO, "Texture pixel data obtained successfully");
}
@@ -622,9 +621,9 @@ void ImageFormat(Image *image, int newFormat)
for (int i = 0; i < image->width*image->height; i++)
{
- r = (unsigned char)(round((float)pixels[k].r*31/255));
- g = (unsigned char)(round((float)pixels[k].g*63/255));
- b = (unsigned char)(round((float)pixels[k].b*31/255));
+ r = (unsigned char)(round((float)pixels[i].r*31.0f/255));
+ g = (unsigned char)(round((float)pixels[i].g*63.0f/255));
+ b = (unsigned char)(round((float)pixels[i].b*31.0f/255));
((unsigned short *)image->data)[i] = (unsigned short)r << 11 | (unsigned short)g << 5 | (unsigned short)b;
}
@@ -655,9 +654,9 @@ void ImageFormat(Image *image, int newFormat)
for (int i = 0; i < image->width*image->height; i++)
{
- r = (unsigned char)(round((float)pixels[i].r*31/255));
- g = (unsigned char)(round((float)pixels[i].g*31/255));
- b = (unsigned char)(round((float)pixels[i].b*31/255));
+ r = (unsigned char)(round((float)pixels[i].r*31.0f/255));
+ g = (unsigned char)(round((float)pixels[i].g*31.0f/255));
+ b = (unsigned char)(round((float)pixels[i].b*31.0f/255));
a = (pixels[i].a > ALPHA_THRESHOLD) ? 1 : 0;
((unsigned short *)image->data)[i] = (unsigned short)r << 11 | (unsigned short)g << 6 | (unsigned short)b << 1 | (unsigned short)a;
@@ -675,12 +674,12 @@ void ImageFormat(Image *image, int newFormat)
for (int i = 0; i < image->width*image->height; i++)
{
- r = (unsigned char)(round((float)pixels[i].r*15/255));
- g = (unsigned char)(round((float)pixels[i].g*15/255));
- b = (unsigned char)(round((float)pixels[i].b*15/255));
- a = (unsigned char)(round((float)pixels[i].a*15/255));
-
- ((unsigned short *)image->data)[i] = (unsigned short)r << 12 | (unsigned short)g << 8| (unsigned short)b << 4| (unsigned short)a;
+ r = (unsigned char)(round((float)pixels[i].r*15.0f/255));
+ g = (unsigned char)(round((float)pixels[i].g*15.0f/255));
+ b = (unsigned char)(round((float)pixels[i].b*15.0f/255));
+ a = (unsigned char)(round((float)pixels[i].a*15.0f/255));
+
+ ((unsigned short *)image->data)[i] = (unsigned short)r << 12 | (unsigned short)g << 8 | (unsigned short)b << 4 | (unsigned short)a;
}
} break;
@@ -801,7 +800,7 @@ void ImageToPOT(Image *image, Color fillColor)
// Copy an image to a new image
Image ImageCopy(Image image)
{
- Image newImage;
+ Image newImage = { 0 };
int byteSize = image.width*image.height;