Merge branch 'devel/master' into tizen
[platform/core/uifw/dali-demo.git] / examples / rendering-basic-pbr / ktx-loader.cpp
index 1c3268d..175d6c3 100644 (file)
@@ -19,8 +19,6 @@
 #include "ktx-loader.h"
 
 // EXTERNAL INCLUDES
-#include <dali/devel-api/images/pixel-devel.h>
-#include <dali/devel-api/images/pixel-data-devel.h>
 #include <memory.h>
 #include <stdio.h>
 #include <stdint.h>
@@ -49,38 +47,38 @@ struct KtxFileHeader
 /**
  * Convert KTX format to Dali::Pixel::Format
  */
-bool ConvertPixelFormat(const uint32_t ktxPixelFormat, Dali::DevelPixel::Format& format)
+bool ConvertPixelFormat(const uint32_t ktxPixelFormat, Dali::Pixel::Format& format)
 {
   switch( ktxPixelFormat )
   {
     case 0x93B0: // GL_COMPRESSED_RGBA_ASTC_4x4_KHR
     {
-      format = Dali::DevelPixel::COMPRESSED_RGBA_ASTC_4x4_KHR;
+      format = Dali::Pixel::COMPRESSED_RGBA_ASTC_4x4_KHR;
       break;
     }
     case 0x881B:// GL_RGB16F
     {
-      format = Dali::DevelPixel::RGB16F;
+      format = Dali::Pixel::RGB16F;
       break;
     }
     case 0x8815: // GL_RGB32F
     {
-      format = Dali::DevelPixel::RGB32F;
+      format = Dali::Pixel::RGB32F;
       break;
     }
     case 0x8C3A: // GL_R11F_G11F_B10F
     {
-      format = Dali::DevelPixel::RGB32F;
+      format = Dali::Pixel::RGB32F;
       break;
     }
     case 0x8D7C: // GL_RGBA8UI
     {
-      format = Dali::DevelPixel::RGBA8888;
+      format = Dali::Pixel::RGBA8888;
       break;
     }
     case 0x8D7D: // GL_RGB8UI
     {
-      format = Dali::DevelPixel::RGB888;
+      format = Dali::Pixel::RGB888;
       break;
     }
     default:
@@ -106,6 +104,7 @@ bool LoadCubeMapFromKtxFile( const std::string& path, CubeData& cubedata )
   int result = fread(&header,1,sizeof(KtxFileHeader),fp);
   if( 0 == result )
   {
+    fclose( fp );
     return false;
   }
 
@@ -114,14 +113,27 @@ bool LoadCubeMapFromKtxFile( const std::string& path, CubeData& cubedata )
   // Skip the key-values:
   const long int imageSizeOffset = sizeof(KtxFileHeader) + header.bytesOfKeyValueData;
 
-  fseek(fp, imageSizeOffset, SEEK_END);
+  if( fseek(fp, imageSizeOffset, SEEK_END) )
+  {
+    fclose( fp );
+    return false;
+  }
+
   lSize = ftell(fp);
+  if( lSize == -1L )
+  {
+    fclose( fp );
+    return false;
+  }
+
   rewind(fp);
 
-  if(fseek(fp, imageSizeOffset, SEEK_SET))
+  if( fseek(fp, imageSizeOffset, SEEK_SET) )
   {
+    fclose( fp );
     return false;
   }
+
   cubedata.img.resize(header.numberOfFaces);
 
   for(unsigned int face=0; face < header.numberOfFaces; ++face) //array_element must be 0 or 1
@@ -135,13 +147,15 @@ bool LoadCubeMapFromKtxFile( const std::string& path, CubeData& cubedata )
   unsigned int imgSize[6];
   unsigned char* imgPointer = buffer;
   result = fread(buffer,1,lSize,fp);
+
+  fclose(fp);
+
   if( 0 == result )
   {
+    free( buffer );
     return false;
   }
 
-  fclose(fp);
-
   if( 0 == header.numberOfMipmapLevels )
   {
     header.numberOfMipmapLevels = 1u;
@@ -162,7 +176,7 @@ bool LoadCubeMapFromKtxFile( const std::string& path, CubeData& cubedata )
     header.pixelHeight = 1u;
   }
 
-  Dali::DevelPixel::Format daliformat = DevelPixel::RGB888;
+  Dali::Pixel::Format daliformat = Pixel::RGB888;
 
   ConvertPixelFormat(header.glInternalFormat, daliformat);
 
@@ -185,7 +199,7 @@ bool LoadCubeMapFromKtxFile( const std::string& path, CubeData& cubedata )
         memcpy(img[face],imgPointer,byteSize);
         imgSize[face] = byteSize;
         imgPointer += byteSize;
-        cubedata.img[face][mipmapLevel] = DevelPixelData::New( img[face], imgSize[face], header.pixelWidth , header.pixelHeight , daliformat, PixelData::FREE );
+        cubedata.img[face][mipmapLevel] = PixelData::New( img[face], imgSize[face], header.pixelWidth , header.pixelHeight , daliformat, PixelData::FREE );
       }
     }
     header.pixelHeight/=2u;