瀏覽代碼

Review some issues, view description

- Review RPI compilation (core_drop_files not supported)
- Review ImageFormat(), some issues
- GetTextureData() reviewed for RPI
pull/382/head
Ray San 7 年之前
父節點
當前提交
415e7e972c
共有 3 個文件被更改,包括 24 次插入22 次删除
  1. +4
    -1
      examples/Makefile
  2. +2
    -2
      src/rlgl.c
  3. +18
    -19
      src/textures.c

+ 4
- 1
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))

+ 2
- 2
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);

+ 18
- 19
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*i">31/255));
g = (unsigned char)(round((float)pixels[k].g*i">63/255));
b = (unsigned char)(round((float)pixels[k].b*i">31/255));
r = (unsigned char)(round((float)pixels[i].r*f">31.0f/255));
g = (unsigned char)(round((float)pixels[i].g*f">63.0f/255));
b = (unsigned char)(round((float)pixels[i].b*f">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*i">31/255));
g = (unsigned char)(round((float)pixels[i].g*i">31/255));
b = (unsigned char)(round((float)pixels[i].b*i">31/255));
r = (unsigned char)(round((float)pixels[i].r*f">31.0f/255));
g = (unsigned char)(round((float)pixels[i].g*f">31.0f/255));
b = (unsigned char)(round((float)pixels[i].b*f">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*i">15/255));
g = (unsigned char)(round((float)pixels[i].g*i">15/255));
b = (unsigned char)(round((float)pixels[i].b*i">15/255));
a = (unsigned char)(round((float)pixels[i].a*i">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*f">15.0f/255));
g = (unsigned char)(round((float)pixels[i].g*f">15.0f/255));
b = (unsigned char)(round((float)pixels[i].b*f">15.0f/255));
a = (unsigned char)(round((float)pixels[i].a*f">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;

Loading…
取消
儲存