Android JNI asset extraction support (API 9+)
Signed-off-by: Filip Wasil <filip.wasil@tieto.com>pull/379/head
parent
330e76eb46
commit
f0714a27f0
3
CREDITS
3
CREDITS
|
@ -148,3 +148,6 @@ Bugfixes for uv-tanget calculation.
|
||||||
|
|
||||||
- Jonne Nauha
|
- Jonne Nauha
|
||||||
Ogre Binary format support
|
Ogre Binary format support
|
||||||
|
|
||||||
|
- Filip Wasil, Tieto Poland Sp. z o.o.
|
||||||
|
Android JNI asset extraction support
|
||||||
|
|
8
INSTALL
8
INSTALL
|
@ -42,4 +42,12 @@ toolchain (for standard GNU makefiles: cmake -G 'Unix Makefiles').
|
||||||
Afterwards, use the generated build files to perform the actual
|
Afterwards, use the generated build files to perform the actual
|
||||||
build.
|
build.
|
||||||
|
|
||||||
|
------------------------------
|
||||||
|
Building for Android
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
When building for android this flag must be introduced to CMAKE:
|
||||||
|
|
||||||
|
-DCMAKE_TOOLCHAIN_FILE=../android.toolchain.cmake
|
||||||
|
|
||||||
|
where "android.toolchain.cmake" is a toolchain script for android (Can be easily found in web)
|
||||||
|
|
|
@ -0,0 +1,168 @@
|
||||||
|
/*
|
||||||
|
---------------------------------------------------------------------------
|
||||||
|
Open Asset Import Library (assimp)
|
||||||
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Copyright (c) 2006-2012, assimp team
|
||||||
|
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use of this software in source and binary forms,
|
||||||
|
with or without modification, are permitted provided that the following
|
||||||
|
conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above
|
||||||
|
copyright notice, this list of conditions and the
|
||||||
|
following disclaimer.
|
||||||
|
|
||||||
|
* Redistributions in binary form must reproduce the above
|
||||||
|
copyright notice, this list of conditions and the
|
||||||
|
following disclaimer in the documentation and/or other
|
||||||
|
materials provided with the distribution.
|
||||||
|
|
||||||
|
* Neither the name of the assimp team, nor the names of its
|
||||||
|
contributors may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior
|
||||||
|
written permission of the assimp team.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
---------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @file Android extension of DefaultIOSystem using the standard C file functions */
|
||||||
|
|
||||||
|
|
||||||
|
#include "AssimpPCH.h"
|
||||||
|
#if __ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT)
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include "AndroidJNIIOSystem.h"
|
||||||
|
#include "DefaultIOStream.h"
|
||||||
|
|
||||||
|
using namespace Assimp;
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Constructor.
|
||||||
|
AndroidJNIIOSystem::AndroidJNIIOSystem(ANativeActivity* activity)
|
||||||
|
{
|
||||||
|
AndroidActivityInit(activity);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Destructor.
|
||||||
|
AndroidJNIIOSystem::~AndroidJNIIOSystem()
|
||||||
|
{
|
||||||
|
// nothing to do here
|
||||||
|
}
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Tests for the existence of a file at the given path.
|
||||||
|
bool AndroidJNIIOSystem::Exists( const char* pFile) const
|
||||||
|
{
|
||||||
|
AAsset* asset = AAssetManager_open(mApkAssetManager, pFile,
|
||||||
|
AASSET_MODE_UNKNOWN);
|
||||||
|
FILE* file = ::fopen( (mApkWorkspacePath + getOsSeparator() + std::string(pFile)).c_str(), "rb");
|
||||||
|
|
||||||
|
if (!asset && !file)
|
||||||
|
{
|
||||||
|
__android_log_print(ANDROID_LOG_ERROR, "Assimp", "Asset manager can not find: %s", pFile);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
__android_log_print(ANDROID_LOG_ERROR, "Assimp", "Asset exists");
|
||||||
|
if (file)
|
||||||
|
::fclose( file);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Inits Android extractor
|
||||||
|
void AndroidJNIIOSystem::AndroidActivityInit(ANativeActivity* activity)
|
||||||
|
{
|
||||||
|
mApkWorkspacePath = activity->internalDataPath;
|
||||||
|
mApkAssetManager = activity->assetManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Extracts android asset
|
||||||
|
bool AndroidJNIIOSystem::AndroidExtractAsset(std::string name)
|
||||||
|
{
|
||||||
|
std::string newPath = mApkWorkspacePath + getOsSeparator() + name;
|
||||||
|
|
||||||
|
DefaultIOSystem io;
|
||||||
|
|
||||||
|
// Do not extract if extracted already
|
||||||
|
if ( io.Exists(newPath.c_str()) ) {
|
||||||
|
__android_log_print(ANDROID_LOG_DEFAULT, "Assimp", "Asset already extracted");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// Open file
|
||||||
|
AAsset* asset = AAssetManager_open(mApkAssetManager, name.c_str(),
|
||||||
|
AASSET_MODE_UNKNOWN);
|
||||||
|
std::string assetContent;
|
||||||
|
|
||||||
|
if (asset != NULL) {
|
||||||
|
// Find size
|
||||||
|
off_t assetSize = AAsset_getLength(asset);
|
||||||
|
|
||||||
|
// Prepare input buffer
|
||||||
|
assetContent.resize(assetSize);
|
||||||
|
|
||||||
|
// Store input buffer
|
||||||
|
AAsset_read(asset, &assetContent[0], assetSize);
|
||||||
|
|
||||||
|
// Close
|
||||||
|
AAsset_close(asset);
|
||||||
|
|
||||||
|
// Prepare output buffer
|
||||||
|
std::ofstream assetExtracted(newPath.c_str(),
|
||||||
|
std::ios::out | std::ios::binary);
|
||||||
|
if (!assetExtracted) {
|
||||||
|
__android_log_print(ANDROID_LOG_ERROR, "assimp",
|
||||||
|
"Can not open output file");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Write output buffer into a file
|
||||||
|
assetExtracted.write(assetContent.c_str(), strlen(assetContent.c_str()));
|
||||||
|
assetExtracted.close();
|
||||||
|
|
||||||
|
__android_log_print(ANDROID_LOG_DEFAULT, "Assimp", "Asset extracted");
|
||||||
|
} else {
|
||||||
|
__android_log_print(ANDROID_LOG_ERROR, "assimp", "Asset not found: %s", name.c_str());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Open a new file with a given path.
|
||||||
|
IOStream* AndroidJNIIOSystem::Open( const char* strFile, const char* strMode)
|
||||||
|
{
|
||||||
|
ai_assert(NULL != strFile);
|
||||||
|
ai_assert(NULL != strMode);
|
||||||
|
|
||||||
|
std::string fullPath(mApkWorkspacePath + getOsSeparator() + std::string(strFile));
|
||||||
|
if (Exists(strFile))
|
||||||
|
AndroidExtractAsset(std::string(strFile));
|
||||||
|
|
||||||
|
FILE* file = ::fopen( fullPath.c_str(), strMode);
|
||||||
|
|
||||||
|
if( NULL == file)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
__android_log_print(ANDROID_LOG_ERROR, "assimp", "AndroidIOSystem: file %s opened", fullPath.c_str());
|
||||||
|
return new DefaultIOStream(file, fullPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef PATHLIMIT
|
||||||
|
#endif // __ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT)
|
|
@ -0,0 +1,91 @@
|
||||||
|
/*
|
||||||
|
Open Asset Import Library (assimp)
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Copyright (c) 2006-2012, assimp team
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use of this software in source and binary forms,
|
||||||
|
with or without modification, are permitted provided that the
|
||||||
|
following conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above
|
||||||
|
copyright notice, this list of conditions and the
|
||||||
|
following disclaimer.
|
||||||
|
|
||||||
|
* Redistributions in binary form must reproduce the above
|
||||||
|
copyright notice, this list of conditions and the
|
||||||
|
following disclaimer in the documentation and/or other
|
||||||
|
materials provided with the distribution.
|
||||||
|
|
||||||
|
* Neither the name of the assimp team, nor the names of its
|
||||||
|
contributors may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior
|
||||||
|
written permission of the assimp team.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @file Android implementation of IOSystem using the standard C file functions.
|
||||||
|
* Aimed to ease the acces to android assets */
|
||||||
|
|
||||||
|
#if __ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT)
|
||||||
|
#ifndef AI_ANDROIDJNIIOSYSTEM_H_INC
|
||||||
|
#define AI_ANDROIDJNIIOSYSTEM_H_INC
|
||||||
|
|
||||||
|
#include "DefaultIOSystem.h"
|
||||||
|
#include <android/asset_manager.h>
|
||||||
|
#include <android/asset_manager_jni.h>
|
||||||
|
|
||||||
|
namespace Assimp {
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
/** Android extension to DefaultIOSystem using the standard C file functions */
|
||||||
|
class AndroidJNIIOSystem : public DefaultIOSystem
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
/** Initialize android activity data */
|
||||||
|
std::string mApkWorkspacePath;
|
||||||
|
AAssetManager* mApkAssetManager;
|
||||||
|
|
||||||
|
/** Constructor. */
|
||||||
|
AndroidJNIIOSystem(ANativeActivity* activity);
|
||||||
|
|
||||||
|
/** Destructor. */
|
||||||
|
~AndroidJNIIOSystem();
|
||||||
|
|
||||||
|
// -------------------------------------------------------------------
|
||||||
|
/** Tests for the existence of a file at the given path. */
|
||||||
|
bool Exists( const char* pFile) const;
|
||||||
|
|
||||||
|
// -------------------------------------------------------------------
|
||||||
|
/** Opens a file at the given path, with given mode */
|
||||||
|
IOStream* Open( const char* strFile, const char* strMode);
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Inits Android extractor
|
||||||
|
void AndroidActivityInit(ANativeActivity* activity);
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Extracts android asset
|
||||||
|
bool AndroidExtractAsset(std::string name);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
} //!ns Assimp
|
||||||
|
|
||||||
|
#endif //AI_ANDROIDJNIIOSYSTEM_H_INC
|
||||||
|
#endif //__ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT)
|
|
@ -104,6 +104,8 @@ SET( Common_SRCS
|
||||||
DefaultIOStream.h
|
DefaultIOStream.h
|
||||||
DefaultIOSystem.cpp
|
DefaultIOSystem.cpp
|
||||||
DefaultIOSystem.h
|
DefaultIOSystem.h
|
||||||
|
AndroidJNIIOSystem.cpp
|
||||||
|
AndroidJNIIOSystem.h
|
||||||
CInterfaceIOWrapper.h
|
CInterfaceIOWrapper.h
|
||||||
Hash.h
|
Hash.h
|
||||||
Importer.cpp
|
Importer.cpp
|
||||||
|
@ -702,7 +704,12 @@ ADD_LIBRARY( assimp ${assimp_src} )
|
||||||
|
|
||||||
SET_PROPERTY(TARGET assimp PROPERTY DEBUG_POSTFIX ${ASSIMP_DEBUG_POSTFIX})
|
SET_PROPERTY(TARGET assimp PROPERTY DEBUG_POSTFIX ${ASSIMP_DEBUG_POSTFIX})
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES(assimp ${ZLIB_LIBRARIES})
|
if(ANDROID)
|
||||||
|
TARGET_LINK_LIBRARIES(assimp ${ZLIB_LIBRARIES} android log)
|
||||||
|
else(ANDROID)
|
||||||
|
TARGET_LINK_LIBRARIES(assimp ${ZLIB_LIBRARIES})
|
||||||
|
endif(ANDROID)
|
||||||
|
|
||||||
SET_TARGET_PROPERTIES( assimp PROPERTIES
|
SET_TARGET_PROPERTIES( assimp PROPERTIES
|
||||||
VERSION ${ASSIMP_VERSION}
|
VERSION ${ASSIMP_VERSION}
|
||||||
SOVERSION ${ASSIMP_SOVERSION} # use full version
|
SOVERSION ${ASSIMP_SOVERSION} # use full version
|
||||||
|
@ -717,7 +724,11 @@ endif()
|
||||||
# assimp can #include "unzip.h"
|
# assimp can #include "unzip.h"
|
||||||
if (UNZIP_FOUND)
|
if (UNZIP_FOUND)
|
||||||
INCLUDE_DIRECTORIES(${UNZIP_INCLUDE_DIRS})
|
INCLUDE_DIRECTORIES(${UNZIP_INCLUDE_DIRS})
|
||||||
TARGET_LINK_LIBRARIES(assimp ${UNZIP_LIBRARIES})
|
if(ANDROID)
|
||||||
|
TARGET_LINK_LIBRARIES(assimp ${UNZIP_LIBRARIES} android log)
|
||||||
|
else(ANDROID)
|
||||||
|
TARGET_LINK_LIBRARIES(assimp ${UNZIP_LIBRARIES})
|
||||||
|
endif(ANDROID)
|
||||||
else (UNZIP_FOUND)
|
else (UNZIP_FOUND)
|
||||||
INCLUDE_DIRECTORIES("../contrib/unzip")
|
INCLUDE_DIRECTORIES("../contrib/unzip")
|
||||||
endif (UNZIP_FOUND)
|
endif (UNZIP_FOUND)
|
||||||
|
|
|
@ -56,6 +56,9 @@ namespace Assimp {
|
||||||
class DefaultIOStream : public IOStream
|
class DefaultIOStream : public IOStream
|
||||||
{
|
{
|
||||||
friend class DefaultIOSystem;
|
friend class DefaultIOSystem;
|
||||||
|
#if __ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT)
|
||||||
|
friend class AndroidJNIIOSystem;
|
||||||
|
#endif //__ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT)
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
DefaultIOStream ();
|
DefaultIOStream ();
|
||||||
|
|
|
@ -65,6 +65,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include "BaseProcess.h"
|
#include "BaseProcess.h"
|
||||||
|
|
||||||
#include "DefaultIOStream.h"
|
#include "DefaultIOStream.h"
|
||||||
|
#if __ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT)
|
||||||
|
#include "AndroidJNIIOSystem.h"
|
||||||
|
#include <android/asset_manager.h>
|
||||||
|
#include <android/asset_manager_jni.h>
|
||||||
|
#endif //__ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT)
|
||||||
#include "DefaultIOSystem.h"
|
#include "DefaultIOSystem.h"
|
||||||
#include "DefaultProgressHandler.h"
|
#include "DefaultProgressHandler.h"
|
||||||
#include "GenericProperty.h"
|
#include "GenericProperty.h"
|
||||||
|
@ -132,8 +137,8 @@ void AllocateFromAssimpHeap::operator delete[] ( void* data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
// Importer constructor.
|
// Importer defaults loader.
|
||||||
Importer::Importer()
|
inline void Importer::InitDefaults()
|
||||||
{
|
{
|
||||||
// allocate the pimpl first
|
// allocate the pimpl first
|
||||||
pimpl = new ImporterPimpl();
|
pimpl = new ImporterPimpl();
|
||||||
|
@ -143,7 +148,7 @@ Importer::Importer()
|
||||||
|
|
||||||
// Allocate a default IO handler
|
// Allocate a default IO handler
|
||||||
pimpl->mIOHandler = new DefaultIOSystem;
|
pimpl->mIOHandler = new DefaultIOSystem;
|
||||||
pimpl->mIsDefaultHandler = true;
|
pimpl->mIsDefaultHandler = true;
|
||||||
pimpl->bExtraVerbose = false; // disable extra verbose mode by default
|
pimpl->bExtraVerbose = false; // disable extra verbose mode by default
|
||||||
|
|
||||||
pimpl->mProgressHandler = new DefaultProgressHandler();
|
pimpl->mProgressHandler = new DefaultProgressHandler();
|
||||||
|
@ -155,13 +160,30 @@ Importer::Importer()
|
||||||
// Allocate a SharedPostProcessInfo object and store pointers to it in all post-process steps in the list.
|
// Allocate a SharedPostProcessInfo object and store pointers to it in all post-process steps in the list.
|
||||||
pimpl->mPPShared = new SharedPostProcessInfo();
|
pimpl->mPPShared = new SharedPostProcessInfo();
|
||||||
for (std::vector<BaseProcess*>::iterator it = pimpl->mPostProcessingSteps.begin();
|
for (std::vector<BaseProcess*>::iterator it = pimpl->mPostProcessingSteps.begin();
|
||||||
it != pimpl->mPostProcessingSteps.end();
|
it != pimpl->mPostProcessingSteps.end();
|
||||||
++it) {
|
++it) {
|
||||||
|
|
||||||
(*it)->SetSharedData(pimpl->mPPShared);
|
(*it)->SetSharedData(pimpl->mPPShared);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Importer constructor.
|
||||||
|
Importer::Importer()
|
||||||
|
{
|
||||||
|
InitDefaults();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Jni android Importer constructor to ease the assets access on Android JNI projects.
|
||||||
|
#if __ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT)
|
||||||
|
Importer::Importer(ANativeActivity* activity)
|
||||||
|
{
|
||||||
|
InitDefaults();
|
||||||
|
SetIOHandler(new AndroidJNIIOSystem(activity));
|
||||||
|
}
|
||||||
|
#endif //__ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT)
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
// Destructor of Importer
|
// Destructor of Importer
|
||||||
Importer::~Importer()
|
Importer::~Importer()
|
||||||
|
|
|
@ -53,6 +53,14 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
#if __ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT)
|
||||||
|
#include <android/log.h>
|
||||||
|
#include <android/asset_manager.h>
|
||||||
|
#include <android/asset_manager_jni.h>
|
||||||
|
#include <android/native_activity.h>
|
||||||
|
#include <fstream>
|
||||||
|
#endif //__ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT)
|
||||||
|
|
||||||
namespace Assimp {
|
namespace Assimp {
|
||||||
// =======================================================================
|
// =======================================================================
|
||||||
// Public interface to Assimp
|
// Public interface to Assimp
|
||||||
|
@ -125,6 +133,15 @@ public:
|
||||||
*/
|
*/
|
||||||
Importer();
|
Importer();
|
||||||
|
|
||||||
|
#if __ANDROID__ and __ANDROID_API__ > 9 and defined(AI_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT)
|
||||||
|
// -------------------------------------------------------------------
|
||||||
|
/** Constructor. Inits the AndroidJniIOSystem.
|
||||||
|
*
|
||||||
|
* Call ReadFile() to start the import process. The configuration
|
||||||
|
* property table is initially empty.
|
||||||
|
*/
|
||||||
|
Importer(ANativeActivity* activity);
|
||||||
|
#endif //__ANDROID__ and __ANDROID_API__ > 9 and defined(AI_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT)
|
||||||
// -------------------------------------------------------------------
|
// -------------------------------------------------------------------
|
||||||
/** Copy constructor.
|
/** Copy constructor.
|
||||||
*
|
*
|
||||||
|
@ -134,6 +151,14 @@ public:
|
||||||
*/
|
*/
|
||||||
Importer(const Importer& other);
|
Importer(const Importer& other);
|
||||||
|
|
||||||
|
// -------------------------------------------------------------------
|
||||||
|
/** Inits Importer defaults.
|
||||||
|
*
|
||||||
|
* This function inits the defaults for Importer class
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void InitDefaults();
|
||||||
|
|
||||||
// -------------------------------------------------------------------
|
// -------------------------------------------------------------------
|
||||||
/** Destructor. The object kept ownership of the imported data,
|
/** Destructor. The object kept ownership of the imported data,
|
||||||
* which now will be destroyed along with the object.
|
* which now will be destroyed along with the object.
|
||||||
|
|
|
@ -841,6 +841,14 @@ enum aiComponent
|
||||||
*/
|
*/
|
||||||
#define AI_CONFIG_IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS "IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS"
|
#define AI_CONFIG_IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS "IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS"
|
||||||
|
|
||||||
|
/** @brief Specifies whether the Android JNI asset extraction is supported.
|
||||||
|
*
|
||||||
|
* Turn on this option if you want to manage assets in native
|
||||||
|
* Android application without having to keep the internal directory and asset
|
||||||
|
* manager pointer.
|
||||||
|
*/
|
||||||
|
#define AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT "AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT"
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
/** @brief Specifies whether the IFC loader skips over
|
/** @brief Specifies whether the IFC loader skips over
|
||||||
|
|
Loading…
Reference in New Issue