diff --git a/.github/linters/.editorconfig-checker.json b/.github/linters/.editorconfig-checker.json index 1f4d494..713a374 100644 --- a/.github/linters/.editorconfig-checker.json +++ b/.github/linters/.editorconfig-checker.json @@ -3,5 +3,9 @@ "exclude": [ ".git", "LICENSE" - ] + ], + "Disable": { + "Indentation": true, + "IndentSize": true + } } diff --git a/ContentExporter_2019.sln b/ContentExporter_2019.sln index 2f7408e..a3671bd 100644 --- a/ContentExporter_2019.sln +++ b/ContentExporter_2019.sln @@ -10,6 +10,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XATGFileWriter", "XATGFileW EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDKMeshFileWriter", "SDKMeshFileWriter\SDKMeshFileWriter2019.vcxproj", "{85495119-FC0E-4F85-8357-8823B6164F9E}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CMOFileWriter", "cmofilewriter\CMOFileWriter.vcxproj", "{CFE617B5-8F19-4211-87B5-08A66B6CEEF1}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -32,8 +34,15 @@ Global {85495119-FC0E-4F85-8357-8823B6164F9E}.Debug|x64.Build.0 = Debug|x64 {85495119-FC0E-4F85-8357-8823B6164F9E}.Release|x64.ActiveCfg = Release|x64 {85495119-FC0E-4F85-8357-8823B6164F9E}.Release|x64.Build.0 = Release|x64 + {CFE617B5-8F19-4211-87B5-08A66B6CEEF1}.Debug|x64.ActiveCfg = Debug|x64 + {CFE617B5-8F19-4211-87B5-08A66B6CEEF1}.Debug|x64.Build.0 = Debug|x64 + {CFE617B5-8F19-4211-87B5-08A66B6CEEF1}.Release|x64.ActiveCfg = Release|x64 + {CFE617B5-8F19-4211-87B5-08A66B6CEEF1}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {75CA6806-ED5F-400F-8E1A-D9C91074E1E1} + EndGlobalSection EndGlobal diff --git a/cmofilewriter/CMO.h b/cmofilewriter/CMO.h new file mode 100644 index 0000000..9bcaee8 --- /dev/null +++ b/cmofilewriter/CMO.h @@ -0,0 +1,183 @@ +//-------------------------------------------------------------------------------------- +// File: CMO.h +// +// .CMO files are built by Visual Studio's MeshContentTask and an example renderer was +// provided in the VS Direct3D Starter Kit +// https://devblogs.microsoft.com/cppblog/developing-an-app-with-the-visual-studio-3d-starter-kit-part-1-of-3/ +// https://devblogs.microsoft.com/cppblog/developing-an-app-with-the-visual-studio-3d-starter-kit-part-2-of-3/ +// https://devblogs.microsoft.com/cppblog/developing-an-app-with-the-visual-studio-3d-starter-kit-part-3-of-3/ +// +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +// +// http://go.microsoft.com/fwlink/?LinkId=248929 +// http://go.microsoft.com/fwlink/?LinkID=615561 +//-------------------------------------------------------------------------------------- + +#pragma once + +#include + +#include + + +namespace VSD3DStarter +{ + // .CMO files + + // UINT - Mesh count + // { [Mesh count] + // UINT - Length of name + // wchar_t[] - Name of mesh (if length > 0) + // UINT - Material count + // { [Material count] + // UINT - Length of material name + // wchar_t[] - Name of material (if length > 0) + // Material structure + // UINT - Length of pixel shader name + // wchar_t[] - Name of pixel shader (if length > 0) + // { [8] + // UINT - Length of texture name + // wchar_t[] - Name of texture (if length > 0) + // } + // } + // BYTE - 1 if there is skeletal animation data present + // UINT - SubMesh count + // { [SubMesh count] + // SubMesh structure + // } + // UINT - IB Count + // { [IB Count] + // UINT - Number of USHORTs in IB + // USHORT[] - Array of indices + // } + // UINT - VB Count + // { [VB Count] + // UINT - Number of verts in VB + // Vertex[] - Array of vertices + // } + // UINT - Skinning VB Count + // { [Skinning VB Count] + // UINT - Number of verts in Skinning VB + // SkinningVertex[] - Array of skinning verts + // } + // MeshExtents structure + // [If skeleton animation data is not present, file ends here] + // UINT - Bone count + // { [Bone count] + // UINT - Length of bone name + // wchar_t[] - Bone name (if length > 0) + // Bone structure + // } + // UINT - Animation clip count + // { [Animation clip count] + // UINT - Length of clip name + // wchar_t[] - Clip name (if length > 0) + // float - Start time + // float - End time + // UINT - Keyframe count + // { [Keyframe count] + // Keyframe structure + // } + // } + // } + +#pragma pack(push,1) + + struct Material + { + DirectX::XMFLOAT4 Ambient; + DirectX::XMFLOAT4 Diffuse; + DirectX::XMFLOAT4 Specular; + float SpecularPower; + DirectX::XMFLOAT4 Emissive; + DirectX::XMFLOAT4X4 UVTransform; + }; + + constexpr uint32_t MAX_TEXTURE = 8; + + struct SubMesh + { + uint32_t MaterialIndex; + uint32_t IndexBufferIndex; + uint32_t VertexBufferIndex; + uint32_t StartIndex; + uint32_t PrimCount; + }; + + constexpr uint32_t NUM_BONE_INFLUENCES = 4; + + // Vertex struct for Visual Studio Shader Designer (DGSL) holding position, normal, + // tangent, color (RGBA), and texture mapping information + struct Vertex + { + DirectX::XMFLOAT3 position; + DirectX::XMFLOAT3 normal; + DirectX::XMFLOAT4 tangent; + uint32_t color; + DirectX::XMFLOAT2 textureCoordinate; + }; + + struct SkinningVertex + { + uint32_t boneIndex[NUM_BONE_INFLUENCES]; + float boneWeight[NUM_BONE_INFLUENCES]; + }; + + struct MeshExtents + { + float CenterX, CenterY, CenterZ; + float Radius; + + float MinX, MinY, MinZ; + float MaxX, MaxY, MaxZ; + }; + + struct Bone + { + int32_t ParentIndex; + DirectX::XMFLOAT4X4 InvBindPos; + DirectX::XMFLOAT4X4 BindPos; + DirectX::XMFLOAT4X4 LocalTransform; + }; + + struct Clip + { + float StartTime; + float EndTime; + uint32_t keys; + }; + + struct Keyframe + { + uint32_t BoneIndex; + float Time; + DirectX::XMFLOAT4X4 Transform; + }; + +#pragma pack(pop) + + const Material s_defMaterial = + { + { 0.2f, 0.2f, 0.2f, 1.f }, + { 0.8f, 0.8f, 0.8f, 1.f }, + { 0.0f, 0.0f, 0.0f, 1.f }, + 1.f, + { 0.0f, 0.0f, 0.0f, 1.0f }, + { + 1.f, 0.f, 0.f, 0.f, + 0.f, 1.f, 0.f, 0.f, + 0.f, 0.f, 1.f, 0.f, + 0.f, 0.f, 0.f, 1.f + }, + }; +} // namespace + +static_assert(sizeof(VSD3DStarter::Material) == 132, "CMO Mesh structure size incorrect"); +static_assert(sizeof(VSD3DStarter::SubMesh) == 20, "CMO Mesh structure size incorrect"); +static_assert(sizeof(VSD3DStarter::Vertex) == 52, "CMO Mesh structure size incorrect"); +static_assert(sizeof(VSD3DStarter::SkinningVertex) == 32, "CMO Mesh structure size incorrect"); +static_assert(sizeof(VSD3DStarter::MeshExtents) == 40, "CMO Mesh structure size incorrect"); +static_assert(sizeof(VSD3DStarter::Bone) == 196, "CMO Mesh structure size incorrect"); +static_assert(sizeof(VSD3DStarter::Clip) == 12, "CMO Mesh structure size incorrect"); +static_assert(sizeof(VSD3DStarter::Keyframe) == 72, "CMO Mesh structure size incorrect"); diff --git a/cmofilewriter/CMOFileWriter.vcxproj b/cmofilewriter/CMOFileWriter.vcxproj new file mode 100644 index 0000000..1583fc5 --- /dev/null +++ b/cmofilewriter/CMOFileWriter.vcxproj @@ -0,0 +1,106 @@ + + + + + Debug + x64 + + + Release + x64 + + + + CMOFileWriter + {cfe617b5-8f19-4211-87b5-08a66b6ceef1} + CMOFileWriter + Win32Proj + 10.0 + + + + StaticLibrary + false + Unicode + false + v142 + + + StaticLibrary + true + Unicode + v142 + + + + + + + + + + + + + $(Platform)\$(Configuration)_2019\ + $(Platform)\$(Configuration)_2019\ + $(Platform)\$(Configuration)_2019\ + $(Platform)\$(Configuration)_2019\ + AllRules.ruleset + + + AllRules.ruleset + + + + + + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + Sync + EnableFastChecks + MultiThreadedDebugDLL + Use + stdafx.h + Level4 + ProgramDatabase + true + /Zc:__cplusplus /ZH:SHA_256 %(AdditionalOptions) + Level4 + + + + + false + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + Sync + MultiThreadedDLL + Use + stdafx.h + Level4 + ProgramDatabase + Guard + true + /Zc:__cplusplus /ZH:SHA_256 %(AdditionalOptions) + Level4 + + + MachineX64 + + + + + + Create + Create + + + + + + + + + + + \ No newline at end of file diff --git a/cmofilewriter/CMOFileWriter.vcxproj.filters b/cmofilewriter/CMOFileWriter.vcxproj.filters new file mode 100644 index 0000000..e6c59ff --- /dev/null +++ b/cmofilewriter/CMOFileWriter.vcxproj.filters @@ -0,0 +1,36 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/cmofilewriter/cmofilewriter.cpp b/cmofilewriter/cmofilewriter.cpp new file mode 100644 index 0000000..745e66f --- /dev/null +++ b/cmofilewriter/cmofilewriter.cpp @@ -0,0 +1,28 @@ +//------------------------------------------------------------------------------------- +// CMOFileWriter.cpp +// +// Advanced Technology Group (ATG) +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +// +// http://go.microsoft.com/fwlink/?LinkId=226208 +//------------------------------------------------------------------------------------- +#include "stdafx.h" +#include "CMOFileWriter.h" +#include "CMO.h" + +extern ATG::ExportScene* g_pScene; + +using namespace DirectX; +using namespace ATG; + +bool ATG::WriteCMOMeshFile(const CHAR* strFileName, ExportManifest* pManifest) +{ + if (!g_pScene) + return false; + + ExportLog::LogError("CMO not yet implemented"); + + // TODO + return false; +} diff --git a/cmofilewriter/cmofilewriter.h b/cmofilewriter/cmofilewriter.h new file mode 100644 index 0000000..782bb1f --- /dev/null +++ b/cmofilewriter/cmofilewriter.h @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------------- +// CMOFileWriter.h +// +// Entry point for writing Compiled Mesh Object (CMO) files. This file writer takes +// data from the ExportScene stored in a global variable (g_pScene). +// +// Advanced Technology Group (ATG) +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +// +// http://go.microsoft.com/fwlink/?LinkId=226208 +//------------------------------------------------------------------------------------- +#pragma once + +namespace ATG +{ + class ExportManifest; + + bool WriteCMOMeshFile(const CHAR* strFileName, ExportManifest* pManifest); +} diff --git a/cmofilewriter/stdafx.cpp b/cmofilewriter/stdafx.cpp new file mode 100644 index 0000000..ebdc06e --- /dev/null +++ b/cmofilewriter/stdafx.cpp @@ -0,0 +1,11 @@ +//------------------------------------------------------------------------------------- +// stdafx.cpp +// +// Advanced Technology Group (ATG) +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +// +// http://go.microsoft.com/fwlink/?LinkId=226208 +//------------------------------------------------------------------------------------- + +#include "stdafx.h" diff --git a/cmofilewriter/stdafx.h b/cmofilewriter/stdafx.h new file mode 100644 index 0000000..1519ef0 --- /dev/null +++ b/cmofilewriter/stdafx.h @@ -0,0 +1,55 @@ +//------------------------------------------------------------------------------------- +// stdafx.h +// +// Precompiled header for the CMOFileWriter project. +// +// Advanced Technology Group (ATG) +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +// +// http://go.microsoft.com/fwlink/?LinkId=226208 +//------------------------------------------------------------------------------------- +#pragma once + +#pragma warning( disable : 4100 4481 ) + +#pragma warning (disable : 26400 26401 26409 26426 26429 26432 26440 26446 26447 26451 26455 26462 26472 26475 26476 26481 26482 26485 26486 26487 26489 26490 26492 26493 26812 26814) + +#define WIN32_LEAN_AND_MEAN +#define NOMINMAX +#define NOMCX +#define NOSERVICE +#define NOHELP + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "..\ExportObjects\ExportXmlParser.h" +#include "..\ExportObjects\ExportPath.h" +#include "..\ExportObjects\ExportMaterial.h" +#include "..\ExportObjects\ExportObjects.h" diff --git a/exporterglobals.h b/exporterglobals.h index f9b1cfa..9587087 100644 --- a/exporterglobals.h +++ b/exporterglobals.h @@ -30,6 +30,9 @@ #define CONTENT_EXPORTER_BINARYFILE_FILTER "*." CONTENT_EXPORTER_BINARYFILE_EXTENSION #define CONTENT_EXPORTER_BINARYFILE_FILTER_DESCRIPTION "DirectX SDK SDKMesh Binary File" #define CONTENT_EXPORTER_BINARYFILE_FILTER_DESCRIPTION_V2 "SDKMesh Binary File Version 2 (PBR Materials)" +#define CONTENT_EXPORTER_VSFILE_EXTENSION "cmo" +#define CONTENT_EXPORTER_VSFILE_FILTER "*." CONTENT_EXPORTER_FILE_EXTENSION +#define CONTENT_EXPORTER_VSFILE_FILTER_DESCRIPTION "Visual Studio Compiled Mesh Object File" #ifdef _DEBUG #define BUILD_FLAVOR "Debug" diff --git a/exportobjects/ExportObjects2019.vcxproj b/exportobjects/ExportObjects2019.vcxproj index 9c2df34..162df5e 100644 --- a/exportobjects/ExportObjects2019.vcxproj +++ b/exportobjects/ExportObjects2019.vcxproj @@ -20,11 +20,13 @@ StaticLibrary + false MultiByte v142 StaticLibrary + true MultiByte v142 @@ -41,7 +43,6 @@ - <_ProjectFileVersion>10.0.30319.1 $(Platform)\$(Configuration)_2019\ $(Platform)\$(Configuration)_2019\ $(Platform)\$(Configuration)_2019\ @@ -56,12 +57,12 @@ Disabled - ..\DirectXTex;..\DirectXMesh;..\UVAtlas\inc;%(AdditionalIncludeDirectories) USE_OPENEXR;_WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) Sync EnableFastChecks MultiThreadedDebugDLL Use + stdafx.h Level4 ProgramDatabase true @@ -76,12 +77,12 @@ Full - ..\DirectXTex;..\DirectXMesh;..\UVAtlas\inc;%(AdditionalIncludeDirectories) USE_OPENEXR;_WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) Sync Default MultiThreadedDLL Use + stdafx.h Level4 ProgramDatabase Guard diff --git a/importfbx/ImportFBX2019.vcxproj b/importfbx/ImportFBX2019.vcxproj index 67965c7..9d1b41e 100644 --- a/importfbx/ImportFBX2019.vcxproj +++ b/importfbx/ImportFBX2019.vcxproj @@ -20,12 +20,14 @@ Application + false MultiByte false v142 Application + true MultiByte v142 @@ -40,7 +42,6 @@ - <_ProjectFileVersion>10.0.30319.1 $(Platform)\$(Configuration)_2019\ $(Platform)\$(Configuration)_2019\ true @@ -114,6 +115,7 @@ Sync MultiThreadedDLL Use + stdafx.h Level4 ProgramDatabase Guard @@ -133,11 +135,7 @@ Console true true - - false - - MultiplyDefinedSymbolOnly /IGNORE:4075 /IGNORE:4099 %(AdditionalOptions) @@ -175,6 +173,9 @@ + + {cfe617b5-8f19-4211-87b5-08a66b6ceef1} + {6afa24fb-37b3-49d3-9832-f7ea3de3ca2e} diff --git a/importfbx/consolemain.cpp b/importfbx/consolemain.cpp index 16d3216..1bfe343 100644 --- a/importfbx/consolemain.cpp +++ b/importfbx/consolemain.cpp @@ -84,8 +84,9 @@ ExportPath g_CurrentInputFileName; enum ExportFileFormat { FILEFORMAT_XATG = 0, - FILEFORMAT_SDKMESH = 1, - FILEFORMAT_SDKMESH_V2 = 2, + FILEFORMAT_SDKMESH, + FILEFORMAT_SDKMESH_V2, + FILEFORMAT_CMO }; INT g_ExportFileFormat = FILEFORMAT_SDKMESH; @@ -287,6 +288,13 @@ bool MacroXATG(const CHAR* /*strArgument*/, bool& /*bUsedArgument*/) return true; } +bool MacroCMO(const CHAR* /*strArgument*/, bool& /*bUsedArgument*/) +{ + g_pScene->Settings().bFlipTriangles = false; + g_ExportFileFormat = FILEFORMAT_CMO; + return true; +} + bool MacroSubD11(const CHAR* strArgument, bool& bUsedArgument) { MacroWindowsD3D11(strArgument, bUsedArgument); @@ -429,6 +437,7 @@ MacroCommand g_MacroCommands[] = { { "?", "", "Display help", MacroDisplayHelp }, { "outputpath", " ", "Sets the output root path; files will appear in scenes/ and textures/ subdirectories", MacroSetOutputPath }, { "verbose", "", "Displays more detailed output, equivalent to -loglevel 4", MacroSetVerbose }, + { "cmo", "", "Use the CMO output file format, equivalent to -filformat cmo -fliptriangles-", MacroCMO }, { "xatg", "", "Use the XATG output file format, equivalent to -fileformat xatg", MacroXATG }, { "sdkmesh", "", "Use the SDKMESH output file format, equivalent to -fileformat sdkmesh", MacroSDKMesh }, { "sdkmesh2", "", "Use the SDKMESH (version 2) output file format, equivalent to -fileformat sdkmesh2", MacroSDKMesh2 }, @@ -767,6 +776,10 @@ void BuildOutputFileName(const ExportPath& InputFileName) { g_CurrentOutputFileName.ChangeExtension(CONTENT_EXPORTER_BINARYFILE_EXTENSION); } + else if (g_ExportFileFormat == FILEFORMAT_CMO) + { + g_CurrentOutputFileName.ChangeExtension(CONTENT_EXPORTER_VSFILE_EXTENSION); + } else { g_CurrentOutputFileName.ChangeExtension(CONTENT_EXPORTER_FILE_EXTENSION); @@ -805,6 +818,7 @@ int __cdecl main(_In_ int argc, _In_z_count_(argc) char* argv[]) { CONTENT_EXPORTER_FILE_FILTER_DESCRIPTION, CONTENT_EXPORTER_FILE_EXTENSION, FILEFORMAT_XATG }, { CONTENT_EXPORTER_BINARYFILE_FILTER_DESCRIPTION, CONTENT_EXPORTER_BINARYFILE_EXTENSION, FILEFORMAT_SDKMESH }, { CONTENT_EXPORTER_BINARYFILE_FILTER_DESCRIPTION_V2, "sdkmesh2", FILEFORMAT_SDKMESH_V2 }, + { CONTENT_EXPORTER_VSFILE_FILTER_DESCRIPTION, CONTENT_EXPORTER_VSFILE_EXTENSION, FILEFORMAT_CMO }, }; g_SettingsManager.AddEnum(g_SettingsManager.GetRootCategory(0), "Output File Format", "fileformat", FILEFORMAT_SDKMESH, FileFormatEnums, ARRAYSIZE(FileFormatEnums), &g_ExportFileFormat); @@ -910,26 +924,34 @@ int __cdecl main(_In_ int argc, _In_z_count_(argc) char* argv[]) if (g_ExportFileFormat == FILEFORMAT_SDKMESH || g_ExportFileFormat == FILEFORMAT_SDKMESH_V2) { ExportTextureConverter::ProcessScene(g_pScene, &g_Manifest, "", true); - WriteSDKMeshFile(g_CurrentOutputFileName, &g_Manifest, (g_ExportFileFormat == FILEFORMAT_SDKMESH_V2) ? true : false); - if (bExportMaterials) + bool result = WriteSDKMeshFile(g_CurrentOutputFileName, &g_Manifest, (g_ExportFileFormat == FILEFORMAT_SDKMESH_V2) ? true : false); + if (result && bExportMaterials) { ExportTextureConverter::PerformTextureFileOperations(&g_Manifest); } } + else if (g_ExportFileFormat == FILEFORMAT_CMO) + { + ExportTextureConverter::ProcessScene(g_pScene, &g_Manifest, "", true); + WriteCMOMeshFile(g_CurrentOutputFileName, &g_Manifest); + } else { if (g_XATGSettings.bBundleTextures && bExportMaterials) { ExportTextureConverter::ProcessScene(g_pScene, &g_Manifest, "textures\\", false); - WriteXATGFile(g_CurrentOutputFileName, &g_Manifest); - ExportTextureConverter::PerformTextureFileOperations(&g_Manifest); - BundleTextures(); + bool result = WriteXATGFile(g_CurrentOutputFileName, &g_Manifest); + if (result) + { + ExportTextureConverter::PerformTextureFileOperations(&g_Manifest); + BundleTextures(); + } } else { ExportTextureConverter::ProcessScene(g_pScene, &g_Manifest, "textures\\", true); - WriteXATGFile(g_CurrentOutputFileName, &g_Manifest); - if (bExportMaterials) + bool result = WriteXATGFile(g_CurrentOutputFileName, &g_Manifest); + if (result && bExportMaterials) { ExportTextureConverter::PerformTextureFileOperations(&g_Manifest); } diff --git a/importfbx/stdafx.h b/importfbx/stdafx.h index cd5b10e..a0acc93 100644 --- a/importfbx/stdafx.h +++ b/importfbx/stdafx.h @@ -63,6 +63,7 @@ #include #pragma warning(pop) +#include "..\CMOFileWriter\CMOFileWriter.h" #include "..\SDKMeshFileWriter\SDKMeshFileWriter.h" #include "..\XATGFileWriter\XATGFileWriter.h" diff --git a/sdkmeshfilewriter/SDKMeshFileWriter2019.vcxproj b/sdkmeshfilewriter/SDKMeshFileWriter2019.vcxproj index dc40f24..945a2fd 100644 --- a/sdkmeshfilewriter/SDKMeshFileWriter2019.vcxproj +++ b/sdkmeshfilewriter/SDKMeshFileWriter2019.vcxproj @@ -20,12 +20,14 @@ StaticLibrary + false Unicode false v142 StaticLibrary + true Unicode v142 @@ -40,7 +42,6 @@ - <_ProjectFileVersion>10.0.30319.1 $(Platform)\$(Configuration)_2019\ $(Platform)\$(Configuration)_2019\ $(Platform)\$(Configuration)_2019\ @@ -55,12 +56,12 @@ Disabled - %(AdditionalIncludeDirectories) WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) Sync EnableFastChecks MultiThreadedDebugDLL Use + stdafx.h Level4 ProgramDatabase true @@ -71,11 +72,11 @@ false - %(AdditionalIncludeDirectories) WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) Sync MultiThreadedDLL Use + stdafx.h Level4 ProgramDatabase Guard diff --git a/sdkmeshfilewriter/sdkmeshfilewriter.cpp b/sdkmeshfilewriter/sdkmeshfilewriter.cpp index b0a8a69..8c26a4d 100644 --- a/sdkmeshfilewriter/sdkmeshfilewriter.cpp +++ b/sdkmeshfilewriter/sdkmeshfilewriter.cpp @@ -8,6 +8,7 @@ // http://go.microsoft.com/fwlink/?LinkId=226208 //------------------------------------------------------------------------------------- #include "stdafx.h" +#include "SDKMeshFileWriter.h" #include "SDKmesh.h" static_assert(sizeof(::D3DVERTEXELEMENT9) == sizeof(DXUT::D3DVERTEXELEMENT9), "Direct3D9 Decl structure size incorrect"); diff --git a/sdkmeshfilewriter/sdkmeshfilewriter.h b/sdkmeshfilewriter/sdkmeshfilewriter.h index c901ee6..c582ee8 100644 --- a/sdkmeshfilewriter/sdkmeshfilewriter.h +++ b/sdkmeshfilewriter/sdkmeshfilewriter.h @@ -14,9 +14,7 @@ namespace ATG { - class ExportManifest; bool WriteSDKMeshFile(const CHAR* strFileName, ExportManifest* pManifest, bool version2); - } diff --git a/xatgfilewriter/XATGFileWriter2019.vcxproj b/xatgfilewriter/XATGFileWriter2019.vcxproj index 8b799b4..ac29554 100644 --- a/xatgfilewriter/XATGFileWriter2019.vcxproj +++ b/xatgfilewriter/XATGFileWriter2019.vcxproj @@ -20,11 +20,13 @@ StaticLibrary + false MultiByte v142 StaticLibrary + true MultiByte v142 @@ -41,7 +43,6 @@ - <_ProjectFileVersion>10.0.30319.1 $(Platform)\$(Configuration)_2019\ $(Platform)\$(Configuration)_2019\ $(Platform)\$(Configuration)_2019\ @@ -56,12 +57,12 @@ Disabled - %(AdditionalIncludeDirectories) WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) Sync EnableFastChecks MultiThreadedDebugDLL Use + stdafx.h Level4 ProgramDatabase true @@ -75,11 +76,11 @@ - %(AdditionalIncludeDirectories) WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) Sync MultiThreadedDLL Use + stdafx.h Level4 ProgramDatabase Guard