Skip to content

Commit

Permalink
Some fixes/cleanup to Javed's AAssetManager changes: fix mistake I ma…
Browse files Browse the repository at this point in the history
…de merging changes for iOS, fix MSVC compile errors, whitespace/commenting cleanup.
  • Loading branch information
danginsburg committed Oct 3, 2013
1 parent d19cfed commit 36a4223
Showing 1 changed file with 61 additions and 52 deletions.
113 changes: 61 additions & 52 deletions Common/Source/esUtil.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,10 @@
#include <android/log.h>
#include <android_native_app_glue.h>
#include <android/asset_manager.h>
#endif // ANDROID
typedef AAsset esFile;
#else
typedef FILE esFile;
#endif

#ifdef __APPLE__
#include "FileWrapper.h"
Expand Down Expand Up @@ -292,56 +295,70 @@ void ESUTIL_API esLogMessage ( const char *formatStr, ... )
va_end ( params );
}

///
// esFileRead()
//
// Wrapper for platform specific File open
//
static esFile* esFileOpen(void* ioContext, const char *fileName)
{
esFile *pFile = NULL;

#ifdef ANDROID
typedef AAsset esFile;
if (ioContext != NULL)
{
AAssetManager* assetManager = (AAssetManager *) ioContext;
pFile = AAssetManager_open(assetManager, fileName, AASSET_MODE_BUFFER);
}
#else
typedef FILE esFile;
#ifdef __APPLE__
// iOS: Remap the filename to a path that can be opened from the bundle.
fileName = GetBundleFileName( fileName );
#endif

pFile = fopen( fileName, "rb" );
#endif

static esFile* esFileOpen(void* ioContext, char *fileName)
{
esFile *pFile = NULL;

#ifdef ANDROID
if (ioContext != NULL)
{
AAssetManager* assetManager = (AAssetManager *) ioContext;
pFile = AAssetManager_open(assetManager, fileName, AASSET_MODE_BUFFER);
}
#else
pFile = fopen( fileName, "rb" );
#endif

return pFile;
return pFile;
}

///
// esFileRead()
//
// Wrapper for platform specific File close
//
static void esFileClose(esFile* pFile)
{
if (pFile != NULL)
{
{
if (pFile != NULL)
{
#ifdef ANDROID
AAsset_close(pFile);
AAsset_close(pFile);
#else
fclose(pFile);
pFile = NULL;
fclose(pFile);
pFile = NULL;
#endif
}
}
}

///
// esFileRead()
//
// Wrapper for platform specific File read
//
static int esFileRead(esFile* pFile, int bytesToRead, void* buffer)
{
int bytesRead = 0;
if (pFile == NULL)
return bytesRead;
int bytesRead = 0;

if (pFile == NULL)
return bytesRead;

#ifdef ANDROID
bytesRead = AAsset_read (pFile, buffer, bytesToRead);
bytesRead = AAsset_read (pFile, buffer, bytesToRead);
#else
bytesRead = fread (buffer, bytesToRead, 1, pFile);
bytesRead = fread (buffer, bytesToRead, 1, pFile);
#endif
return bytesRead;

return bytesRead;
}

///
Expand All @@ -354,42 +371,34 @@ char* ESUTIL_API esLoadTGA ( void *ioContext, const char *fileName, int *width,
char *buffer;
esFile *fp;
TGA_HEADER Header;
<<<<<<< .mine

=======

>>>>>>> .theirs
#ifdef __APPLE__
// iOS: Remap the filename to a path that can be opened from the bundle.
fileName = GetBundleFileName( fileName );
#endif
int bytesRead;

// Open the file for reading
fp = esFileOpen(ioContext, fileName);
fp = esFileOpen( ioContext, fileName );

if (fp == NULL)
{
// Log error as 'error in opening the input file from apk'
esLogMessage("esLoadTGA FAILED to load : { %s }\n", fileName);
// Log error as 'error in opening the input file from apk'
esLogMessage( "esLoadTGA FAILED to load : { %s }\n", fileName );
return NULL;
}

int bytesRead = esFileRead(fp, sizeof(TGA_HEADER), &Header);
bytesRead = esFileRead( fp, sizeof(TGA_HEADER), &Header );

*width = Header.Width;
*height = Header.Height;

if ( Header.ColorDepth == 24 )
{
int bytesToRead = sizeof(char) * 3 * (*width) * (*height);
int bytesToRead = sizeof(char) * 3 * (*width) * (*height);

// Allocate the image data buffer
buffer = (char *) malloc(bytesToRead);
// Allocate the image data buffer
buffer = (char *) malloc(bytesToRead);

if (buffer)
{
bytesRead = esFileRead(fp, bytesToRead, buffer);
esFileClose(fp);
bytesRead = esFileRead(fp, bytesToRead, buffer);
esFileClose(fp);

return(buffer);
}
Expand Down

0 comments on commit 36a4223

Please sign in to comment.