Ensure gltf asset version is printed as \d.0

pull/1378/head
Daniel Hritzkiv 2017-08-09 10:45:54 -04:00
parent 7fd9c3dc98
commit 7a4a32625c
No known key found for this signature in database
GPG Key ID: D1D19875679D5CBF
8 changed files with 22 additions and 21 deletions

View File

@ -177,7 +177,7 @@ namespace glTF2
struct GLB_Header struct GLB_Header
{ {
uint8_t magic[4]; //!< Magic number: "glTF" uint8_t magic[4]; //!< Magic number: "glTF"
uint32_t version; //!< Version number float_t version; //!< Version number
uint32_t length; //!< Total length of the Binary glTF, including header, scene, and body, in bytes uint32_t length; //!< Total length of the Binary glTF, including header, scene, and body, in bytes
uint32_t sceneLength; //!< Length, in bytes, of the glTF scene uint32_t sceneLength; //!< Length, in bytes, of the glTF scene
uint32_t sceneFormat; //!< Specifies the format of the glTF scene (see the SceneFormat enum) uint32_t sceneFormat; //!< Specifies the format of the glTF scene (see the SceneFormat enum)
@ -1074,13 +1074,13 @@ namespace glTF2
std::string version; //!< Specifies the target rendering API (default: "1.0.3") std::string version; //!< Specifies the target rendering API (default: "1.0.3")
} profile; //!< Specifies the target rendering API and version, e.g., WebGL 1.0.3. (default: {}) } profile; //!< Specifies the target rendering API and version, e.g., WebGL 1.0.3. (default: {})
int version; //!< The glTF format version float version; //!< The glTF format version
void Read(Document& doc); void Read(Document& doc);
AssetMetadata() AssetMetadata()
: premultipliedAlpha(false) : premultipliedAlpha(false)
, version(0) , version(0.)
{ {
} }
}; };

View File

@ -1229,7 +1229,7 @@ inline void Scene::Read(Value& obj, Asset& r)
inline void AssetMetadata::Read(Document& doc) inline void AssetMetadata::Read(Document& doc)
{ {
// read the version, etc. // read the version, etc.
int statedVersion = 0; float statedVersion = 0.;
if (Value* obj = FindObject(doc, "asset")) { if (Value* obj = FindObject(doc, "asset")) {
ReadMember(*obj, "copyright", copyright); ReadMember(*obj, "copyright", copyright);
ReadMember(*obj, "generator", generator); ReadMember(*obj, "generator", generator);
@ -1244,14 +1244,15 @@ inline void AssetMetadata::Read(Document& doc)
} }
version = std::max(statedVersion, version); version = std::max(statedVersion, version);
if (version == 0) {
// if missing version, we'll assume version 1... if (version == 0.) {
version = 1; // if missing version, we'll assume version 1.0...
version = 1.;
} }
if (version != 1) { if (version != 1.) {
char msg[128]; char msg[128];
ai_snprintf(msg, 128, "GLTF: Unsupported glTF version: %d", version); ai_snprintf(msg, 128, "GLTF: Unsupported glTF version: %.1f", version);
throw DeadlyImportError(msg); throw DeadlyImportError(msg);
} }
} }

View File

@ -574,7 +574,7 @@ namespace glTF2 {
GLB_Header header; GLB_Header header;
memcpy(header.magic, AI_GLB_MAGIC_NUMBER, sizeof(header.magic)); memcpy(header.magic, AI_GLB_MAGIC_NUMBER, sizeof(header.magic));
header.version = 2; header.version = 2.;
AI_SWAP4(header.version); AI_SWAP4(header.version);
header.length = uint32_t(sizeof(header) + sceneLength + bodyLength); header.length = uint32_t(sizeof(header) + sceneLength + bodyLength);
@ -600,7 +600,7 @@ namespace glTF2 {
asset.SetObject(); asset.SetObject();
{ {
char versionChar[10]; char versionChar[10];
ai_snprintf(versionChar, sizeof(versionChar), "%d", mAsset.asset.version); ai_snprintf(versionChar, sizeof(versionChar), "%.1f", mAsset.asset.version);
asset.AddMember("version", Value(versionChar, mAl).Move(), mAl); asset.AddMember("version", Value(versionChar, mAl).Move(), mAl);
asset.AddMember("generator", Value(mAsset.asset.generator, mAl).Move(), mAl); asset.AddMember("generator", Value(mAsset.asset.generator, mAl).Move(), mAl);

View File

@ -845,7 +845,7 @@ void glTF2Exporter::ExportScene()
void glTF2Exporter::ExportMetadata() void glTF2Exporter::ExportMetadata()
{ {
AssetMetadata& asset = mAsset->asset; AssetMetadata& asset = mAsset->asset;
asset.version = 2; asset.version = 2.;
char buffer[256]; char buffer[256];
ai_snprintf(buffer, 256, "Open Asset Import Library (assimp v%d.%d.%d)", ai_snprintf(buffer, 256, "Open Asset Import Library (assimp v%d.%d.%d)",

View File

@ -177,7 +177,7 @@ namespace glTF
struct GLB_Header struct GLB_Header
{ {
uint8_t magic[4]; //!< Magic number: "glTF" uint8_t magic[4]; //!< Magic number: "glTF"
uint32_t version; //!< Version number (always 1 as of the last update) float_t version; //!< Version number (always 1 as of the last update)
uint32_t length; //!< Total length of the Binary glTF, including header, scene, and body, in bytes uint32_t length; //!< Total length of the Binary glTF, including header, scene, and body, in bytes
uint32_t sceneLength; //!< Length, in bytes, of the glTF scene uint32_t sceneLength; //!< Length, in bytes, of the glTF scene
uint32_t sceneFormat; //!< Specifies the format of the glTF scene (see the SceneFormat enum) uint32_t sceneFormat; //!< Specifies the format of the glTF scene (see the SceneFormat enum)
@ -1058,7 +1058,7 @@ namespace glTF
std::string version; //!< Specifies the target rendering API (default: "1.0.3") std::string version; //!< Specifies the target rendering API (default: "1.0.3")
} profile; //!< Specifies the target rendering API and version, e.g., WebGL 1.0.3. (default: {}) } profile; //!< Specifies the target rendering API and version, e.g., WebGL 1.0.3. (default: {})
int version; //!< The glTF format version (should be 1) float version; //!< The glTF format version (should be 1.0)
void Read(Document& doc); void Read(Document& doc);

View File

@ -1228,7 +1228,7 @@ inline void Scene::Read(Value& obj, Asset& r)
inline void AssetMetadata::Read(Document& doc) inline void AssetMetadata::Read(Document& doc)
{ {
// read the version, etc. // read the version, etc.
int statedVersion = 0; float statedVersion = 0.;
if (Value* obj = FindObject(doc, "asset")) { if (Value* obj = FindObject(doc, "asset")) {
ReadMember(*obj, "copyright", copyright); ReadMember(*obj, "copyright", copyright);
ReadMember(*obj, "generator", generator); ReadMember(*obj, "generator", generator);
@ -1243,14 +1243,14 @@ inline void AssetMetadata::Read(Document& doc)
} }
version = std::max(statedVersion, version); version = std::max(statedVersion, version);
if (version == 0) { if (version == 0.) {
// if missing version, we'll assume version 1... // if missing version, we'll assume version 1...
version = 1; version = 1;
} }
if (version != 1) { if (version != 1.) {
char msg[128]; char msg[128];
ai_snprintf(msg, 128, "GLTF: Unsupported glTF version: %d", version); ai_snprintf(msg, 128, "GLTF: Unsupported glTF version: %.0f", version);
throw DeadlyImportError(msg); throw DeadlyImportError(msg);
} }
} }

View File

@ -582,7 +582,7 @@ namespace glTF {
GLB_Header header; GLB_Header header;
memcpy(header.magic, AI_GLB_MAGIC_NUMBER, sizeof(header.magic)); memcpy(header.magic, AI_GLB_MAGIC_NUMBER, sizeof(header.magic));
header.version = 1; header.version = 1.;
AI_SWAP4(header.version); AI_SWAP4(header.version);
header.length = uint32_t(sizeof(header) + sceneLength + bodyLength); header.length = uint32_t(sizeof(header) + sceneLength + bodyLength);
@ -608,7 +608,7 @@ namespace glTF {
asset.SetObject(); asset.SetObject();
{ {
char versionChar[10]; char versionChar[10];
ai_snprintf(versionChar, sizeof(versionChar), "%d", mAsset.asset.version); ai_snprintf(versionChar, sizeof(versionChar), "%.0f", mAsset.asset.version);
asset.AddMember("version", Value(versionChar, mAl).Move(), mAl); asset.AddMember("version", Value(versionChar, mAl).Move(), mAl);
asset.AddMember("generator", Value(mAsset.asset.generator, mAl).Move(), mAl); asset.AddMember("generator", Value(mAsset.asset.generator, mAl).Move(), mAl);

View File

@ -834,7 +834,7 @@ void glTFExporter::ExportScene()
void glTFExporter::ExportMetadata() void glTFExporter::ExportMetadata()
{ {
glTF::AssetMetadata& asset = mAsset->asset; glTF::AssetMetadata& asset = mAsset->asset;
asset.version = 1; asset.version = 1.;
char buffer[256]; char buffer[256];
ai_snprintf(buffer, 256, "Open Asset Import Library (assimp v%d.%d.%d)", ai_snprintf(buffer, 256, "Open Asset Import Library (assimp v%d.%d.%d)",