{
public:
ImageViewUrlApp( Application& application )
- : mApplication( application )
+ : mApplication( application ),
+ mDeltaPropertyIndex( Property::INVALID_INDEX )
{
// Connect to the Application's Init signal
mApplication.InitSignal().Connect( this, &ImageViewUrlApp::Create );
{
std::string fullpath( path );
fullpath += filename;
- FILE* f = fopen( fullpath.c_str(), "rb" );
- if( !f )
+ FILE* file = fopen( fullpath.c_str(), "rb" );
+ if( ! file )
{
return false;
}
- fseek( f, 0, SEEK_END );
- size_t size = ftell( f );
- fseek( f, 0, SEEK_SET );
- output.resize( size + 1 );
- std::fill( output.begin(), output.end(), 0 );
- ssize_t result = fread( output.data(), size, 1, f );
- fclose( f );
-
- return ( result >= 0 );
+
+ bool retValue = false;
+ if( ! fseek( file, 0, SEEK_END ) )
+ {
+ long int size = ftell( file );
+
+ if( ( size != -1L ) &&
+ ( ! fseek( file, 0, SEEK_SET ) ) )
+ {
+ output.resize( size + 1 );
+ std::fill( output.begin(), output.end(), 0 );
+ ssize_t result = fread( output.data(), size, 1, file );
+
+ retValue = ( result >= 0 );
+ }
+ }
+
+ fclose( file );
+ return retValue;
}
/**
std::string shaderFSH( shaderName );
shaderVSH += ".vsh";
shaderFSH += ".fsh";
- LoadShaderCode( DEMO_SHADER_DIR, shaderVSH.c_str(), bufV );
- LoadShaderCode( DEMO_SHADER_DIR, shaderFSH.c_str(), bufF );
- Shader shader = Shader::New( bufV.data(), bufF.data() );
+
+ Shader shader;
+ if( LoadShaderCode( DEMO_SHADER_DIR, shaderVSH.c_str(), bufV ) &&
+ LoadShaderCode( DEMO_SHADER_DIR, shaderFSH.c_str(), bufF ) )
+ {
+ shader = Shader::New( bufV.data(), bufF.data() );
+ }
return shader;
}
int result = fread(&header,1,sizeof(KtxFileHeader),fp);
if( 0 == result )
{
+ fclose( fp );
return false;
}
// 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
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;
*/
bool LoadShaderCode( const std::string& fullpath, std::vector<char>& output )
{
- FILE* f = fopen( fullpath.c_str(), "rb" );
-
- if( NULL == f )
+ FILE* file = fopen( fullpath.c_str(), "rb" );
+ if( NULL == file )
{
return false;
}
- fseek( f, 0, SEEK_END );
- size_t size = ftell( f );
- fseek( f, 0, SEEK_SET );
- output.resize( size + 1 );
- std::fill( output.begin(), output.end(), 0 );
- ssize_t result = fread( output.data(), size, 1, f );
- fclose( f );
- return ( result >= 0 );
+ bool retValue = false;
+ if( ! fseek( file, 0, SEEK_END ) )
+ {
+ long int size = ftell( file );
+
+ if( ( size != -1L ) &&
+ ( ! fseek( file, 0, SEEK_SET ) ) )
+ {
+ output.resize( size + 1 );
+ std::fill( output.begin(), output.end(), 0 );
+ ssize_t result = fread( output.data(), size, 1, file );
+
+ retValue = ( result >= 0 );
+ }
+ }
+ fclose( file );
+ return retValue;
}
/**