Add missig docs and fix some small review findings.
parent
d17cf76c85
commit
32b466941b
|
@ -42,22 +42,24 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
/** @file Stuff to deal with aiScene::mPrivate
|
/** @file Stuff to deal with aiScene::mPrivate
|
||||||
*/
|
*/
|
||||||
|
#pragma once
|
||||||
#ifndef AI_SCENEPRIVATE_H_INCLUDED
|
#ifndef AI_SCENEPRIVATE_H_INCLUDED
|
||||||
#define AI_SCENEPRIVATE_H_INCLUDED
|
#define AI_SCENEPRIVATE_H_INCLUDED
|
||||||
|
|
||||||
#include <assimp/scene.h>
|
#include <assimp/scene.h>
|
||||||
|
|
||||||
namespace Assimp {
|
namespace Assimp {
|
||||||
|
|
||||||
|
// Forward declarations
|
||||||
class Importer;
|
class Importer;
|
||||||
|
|
||||||
struct ScenePrivateData {
|
struct ScenePrivateData {
|
||||||
|
|
||||||
ScenePrivateData()
|
ScenePrivateData()
|
||||||
: mOrigImporter()
|
: mOrigImporter( nullptr )
|
||||||
, mPPStepsApplied()
|
, mPPStepsApplied( 0 )
|
||||||
, mIsCopy()
|
, mIsCopy( false ) {
|
||||||
{}
|
// empty
|
||||||
|
}
|
||||||
|
|
||||||
// Importer that originally loaded the scene though the C-API
|
// Importer that originally loaded the scene though the C-API
|
||||||
// If set, this object is owned by this private data instance.
|
// If set, this object is owned by this private data instance.
|
||||||
|
@ -75,14 +77,24 @@ struct ScenePrivateData {
|
||||||
};
|
};
|
||||||
|
|
||||||
// Access private data stored in the scene
|
// Access private data stored in the scene
|
||||||
inline ScenePrivateData* ScenePriv(aiScene* in) {
|
inline
|
||||||
|
ScenePrivateData* ScenePriv(aiScene* in) {
|
||||||
|
ai_assert( nullptr != in );
|
||||||
|
if ( nullptr == in ) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
return static_cast<ScenePrivateData*>(in->mPrivate);
|
return static_cast<ScenePrivateData*>(in->mPrivate);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline const ScenePrivateData* ScenePriv(const aiScene* in) {
|
inline
|
||||||
|
const ScenePrivateData* ScenePriv(const aiScene* in) {
|
||||||
|
ai_assert( nullptr != in );
|
||||||
|
if ( nullptr == in ) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
return static_cast<const ScenePrivateData*>(in->mPrivate);
|
return static_cast<const ScenePrivateData*>(in->mPrivate);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
} // Namespace Assimp
|
||||||
|
|
||||||
#endif
|
#endif // AI_SCENEPRIVATE_H_INCLUDED
|
||||||
|
|
|
@ -43,34 +43,36 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include "simd.h"
|
#include "simd.h"
|
||||||
|
|
||||||
namespace Assimp {
|
namespace Assimp {
|
||||||
bool CPUSupportsSSE2() {
|
|
||||||
|
bool CPUSupportsSSE2() {
|
||||||
#if defined(__x86_64__) || defined(_M_X64)
|
#if defined(__x86_64__) || defined(_M_X64)
|
||||||
//* x86_64 always has SSE2 instructions */
|
//* x86_64 always has SSE2 instructions */
|
||||||
return true;
|
return true;
|
||||||
#elif defined(__GNUC__) && defined(i386)
|
#elif defined(__GNUC__) && defined(i386)
|
||||||
// for GCC x86 we check cpuid
|
// for GCC x86 we check cpuid
|
||||||
unsigned int d;
|
unsigned int d;
|
||||||
__asm__(
|
__asm__(
|
||||||
"pushl %%ebx\n\t"
|
"pushl %%ebx\n\t"
|
||||||
"cpuid\n\t"
|
"cpuid\n\t"
|
||||||
"popl %%ebx\n\t"
|
"popl %%ebx\n\t"
|
||||||
: "=d" ( d )
|
: "=d" ( d )
|
||||||
:"a" ( 1 ) );
|
:"a" ( 1 ) );
|
||||||
return ( d & 0x04000000 ) != 0;
|
return ( d & 0x04000000 ) != 0;
|
||||||
#elif (defined(_MSC_VER) && defined(_M_IX86))
|
#elif (defined(_MSC_VER) && defined(_M_IX86))
|
||||||
// also check cpuid for MSVC x86
|
// also check cpuid for MSVC x86
|
||||||
unsigned int d;
|
unsigned int d;
|
||||||
__asm {
|
__asm {
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
inc eax
|
inc eax
|
||||||
push ebx
|
push ebx
|
||||||
cpuid
|
cpuid
|
||||||
pop ebx
|
pop ebx
|
||||||
mov d, edx
|
mov d, edx
|
||||||
}
|
|
||||||
return ( d & 0x04000000 ) != 0;
|
|
||||||
#else
|
|
||||||
return false;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
return ( d & 0x04000000 ) != 0;
|
||||||
|
#else
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // Namespace Assimp
|
||||||
|
|
|
@ -46,6 +46,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
namespace Assimp {
|
namespace Assimp {
|
||||||
|
|
||||||
|
/// @brief Checks if the platform supports SSE2 optimization
|
||||||
|
/// @return true, if SSE2 is supported. false if SSE2 is not supported.
|
||||||
bool ASSIMP_API CPUSupportsSSE2();
|
bool ASSIMP_API CPUSupportsSSE2();
|
||||||
|
|
||||||
} // Namespace Assimp
|
} // Namespace Assimp
|
||||||
|
|
|
@ -45,5 +45,5 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
using namespace ::Assimp;
|
using namespace ::Assimp;
|
||||||
|
|
||||||
AbstractImportExportBase::~AbstractImportExportBase() {
|
AbstractImportExportBase::~AbstractImportExportBase() {
|
||||||
// empty
|
// empty
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue