X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-adaptor-internal%2Fimage-loaders.cpp;h=a5fd26eaaa3ec7db390a5fa76478662f0d5ea794;hb=7293e3a2e2bbdf4c8904515e8d2d08d3afd23305;hp=0c0efca7c4e7e487e4b098fc60ca568a1c95cf84;hpb=310c7768b4c13d505f56c0ab2f1dc8986f4ebb7b;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/automated-tests/src/dali-adaptor-internal/image-loaders.cpp b/automated-tests/src/dali-adaptor-internal/image-loaders.cpp index 0c0efca..a5fd26e 100644 --- a/automated-tests/src/dali-adaptor-internal/image-loaders.cpp +++ b/automated-tests/src/dali-adaptor-internal/image-loaders.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2016 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,15 +19,6 @@ #include -class StubImageLoaderClient : public Dali::TizenPlatform::ResourceLoadingClient -{ -public: - StubImageLoaderClient() {} - ~StubImageLoaderClient() {} - - virtual void InterruptionPoint() const {} -}; - AutoCloseFile::AutoCloseFile( FILE *fp ) : filePtr( fp ) { @@ -92,7 +83,7 @@ LoadFunctions::LoadFunctions( LoadBitmapHeaderFunction _header, LoadBitmapFuncti { } -void TestImageLoading( const ImageDetails& image, const LoadFunctions& functions ) +void TestImageLoading( const ImageDetails& image, const LoadFunctions& functions, Dali::Integration::Bitmap::Profile bitmapProfile ) { FILE* fp = fopen( image.name.c_str() , "rb" ); AutoCloseFile autoClose( fp ); @@ -111,12 +102,11 @@ void TestImageLoading( const ImageDetails& image, const LoadFunctions& functions fseek( fp, 0, 0 ); // Create a bitmap object and store a pointer to that object so it is destroyed at the end. - Dali::Integration::Bitmap * bitmap = Dali::Integration::Bitmap::New( Dali::Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_RETAIN ); + Dali::Integration::Bitmap * bitmap = Dali::Integration::Bitmap::New( bitmapProfile, ResourcePolicy::OWNED_RETAIN ); Dali::Integration::BitmapPtr bitmapPtr( bitmap ); - // Load Bitmap and check its return values. - DALI_TEST_CHECK( functions.loader( StubImageLoaderClient(), input, *bitmap ) ); + DALI_TEST_CHECK( functions.loader( input, *bitmap ) ); DALI_TEST_EQUALS( image.width, bitmap->GetImageWidth(), TEST_LOCATION ); DALI_TEST_EQUALS( image.height, bitmap->GetImageHeight(), TEST_LOCATION ); @@ -134,6 +124,55 @@ void TestImageLoading( const ImageDetails& image, const LoadFunctions& functions } } +void CompareLoadedImageData( const ImageDetails& image, const LoadFunctions& functions, const uint32_t* master ) +{ + FILE* filePointer = fopen( image.name.c_str() , "rb" ); + AutoCloseFile autoClose( filePointer ); + DALI_TEST_CHECK( filePointer != NULL ); + + // Check the header file. + unsigned int width = 0, height = 0; + const Dali::TizenPlatform::ImageLoader::Input input( filePointer ); + DALI_TEST_CHECK( functions.header( input, width, height ) ); + + DALI_TEST_EQUALS( width, image.reportedWidth, TEST_LOCATION ); + DALI_TEST_EQUALS( height, image.reportedHeight, TEST_LOCATION ); + + // Loading the header moves the pointer within the file so reset to start of file. + fseek( filePointer, 0, SEEK_SET ); + + // Create a bitmap object and store a pointer to that object so it is destroyed at the end. + Dali::Integration::Bitmap * bitmap = Dali::Integration::Bitmap::New( Dali::Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_RETAIN ); + Dali::Integration::BitmapPtr bitmapPointer( bitmap ); + + // Load Bitmap and check its return values. + DALI_TEST_CHECK( functions.loader( input, *bitmap ) ); + DALI_TEST_EQUALS( image.width, bitmap->GetImageWidth(), TEST_LOCATION ); + DALI_TEST_EQUALS( image.height, bitmap->GetImageHeight(), TEST_LOCATION ); + + // Check the bytes per pixel. + const Pixel::Format pixelFormat = bitmap->GetPixelFormat(); + const unsigned int bytesPerPixel = Pixel::GetBytesPerPixel( pixelFormat ); + + // Compare buffer generated with reference buffer. + Dali::PixelBuffer* pBitmapData( bitmapPointer->GetBuffer() ); + const uint32_t* pMaster( master ); + + // Loop through each pixel in the bitmap. + for ( unsigned int i = 0; i < image.refBufferSize; ++i, ++pMaster ) + { + unsigned int color = 0; + // Loop through each byte per pixel, to build up a color value for that pixel. + for( unsigned int j = 0; j < bytesPerPixel; ++j, ++pBitmapData ) + { + color = ( color << 8 ) | *pBitmapData; + } + + // Check the color value is what we expect. + DALI_TEST_EQUALS( color, *pMaster, TEST_LOCATION ); + } +} + void DumpImageBufferToTempFile( std::string filename, std::string targetFilename, const LoadFunctions& functions ) { FILE* fp = fopen( filename.c_str() , "rb" ); @@ -143,7 +182,7 @@ void DumpImageBufferToTempFile( std::string filename, std::string targetFilename Dali::Integration::BitmapPtr bitmapPtr( bitmap ); const Dali::TizenPlatform::ImageLoader::Input input( fp ); - DALI_TEST_CHECK( functions.loader( StubImageLoaderClient(), input, *bitmap ) ); + DALI_TEST_CHECK( functions.loader( input, *bitmap ) ); Dali::PixelBuffer* bufferPtr( bitmapPtr->GetBuffer() );