X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fscene3d-view%2Fgltf-loader.cpp;h=291b95fe860c0c8e7e815335da6180a2830c4f62;hp=4115fb7b87009820e87cf9572f995dc69b22061d;hb=15f1c1df72116aff4fa95a04f5aed0793748dee0;hpb=7742c07e1fdc5d78bab7c2c9cc5d7803f04fb012 diff --git a/dali-toolkit/internal/controls/scene3d-view/gltf-loader.cpp b/dali-toolkit/internal/controls/scene3d-view/gltf-loader.cpp index 4115fb7..291b95f 100644 --- a/dali-toolkit/internal/controls/scene3d-view/gltf-loader.cpp +++ b/dali-toolkit/internal/controls/scene3d-view/gltf-loader.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 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. @@ -20,10 +20,9 @@ #include // EXTERNAL INCLUDES -#include #include #include -#include +#include namespace Dali { @@ -237,18 +236,19 @@ void FitBuffer( Dali::Vector& bufferDestination, Dali::Vector& buffe template bool ReadBinFile( Vector &dataBuffer, std::string url, int32_t offset, int32_t count ) { - dataBuffer.Resize( count ); - FILE* fp = fopen( url.c_str(), "rb" ); - if( fp == NULL ) + Dali::FileStream fileStream( url, FileStream::READ | FileStream::BINARY ); + FILE* fp = fileStream.GetFile(); + if( !fp ) { return false; } + + dataBuffer.Resize( count ); ssize_t result = -1; if( !fseek( fp, offset, SEEK_SET ) ) { result = fread( &dataBuffer[0], sizeof( T ), count, fp ); } - fclose( fp ); return ( result >= 0 ); } @@ -1228,11 +1228,16 @@ bool Loader::LoadScene( const std::string& filePath, Internal::Scene3dView& scen bool Loader::ParseGltf( const std::string& filePath ) { - std::ifstream fileStream( filePath.c_str() ); - std::string fileBuffer( ( std::istreambuf_iterator( fileStream ) ), - ( std::istreambuf_iterator() ) ); - mParser = Dali::Toolkit::JsonParser::New(); + std::streampos bufferSize = 0; + Dali::Vector buffer; + std::string fileBuffer; + if( !Dali::FileLoader::ReadFile( filePath, bufferSize, buffer, FileLoader::FileType::BINARY ) ) + { + return false; + } + fileBuffer.assign( &buffer[0], bufferSize ); + mParser = Dali::Toolkit::JsonParser::New(); return mParser.Parse( fileBuffer ); }