diff --git a/lib/pandagl/src/image/reader.c b/lib/pandagl/src/image/reader.c index 86c3e598b..c06ef998b 100644 --- a/lib/pandagl/src/image/reader.c +++ b/lib/pandagl/src/image/reader.c @@ -42,7 +42,7 @@ static pd_image_reader_methods_t pd_image_readers[] = { pd_jpeg_reader_read_header, pd_jpeg_reader_start, pd_jpeg_reader_read_row, pd_jpeg_reader_finish }, #endif - { ".bmp", PD_BMP_READER, pd_bmp_reader_create, pd_png_reader_destroy, + { ".bmp", PD_BMP_READER, pd_bmp_reader_create, pd_bmp_reader_destroy, pd_bmp_reader_jmpbuf, pd_bmp_reader_read_header, pd_bmp_reader_start, pd_bmp_reader_read_row, pd_bmp_reader_finish }, }; @@ -222,6 +222,7 @@ pd_error_t pd_image_reader_read_data(pd_image_reader_t *reader, } pd_image_reader_start(reader); for (reader->pass = 0; reader->pass < reader->passes; ++reader->pass) { + reader->read_row_index = 0; while (reader->read_row_index < reader->header.height) { pd_image_reader_read_row(reader, out); } diff --git a/tests/cases/test_image_reader.c b/tests/cases/test_image_reader.c index dc7d9850d..cb237f7a6 100644 --- a/tests/cases/test_image_reader.c +++ b/tests/cases/test_image_reader.c @@ -15,22 +15,20 @@ void test_image_reader(void) { - pd_canvas_t img; - int i, width, height; - char file[256], *formats[] = { "png", "bmp", "jpg" }; + pd_canvas_t img; + int i; + char file[256], *formats[] = { "png", "bmp", "jpg" }; - for (i = 0; i < 3; ++i) { - width = height = 0; - pd_canvas_init(&img); - snprintf(file, 255, "test_image_reader.%s", formats[i]); - logger_debug("image file: %s\n", file); - ctest_equal_int("check pd_read_image_from_file", pd_read_image_from_file(file, &img), - 0); - ctest_equal_int("check image width with ReadImageFile", img.width, 91); - ctest_equal_int("check image height with ReadImageFile", img.height, 69); - logger_debug("image size: (%d, %d)\n", width, height); - ctest_equal_int("check image width with GetImageSize", width, 91); - ctest_equal_int("check image height with GetImageSize", height, 69); - pd_canvas_destroy(&img); - } + for (i = 0; i < 3; ++i) { + pd_canvas_init(&img); + snprintf(file, 255, "test_image_reader.%s", formats[i]); + logger_debug("image file: %s\n", file); + ctest_equal_int("check pd_read_image_from_file", + pd_read_image_from_file(file, &img), 0); + ctest_equal_int("check image width with ReadImageFile", + img.width, 91); + ctest_equal_int("check image height with ReadImageFile", + img.height, 69); + pd_canvas_destroy(&img); + } }