GLES drivers adapted, but only did make compile-tests. git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/branches/ogl-es@6038 dfc29bdd-3216-0410-991c-e03cc46cb475
		
			
				
	
	
		
			74 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright (C) 2002-2011 Nikolaus Gebhardt
 | |
| // This file is part of the "Irrlicht Engine".
 | |
| // For conditions of distribution and use, see copyright notice in irrlicht.h
 | |
| 
 | |
| #include "IrrCompileConfig.h"
 | |
| 
 | |
| #ifdef   _IRR_COMPILE_ANDROID_ASSET_READER_
 | |
| 
 | |
| #include "CAndroidAssetReader.h"
 | |
| 
 | |
| #include "CReadFile.h"
 | |
| #include "coreutil.h"
 | |
| #include "CAndroidAssetReader.h"
 | |
| #include "CIrrDeviceAndroid.h"
 | |
| 
 | |
| #include <android_native_app_glue.h>
 | |
| #include <android/native_activity.h>
 | |
| 
 | |
| namespace irr
 | |
| {
 | |
| namespace io
 | |
| {
 | |
| 
 | |
| CAndroidAssetReader::CAndroidAssetReader(AAssetManager *assetManager, const io::path &filename)
 | |
| 	: AssetManager(assetManager), Filename(filename)
 | |
| {
 | |
| 	Asset = AAssetManager_open(AssetManager, 
 | |
| 					core::stringc(filename).c_str(),
 | |
| 				    AASSET_MODE_RANDOM);
 | |
| 
 | |
| }
 | |
| 
 | |
| CAndroidAssetReader::~CAndroidAssetReader()
 | |
| {
 | |
| 	if(Asset)
 | |
| 		AAsset_close(Asset);
 | |
| }
 | |
| 
 | |
| size_t CAndroidAssetReader::read(void* buffer, size_t sizeToRead)
 | |
| {
 | |
| 	int readBytes = AAsset_read(Asset, buffer, sizeToRead);
 | |
| 	if ( readBytes >= 0 )
 | |
| 		return size_t(readBytes);
 | |
| 	return 0;	// direct fd access is not possible (for example, if the asset is compressed). 
 | |
| }
 | |
|       
 | |
| bool CAndroidAssetReader::seek(long finalPos, bool relativeMovement)
 | |
| {
 | |
| 	off_t status =  AAsset_seek(Asset, finalPos, relativeMovement ? SEEK_CUR : SEEK_SET);
 | |
| 
 | |
| 	return status+1;
 | |
| }
 | |
| 
 | |
| long CAndroidAssetReader::getSize() const
 | |
| {
 | |
| 	return AAsset_getLength(Asset);
 | |
| }
 | |
|       
 | |
| long CAndroidAssetReader::getPos() const
 | |
| {
 | |
| 	return AAsset_getLength(Asset) - AAsset_getRemainingLength(Asset);
 | |
| }
 | |
|       
 | |
| const io::path& CAndroidAssetReader::getFileName() const
 | |
| {
 | |
| 	return Filename;
 | |
| }
 | |
| 
 | |
| 
 | |
| } // end namespace io
 | |
| } // end namespace irr
 | |
| 
 | |
| #endif //  _IRR_COMPILE_ANDROID_ASSET_READER_
 |