Index: core/cross/bitmap_test.cc |
=================================================================== |
--- core/cross/bitmap_test.cc (revision 20557) |
+++ core/cross/bitmap_test.cc (working copy) |
@@ -358,30 +358,30 @@ |
// Load the texture object from a file. |
String filename = *g_program_path + "/bitmap_test/tga-256x256-24bit.tga"; |
FilePath filepath = UTF8ToFilePath(filename); |
- Bitmap bitmap; |
- EXPECT_TRUE(bitmap.LoadFromFile(filepath, Bitmap::TGA, false)); |
- EXPECT_TRUE(bitmap.image_data() != NULL); |
- EXPECT_FALSE(bitmap.is_cubemap()); |
- EXPECT_EQ(Texture::XRGB8, bitmap.format()); |
- EXPECT_EQ(256, bitmap.width()); |
- EXPECT_EQ(256, bitmap.height()); |
- EXPECT_EQ(1, bitmap.num_mipmaps()); |
- EXPECT_TRUE(TestBitmapData(bitmap, ktga256x256_24bit_BGRX)); |
+ Bitmap::Ref bitmap(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap->LoadFromFile(filepath, Bitmap::TGA, false)); |
+ EXPECT_TRUE(bitmap->image_data() != NULL); |
+ EXPECT_FALSE(bitmap->is_cubemap()); |
+ EXPECT_EQ(Texture::XRGB8, bitmap->format()); |
+ EXPECT_EQ(256, bitmap->width()); |
+ EXPECT_EQ(256, bitmap->height()); |
+ EXPECT_EQ(1, bitmap->num_mipmaps()); |
+ EXPECT_TRUE(TestBitmapData(*bitmap, ktga256x256_24bit_BGRX)); |
} |
// Loads a 32 bit TGA file, checks it against the known data. |
TEST_F(BitmapTest, LoadTGAFile32bit) { |
String filename = *g_program_path + "/bitmap_test/tga-256x256-32bit.tga"; |
FilePath filepath = UTF8ToFilePath(filename); |
- Bitmap bitmap; |
- EXPECT_TRUE(bitmap.LoadFromFile(filepath, Bitmap::TGA, false)); |
- EXPECT_TRUE(bitmap.image_data() != NULL); |
- EXPECT_FALSE(bitmap.is_cubemap()); |
- EXPECT_EQ(Texture::ARGB8, bitmap.format()); |
- EXPECT_EQ(256, bitmap.width()); |
- EXPECT_EQ(256, bitmap.height()); |
- EXPECT_EQ(1, bitmap.num_mipmaps()); |
- EXPECT_TRUE(TestBitmapData(bitmap, ktga256x256_32bit_BGRA)); |
+ Bitmap::Ref bitmap(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap->LoadFromFile(filepath, Bitmap::TGA, false)); |
+ EXPECT_TRUE(bitmap->image_data() != NULL); |
+ EXPECT_FALSE(bitmap->is_cubemap()); |
+ EXPECT_EQ(Texture::ARGB8, bitmap->format()); |
+ EXPECT_EQ(256, bitmap->width()); |
+ EXPECT_EQ(256, bitmap->height()); |
+ EXPECT_EQ(1, bitmap->num_mipmaps()); |
+ EXPECT_TRUE(TestBitmapData(*bitmap, ktga256x256_32bit_BGRA)); |
} |
// Tries to load a 5kx5k TGA file, which should fail. |
@@ -391,48 +391,48 @@ |
// but bails before reading the actual image bytes. |
String filename = *g_program_path + "/bitmap_test/5kx5k.tga"; |
FilePath filepath = UTF8ToFilePath(filename); |
- Bitmap bitmap; |
- EXPECT_FALSE(bitmap.LoadFromFile(filepath, Bitmap::TGA, false)); |
- EXPECT_TRUE(bitmap.image_data() == NULL); |
+ Bitmap::Ref bitmap(new Bitmap(g_service_locator)); |
+ EXPECT_FALSE(bitmap->LoadFromFile(filepath, Bitmap::TGA, false)); |
+ EXPECT_TRUE(bitmap->image_data() == NULL); |
} |
// Loads a JPEG file, checks it against the known data. |
TEST_F(BitmapTest, LoadJPEGFile) { |
String filename = *g_program_path + "/bitmap_test/jpeg-256x256.jpg"; |
FilePath filepath = UTF8ToFilePath(filename); |
- Bitmap bitmap; |
- EXPECT_TRUE(bitmap.LoadFromFile(filepath, Bitmap::JPEG, false)); |
- EXPECT_TRUE(bitmap.image_data() != NULL); |
- EXPECT_FALSE(bitmap.is_cubemap()); |
- EXPECT_EQ(Texture::XRGB8, bitmap.format()); |
- EXPECT_EQ(256, bitmap.width()); |
- EXPECT_EQ(256, bitmap.height()); |
- EXPECT_EQ(1, bitmap.num_mipmaps()); |
- EXPECT_TRUE(TestBitmapData(bitmap, kjpg256x256_BGRX)); |
+ Bitmap::Ref bitmap(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap->LoadFromFile(filepath, Bitmap::JPEG, false)); |
+ EXPECT_TRUE(bitmap->image_data() != NULL); |
+ EXPECT_FALSE(bitmap->is_cubemap()); |
+ EXPECT_EQ(Texture::XRGB8, bitmap->format()); |
+ EXPECT_EQ(256, bitmap->width()); |
+ EXPECT_EQ(256, bitmap->height()); |
+ EXPECT_EQ(1, bitmap->num_mipmaps()); |
+ EXPECT_TRUE(TestBitmapData(*bitmap, kjpg256x256_BGRX)); |
} |
// Tries to load a 5kx5k JPEG file, which should fail. |
TEST_F(BitmapTest, LoadJPEGFileTooLarge) { |
String filename = *g_program_path + "/bitmap_test/5kx5k.jpg"; |
FilePath filepath = UTF8ToFilePath(filename); |
- Bitmap bitmap; |
- EXPECT_FALSE(bitmap.LoadFromFile(filepath, Bitmap::JPEG, false)); |
- EXPECT_TRUE(bitmap.image_data() == NULL); |
+ Bitmap::Ref bitmap(new Bitmap(g_service_locator)); |
+ EXPECT_FALSE(bitmap->LoadFromFile(filepath, Bitmap::JPEG, false)); |
+ EXPECT_TRUE(bitmap->image_data() == NULL); |
} |
// Loads a 24 bit PNG file, checks it against the known data. |
TEST_F(BitmapTest, LoadPNGFile24bit) { |
String filename = *g_program_path + "/bitmap_test/png-256x256-24bit.png"; |
FilePath filepath = UTF8ToFilePath(filename); |
- Bitmap bitmap; |
- EXPECT_TRUE(bitmap.LoadFromFile(filepath, Bitmap::PNG, false)); |
- EXPECT_TRUE(bitmap.image_data() != NULL); |
- EXPECT_FALSE(bitmap.is_cubemap()); |
- EXPECT_EQ(Texture::XRGB8, bitmap.format()); |
- EXPECT_EQ(256, bitmap.width()); |
- EXPECT_EQ(256, bitmap.height()); |
- EXPECT_EQ(1, bitmap.num_mipmaps()); |
- EXPECT_TRUE(TestBitmapData(bitmap, kpng256x256_24bit_BGRX)); |
+ Bitmap::Ref bitmap(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap->LoadFromFile(filepath, Bitmap::PNG, false)); |
+ EXPECT_TRUE(bitmap->image_data() != NULL); |
+ EXPECT_FALSE(bitmap->is_cubemap()); |
+ EXPECT_EQ(Texture::XRGB8, bitmap->format()); |
+ EXPECT_EQ(256, bitmap->width()); |
+ EXPECT_EQ(256, bitmap->height()); |
+ EXPECT_EQ(1, bitmap->num_mipmaps()); |
+ EXPECT_TRUE(TestBitmapData(*bitmap, kpng256x256_24bit_BGRX)); |
} |
// Loads a 24 bit interlaced PNG file, checks it against the known data. |
@@ -440,29 +440,29 @@ |
String filename = *g_program_path + |
"/bitmap_test/png-256x256-24bit-interlaced.png"; |
FilePath filepath = UTF8ToFilePath(filename); |
- Bitmap bitmap; |
- EXPECT_TRUE(bitmap.LoadFromFile(filepath, Bitmap::PNG, false)); |
- EXPECT_TRUE(bitmap.image_data() != NULL); |
- EXPECT_FALSE(bitmap.is_cubemap()); |
- EXPECT_EQ(Texture::XRGB8, bitmap.format()); |
- EXPECT_EQ(256, bitmap.width()); |
- EXPECT_EQ(256, bitmap.height()); |
- EXPECT_EQ(1, bitmap.num_mipmaps()); |
- EXPECT_TRUE(TestBitmapData(bitmap, kpng256x256_24bit_interlaced_BGRX)); |
+ Bitmap::Ref bitmap(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap->LoadFromFile(filepath, Bitmap::PNG, false)); |
+ EXPECT_TRUE(bitmap->image_data() != NULL); |
+ EXPECT_FALSE(bitmap->is_cubemap()); |
+ EXPECT_EQ(Texture::XRGB8, bitmap->format()); |
+ EXPECT_EQ(256, bitmap->width()); |
+ EXPECT_EQ(256, bitmap->height()); |
+ EXPECT_EQ(1, bitmap->num_mipmaps()); |
+ EXPECT_TRUE(TestBitmapData(*bitmap, kpng256x256_24bit_interlaced_BGRX)); |
} |
TEST_F(BitmapTest, LoadPNGFile32bit) { |
String filename = *g_program_path + "/bitmap_test/png-256x256-32bit.png"; |
FilePath filepath = UTF8ToFilePath(filename); |
- Bitmap bitmap; |
- EXPECT_TRUE(bitmap.LoadFromFile(filepath, Bitmap::PNG, false)); |
- EXPECT_TRUE(bitmap.image_data() != NULL); |
- EXPECT_FALSE(bitmap.is_cubemap()); |
- EXPECT_EQ(Texture::ARGB8, bitmap.format()); |
- EXPECT_EQ(256, bitmap.width()); |
- EXPECT_EQ(256, bitmap.height()); |
- EXPECT_EQ(1, bitmap.num_mipmaps()); |
- EXPECT_TRUE(TestBitmapData(bitmap, kpng256x256_32bit_BGRA)); |
+ Bitmap::Ref bitmap(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap->LoadFromFile(filepath, Bitmap::PNG, false)); |
+ EXPECT_TRUE(bitmap->image_data() != NULL); |
+ EXPECT_FALSE(bitmap->is_cubemap()); |
+ EXPECT_EQ(Texture::ARGB8, bitmap->format()); |
+ EXPECT_EQ(256, bitmap->width()); |
+ EXPECT_EQ(256, bitmap->height()); |
+ EXPECT_EQ(1, bitmap->num_mipmaps()); |
+ EXPECT_TRUE(TestBitmapData(*bitmap, kpng256x256_32bit_BGRA)); |
} |
// Loads a palettized PNG file, checks it against the known data. |
@@ -470,15 +470,15 @@ |
String filename = *g_program_path + |
"/bitmap_test/png-256x256-8bit-palette.png"; |
FilePath filepath = UTF8ToFilePath(filename); |
- Bitmap bitmap; |
- EXPECT_TRUE(bitmap.LoadFromFile(filepath, Bitmap::PNG, false)); |
- EXPECT_TRUE(bitmap.image_data() != NULL); |
- EXPECT_FALSE(bitmap.is_cubemap()); |
- EXPECT_EQ(Texture::XRGB8, bitmap.format()); |
- EXPECT_EQ(256, bitmap.width()); |
- EXPECT_EQ(256, bitmap.height()); |
- EXPECT_EQ(1, bitmap.num_mipmaps()); |
- EXPECT_TRUE(TestBitmapData(bitmap, kpng256x256_8bit_palette_BGRX)); |
+ Bitmap::Ref bitmap(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap->LoadFromFile(filepath, Bitmap::PNG, false)); |
+ EXPECT_TRUE(bitmap->image_data() != NULL); |
+ EXPECT_FALSE(bitmap->is_cubemap()); |
+ EXPECT_EQ(Texture::XRGB8, bitmap->format()); |
+ EXPECT_EQ(256, bitmap->width()); |
+ EXPECT_EQ(256, bitmap->height()); |
+ EXPECT_EQ(1, bitmap->num_mipmaps()); |
+ EXPECT_TRUE(TestBitmapData(*bitmap, kpng256x256_8bit_palette_BGRX)); |
} |
// Loads a palettized PNG file, checks it against the known data. |
@@ -486,15 +486,15 @@ |
String filename = *g_program_path + |
"/bitmap_test/png-20x14-4bit-palette.png"; |
FilePath filepath = UTF8ToFilePath(filename); |
- Bitmap bitmap; |
- EXPECT_TRUE(bitmap.LoadFromFile(filepath, Bitmap::PNG, false)); |
- EXPECT_TRUE(bitmap.image_data() != NULL); |
- EXPECT_FALSE(bitmap.is_cubemap()); |
- EXPECT_EQ(Texture::XRGB8, bitmap.format()); |
- EXPECT_EQ(20, bitmap.width()); |
- EXPECT_EQ(14, bitmap.height()); |
- EXPECT_EQ(1, bitmap.num_mipmaps()); |
- EXPECT_TRUE(TestBitmapData(bitmap, kpng20x14_4bit_palette_BGRX)); |
+ Bitmap::Ref bitmap(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap->LoadFromFile(filepath, Bitmap::PNG, false)); |
+ EXPECT_TRUE(bitmap->image_data() != NULL); |
+ EXPECT_FALSE(bitmap->is_cubemap()); |
+ EXPECT_EQ(Texture::XRGB8, bitmap->format()); |
+ EXPECT_EQ(20, bitmap->width()); |
+ EXPECT_EQ(14, bitmap->height()); |
+ EXPECT_EQ(1, bitmap->num_mipmaps()); |
+ EXPECT_TRUE(TestBitmapData(*bitmap, kpng20x14_4bit_palette_BGRX)); |
} |
@@ -502,9 +502,9 @@ |
TEST_F(BitmapTest, LoadPNGFileTooLarge) { |
String filename = *g_program_path + "/bitmap_test/5kx5k.png"; |
FilePath filepath = UTF8ToFilePath(filename); |
- Bitmap bitmap; |
- EXPECT_FALSE(bitmap.LoadFromFile(filepath, Bitmap::PNG, false)); |
- EXPECT_TRUE(bitmap.image_data() == NULL); |
+ Bitmap::Ref bitmap(new Bitmap(g_service_locator)); |
+ EXPECT_FALSE(bitmap->LoadFromFile(filepath, Bitmap::PNG, false)); |
+ EXPECT_TRUE(bitmap->image_data() == NULL); |
} |
// NOTE: Having trouble recognising the alpha channel in a PNG |
@@ -514,14 +514,14 @@ |
String filename = *g_program_path + |
"/bitmap_test/png-256x256-8bit-palette-alpha.png"; |
FilePath filepath = UTF8ToFilePath(filename); |
- Bitmap bitmap; |
- EXPECT_TRUE(bitmap.LoadFromFile(filepath, Bitmap::PNG, false)); |
- EXPECT_TRUE(bitmap.image_data() != NULL); |
- EXPECT_FALSE(bitmap.is_cubemap()); |
- EXPECT_EQ(Texture::ARGB8, bitmap.format()); |
- EXPECT_EQ(256, bitmap.width()); |
- EXPECT_EQ(256, bitmap.height()); |
- EXPECT_EQ(1, bitmap.num_mipmaps()); |
+ Bitmap::Ref bitmap(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap->LoadFromFile(filepath, Bitmap::PNG, false)); |
+ EXPECT_TRUE(bitmap->image_data() != NULL); |
+ EXPECT_FALSE(bitmap->is_cubemap()); |
+ EXPECT_EQ(Texture::ARGB8, bitmap->format()); |
+ EXPECT_EQ(256, bitmap->width()); |
+ EXPECT_EQ(256, bitmap->height()); |
+ EXPECT_EQ(1, bitmap->num_mipmaps()); |
} |
*/ |
@@ -529,15 +529,15 @@ |
TEST_F(BitmapTest, LoadDDSFileDXT1) { |
String filename = *g_program_path + "/bitmap_test/dds-dxt1-256x256.dds"; |
FilePath filepath = UTF8ToFilePath(filename); |
- Bitmap bitmap; |
- EXPECT_TRUE(bitmap.LoadFromFile(filepath, Bitmap::DDS, false)); |
- EXPECT_TRUE(bitmap.image_data() != NULL); |
- EXPECT_FALSE(bitmap.is_cubemap()); |
- EXPECT_EQ(Texture::DXT1, bitmap.format()); |
- EXPECT_EQ(256, bitmap.width()); |
- EXPECT_EQ(256, bitmap.height()); |
- EXPECT_EQ(1, bitmap.num_mipmaps()); |
- EXPECT_TRUE(TestBitmapData(bitmap, kdxt1_256x256)); |
+ Bitmap::Ref bitmap(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap->LoadFromFile(filepath, Bitmap::DDS, false)); |
+ EXPECT_TRUE(bitmap->image_data() != NULL); |
+ EXPECT_FALSE(bitmap->is_cubemap()); |
+ EXPECT_EQ(Texture::DXT1, bitmap->format()); |
+ EXPECT_EQ(256, bitmap->width()); |
+ EXPECT_EQ(256, bitmap->height()); |
+ EXPECT_EQ(1, bitmap->num_mipmaps()); |
+ EXPECT_TRUE(TestBitmapData(*bitmap, kdxt1_256x256)); |
} |
// Loads a DXT1 DDS file with alpha, checks the format. |
@@ -545,15 +545,15 @@ |
String filename = *g_program_path + |
"/bitmap_test/dds-dxt1-256x256-alpha.dds"; |
FilePath filepath = UTF8ToFilePath(filename); |
- Bitmap bitmap; |
- EXPECT_TRUE(bitmap.LoadFromFile(filepath, Bitmap::DDS, false)); |
- EXPECT_TRUE(bitmap.image_data() != NULL); |
- EXPECT_FALSE(bitmap.is_cubemap()); |
- EXPECT_EQ(Texture::DXT1, bitmap.format()); |
- EXPECT_EQ(256, bitmap.width()); |
- EXPECT_EQ(256, bitmap.height()); |
- EXPECT_EQ(1, bitmap.num_mipmaps()); |
- EXPECT_TRUE(TestBitmapData(bitmap, kdxt1_256x256_alpha)); |
+ Bitmap::Ref bitmap(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap->LoadFromFile(filepath, Bitmap::DDS, false)); |
+ EXPECT_TRUE(bitmap->image_data() != NULL); |
+ EXPECT_FALSE(bitmap->is_cubemap()); |
+ EXPECT_EQ(Texture::DXT1, bitmap->format()); |
+ EXPECT_EQ(256, bitmap->width()); |
+ EXPECT_EQ(256, bitmap->height()); |
+ EXPECT_EQ(1, bitmap->num_mipmaps()); |
+ EXPECT_TRUE(TestBitmapData(*bitmap, kdxt1_256x256_alpha)); |
} |
// Loads a DXT1 DDS file with mipmaps, checks the format. |
@@ -561,18 +561,18 @@ |
String filename = *g_program_path + |
"/bitmap_test/dds-dxt1-256x256-mipmap.dds"; |
FilePath filepath = UTF8ToFilePath(filename); |
- Bitmap bitmap; |
- EXPECT_TRUE(bitmap.LoadFromFile(filepath, Bitmap::DDS, false)); |
- EXPECT_TRUE(bitmap.image_data() != NULL); |
- EXPECT_FALSE(bitmap.is_cubemap()); |
- EXPECT_EQ(Texture::DXT1, bitmap.format()); |
- EXPECT_EQ(256, bitmap.width()); |
- EXPECT_EQ(256, bitmap.height()); |
- EXPECT_EQ(9, bitmap.num_mipmaps()); |
- for (unsigned int i = 0; i < bitmap.num_mipmaps(); ++i) { |
- EXPECT_TRUE(bitmap.GetMipData(i, TextureCUBE::FACE_POSITIVE_X) != NULL); |
+ Bitmap::Ref bitmap(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap->LoadFromFile(filepath, Bitmap::DDS, false)); |
+ EXPECT_TRUE(bitmap->image_data() != NULL); |
+ EXPECT_FALSE(bitmap->is_cubemap()); |
+ EXPECT_EQ(Texture::DXT1, bitmap->format()); |
+ EXPECT_EQ(256, bitmap->width()); |
+ EXPECT_EQ(256, bitmap->height()); |
+ EXPECT_EQ(9, bitmap->num_mipmaps()); |
+ for (unsigned int i = 0; i < bitmap->num_mipmaps(); ++i) { |
+ EXPECT_TRUE(bitmap->GetMipData(i, TextureCUBE::FACE_POSITIVE_X) != NULL); |
} |
- EXPECT_TRUE(TestBitmapData(bitmap, kdxt1_256x256_mipmap)); |
+ EXPECT_TRUE(TestBitmapData(*bitmap, kdxt1_256x256_mipmap)); |
} |
// Loads a DXT3 DDS file, checks the format. |
@@ -580,15 +580,15 @@ |
String filename = *g_program_path + |
"/bitmap_test/dds-dxt3-256x256-alpha.dds"; |
FilePath filepath = UTF8ToFilePath(filename); |
- Bitmap bitmap; |
- EXPECT_TRUE(bitmap.LoadFromFile(filepath, Bitmap::DDS, false)); |
- EXPECT_TRUE(bitmap.image_data() != NULL); |
- EXPECT_FALSE(bitmap.is_cubemap()); |
- EXPECT_EQ(Texture::DXT3, bitmap.format()); |
- EXPECT_EQ(256, bitmap.width()); |
- EXPECT_EQ(256, bitmap.height()); |
- EXPECT_EQ(1, bitmap.num_mipmaps()); |
- EXPECT_TRUE(TestBitmapData(bitmap, kdxt3_256x256_alpha)); |
+ Bitmap::Ref bitmap(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap->LoadFromFile(filepath, Bitmap::DDS, false)); |
+ EXPECT_TRUE(bitmap->image_data() != NULL); |
+ EXPECT_FALSE(bitmap->is_cubemap()); |
+ EXPECT_EQ(Texture::DXT3, bitmap->format()); |
+ EXPECT_EQ(256, bitmap->width()); |
+ EXPECT_EQ(256, bitmap->height()); |
+ EXPECT_EQ(1, bitmap->num_mipmaps()); |
+ EXPECT_TRUE(TestBitmapData(*bitmap, kdxt3_256x256_alpha)); |
} |
// Loads a DXT3 DDS file with mipmaps, checks the format. |
@@ -596,18 +596,18 @@ |
String filename = *g_program_path + |
"/bitmap_test/dds-dxt3-256x256-mipmap.dds"; |
FilePath filepath = UTF8ToFilePath(filename); |
- Bitmap bitmap; |
- EXPECT_TRUE(bitmap.LoadFromFile(filepath, Bitmap::DDS, false)); |
- EXPECT_TRUE(bitmap.image_data() != NULL); |
- EXPECT_FALSE(bitmap.is_cubemap()); |
- EXPECT_EQ(Texture::DXT3, bitmap.format()); |
- EXPECT_EQ(256, bitmap.width()); |
- EXPECT_EQ(256, bitmap.height()); |
- EXPECT_EQ(9, bitmap.num_mipmaps()); |
- for (unsigned int i = 0; i < bitmap.num_mipmaps(); ++i) { |
- EXPECT_TRUE(bitmap.GetMipData(i, TextureCUBE::FACE_POSITIVE_X) != NULL); |
+ Bitmap::Ref bitmap(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap->LoadFromFile(filepath, Bitmap::DDS, false)); |
+ EXPECT_TRUE(bitmap->image_data() != NULL); |
+ EXPECT_FALSE(bitmap->is_cubemap()); |
+ EXPECT_EQ(Texture::DXT3, bitmap->format()); |
+ EXPECT_EQ(256, bitmap->width()); |
+ EXPECT_EQ(256, bitmap->height()); |
+ EXPECT_EQ(9, bitmap->num_mipmaps()); |
+ for (unsigned int i = 0; i < bitmap->num_mipmaps(); ++i) { |
+ EXPECT_TRUE(bitmap->GetMipData(i, TextureCUBE::FACE_POSITIVE_X) != NULL); |
} |
- EXPECT_TRUE(TestBitmapData(bitmap, kdxt3_256x256_mipmap)); |
+ EXPECT_TRUE(TestBitmapData(*bitmap, kdxt3_256x256_mipmap)); |
} |
// Loads a DXT5 DDS file, checks the format. |
@@ -615,15 +615,15 @@ |
String filename = *g_program_path + |
"/bitmap_test/dds-dxt5-256x256-alpha.dds"; |
FilePath filepath = UTF8ToFilePath(filename); |
- Bitmap bitmap; |
- EXPECT_TRUE(bitmap.LoadFromFile(filepath, Bitmap::DDS, false)); |
- EXPECT_TRUE(bitmap.image_data() != NULL); |
- EXPECT_FALSE(bitmap.is_cubemap()); |
- EXPECT_EQ(Texture::DXT5, bitmap.format()); |
- EXPECT_EQ(256, bitmap.width()); |
- EXPECT_EQ(256, bitmap.height()); |
- EXPECT_EQ(1, bitmap.num_mipmaps()); |
- EXPECT_TRUE(TestBitmapData(bitmap, kdxt5_256x256_alpha)); |
+ Bitmap::Ref bitmap(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap->LoadFromFile(filepath, Bitmap::DDS, false)); |
+ EXPECT_TRUE(bitmap->image_data() != NULL); |
+ EXPECT_FALSE(bitmap->is_cubemap()); |
+ EXPECT_EQ(Texture::DXT5, bitmap->format()); |
+ EXPECT_EQ(256, bitmap->width()); |
+ EXPECT_EQ(256, bitmap->height()); |
+ EXPECT_EQ(1, bitmap->num_mipmaps()); |
+ EXPECT_TRUE(TestBitmapData(*bitmap, kdxt5_256x256_alpha)); |
} |
// Loads a DXT5 DDS file with mipmaps, checks the format. |
@@ -631,18 +631,18 @@ |
String filename = *g_program_path + |
"/bitmap_test/dds-dxt5-256x256-mipmap.dds"; |
FilePath filepath = UTF8ToFilePath(filename); |
- Bitmap bitmap; |
- EXPECT_TRUE(bitmap.LoadFromFile(filepath, Bitmap::DDS, false)); |
- EXPECT_TRUE(bitmap.image_data() != NULL); |
- EXPECT_FALSE(bitmap.is_cubemap()); |
- EXPECT_EQ(Texture::DXT5, bitmap.format()); |
- EXPECT_EQ(256, bitmap.width()); |
- EXPECT_EQ(256, bitmap.height()); |
- EXPECT_EQ(9, bitmap.num_mipmaps()); |
- for (unsigned int i = 0; i < bitmap.num_mipmaps(); ++i) { |
- EXPECT_TRUE(bitmap.GetMipData(i, TextureCUBE::FACE_POSITIVE_X) != NULL); |
+ Bitmap::Ref bitmap(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap->LoadFromFile(filepath, Bitmap::DDS, false)); |
+ EXPECT_TRUE(bitmap->image_data() != NULL); |
+ EXPECT_FALSE(bitmap->is_cubemap()); |
+ EXPECT_EQ(Texture::DXT5, bitmap->format()); |
+ EXPECT_EQ(256, bitmap->width()); |
+ EXPECT_EQ(256, bitmap->height()); |
+ EXPECT_EQ(9, bitmap->num_mipmaps()); |
+ for (unsigned int i = 0; i < bitmap->num_mipmaps(); ++i) { |
+ EXPECT_TRUE(bitmap->GetMipData(i, TextureCUBE::FACE_POSITIVE_X) != NULL); |
} |
- EXPECT_TRUE(TestBitmapData(bitmap, kdxt5_256x256_mipmap)); |
+ EXPECT_TRUE(TestBitmapData(*bitmap, kdxt5_256x256_mipmap)); |
} |
// Tries to load a 5kx5k DDS file, which should fail. |
@@ -652,9 +652,9 @@ |
// but bails before reading the actual image bytes. |
String filename = *g_program_path + "/bitmap_test/5kx5k.dds"; |
FilePath filepath = UTF8ToFilePath(filename); |
- Bitmap bitmap; |
- EXPECT_FALSE(bitmap.LoadFromFile(filepath, Bitmap::DDS, false)); |
- EXPECT_TRUE(bitmap.image_data() == NULL); |
+ Bitmap::Ref bitmap(new Bitmap(g_service_locator)); |
+ EXPECT_FALSE(bitmap->LoadFromFile(filepath, Bitmap::DDS, false)); |
+ EXPECT_TRUE(bitmap->image_data() == NULL); |
} |
@@ -854,4 +854,421 @@ |
EXPECT_EQ(0, memcmp(data.get(), kScaleUPDataPOT, dst_size)); |
} |
+static unsigned char kpng_8x4_drawImage[128] = { |
+ // Raw dest image used in drawimage test. |
+ 0x30, 0x60, 0xc0, 0xff, 0x32, 0x64, 0xc8, 0xff, |
+ 0x34, 0x68, 0xd0, 0xff, 0x36, 0x6c, 0xd8, 0xff, |
+ 0x38, 0x70, 0xe0, 0xff, 0x3a, 0x74, 0xe8, 0xff, |
+ 0x3c, 0x78, 0xf0, 0xff, 0x3e, 0x7c, 0xf8, 0xff, |
+ 0x20, 0x40, 0x80, 0xff, 0x22, 0x44, 0x88, 0xff, |
+ 0x24, 0x48, 0x90, 0xff, 0x26, 0x4c, 0x98, 0xff, |
+ 0x28, 0x50, 0xa0, 0xff, 0x2a, 0x54, 0xa8, 0xff, |
+ 0x2c, 0x58, 0xb0, 0xff, 0x2e, 0x5c, 0xb8, 0xff, |
+ 0x10, 0x20, 0x40, 0xff, 0x12, 0x24, 0x48, 0xff, |
+ 0x14, 0x28, 0x50, 0xff, 0x16, 0x2c, 0x58, 0xff, |
+ 0x18, 0x30, 0x60, 0xff, 0x1a, 0x34, 0x68, 0xff, |
+ 0x1c, 0x38, 0x70, 0xff, 0x1e, 0x3c, 0x78, 0xff, |
+ 0x00, 0x00, 0x00, 0xff, 0x02, 0x04, 0x08, 0xff, |
+ 0x04, 0x08, 0x10, 0xff, 0x06, 0x0c, 0x18, 0xff, |
+ 0x08, 0x10, 0x20, 0xff, 0x0a, 0x14, 0x28, 0xff, |
+ 0x0c, 0x18, 0x30, 0xff, 0x0e, 0x1c, 0x38, 0xff, |
+}; |
+ |
+static unsigned char kpng_8x4_drawImage_top_left[128] = { |
+ // expected result of drawimage on top left corner of dest image. |
+ 0x30, 0x60, 0xc0, 0xff, 0x32, 0x64, 0xc8, 0xff, |
+ 0x34, 0x68, 0xd0, 0xff, 0x36, 0x6c, 0xd8, 0xff, |
+ 0x38, 0x70, 0xe0, 0xff, 0x3a, 0x74, 0xe8, 0xff, |
+ 0x3c, 0x78, 0xf0, 0xff, 0x3e, 0x7c, 0xf8, 0xff, |
+ 0x2c, 0x2c, 0x2c, 0xff, 0x2d, 0x2d, 0x2d, 0xff, |
+ 0x2e, 0x2e, 0x2e, 0xff, 0x26, 0x4c, 0x98, 0xff, |
+ 0x28, 0x50, 0xa0, 0xff, 0x2a, 0x54, 0xa8, 0xff, |
+ 0x2c, 0x58, 0xb0, 0xff, 0x2e, 0x5c, 0xb8, 0xff, |
+ 0x28, 0x28, 0x28, 0xff, 0x29, 0x29, 0x29, 0xff, |
+ 0x2a, 0x2a, 0x2a, 0xff, 0x16, 0x2c, 0x58, 0xff, |
+ 0x18, 0x30, 0x60, 0xff, 0x1a, 0x34, 0x68, 0xff, |
+ 0x1c, 0x38, 0x70, 0xff, 0x1e, 0x3c, 0x78, 0xff, |
+ 0x24, 0x24, 0x24, 0xff, 0x25, 0x25, 0x25, 0xff, |
+ 0x26, 0x26, 0x26, 0xff, 0x06, 0x0c, 0x18, 0xff, |
+ 0x08, 0x10, 0x20, 0xff, 0x0a, 0x14, 0x28, 0xff, |
+ 0x0c, 0x18, 0x30, 0xff, 0x0e, 0x1c, 0x38, 0xff, |
+}; |
+ |
+static unsigned char kpng_8x4_drawImage_top[128] = { |
+ // expected result of drawimage on top bound of dest image. |
+ 0x30, 0x60, 0xc0, 0xff, 0x32, 0x64, 0xc8, 0xff, |
+ 0x34, 0x68, 0xd0, 0xff, 0x36, 0x6c, 0xd8, 0xff, |
+ 0x38, 0x70, 0xe0, 0xff, 0x3a, 0x74, 0xe8, 0xff, |
+ 0x3c, 0x78, 0xf0, 0xff, 0x3e, 0x7c, 0xf8, 0xff, |
+ 0x20, 0x40, 0x80, 0xff, 0x22, 0x44, 0x88, 0xff, |
+ 0x24, 0x48, 0x90, 0xff, 0x26, 0x4c, 0x98, 0xff, |
+ 0x28, 0x50, 0xa0, 0xff, 0x2a, 0x54, 0xa8, 0xff, |
+ 0x2c, 0x58, 0xb0, 0xff, 0x2e, 0x5c, 0xb8, 0xff, |
+ 0x10, 0x20, 0x40, 0xff, 0x12, 0x24, 0x48, 0xff, |
+ 0x2b, 0x2b, 0x2b, 0xff, 0x2c, 0x2c, 0x2c, 0xff, |
+ 0x2d, 0x2d, 0x2d, 0xff, 0x2e, 0x2e, 0x2e, 0xff, |
+ 0x1c, 0x38, 0x70, 0xff, 0x1e, 0x3c, 0x78, 0xff, |
+ 0x00, 0x00, 0x00, 0xff, 0x02, 0x04, 0x08, 0xff, |
+ 0x27, 0x27, 0x27, 0xff, 0x28, 0x28, 0x28, 0xff, |
+ 0x29, 0x29, 0x29, 0xff, 0x2a, 0x2a, 0x2a, 0xff, |
+ 0x0c, 0x18, 0x30, 0xff, 0x0e, 0x1c, 0x38, 0xff, |
+}; |
+ |
+static unsigned char kpng_8x4_drawImage_top_right[128] = { |
+ // expected result of drawimage on top right corner of dest image. |
+ 0x30, 0x60, 0xc0, 0xff, 0x32, 0x64, 0xc8, 0xff, |
+ 0x34, 0x68, 0xd0, 0xff, 0x36, 0x6c, 0xd8, 0xff, |
+ 0x38, 0x70, 0xe0, 0xff, 0x3a, 0x74, 0xe8, 0xff, |
+ 0x3c, 0x78, 0xf0, 0xff, 0x3e, 0x7c, 0xf8, 0xff, |
+ 0x20, 0x40, 0x80, 0xff, 0x22, 0x44, 0x88, 0xff, |
+ 0x24, 0x48, 0x90, 0xff, 0x26, 0x4c, 0x98, 0xff, |
+ 0x28, 0x50, 0xa0, 0xff, 0x2b, 0x2b, 0x2b, 0xff, |
+ 0x2c, 0x2c, 0x2c, 0xff, 0x2d, 0x2d, 0x2d, 0xff, |
+ 0x10, 0x20, 0x40, 0xff, 0x12, 0x24, 0x48, 0xff, |
+ 0x14, 0x28, 0x50, 0xff, 0x16, 0x2c, 0x58, 0xff, |
+ 0x18, 0x30, 0x60, 0xff, 0x27, 0x27, 0x27, 0xff, |
+ 0x28, 0x28, 0x28, 0xff, 0x29, 0x29, 0x29, 0xff, |
+ 0x00, 0x00, 0x00, 0xff, 0x02, 0x04, 0x08, 0xff, |
+ 0x04, 0x08, 0x10, 0xff, 0x06, 0x0c, 0x18, 0xff, |
+ 0x08, 0x10, 0x20, 0xff, 0x23, 0x23, 0x23, 0xff, |
+ 0x24, 0x24, 0x24, 0xff, 0x25, 0x25, 0x25, 0xff, |
+}; |
+ |
+static unsigned char kpng_8x4_drawImage_right[128] = { |
+ // expected result of drawimage on right bound of dest image. |
+ 0x30, 0x60, 0xc0, 0xff, 0x32, 0x64, 0xc8, 0xff, |
+ 0x34, 0x68, 0xd0, 0xff, 0x36, 0x6c, 0xd8, 0xff, |
+ 0x38, 0x70, 0xe0, 0xff, 0x2b, 0x2b, 0x2b, 0xff, |
+ 0x2c, 0x2c, 0x2c, 0xff, 0x2d, 0x2d, 0x2d, 0xff, |
+ 0x20, 0x40, 0x80, 0xff, 0x22, 0x44, 0x88, 0xff, |
+ 0x24, 0x48, 0x90, 0xff, 0x26, 0x4c, 0x98, 0xff, |
+ 0x28, 0x50, 0xa0, 0xff, 0x27, 0x27, 0x27, 0xff, |
+ 0x28, 0x28, 0x28, 0xff, 0x29, 0x29, 0x29, 0xff, |
+ 0x10, 0x20, 0x40, 0xff, 0x12, 0x24, 0x48, 0xff, |
+ 0x14, 0x28, 0x50, 0xff, 0x16, 0x2c, 0x58, 0xff, |
+ 0x18, 0x30, 0x60, 0xff, 0x23, 0x23, 0x23, 0xff, |
+ 0x24, 0x24, 0x24, 0xff, 0x25, 0x25, 0x25, 0xff, |
+ 0x00, 0x00, 0x00, 0xff, 0x02, 0x04, 0x08, 0xff, |
+ 0x04, 0x08, 0x10, 0xff, 0x06, 0x0c, 0x18, 0xff, |
+ 0x08, 0x10, 0x20, 0xff, 0x1f, 0x1f, 0x1f, 0xff, |
+ 0x20, 0x20, 0x20, 0xff, 0x21, 0x21, 0x21, 0xff, |
+}; |
+ |
+static unsigned char kpng_8x4_drawImage_bottom_right[128] = { |
+ // expected result of drawimage on bottom right corner of dest image. |
+ 0x30, 0x60, 0xc0, 0xff, 0x32, 0x64, 0xc8, 0xff, |
+ 0x34, 0x68, 0xd0, 0xff, 0x36, 0x6c, 0xd8, 0xff, |
+ 0x38, 0x70, 0xe0, 0xff, 0x27, 0x27, 0x27, 0xff, |
+ 0x28, 0x28, 0x28, 0xff, 0x29, 0x29, 0x29, 0xff, |
+ 0x20, 0x40, 0x80, 0xff, 0x22, 0x44, 0x88, 0xff, |
+ 0x24, 0x48, 0x90, 0xff, 0x26, 0x4c, 0x98, 0xff, |
+ 0x28, 0x50, 0xa0, 0xff, 0x23, 0x23, 0x23, 0xff, |
+ 0x24, 0x24, 0x24, 0xff, 0x25, 0x25, 0x25, 0xff, |
+ 0x10, 0x20, 0x40, 0xff, 0x12, 0x24, 0x48, 0xff, |
+ 0x14, 0x28, 0x50, 0xff, 0x16, 0x2c, 0x58, 0xff, |
+ 0x18, 0x30, 0x60, 0xff, 0x1f, 0x1f, 0x1f, 0xff, |
+ 0x20, 0x20, 0x20, 0xff, 0x21, 0x21, 0x21, 0xff, |
+ 0x00, 0x00, 0x00, 0xff, 0x02, 0x04, 0x08, 0xff, |
+ 0x04, 0x08, 0x10, 0xff, 0x06, 0x0c, 0x18, 0xff, |
+ 0x08, 0x10, 0x20, 0xff, 0x0a, 0x14, 0x28, 0xff, |
+ 0x0c, 0x18, 0x30, 0xff, 0x0e, 0x1c, 0x38, 0xff, |
+}; |
+ |
+static unsigned char kpng_8x4_drawImage_bottom[128] = { |
+ // expected result of drawimage on bottom bound of dest image. |
+ 0x30, 0x60, 0xc0, 0xff, 0x32, 0x64, 0xc8, 0xff, |
+ 0x27, 0x27, 0x27, 0xff, 0x28, 0x28, 0x28, 0xff, |
+ 0x29, 0x29, 0x29, 0xff, 0x2a, 0x2a, 0x2a, 0xff, |
+ 0x3c, 0x78, 0xf0, 0xff, 0x3e, 0x7c, 0xf8, 0xff, |
+ 0x20, 0x40, 0x80, 0xff, 0x22, 0x44, 0x88, 0xff, |
+ 0x23, 0x23, 0x23, 0xff, 0x24, 0x24, 0x24, 0xff, |
+ 0x25, 0x25, 0x25, 0xff, 0x26, 0x26, 0x26, 0xff, |
+ 0x2c, 0x58, 0xb0, 0xff, 0x2e, 0x5c, 0xb8, 0xff, |
+ 0x10, 0x20, 0x40, 0xff, 0x12, 0x24, 0x48, 0xff, |
+ 0x1f, 0x1f, 0x1f, 0xff, 0x20, 0x20, 0x20, 0xff, |
+ 0x21, 0x21, 0x21, 0xff, 0x22, 0x22, 0x22, 0xff, |
+ 0x1c, 0x38, 0x70, 0xff, 0x1e, 0x3c, 0x78, 0xff, |
+ 0x00, 0x00, 0x00, 0xff, 0x02, 0x04, 0x08, 0xff, |
+ 0x04, 0x08, 0x10, 0xff, 0x06, 0x0c, 0x18, 0xff, |
+ 0x08, 0x10, 0x20, 0xff, 0x0a, 0x14, 0x28, 0xff, |
+ 0x0c, 0x18, 0x30, 0xff, 0x0e, 0x1c, 0x38, 0xff, |
+}; |
+ |
+static unsigned char kpng_8x4_drawImage_bottom_left[128] = { |
+ // expected result of drawimage on bottom left corner of dest image. |
+ 0x28, 0x28, 0x28, 0xff, 0x29, 0x29, 0x29, 0xff, |
+ 0x2a, 0x2a, 0x2a, 0xff, 0x36, 0x6c, 0xd8, 0xff, |
+ 0x38, 0x70, 0xe0, 0xff, 0x3a, 0x74, 0xe8, 0xff, |
+ 0x3c, 0x78, 0xf0, 0xff, 0x3e, 0x7c, 0xf8, 0xff, |
+ 0x24, 0x24, 0x24, 0xff, 0x25, 0x25, 0x25, 0xff, |
+ 0x26, 0x26, 0x26, 0xff, 0x26, 0x4c, 0x98, 0xff, |
+ 0x28, 0x50, 0xa0, 0xff, 0x2a, 0x54, 0xa8, 0xff, |
+ 0x2c, 0x58, 0xb0, 0xff, 0x2e, 0x5c, 0xb8, 0xff, |
+ 0x20, 0x20, 0x20, 0xff, 0x21, 0x21, 0x21, 0xff, |
+ 0x22, 0x22, 0x22, 0xff, 0x16, 0x2c, 0x58, 0xff, |
+ 0x18, 0x30, 0x60, 0xff, 0x1a, 0x34, 0x68, 0xff, |
+ 0x1c, 0x38, 0x70, 0xff, 0x1e, 0x3c, 0x78, 0xff, |
+ 0x00, 0x00, 0x00, 0xff, 0x02, 0x04, 0x08, 0xff, |
+ 0x04, 0x08, 0x10, 0xff, 0x06, 0x0c, 0x18, 0xff, |
+ 0x08, 0x10, 0x20, 0xff, 0x0a, 0x14, 0x28, 0xff, |
+ 0x0c, 0x18, 0x30, 0xff, 0x0e, 0x1c, 0x38, 0xff, |
+}; |
+ |
+static unsigned char kpng_8x4_drawImage_left[128] = { |
+ // expected result of drawimage on left bound of dest image. |
+ 0x2c, 0x2c, 0x2c, 0xff, 0x2d, 0x2d, 0x2d, 0xff, |
+ 0x2e, 0x2e, 0x2e, 0xff, 0x36, 0x6c, 0xd8, 0xff, |
+ 0x38, 0x70, 0xe0, 0xff, 0x3a, 0x74, 0xe8, 0xff, |
+ 0x3c, 0x78, 0xf0, 0xff, 0x3e, 0x7c, 0xf8, 0xff, |
+ 0x28, 0x28, 0x28, 0xff, 0x29, 0x29, 0x29, 0xff, |
+ 0x2a, 0x2a, 0x2a, 0xff, 0x26, 0x4c, 0x98, 0xff, |
+ 0x28, 0x50, 0xa0, 0xff, 0x2a, 0x54, 0xa8, 0xff, |
+ 0x2c, 0x58, 0xb0, 0xff, 0x2e, 0x5c, 0xb8, 0xff, |
+ 0x24, 0x24, 0x24, 0xff, 0x25, 0x25, 0x25, 0xff, |
+ 0x26, 0x26, 0x26, 0xff, 0x16, 0x2c, 0x58, 0xff, |
+ 0x18, 0x30, 0x60, 0xff, 0x1a, 0x34, 0x68, 0xff, |
+ 0x1c, 0x38, 0x70, 0xff, 0x1e, 0x3c, 0x78, 0xff, |
+ 0x20, 0x20, 0x20, 0xff, 0x21, 0x21, 0x21, 0xff, |
+ 0x22, 0x22, 0x22, 0xff, 0x06, 0x0c, 0x18, 0xff, |
+ 0x08, 0x10, 0x20, 0xff, 0x0a, 0x14, 0x28, 0xff, |
+ 0x0c, 0x18, 0x30, 0xff, 0x0e, 0x1c, 0x38, 0xff, |
+}; |
+ |
+static unsigned char kpng_8x4_drawImage_scale_up[128] = { |
+ // expected result of scale up from 2x2 to 8x4. |
+ 0x3f, 0x3f, 0x3f, 0xff, 0x48, 0x48, 0x48, 0xff, |
+ 0x51, 0x51, 0x51, 0xff, 0x5a, 0x5a, 0x5a, 0xff, |
+ 0x64, 0x64, 0x64, 0xff, 0x6d, 0x6d, 0x6d, 0xff, |
+ 0x76, 0x76, 0x76, 0xff, 0x7f, 0x7f, 0x7f, 0xff, |
+ 0x2a, 0x2a, 0x2a, 0xff, 0x32, 0x32, 0x32, 0xff, |
+ 0x39, 0x39, 0x39, 0xff, 0x41, 0x41, 0x41, 0xff, |
+ 0x48, 0x48, 0x48, 0xff, 0x50, 0x50, 0x50, 0xff, |
+ 0x57, 0x57, 0x57, 0xff, 0x5f, 0x5f, 0x5f, 0xff, |
+ 0x15, 0x15, 0x15, 0xff, 0x1b, 0x1b, 0x1b, 0xff, |
+ 0x21, 0x21, 0x21, 0xff, 0x27, 0x27, 0x27, 0xff, |
+ 0x2d, 0x2d, 0x2d, 0xff, 0x33, 0x33, 0x33, 0xff, |
+ 0x39, 0x39, 0x39, 0xff, 0x3f, 0x3f, 0x3f, 0xff, |
+ 0x00, 0x00, 0x00, 0xff, 0x04, 0x04, 0x04, 0xff, |
+ 0x09, 0x09, 0x09, 0xff, 0x0d, 0x0d, 0x0d, 0xff, |
+ 0x12, 0x12, 0x12, 0xff, 0x16, 0x16, 0x16, 0xff, |
+ 0x1b, 0x1b, 0x1b, 0xff, 0x1f, 0x1f, 0x1f, 0xff, |
+}; |
+ |
+static unsigned char kpng_8x4_drawImage_scale_down[128] = { |
+ // expected result of scale down from 8x8 to 4x4. |
+ 0xa8, 0xa8, 0xa8, 0xff, 0xaf, 0xaf, 0xaf, 0xff, |
+ 0xb6, 0xb6, 0xb6, 0xff, 0xbd, 0xbd, 0xbd, 0xff, |
+ 0x38, 0x70, 0xe0, 0xff, 0x3a, 0x74, 0xe8, 0xff, |
+ 0x3c, 0x78, 0xf0, 0xff, 0x3e, 0x7c, 0xf8, 0xff, |
+ 0x70, 0x70, 0x70, 0xff, 0x77, 0x77, 0x77, 0xff, |
+ 0x7e, 0x7e, 0x7e, 0xff, 0x85, 0x85, 0x85, 0xff, |
+ 0x28, 0x50, 0xa0, 0xff, 0x2a, 0x54, 0xa8, 0xff, |
+ 0x2c, 0x58, 0xb0, 0xff, 0x2e, 0x5c, 0xb8, 0xff, |
+ 0x38, 0x38, 0x38, 0xff, 0x3f, 0x3f, 0x3f, 0xff, |
+ 0x46, 0x46, 0x46, 0xff, 0x4d, 0x4d, 0x4d, 0xff, |
+ 0x18, 0x30, 0x60, 0xff, 0x1a, 0x34, 0x68, 0xff, |
+ 0x1c, 0x38, 0x70, 0xff, 0x1e, 0x3c, 0x78, 0xff, |
+ 0x00, 0x00, 0x00, 0xff, 0x07, 0x07, 0x07, 0xff, |
+ 0x0e, 0x0e, 0x0e, 0xff, 0x15, 0x15, 0x15, 0xff, |
+ 0x08, 0x10, 0x20, 0xff, 0x0a, 0x14, 0x28, 0xff, |
+ 0x0c, 0x18, 0x30, 0xff, 0x0e, 0x1c, 0x38, 0xff, |
+}; |
+ |
+static unsigned char kpng_8x4_drawImage_scale_out[128] = { |
+ // expected result of scale src image larger than dest image. |
+ 0x63, 0x63, 0x63, 0xff, 0x65, 0x65, 0x65, 0xff, |
+ 0x67, 0x67, 0x67, 0xff, 0x69, 0x69, 0x69, 0xff, |
+ 0x6c, 0x6c, 0x6c, 0xff, 0x6e, 0x6e, 0x6e, 0xff, |
+ 0x70, 0x70, 0x70, 0xff, 0x72, 0x72, 0x72, 0xff, |
+ 0x53, 0x53, 0x53, 0xff, 0x55, 0x55, 0x55, 0xff, |
+ 0x57, 0x57, 0x57, 0xff, 0x59, 0x59, 0x59, 0xff, |
+ 0x5c, 0x5c, 0x5c, 0xff, 0x5e, 0x5e, 0x5e, 0xff, |
+ 0x60, 0x60, 0x60, 0xff, 0x62, 0x62, 0x62, 0xff, |
+ 0x43, 0x43, 0x43, 0xff, 0x45, 0x45, 0x45, 0xff, |
+ 0x47, 0x47, 0x47, 0xff, 0x49, 0x49, 0x49, 0xff, |
+ 0x4c, 0x4c, 0x4c, 0xff, 0x4e, 0x4e, 0x4e, 0xff, |
+ 0x50, 0x50, 0x50, 0xff, 0x52, 0x52, 0x52, 0xff, |
+ 0x33, 0x33, 0x33, 0xff, 0x35, 0x35, 0x35, 0xff, |
+ 0x37, 0x37, 0x37, 0xff, 0x39, 0x39, 0x39, 0xff, |
+ 0x3c, 0x3c, 0x3c, 0xff, 0x3e, 0x3e, 0x3e, 0xff, |
+ 0x40, 0x40, 0x40, 0xff, 0x42, 0x42, 0x42, 0xff, |
+}; |
+ |
+static unsigned char kpng_8x4_drawImage_flip[128] = { |
+ // expected result of flip src image. |
+ 0x30, 0x60, 0xc0, 0xff, 0x32, 0x64, 0xc8, 0xff, |
+ 0x22, 0x22, 0x22, 0xff, 0x21, 0x21, 0x21, 0xff, |
+ 0x20, 0x20, 0x20, 0xff, 0x1f, 0x1f, 0x1f, 0xff, |
+ 0x3c, 0x78, 0xf0, 0xff, 0x3e, 0x7c, 0xf8, 0xff, |
+ 0x20, 0x40, 0x80, 0xff, 0x22, 0x44, 0x88, 0xff, |
+ 0x26, 0x26, 0x26, 0xff, 0x25, 0x25, 0x25, 0xff, |
+ 0x24, 0x24, 0x24, 0xff, 0x23, 0x23, 0x23, 0xff, |
+ 0x2c, 0x58, 0xb0, 0xff, 0x2e, 0x5c, 0xb8, 0xff, |
+ 0x10, 0x20, 0x40, 0xff, 0x12, 0x24, 0x48, 0xff, |
+ 0x2a, 0x2a, 0x2a, 0xff, 0x29, 0x29, 0x29, 0xff, |
+ 0x28, 0x28, 0x28, 0xff, 0x27, 0x27, 0x27, 0xff, |
+ 0x1c, 0x38, 0x70, 0xff, 0x1e, 0x3c, 0x78, 0xff, |
+ 0x00, 0x00, 0x00, 0xff, 0x02, 0x04, 0x08, 0xff, |
+ 0x2e, 0x2e, 0x2e, 0xff, 0x2d, 0x2d, 0x2d, 0xff, |
+ 0x2c, 0x2c, 0x2c, 0xff, 0x2b, 0x2b, 0x2b, 0xff, |
+ 0x0c, 0x18, 0x30, 0xff, 0x0e, 0x1c, 0x38, 0xff, |
+}; |
+ |
+static unsigned char kpng_8x4_drawImage_argb8[128] = { |
+ // expected result of drawimage with rgb8 format. |
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
+ 0xca, 0xca, 0xca, 0x3e, 0xd7, 0xd7, 0xd7, 0x9a, |
+ 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0xff, |
+ 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, |
+ 0x00, 0x00, 0x00, 0x00, 0xca, 0xca, 0xca, 0x3e, |
+ 0xe6, 0xe6, 0xe6, 0xdc, 0xfc, 0xfc, 0xfc, 0xfe, |
+ 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, |
+ 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, |
+ 0xca, 0xca, 0xca, 0x3e, 0xe6, 0xe6, 0xe6, 0xdc, |
+ 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, |
+ 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, |
+ 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, |
+ 0xc7, 0xc7, 0xc7, 0x83, 0xf4, 0xf4, 0xf4, 0xfb, |
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
+ 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0xff, |
+ 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, |
+}; |
+ |
+// DrawImage from another bitmap on different positions, |
+// compare with expected results. |
+TEST_F(BitmapTest, DrawImage) { |
+ // path of dest image. |
+ String fname_dst = *g_program_path + |
+ "/bitmap_test/png-8x4-24bit-drawimage-dest.png"; |
+ |
+ // load three src bitmaps in different sizes from files. |
+ String filename_2x2_src = *g_program_path + |
+ "/bitmap_test/png-2x2-24bit-drawimage-src.png"; |
+ Bitmap::Ref bitmap_2x2_src(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap_2x2_src->LoadFromFile(UTF8ToFilePath(filename_2x2_src), |
+ Bitmap::PNG, false)); |
+ |
+ String filename_4x4_src = *g_program_path + |
+ "/bitmap_test/png-4x4-24bit-drawimage-src.png"; |
+ Bitmap::Ref bitmap_4x4_src(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap_4x4_src->LoadFromFile(UTF8ToFilePath(filename_4x4_src), |
+ Bitmap::PNG, false)); |
+ |
+ String filename_8x8_src = *g_program_path + |
+ "/bitmap_test/png-8x8-24bit-drawimage-src.png"; |
+ Bitmap::Ref bitmap_8x8_src(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap_8x8_src->LoadFromFile(UTF8ToFilePath(filename_8x8_src), |
+ Bitmap::PNG, false)); |
+ |
+ // test draw image on top left boundary. |
+ Bitmap::Ref bitmap_dest_top_left(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap_dest_top_left->LoadFromFile(UTF8ToFilePath(fname_dst), |
+ Bitmap::PNG, false)); |
+ // test whether the raw image is loaded correctly or not. |
+ EXPECT_TRUE(bitmap_dest_top_left->image_data() != NULL); |
+ EXPECT_TRUE(TestBitmapData(*bitmap_dest_top_left, kpng_8x4_drawImage)); |
+ bitmap_dest_top_left->DrawImage(bitmap_4x4_src, 0, 0, 4, 4, -1, -1, 4, 4); |
+ EXPECT_TRUE(TestBitmapData(*bitmap_dest_top_left, |
+ kpng_8x4_drawImage_top_left)); |
+ |
+ // test draw image on top boundary. |
+ Bitmap::Ref bitmap_dest_top(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap_dest_top->LoadFromFile(UTF8ToFilePath(fname_dst), |
+ Bitmap::PNG, false)); |
+ bitmap_dest_top->DrawImage(bitmap_4x4_src, 0, 0, 4, 4, 2, -2, 4, 4); |
+ EXPECT_TRUE(TestBitmapData(*bitmap_dest_top, kpng_8x4_drawImage_top)); |
+ |
+ // test draw image on top right boundary. |
+ Bitmap::Ref bitmap_dest_top_right(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap_dest_top_right->LoadFromFile(UTF8ToFilePath(fname_dst), |
+ Bitmap::PNG, false)); |
+ bitmap_dest_top_right->DrawImage(bitmap_4x4_src, 0, 0, 4, 4, 5, -1, 4, 4); |
+ EXPECT_TRUE(TestBitmapData(*bitmap_dest_top_right, |
+ kpng_8x4_drawImage_top_right)); |
+ |
+ // test draw image on right boundary. |
+ Bitmap::Ref bitmap_dest_right(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap_dest_right->LoadFromFile(UTF8ToFilePath(fname_dst), |
+ Bitmap::PNG, false)); |
+ bitmap_dest_right->DrawImage(bitmap_4x4_src, 0, 0, 4, 4, 5, 0, 4, 4); |
+ EXPECT_TRUE(TestBitmapData(*bitmap_dest_right, kpng_8x4_drawImage_right)); |
+ |
+ // test draw image on bottom right boundary. |
+ Bitmap::Ref bitmap_dest_bottom_right(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap_dest_bottom_right->LoadFromFile(UTF8ToFilePath(fname_dst), |
+ Bitmap::PNG, false)); |
+ bitmap_dest_bottom_right->DrawImage(bitmap_4x4_src, 0, 0, 4, 4, 5, 1, 4, 4); |
+ EXPECT_TRUE(TestBitmapData(*bitmap_dest_bottom_right, |
+ kpng_8x4_drawImage_bottom_right)); |
+ |
+ // test draw image on bottom boundary. |
+ Bitmap::Ref bitmap_dest_bottom(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap_dest_bottom->LoadFromFile(UTF8ToFilePath(fname_dst), |
+ Bitmap::PNG, false)); |
+ bitmap_dest_bottom->DrawImage(bitmap_4x4_src, 0, 0, 4, 4, 2, 1, 4, 4); |
+ EXPECT_TRUE(TestBitmapData(*bitmap_dest_bottom, kpng_8x4_drawImage_bottom)); |
+ |
+ // test draw image on bottom left boundary. |
+ Bitmap::Ref bitmap_dest_bottom_left(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap_dest_bottom_left->LoadFromFile(UTF8ToFilePath(fname_dst), |
+ Bitmap::PNG, false)); |
+ bitmap_dest_bottom_left->DrawImage(bitmap_4x4_src, 0, 0, 4, 4, -1, 1, 4, 4); |
+ EXPECT_TRUE(TestBitmapData(*bitmap_dest_bottom_left, |
+ kpng_8x4_drawImage_bottom_left)); |
+ |
+ // test draw image on left boundary. |
+ Bitmap::Ref bitmap_dest_left(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap_dest_left->LoadFromFile(UTF8ToFilePath(fname_dst), |
+ Bitmap::PNG, false)); |
+ bitmap_dest_left->DrawImage(bitmap_4x4_src, 0, 0, 4, 4, -1, 0, 4, 4); |
+ EXPECT_TRUE(TestBitmapData(*bitmap_dest_left, kpng_8x4_drawImage_left)); |
+ |
+ // test scale up. |
+ Bitmap::Ref bitmap_dest_scale_up(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap_dest_scale_up->LoadFromFile(UTF8ToFilePath(fname_dst), |
+ Bitmap::PNG, false)); |
+ bitmap_dest_scale_up->DrawImage(bitmap_2x2_src, 0, 0, 2, 2, 0, 0, 8, 4); |
+ EXPECT_TRUE(TestBitmapData(*bitmap_dest_scale_up, |
+ kpng_8x4_drawImage_scale_up)); |
+ |
+ // test scale down. |
+ Bitmap::Ref bitmap_dest_scale_down(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap_dest_scale_down->LoadFromFile(UTF8ToFilePath(fname_dst), |
+ Bitmap::PNG, false)); |
+ bitmap_dest_scale_down->DrawImage(bitmap_8x8_src, 0, 0, 8, 8, 0, 0, 4, 4); |
+ EXPECT_TRUE(TestBitmapData(*bitmap_dest_scale_down, |
+ kpng_8x4_drawImage_scale_down)); |
+ |
+ // test scale up to a large size. |
+ Bitmap::Ref bitmap_dest_scale_out(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap_dest_scale_out->LoadFromFile(UTF8ToFilePath(fname_dst), |
+ Bitmap::PNG, false)); |
+ bitmap_dest_scale_out->DrawImage(bitmap_8x8_src, 0, 0, 8, 8, -2, -4, 12, 12); |
+ EXPECT_TRUE(TestBitmapData(*bitmap_dest_scale_out, |
+ kpng_8x4_drawImage_scale_out)); |
+ |
+ // test flip an image on both x and y cooridnates. |
+ Bitmap::Ref bitmap_dest_flip(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap_dest_flip->LoadFromFile(UTF8ToFilePath(fname_dst), |
+ Bitmap::PNG, false)); |
+ bitmap_dest_flip->DrawImage(bitmap_4x4_src, 0, 0, 4, 4, 5, 3, -4, -4); |
+ EXPECT_TRUE(TestBitmapData(*bitmap_dest_flip, kpng_8x4_drawImage_flip)); |
+ |
+ // test draw image on argb8 format. |
+ String fname_dst_argb8 = *g_program_path + |
+ "/bitmap_test/" + |
+ "png-8x4-24bit-drawimage-argb8-dest.png"; |
+ Bitmap::Ref bitmap_dest_argb8(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap_dest_argb8->LoadFromFile(UTF8ToFilePath(fname_dst_argb8), |
+ Bitmap::PNG, false)); |
+ String fname_src_argb8 = *g_program_path + |
+ "/bitmap_test/" + |
+ "png-4x4-24bit-drawimage-argb8-src.png"; |
+ Bitmap::Ref bitmap_src_argb8(new Bitmap(g_service_locator)); |
+ EXPECT_TRUE(bitmap_src_argb8->LoadFromFile(UTF8ToFilePath(fname_src_argb8), |
+ Bitmap::PNG, false)); |
+ bitmap_dest_argb8->DrawImage(bitmap_src_argb8, 0, 0, 4, 4, 0, 0, 4, 4); |
+ EXPECT_TRUE(TestBitmapData(*bitmap_dest_argb8, kpng_8x4_drawImage_argb8)); |
+} |
+ |
} // namespace |