Normalize line endings
This commit is contained in:
Родитель
59a60f858a
Коммит
51da949190
|
@ -1,392 +1,392 @@
|
|||
//-------------------------------------------------------------------------------------
|
||||
// DirectXMesh.h
|
||||
//
|
||||
// DirectX Mesh Geometry Library
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#if defined(_XBOX_ONE) && defined(_TITLE)
|
||||
#include <d3d11_x.h>
|
||||
#define DCOMMON_H_INCLUDED
|
||||
#else
|
||||
#include <d3d11_1.h>
|
||||
#endif
|
||||
|
||||
#include <directxmath.h>
|
||||
|
||||
#define DIRECTX_MESH_VERSION 101
|
||||
|
||||
namespace DirectX
|
||||
{
|
||||
//---------------------------------------------------------------------------------
|
||||
// DXGI Format Utilities
|
||||
bool __cdecl IsValidVB( _In_ DXGI_FORMAT fmt );
|
||||
bool __cdecl IsValidIB( _In_ DXGI_FORMAT fmt );
|
||||
size_t __cdecl BytesPerElement( _In_ DXGI_FORMAT fmt );
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Input Layout Descriptor Utilities
|
||||
bool __cdecl IsValid( _In_reads_(nDecl) const D3D11_INPUT_ELEMENT_DESC* vbDecl, _In_ size_t nDecl );
|
||||
void __cdecl ComputeInputLayout( _In_reads_(nDecl) const D3D11_INPUT_ELEMENT_DESC* vbDecl, _In_ size_t nDecl,
|
||||
_Out_writes_opt_(nDecl) uint32_t* offsets,
|
||||
_Out_writes_opt_(D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT) uint32_t* strides );
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Attribute Utilities
|
||||
std::vector<std::pair<size_t,size_t>> __cdecl ComputeSubsets( _In_reads_opt_(nFaces) const uint32_t* attributes, _In_ size_t nFaces );
|
||||
// Returns a list of face offset,counts for attribute groups
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Mesh Optimization Utilities
|
||||
void __cdecl ComputeVertexCacheMissRate( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces, _In_ size_t nVerts,
|
||||
_In_ size_t cacheSize, _Out_ float& acmr, _Out_ float& atvr );
|
||||
void __cdecl ComputeVertexCacheMissRate( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces, _In_ size_t nVerts,
|
||||
_In_ size_t cacheSize, _Out_ float& acmr, _Out_ float& atvr );
|
||||
// Compute the average cache miss ratio and average triangle vertex reuse for the post-transform vertex cache
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Vertex Buffer Reader/Writer
|
||||
|
||||
class VBReader
|
||||
{
|
||||
public:
|
||||
VBReader();
|
||||
VBReader(VBReader&& moveFrom);
|
||||
VBReader& operator= (VBReader&& moveFrom);
|
||||
|
||||
VBReader(VBReader const&) = delete;
|
||||
VBReader& operator= (VBReader const&) = delete;
|
||||
|
||||
~VBReader();
|
||||
|
||||
HRESULT __cdecl Initialize( _In_reads_(nDecl) const D3D11_INPUT_ELEMENT_DESC* vbDecl, _In_ size_t nDecl );
|
||||
// Does not support VB decls with D3D11_INPUT_PER_INSTANCE_DATA
|
||||
|
||||
HRESULT __cdecl AddStream( _In_reads_bytes_(stride*nVerts) const void* vb, _In_ size_t nVerts, _In_ size_t inputSlot, _In_ size_t stride = 0 );
|
||||
// Add vertex buffer to reader
|
||||
|
||||
HRESULT __cdecl Read( _Out_writes_(count) XMVECTOR* buffer, _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex, _In_ size_t count ) const;
|
||||
// Extracts data elements from vertex buffer
|
||||
|
||||
HRESULT __cdecl Read( _Out_writes_(count) float* buffer, _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex, _In_ size_t count ) const;
|
||||
HRESULT __cdecl Read( _Out_writes_(count) XMFLOAT2* buffer, _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex, _In_ size_t count ) const;
|
||||
HRESULT __cdecl Read( _Out_writes_(count) XMFLOAT3* buffer, _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex, _In_ size_t count ) const;
|
||||
HRESULT __cdecl Read( _Out_writes_(count) XMFLOAT4* buffer, _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex, _In_ size_t count ) const;
|
||||
// Helpers for data extraction
|
||||
|
||||
void __cdecl Release();
|
||||
|
||||
const D3D11_INPUT_ELEMENT_DESC* __cdecl GetElement( _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex ) const;
|
||||
|
||||
private:
|
||||
// Private implementation.
|
||||
class Impl;
|
||||
|
||||
std::unique_ptr<Impl> pImpl;
|
||||
};
|
||||
|
||||
class VBWriter
|
||||
{
|
||||
public:
|
||||
VBWriter();
|
||||
VBWriter(VBWriter&& moveFrom);
|
||||
VBWriter& operator= (VBWriter&& moveFrom);
|
||||
|
||||
VBWriter(VBWriter const&) = delete;
|
||||
VBWriter& operator= (VBWriter const&) = delete;
|
||||
|
||||
~VBWriter();
|
||||
|
||||
HRESULT __cdecl Initialize( _In_reads_(nDecl) const D3D11_INPUT_ELEMENT_DESC* vbDecl, _In_ size_t nDecl );
|
||||
// Does not support VB decls with D3D11_INPUT_PER_INSTANCE_DATA
|
||||
|
||||
HRESULT __cdecl AddStream( _Out_writes_bytes_(stride*nVerts) void* vb, _In_ size_t nVerts, _In_ size_t inputSlot, _In_ size_t stride = 0 );
|
||||
// Add vertex buffer to writer
|
||||
|
||||
HRESULT __cdecl Write( _In_reads_(count) const XMVECTOR* buffer, _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex, _In_ size_t count ) const;
|
||||
// Inserts data elements into vertex buffer
|
||||
|
||||
HRESULT __cdecl Write( _In_reads_(count) const float* buffer, _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex, _In_ size_t count ) const;
|
||||
HRESULT __cdecl Write( _In_reads_(count) const XMFLOAT2* buffer, _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex, _In_ size_t count ) const;
|
||||
HRESULT __cdecl Write( _In_reads_(count) const XMFLOAT3* buffer, _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex, _In_ size_t count ) const;
|
||||
HRESULT __cdecl Write( _In_reads_(count) const XMFLOAT4* buffer, _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex, _In_ size_t count ) const;
|
||||
// Helpers for data insertion
|
||||
|
||||
void __cdecl Release();
|
||||
|
||||
const D3D11_INPUT_ELEMENT_DESC* __cdecl GetElement( _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex ) const;
|
||||
|
||||
private:
|
||||
// Private implementation.
|
||||
class Impl;
|
||||
|
||||
std::unique_ptr<Impl> pImpl;
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Adjacency Computation
|
||||
|
||||
HRESULT __cdecl GenerateAdjacencyAndPointReps( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions, _In_ size_t nVerts,
|
||||
_In_ float epsilon,
|
||||
_Out_writes_opt_(nVerts) uint32_t* pointRep,
|
||||
_Out_writes_opt_(nFaces*3) uint32_t* adjacency );
|
||||
HRESULT __cdecl GenerateAdjacencyAndPointReps( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions, _In_ size_t nVerts,
|
||||
_In_ float epsilon,
|
||||
_Out_writes_opt_(nVerts) uint32_t* pointRep,
|
||||
_Out_writes_opt_(nFaces*3) uint32_t* adjacency );
|
||||
// If pointRep is null, it still generates them internally as they are needed for the final adjacency computation
|
||||
|
||||
HRESULT __cdecl ConvertPointRepsToAdjacency( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions, _In_ size_t nVerts,
|
||||
_In_reads_opt_(nVerts) const uint32_t* pointRep,
|
||||
_Out_writes_(nFaces*3) uint32_t* adjacency );
|
||||
HRESULT __cdecl ConvertPointRepsToAdjacency( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions, _In_ size_t nVerts,
|
||||
_In_reads_opt_(nVerts) const uint32_t* pointRep,
|
||||
_Out_writes_(nFaces*3) uint32_t* adjacency );
|
||||
// If pointRep is null, assumes an identity
|
||||
|
||||
HRESULT __cdecl GenerateGSAdjacency( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const uint32_t* pointRep,
|
||||
_In_reads_(nFaces*3) const uint32_t* adjacency, _In_ size_t nVerts,
|
||||
_Out_writes_(nFaces*6) uint16_t* indicesAdj );
|
||||
HRESULT __cdecl GenerateGSAdjacency( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const uint32_t* pointRep,
|
||||
_In_reads_(nFaces*3) const uint32_t* adjacency, _In_ size_t nVerts,
|
||||
_Out_writes_(nFaces*6) uint32_t* indicesAdj );
|
||||
// Generates an IB suitable for Geometry Shader using D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Normals, Tangents, and Bi-Tangents Computation
|
||||
|
||||
enum CNORM_FLAGS
|
||||
{
|
||||
CNORM_DEFAULT = 0x0,
|
||||
// Default is to compute normals using weight-by-angle
|
||||
|
||||
CNORM_WEIGHT_BY_AREA = 0x1,
|
||||
// Computes normals using weight-by-area
|
||||
|
||||
CNORM_WEIGHT_EQUAL = 0x2,
|
||||
// Compute normals with equal weights
|
||||
|
||||
CNORM_WIND_CW = 0x4,
|
||||
// Vertices are clock-wise (defaults to CCW)
|
||||
};
|
||||
|
||||
HRESULT __cdecl ComputeNormals( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions, _In_ size_t nVerts,
|
||||
_In_ DWORD flags,
|
||||
_Out_writes_(nVerts) XMFLOAT3* normals );
|
||||
HRESULT __cdecl ComputeNormals( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions, _In_ size_t nVerts,
|
||||
_In_ DWORD flags,
|
||||
_Out_writes_(nVerts) XMFLOAT3* normals );
|
||||
// Computes vertex normals
|
||||
|
||||
HRESULT __cdecl ComputeTangentFrame( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions,
|
||||
_In_reads_(nVerts) const XMFLOAT3* normals,
|
||||
_In_reads_(nVerts) const XMFLOAT2* texcoords, _In_ size_t nVerts,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT3* tangents,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT3* bitangents );
|
||||
HRESULT __cdecl ComputeTangentFrame( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions,
|
||||
_In_reads_(nVerts) const XMFLOAT3* normals,
|
||||
_In_reads_(nVerts) const XMFLOAT2* texcoords, _In_ size_t nVerts,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT3* tangents,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT3* bitangents );
|
||||
HRESULT __cdecl ComputeTangentFrame( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions,
|
||||
_In_reads_(nVerts) const XMFLOAT3* normals,
|
||||
_In_reads_(nVerts) const XMFLOAT2* texcoords, _In_ size_t nVerts,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT4* tangents,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT3* bitangents );
|
||||
HRESULT __cdecl ComputeTangentFrame( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions,
|
||||
_In_reads_(nVerts) const XMFLOAT3* normals,
|
||||
_In_reads_(nVerts) const XMFLOAT2* texcoords, _In_ size_t nVerts,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT4* tangents,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT3* bitangents );
|
||||
HRESULT __cdecl ComputeTangentFrame( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions,
|
||||
_In_reads_(nVerts) const XMFLOAT3* normals,
|
||||
_In_reads_(nVerts) const XMFLOAT2* texcoords, _In_ size_t nVerts,
|
||||
_Out_writes_(nVerts) XMFLOAT4* tangents );
|
||||
HRESULT __cdecl ComputeTangentFrame( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions,
|
||||
_In_reads_(nVerts) const XMFLOAT3* normals,
|
||||
_In_reads_(nVerts) const XMFLOAT2* texcoords, _In_ size_t nVerts,
|
||||
_Out_writes_(nVerts) XMFLOAT4* tangents );
|
||||
// Computes tangents and/or bi-tangents (optionally with handedness stored in .w)
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Mesh clean-up and validation
|
||||
|
||||
enum VALIDATE_FLAGS
|
||||
{
|
||||
VALIDATE_DEFAULT = 0x0,
|
||||
|
||||
VALIDATE_BACKFACING = 0x1,
|
||||
// Check for duplicate neighbor from triangle (requires adjacency)
|
||||
|
||||
VALIDATE_BOWTIES = 0x2,
|
||||
// Check for two fans of triangles using the same vertex (requires adjacency)
|
||||
|
||||
VALIDATE_DEGENERATE = 0x4,
|
||||
// Check for degenerate triangles
|
||||
|
||||
VALIDATE_UNUSED = 0x8,
|
||||
// Check for issues with 'unused' triangles
|
||||
|
||||
VALIDATE_ASYMMETRIC_ADJ = 0x10,
|
||||
// Checks that neighbors are symmetric (requires adjacency)
|
||||
};
|
||||
|
||||
HRESULT __cdecl Validate( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_ size_t nVerts, _In_reads_opt_(nFaces*3) const uint32_t* adjacency,
|
||||
_In_ DWORD flags, _In_opt_ std::wstring* msgs = nullptr );
|
||||
HRESULT __cdecl Validate( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_ size_t nVerts, _In_reads_opt_(nFaces*3) const uint32_t* adjacency,
|
||||
_In_ DWORD flags, _In_opt_ std::wstring* msgs = nullptr );
|
||||
// Checks the mesh for common problems, return 'S_OK' if no problems were found
|
||||
|
||||
HRESULT __cdecl Clean( _Inout_updates_all_(nFaces*3) uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_ size_t nVerts, _Inout_updates_all_opt_(nFaces*3) uint32_t* adjacency,
|
||||
_In_reads_opt_(nFaces) const uint32_t* attributes,
|
||||
_Inout_ std::vector<uint32_t>& dupVerts, _In_ bool breakBowties=false );
|
||||
HRESULT __cdecl Clean( _Inout_updates_all_(nFaces*3) uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_ size_t nVerts, _Inout_updates_all_opt_(nFaces*3) uint32_t* adjacency,
|
||||
_In_reads_opt_(nFaces) const uint32_t* attributes,
|
||||
_Inout_ std::vector<uint32_t>& dupVerts, _In_ bool breakBowties=false );
|
||||
// Cleans the mesh, splitting vertices if needed
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Mesh Optimization
|
||||
|
||||
HRESULT __cdecl AttributeSort( _In_ size_t nFaces, _Inout_updates_all_(nFaces) uint32_t* attributes,
|
||||
_Out_writes_(nFaces) uint32_t* faceRemap );
|
||||
// Reorders faces by attribute id
|
||||
|
||||
enum OPTFACES
|
||||
{
|
||||
OPTFACES_V_DEFAULT = 12,
|
||||
OPTFACES_R_DEFAULT = 7,
|
||||
// Default vertex cache size and restart threshold which is considered 'device independent'
|
||||
|
||||
OPTFACES_V_STRIPORDER = 0,
|
||||
// Indicates no vertex cache optimization, only reordering into strips
|
||||
};
|
||||
|
||||
HRESULT __cdecl OptimizeFaces( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nFaces*3) const uint32_t* adjacency,
|
||||
_Out_writes_(nFaces) uint32_t* faceRemap,
|
||||
_In_ uint32_t vertexCache = OPTFACES_V_DEFAULT,
|
||||
_In_ uint32_t restart = OPTFACES_R_DEFAULT );
|
||||
HRESULT __cdecl OptimizeFaces( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nFaces*3) const uint32_t* adjacency,
|
||||
_Out_writes_(nFaces) uint32_t* faceRemap,
|
||||
_In_ uint32_t vertexCache = OPTFACES_V_DEFAULT,
|
||||
_In_ uint32_t restart = OPTFACES_R_DEFAULT );
|
||||
// Reorders faces to increase hit rate of vertex caches
|
||||
|
||||
HRESULT __cdecl OptimizeFacesEx( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nFaces*3) const uint32_t* adjacency,
|
||||
_In_reads_(nFaces) const uint32_t* attributes,
|
||||
_Out_writes_(nFaces) uint32_t* faceRemap,
|
||||
_In_ uint32_t vertexCache = OPTFACES_V_DEFAULT,
|
||||
_In_ uint32_t restart = OPTFACES_R_DEFAULT );
|
||||
HRESULT __cdecl OptimizeFacesEx( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nFaces*3) const uint32_t* adjacency,
|
||||
_In_reads_(nFaces) const uint32_t* attributes,
|
||||
_Out_writes_(nFaces) uint32_t* faceRemap,
|
||||
_In_ uint32_t vertexCache = OPTFACES_V_DEFAULT,
|
||||
_In_ uint32_t restart = OPTFACES_R_DEFAULT );
|
||||
// Attribute group version of OptimizeFaces
|
||||
|
||||
HRESULT __cdecl OptimizeVertices( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces, _In_ size_t nVerts,
|
||||
_Out_writes_(nVerts) uint32_t* vertexRemap );
|
||||
HRESULT __cdecl OptimizeVertices( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces, _In_ size_t nVerts,
|
||||
_Out_writes_(nVerts) uint32_t* vertexRemap );
|
||||
// Reorders vertices in order of use
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Remap functions
|
||||
|
||||
HRESULT __cdecl ReorderIB( _In_reads_(nFaces*3) const uint16_t* ibin, _In_ size_t nFaces,
|
||||
_In_reads_(nFaces) const uint32_t* faceRemap,
|
||||
_Out_writes_(nFaces*3) uint16_t* ibout );
|
||||
HRESULT __cdecl ReorderIB( _Inout_updates_all_(nFaces*3) uint16_t* ib, _In_ size_t nFaces,
|
||||
_In_reads_(nFaces) const uint32_t* faceRemap );
|
||||
HRESULT __cdecl ReorderIB( _In_reads_(nFaces*3) const uint32_t* ibin, _In_ size_t nFaces,
|
||||
_In_reads_(nFaces) const uint32_t* faceRemap,
|
||||
_Out_writes_(nFaces*3) uint32_t* ibout );
|
||||
HRESULT __cdecl ReorderIB( _Inout_updates_all_(nFaces*3) uint32_t* ib, _In_ size_t nFaces,
|
||||
_In_reads_(nFaces) const uint32_t* faceRemap );
|
||||
// Applies a face remap reordering to an index buffer
|
||||
|
||||
HRESULT __cdecl ReorderIBAndAdjacency( _In_reads_(nFaces*3) const uint16_t* ibin, _In_ size_t nFaces, _In_reads_(nFaces*3) const uint32_t* adjin,
|
||||
_In_reads_(nFaces) const uint32_t* faceRemap,
|
||||
_Out_writes_(nFaces*3) uint16_t* ibout, _Out_writes_(nFaces*3) uint32_t* adjout );
|
||||
HRESULT __cdecl ReorderIBAndAdjacency( _Inout_updates_all_(nFaces*3) uint16_t* ib, _In_ size_t nFaces, _Inout_updates_all_(nFaces*3) uint32_t* adj,
|
||||
_In_reads_(nFaces) const uint32_t* faceRemap );
|
||||
HRESULT __cdecl ReorderIBAndAdjacency( _In_reads_(nFaces*3) const uint32_t* ibin, _In_ size_t nFaces, _In_reads_(nFaces*3) const uint32_t* adjin,
|
||||
_In_reads_(nFaces) const uint32_t* faceRemap,
|
||||
_Out_writes_(nFaces*3) uint32_t* ibout, _Out_writes_(nFaces*3) uint32_t* adjout );
|
||||
HRESULT __cdecl ReorderIBAndAdjacency( _Inout_updates_all_(nFaces*3) uint32_t* ib, _In_ size_t nFaces, _Inout_updates_all_(nFaces*3) uint32_t* adj,
|
||||
_In_reads_(nFaces) const uint32_t* faceRemap );
|
||||
// Applies a face remap reordering to an index buffer and adjacency
|
||||
|
||||
HRESULT __cdecl FinalizeIB( _In_reads_(nFaces*3) const uint16_t* ibin, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const uint32_t* vertexRemap, _In_ size_t nVerts,
|
||||
_Out_writes_(nFaces*3) uint16_t* ibout );
|
||||
HRESULT __cdecl FinalizeIB( _Inout_updates_all_(nFaces*3) uint16_t* ib, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const uint32_t* vertexRemap, _In_ size_t nVerts );
|
||||
HRESULT __cdecl FinalizeIB( _In_reads_(nFaces*3) const uint32_t* ibin, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const uint32_t* vertexRemap, _In_ size_t nVerts,
|
||||
_Out_writes_(nFaces*3) uint32_t* ibout );
|
||||
HRESULT __cdecl FinalizeIB( _Inout_updates_all_(nFaces*3) uint32_t* ib, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const uint32_t* vertexRemap, _In_ size_t nVerts );
|
||||
// Applies a vertex remap reordering to an index buffer
|
||||
|
||||
HRESULT __cdecl FinalizeVB( _In_reads_bytes_(nVerts*stride) const void* vbin, _In_ size_t stride, _In_ size_t nVerts,
|
||||
_In_reads_opt_(nDupVerts) const uint32_t* dupVerts, _In_ size_t nDupVerts,
|
||||
_In_reads_opt_(nVerts+nDupVerts) const uint32_t* vertexRemap,
|
||||
_Out_writes_bytes_((nVerts+nDupVerts)*stride) void* vbout );
|
||||
HRESULT __cdecl FinalizeVB( _Inout_updates_bytes_all_(nVerts*stride) void* vb, _In_ size_t stride, _In_ size_t nVerts,
|
||||
_In_reads_(nVerts) const uint32_t* vertexRemap );
|
||||
// Applies a vertex remap and/or a vertex duplication set to a vertex buffer
|
||||
|
||||
HRESULT __cdecl FinalizeVBAndPointReps( _In_reads_bytes_(nVerts*stride) const void* vbin, _In_ size_t stride, _In_ size_t nVerts,
|
||||
_In_reads_(nVerts) const uint32_t* prin,
|
||||
_In_reads_opt_(nDupVerts) const uint32_t* dupVerts, _In_ size_t nDupVerts,
|
||||
_In_reads_opt_(nVerts+nDupVerts) const uint32_t* vertexRemap,
|
||||
_Out_writes_bytes_((nVerts+nDupVerts)*stride) void* vbout,
|
||||
_Out_writes_(nVerts+nDupVerts) uint32_t* prout );
|
||||
HRESULT __cdecl FinalizeVBAndPointReps( _Inout_updates_bytes_all_(nVerts*stride) void* vb, _In_ size_t stride, _In_ size_t nVerts,
|
||||
_Inout_updates_all_(nVerts) uint32_t* pointRep,
|
||||
_In_reads_(nVerts) const uint32_t* vertexRemap );
|
||||
// Applies a vertex remap and/or a vertex duplication set to a vertex buffer and point representatives
|
||||
|
||||
#include "DirectXMesh.inl"
|
||||
|
||||
}; // namespace
|
||||
//-------------------------------------------------------------------------------------
|
||||
// DirectXMesh.h
|
||||
//
|
||||
// DirectX Mesh Geometry Library
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#if defined(_XBOX_ONE) && defined(_TITLE)
|
||||
#include <d3d11_x.h>
|
||||
#define DCOMMON_H_INCLUDED
|
||||
#else
|
||||
#include <d3d11_1.h>
|
||||
#endif
|
||||
|
||||
#include <directxmath.h>
|
||||
|
||||
#define DIRECTX_MESH_VERSION 101
|
||||
|
||||
namespace DirectX
|
||||
{
|
||||
//---------------------------------------------------------------------------------
|
||||
// DXGI Format Utilities
|
||||
bool __cdecl IsValidVB( _In_ DXGI_FORMAT fmt );
|
||||
bool __cdecl IsValidIB( _In_ DXGI_FORMAT fmt );
|
||||
size_t __cdecl BytesPerElement( _In_ DXGI_FORMAT fmt );
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Input Layout Descriptor Utilities
|
||||
bool __cdecl IsValid( _In_reads_(nDecl) const D3D11_INPUT_ELEMENT_DESC* vbDecl, _In_ size_t nDecl );
|
||||
void __cdecl ComputeInputLayout( _In_reads_(nDecl) const D3D11_INPUT_ELEMENT_DESC* vbDecl, _In_ size_t nDecl,
|
||||
_Out_writes_opt_(nDecl) uint32_t* offsets,
|
||||
_Out_writes_opt_(D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT) uint32_t* strides );
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Attribute Utilities
|
||||
std::vector<std::pair<size_t,size_t>> __cdecl ComputeSubsets( _In_reads_opt_(nFaces) const uint32_t* attributes, _In_ size_t nFaces );
|
||||
// Returns a list of face offset,counts for attribute groups
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Mesh Optimization Utilities
|
||||
void __cdecl ComputeVertexCacheMissRate( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces, _In_ size_t nVerts,
|
||||
_In_ size_t cacheSize, _Out_ float& acmr, _Out_ float& atvr );
|
||||
void __cdecl ComputeVertexCacheMissRate( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces, _In_ size_t nVerts,
|
||||
_In_ size_t cacheSize, _Out_ float& acmr, _Out_ float& atvr );
|
||||
// Compute the average cache miss ratio and average triangle vertex reuse for the post-transform vertex cache
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Vertex Buffer Reader/Writer
|
||||
|
||||
class VBReader
|
||||
{
|
||||
public:
|
||||
VBReader();
|
||||
VBReader(VBReader&& moveFrom);
|
||||
VBReader& operator= (VBReader&& moveFrom);
|
||||
|
||||
VBReader(VBReader const&) = delete;
|
||||
VBReader& operator= (VBReader const&) = delete;
|
||||
|
||||
~VBReader();
|
||||
|
||||
HRESULT __cdecl Initialize( _In_reads_(nDecl) const D3D11_INPUT_ELEMENT_DESC* vbDecl, _In_ size_t nDecl );
|
||||
// Does not support VB decls with D3D11_INPUT_PER_INSTANCE_DATA
|
||||
|
||||
HRESULT __cdecl AddStream( _In_reads_bytes_(stride*nVerts) const void* vb, _In_ size_t nVerts, _In_ size_t inputSlot, _In_ size_t stride = 0 );
|
||||
// Add vertex buffer to reader
|
||||
|
||||
HRESULT __cdecl Read( _Out_writes_(count) XMVECTOR* buffer, _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex, _In_ size_t count ) const;
|
||||
// Extracts data elements from vertex buffer
|
||||
|
||||
HRESULT __cdecl Read( _Out_writes_(count) float* buffer, _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex, _In_ size_t count ) const;
|
||||
HRESULT __cdecl Read( _Out_writes_(count) XMFLOAT2* buffer, _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex, _In_ size_t count ) const;
|
||||
HRESULT __cdecl Read( _Out_writes_(count) XMFLOAT3* buffer, _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex, _In_ size_t count ) const;
|
||||
HRESULT __cdecl Read( _Out_writes_(count) XMFLOAT4* buffer, _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex, _In_ size_t count ) const;
|
||||
// Helpers for data extraction
|
||||
|
||||
void __cdecl Release();
|
||||
|
||||
const D3D11_INPUT_ELEMENT_DESC* __cdecl GetElement( _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex ) const;
|
||||
|
||||
private:
|
||||
// Private implementation.
|
||||
class Impl;
|
||||
|
||||
std::unique_ptr<Impl> pImpl;
|
||||
};
|
||||
|
||||
class VBWriter
|
||||
{
|
||||
public:
|
||||
VBWriter();
|
||||
VBWriter(VBWriter&& moveFrom);
|
||||
VBWriter& operator= (VBWriter&& moveFrom);
|
||||
|
||||
VBWriter(VBWriter const&) = delete;
|
||||
VBWriter& operator= (VBWriter const&) = delete;
|
||||
|
||||
~VBWriter();
|
||||
|
||||
HRESULT __cdecl Initialize( _In_reads_(nDecl) const D3D11_INPUT_ELEMENT_DESC* vbDecl, _In_ size_t nDecl );
|
||||
// Does not support VB decls with D3D11_INPUT_PER_INSTANCE_DATA
|
||||
|
||||
HRESULT __cdecl AddStream( _Out_writes_bytes_(stride*nVerts) void* vb, _In_ size_t nVerts, _In_ size_t inputSlot, _In_ size_t stride = 0 );
|
||||
// Add vertex buffer to writer
|
||||
|
||||
HRESULT __cdecl Write( _In_reads_(count) const XMVECTOR* buffer, _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex, _In_ size_t count ) const;
|
||||
// Inserts data elements into vertex buffer
|
||||
|
||||
HRESULT __cdecl Write( _In_reads_(count) const float* buffer, _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex, _In_ size_t count ) const;
|
||||
HRESULT __cdecl Write( _In_reads_(count) const XMFLOAT2* buffer, _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex, _In_ size_t count ) const;
|
||||
HRESULT __cdecl Write( _In_reads_(count) const XMFLOAT3* buffer, _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex, _In_ size_t count ) const;
|
||||
HRESULT __cdecl Write( _In_reads_(count) const XMFLOAT4* buffer, _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex, _In_ size_t count ) const;
|
||||
// Helpers for data insertion
|
||||
|
||||
void __cdecl Release();
|
||||
|
||||
const D3D11_INPUT_ELEMENT_DESC* __cdecl GetElement( _In_z_ LPCSTR semanticName, _In_ UINT semanticIndex ) const;
|
||||
|
||||
private:
|
||||
// Private implementation.
|
||||
class Impl;
|
||||
|
||||
std::unique_ptr<Impl> pImpl;
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Adjacency Computation
|
||||
|
||||
HRESULT __cdecl GenerateAdjacencyAndPointReps( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions, _In_ size_t nVerts,
|
||||
_In_ float epsilon,
|
||||
_Out_writes_opt_(nVerts) uint32_t* pointRep,
|
||||
_Out_writes_opt_(nFaces*3) uint32_t* adjacency );
|
||||
HRESULT __cdecl GenerateAdjacencyAndPointReps( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions, _In_ size_t nVerts,
|
||||
_In_ float epsilon,
|
||||
_Out_writes_opt_(nVerts) uint32_t* pointRep,
|
||||
_Out_writes_opt_(nFaces*3) uint32_t* adjacency );
|
||||
// If pointRep is null, it still generates them internally as they are needed for the final adjacency computation
|
||||
|
||||
HRESULT __cdecl ConvertPointRepsToAdjacency( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions, _In_ size_t nVerts,
|
||||
_In_reads_opt_(nVerts) const uint32_t* pointRep,
|
||||
_Out_writes_(nFaces*3) uint32_t* adjacency );
|
||||
HRESULT __cdecl ConvertPointRepsToAdjacency( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions, _In_ size_t nVerts,
|
||||
_In_reads_opt_(nVerts) const uint32_t* pointRep,
|
||||
_Out_writes_(nFaces*3) uint32_t* adjacency );
|
||||
// If pointRep is null, assumes an identity
|
||||
|
||||
HRESULT __cdecl GenerateGSAdjacency( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const uint32_t* pointRep,
|
||||
_In_reads_(nFaces*3) const uint32_t* adjacency, _In_ size_t nVerts,
|
||||
_Out_writes_(nFaces*6) uint16_t* indicesAdj );
|
||||
HRESULT __cdecl GenerateGSAdjacency( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const uint32_t* pointRep,
|
||||
_In_reads_(nFaces*3) const uint32_t* adjacency, _In_ size_t nVerts,
|
||||
_Out_writes_(nFaces*6) uint32_t* indicesAdj );
|
||||
// Generates an IB suitable for Geometry Shader using D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Normals, Tangents, and Bi-Tangents Computation
|
||||
|
||||
enum CNORM_FLAGS
|
||||
{
|
||||
CNORM_DEFAULT = 0x0,
|
||||
// Default is to compute normals using weight-by-angle
|
||||
|
||||
CNORM_WEIGHT_BY_AREA = 0x1,
|
||||
// Computes normals using weight-by-area
|
||||
|
||||
CNORM_WEIGHT_EQUAL = 0x2,
|
||||
// Compute normals with equal weights
|
||||
|
||||
CNORM_WIND_CW = 0x4,
|
||||
// Vertices are clock-wise (defaults to CCW)
|
||||
};
|
||||
|
||||
HRESULT __cdecl ComputeNormals( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions, _In_ size_t nVerts,
|
||||
_In_ DWORD flags,
|
||||
_Out_writes_(nVerts) XMFLOAT3* normals );
|
||||
HRESULT __cdecl ComputeNormals( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions, _In_ size_t nVerts,
|
||||
_In_ DWORD flags,
|
||||
_Out_writes_(nVerts) XMFLOAT3* normals );
|
||||
// Computes vertex normals
|
||||
|
||||
HRESULT __cdecl ComputeTangentFrame( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions,
|
||||
_In_reads_(nVerts) const XMFLOAT3* normals,
|
||||
_In_reads_(nVerts) const XMFLOAT2* texcoords, _In_ size_t nVerts,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT3* tangents,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT3* bitangents );
|
||||
HRESULT __cdecl ComputeTangentFrame( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions,
|
||||
_In_reads_(nVerts) const XMFLOAT3* normals,
|
||||
_In_reads_(nVerts) const XMFLOAT2* texcoords, _In_ size_t nVerts,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT3* tangents,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT3* bitangents );
|
||||
HRESULT __cdecl ComputeTangentFrame( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions,
|
||||
_In_reads_(nVerts) const XMFLOAT3* normals,
|
||||
_In_reads_(nVerts) const XMFLOAT2* texcoords, _In_ size_t nVerts,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT4* tangents,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT3* bitangents );
|
||||
HRESULT __cdecl ComputeTangentFrame( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions,
|
||||
_In_reads_(nVerts) const XMFLOAT3* normals,
|
||||
_In_reads_(nVerts) const XMFLOAT2* texcoords, _In_ size_t nVerts,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT4* tangents,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT3* bitangents );
|
||||
HRESULT __cdecl ComputeTangentFrame( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions,
|
||||
_In_reads_(nVerts) const XMFLOAT3* normals,
|
||||
_In_reads_(nVerts) const XMFLOAT2* texcoords, _In_ size_t nVerts,
|
||||
_Out_writes_(nVerts) XMFLOAT4* tangents );
|
||||
HRESULT __cdecl ComputeTangentFrame( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions,
|
||||
_In_reads_(nVerts) const XMFLOAT3* normals,
|
||||
_In_reads_(nVerts) const XMFLOAT2* texcoords, _In_ size_t nVerts,
|
||||
_Out_writes_(nVerts) XMFLOAT4* tangents );
|
||||
// Computes tangents and/or bi-tangents (optionally with handedness stored in .w)
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Mesh clean-up and validation
|
||||
|
||||
enum VALIDATE_FLAGS
|
||||
{
|
||||
VALIDATE_DEFAULT = 0x0,
|
||||
|
||||
VALIDATE_BACKFACING = 0x1,
|
||||
// Check for duplicate neighbor from triangle (requires adjacency)
|
||||
|
||||
VALIDATE_BOWTIES = 0x2,
|
||||
// Check for two fans of triangles using the same vertex (requires adjacency)
|
||||
|
||||
VALIDATE_DEGENERATE = 0x4,
|
||||
// Check for degenerate triangles
|
||||
|
||||
VALIDATE_UNUSED = 0x8,
|
||||
// Check for issues with 'unused' triangles
|
||||
|
||||
VALIDATE_ASYMMETRIC_ADJ = 0x10,
|
||||
// Checks that neighbors are symmetric (requires adjacency)
|
||||
};
|
||||
|
||||
HRESULT __cdecl Validate( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_ size_t nVerts, _In_reads_opt_(nFaces*3) const uint32_t* adjacency,
|
||||
_In_ DWORD flags, _In_opt_ std::wstring* msgs = nullptr );
|
||||
HRESULT __cdecl Validate( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_ size_t nVerts, _In_reads_opt_(nFaces*3) const uint32_t* adjacency,
|
||||
_In_ DWORD flags, _In_opt_ std::wstring* msgs = nullptr );
|
||||
// Checks the mesh for common problems, return 'S_OK' if no problems were found
|
||||
|
||||
HRESULT __cdecl Clean( _Inout_updates_all_(nFaces*3) uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_ size_t nVerts, _Inout_updates_all_opt_(nFaces*3) uint32_t* adjacency,
|
||||
_In_reads_opt_(nFaces) const uint32_t* attributes,
|
||||
_Inout_ std::vector<uint32_t>& dupVerts, _In_ bool breakBowties=false );
|
||||
HRESULT __cdecl Clean( _Inout_updates_all_(nFaces*3) uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_ size_t nVerts, _Inout_updates_all_opt_(nFaces*3) uint32_t* adjacency,
|
||||
_In_reads_opt_(nFaces) const uint32_t* attributes,
|
||||
_Inout_ std::vector<uint32_t>& dupVerts, _In_ bool breakBowties=false );
|
||||
// Cleans the mesh, splitting vertices if needed
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Mesh Optimization
|
||||
|
||||
HRESULT __cdecl AttributeSort( _In_ size_t nFaces, _Inout_updates_all_(nFaces) uint32_t* attributes,
|
||||
_Out_writes_(nFaces) uint32_t* faceRemap );
|
||||
// Reorders faces by attribute id
|
||||
|
||||
enum OPTFACES
|
||||
{
|
||||
OPTFACES_V_DEFAULT = 12,
|
||||
OPTFACES_R_DEFAULT = 7,
|
||||
// Default vertex cache size and restart threshold which is considered 'device independent'
|
||||
|
||||
OPTFACES_V_STRIPORDER = 0,
|
||||
// Indicates no vertex cache optimization, only reordering into strips
|
||||
};
|
||||
|
||||
HRESULT __cdecl OptimizeFaces( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nFaces*3) const uint32_t* adjacency,
|
||||
_Out_writes_(nFaces) uint32_t* faceRemap,
|
||||
_In_ uint32_t vertexCache = OPTFACES_V_DEFAULT,
|
||||
_In_ uint32_t restart = OPTFACES_R_DEFAULT );
|
||||
HRESULT __cdecl OptimizeFaces( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nFaces*3) const uint32_t* adjacency,
|
||||
_Out_writes_(nFaces) uint32_t* faceRemap,
|
||||
_In_ uint32_t vertexCache = OPTFACES_V_DEFAULT,
|
||||
_In_ uint32_t restart = OPTFACES_R_DEFAULT );
|
||||
// Reorders faces to increase hit rate of vertex caches
|
||||
|
||||
HRESULT __cdecl OptimizeFacesEx( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nFaces*3) const uint32_t* adjacency,
|
||||
_In_reads_(nFaces) const uint32_t* attributes,
|
||||
_Out_writes_(nFaces) uint32_t* faceRemap,
|
||||
_In_ uint32_t vertexCache = OPTFACES_V_DEFAULT,
|
||||
_In_ uint32_t restart = OPTFACES_R_DEFAULT );
|
||||
HRESULT __cdecl OptimizeFacesEx( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nFaces*3) const uint32_t* adjacency,
|
||||
_In_reads_(nFaces) const uint32_t* attributes,
|
||||
_Out_writes_(nFaces) uint32_t* faceRemap,
|
||||
_In_ uint32_t vertexCache = OPTFACES_V_DEFAULT,
|
||||
_In_ uint32_t restart = OPTFACES_R_DEFAULT );
|
||||
// Attribute group version of OptimizeFaces
|
||||
|
||||
HRESULT __cdecl OptimizeVertices( _In_reads_(nFaces*3) const uint16_t* indices, _In_ size_t nFaces, _In_ size_t nVerts,
|
||||
_Out_writes_(nVerts) uint32_t* vertexRemap );
|
||||
HRESULT __cdecl OptimizeVertices( _In_reads_(nFaces*3) const uint32_t* indices, _In_ size_t nFaces, _In_ size_t nVerts,
|
||||
_Out_writes_(nVerts) uint32_t* vertexRemap );
|
||||
// Reorders vertices in order of use
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Remap functions
|
||||
|
||||
HRESULT __cdecl ReorderIB( _In_reads_(nFaces*3) const uint16_t* ibin, _In_ size_t nFaces,
|
||||
_In_reads_(nFaces) const uint32_t* faceRemap,
|
||||
_Out_writes_(nFaces*3) uint16_t* ibout );
|
||||
HRESULT __cdecl ReorderIB( _Inout_updates_all_(nFaces*3) uint16_t* ib, _In_ size_t nFaces,
|
||||
_In_reads_(nFaces) const uint32_t* faceRemap );
|
||||
HRESULT __cdecl ReorderIB( _In_reads_(nFaces*3) const uint32_t* ibin, _In_ size_t nFaces,
|
||||
_In_reads_(nFaces) const uint32_t* faceRemap,
|
||||
_Out_writes_(nFaces*3) uint32_t* ibout );
|
||||
HRESULT __cdecl ReorderIB( _Inout_updates_all_(nFaces*3) uint32_t* ib, _In_ size_t nFaces,
|
||||
_In_reads_(nFaces) const uint32_t* faceRemap );
|
||||
// Applies a face remap reordering to an index buffer
|
||||
|
||||
HRESULT __cdecl ReorderIBAndAdjacency( _In_reads_(nFaces*3) const uint16_t* ibin, _In_ size_t nFaces, _In_reads_(nFaces*3) const uint32_t* adjin,
|
||||
_In_reads_(nFaces) const uint32_t* faceRemap,
|
||||
_Out_writes_(nFaces*3) uint16_t* ibout, _Out_writes_(nFaces*3) uint32_t* adjout );
|
||||
HRESULT __cdecl ReorderIBAndAdjacency( _Inout_updates_all_(nFaces*3) uint16_t* ib, _In_ size_t nFaces, _Inout_updates_all_(nFaces*3) uint32_t* adj,
|
||||
_In_reads_(nFaces) const uint32_t* faceRemap );
|
||||
HRESULT __cdecl ReorderIBAndAdjacency( _In_reads_(nFaces*3) const uint32_t* ibin, _In_ size_t nFaces, _In_reads_(nFaces*3) const uint32_t* adjin,
|
||||
_In_reads_(nFaces) const uint32_t* faceRemap,
|
||||
_Out_writes_(nFaces*3) uint32_t* ibout, _Out_writes_(nFaces*3) uint32_t* adjout );
|
||||
HRESULT __cdecl ReorderIBAndAdjacency( _Inout_updates_all_(nFaces*3) uint32_t* ib, _In_ size_t nFaces, _Inout_updates_all_(nFaces*3) uint32_t* adj,
|
||||
_In_reads_(nFaces) const uint32_t* faceRemap );
|
||||
// Applies a face remap reordering to an index buffer and adjacency
|
||||
|
||||
HRESULT __cdecl FinalizeIB( _In_reads_(nFaces*3) const uint16_t* ibin, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const uint32_t* vertexRemap, _In_ size_t nVerts,
|
||||
_Out_writes_(nFaces*3) uint16_t* ibout );
|
||||
HRESULT __cdecl FinalizeIB( _Inout_updates_all_(nFaces*3) uint16_t* ib, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const uint32_t* vertexRemap, _In_ size_t nVerts );
|
||||
HRESULT __cdecl FinalizeIB( _In_reads_(nFaces*3) const uint32_t* ibin, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const uint32_t* vertexRemap, _In_ size_t nVerts,
|
||||
_Out_writes_(nFaces*3) uint32_t* ibout );
|
||||
HRESULT __cdecl FinalizeIB( _Inout_updates_all_(nFaces*3) uint32_t* ib, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const uint32_t* vertexRemap, _In_ size_t nVerts );
|
||||
// Applies a vertex remap reordering to an index buffer
|
||||
|
||||
HRESULT __cdecl FinalizeVB( _In_reads_bytes_(nVerts*stride) const void* vbin, _In_ size_t stride, _In_ size_t nVerts,
|
||||
_In_reads_opt_(nDupVerts) const uint32_t* dupVerts, _In_ size_t nDupVerts,
|
||||
_In_reads_opt_(nVerts+nDupVerts) const uint32_t* vertexRemap,
|
||||
_Out_writes_bytes_((nVerts+nDupVerts)*stride) void* vbout );
|
||||
HRESULT __cdecl FinalizeVB( _Inout_updates_bytes_all_(nVerts*stride) void* vb, _In_ size_t stride, _In_ size_t nVerts,
|
||||
_In_reads_(nVerts) const uint32_t* vertexRemap );
|
||||
// Applies a vertex remap and/or a vertex duplication set to a vertex buffer
|
||||
|
||||
HRESULT __cdecl FinalizeVBAndPointReps( _In_reads_bytes_(nVerts*stride) const void* vbin, _In_ size_t stride, _In_ size_t nVerts,
|
||||
_In_reads_(nVerts) const uint32_t* prin,
|
||||
_In_reads_opt_(nDupVerts) const uint32_t* dupVerts, _In_ size_t nDupVerts,
|
||||
_In_reads_opt_(nVerts+nDupVerts) const uint32_t* vertexRemap,
|
||||
_Out_writes_bytes_((nVerts+nDupVerts)*stride) void* vbout,
|
||||
_Out_writes_(nVerts+nDupVerts) uint32_t* prout );
|
||||
HRESULT __cdecl FinalizeVBAndPointReps( _Inout_updates_bytes_all_(nVerts*stride) void* vb, _In_ size_t stride, _In_ size_t nVerts,
|
||||
_Inout_updates_all_(nVerts) uint32_t* pointRep,
|
||||
_In_reads_(nVerts) const uint32_t* vertexRemap );
|
||||
// Applies a vertex remap and/or a vertex duplication set to a vertex buffer and point representatives
|
||||
|
||||
#include "DirectXMesh.inl"
|
||||
|
||||
}; // namespace
|
||||
|
|
|
@ -1,31 +1,31 @@
|
|||
//-------------------------------------------------------------------------------------
|
||||
// DirectXMesh.inl
|
||||
//
|
||||
// DirectX Mesh Geometry Library
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
//=====================================================================================
|
||||
// DXGI Format Utilities
|
||||
//=====================================================================================
|
||||
_Use_decl_annotations_
|
||||
inline bool __cdecl IsValidVB( DXGI_FORMAT fmt )
|
||||
{
|
||||
return BytesPerElement( fmt ) != 0;
|
||||
}
|
||||
|
||||
_Use_decl_annotations_
|
||||
inline bool __cdecl IsValidIB( DXGI_FORMAT fmt )
|
||||
{
|
||||
return ( fmt == DXGI_FORMAT_R32_UINT || fmt == DXGI_FORMAT_R16_UINT ) != 0;
|
||||
}
|
||||
//-------------------------------------------------------------------------------------
|
||||
// DirectXMesh.inl
|
||||
//
|
||||
// DirectX Mesh Geometry Library
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
//=====================================================================================
|
||||
// DXGI Format Utilities
|
||||
//=====================================================================================
|
||||
_Use_decl_annotations_
|
||||
inline bool __cdecl IsValidVB( DXGI_FORMAT fmt )
|
||||
{
|
||||
return BytesPerElement( fmt ) != 0;
|
||||
}
|
||||
|
||||
_Use_decl_annotations_
|
||||
inline bool __cdecl IsValidIB( DXGI_FORMAT fmt )
|
||||
{
|
||||
return ( fmt == DXGI_FORMAT_R32_UINT || fmt == DXGI_FORMAT_R16_UINT ) != 0;
|
||||
}
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,449 +1,449 @@
|
|||
//-------------------------------------------------------------------------------------
|
||||
// DirectXMeshClean.cpp
|
||||
//
|
||||
// DirectX Mesh Geometry Library - Mesh clean-up
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#include "DirectXMeshP.h"
|
||||
|
||||
using namespace DirectX;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
template<class index_t>
|
||||
HRESULT _Clean( _Inout_updates_all_(nFaces*3) index_t* indices,
|
||||
size_t nFaces, size_t nVerts,
|
||||
_Inout_updates_all_opt_(nFaces*3) uint32_t* adjacency,
|
||||
_In_reads_opt_(nFaces) const uint32_t* attributes,
|
||||
_Inout_ std::vector<uint32_t>& dupVerts, bool breakBowties )
|
||||
{
|
||||
if ( !adjacency && !attributes )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( ( uint64_t(nFaces) * 3 ) >= UINT32_MAX )
|
||||
return HRESULT_FROM_WIN32( ERROR_ARITHMETIC_OVERFLOW );
|
||||
|
||||
dupVerts.clear();
|
||||
size_t curNewVert = nVerts;
|
||||
|
||||
size_t tsize = ( sizeof(bool) * nFaces * 3 ) + ( sizeof(uint32_t) * nVerts ) + ( sizeof(index_t) * nFaces * 3 );
|
||||
std::unique_ptr<uint8_t[]> temp( new (std::nothrow) uint8_t[ tsize ] );
|
||||
if ( !temp )
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
auto faceSeen = reinterpret_cast<bool*>( temp.get() );
|
||||
auto ids = reinterpret_cast<uint32_t*>( temp.get() + sizeof(bool) * nFaces * 3 );
|
||||
|
||||
// UNUSED/DEGENERATE cleanup
|
||||
for( uint32_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
index_t i0 = indices[ face*3 ];
|
||||
index_t i1 = indices[ face*3 + 1 ];
|
||||
index_t i2 = indices[ face*3 + 2 ];
|
||||
|
||||
if ( i0 == index_t(-1)
|
||||
|| i1 == index_t(-1)
|
||||
|| i2 == index_t(-1) )
|
||||
{
|
||||
// ensure all index entries in the unused face are 'unused'
|
||||
indices[ face*3 ] =
|
||||
indices[ face*3 + 1 ] =
|
||||
indices[ face*3 + 2 ] = index_t(-1);
|
||||
|
||||
// ensure no neighbor references the unused face
|
||||
if ( adjacency )
|
||||
{
|
||||
for( uint32_t point = 0; point < 3; ++point )
|
||||
{
|
||||
uint32_t k = adjacency[ face*3 + point ];
|
||||
if ( k != UNUSED32 )
|
||||
{
|
||||
assert( k < nFaces );
|
||||
_Analysis_assume_( k < nFaces );
|
||||
|
||||
if ( adjacency[ k*3 ] == face )
|
||||
adjacency[ k*3 ] = UNUSED32;
|
||||
|
||||
if ( adjacency[ k*3 + 1 ] == face )
|
||||
adjacency[ k*3 + 1 ] = UNUSED32;
|
||||
|
||||
if ( adjacency[ k*3 + 2 ] == face )
|
||||
adjacency[ k*3 + 2 ] = UNUSED32;
|
||||
|
||||
adjacency[ face*3 + point ] = UNUSED32;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( i0 == i1
|
||||
|| i0 == i2
|
||||
|| i1 == i2 )
|
||||
{
|
||||
// Clean doesn't trim out degenerates as most other functions ignore them
|
||||
|
||||
// ensure no neighbor references the degenerate face
|
||||
if ( adjacency )
|
||||
{
|
||||
for( uint32_t point = 0; point < 3; ++point )
|
||||
{
|
||||
uint32_t k = adjacency[ face*3 + point ];
|
||||
if ( k != UNUSED32 )
|
||||
{
|
||||
assert( k < nFaces );
|
||||
_Analysis_assume_( k < nFaces );
|
||||
|
||||
if ( adjacency[ k*3 ] == face )
|
||||
adjacency[ k*3 ] = UNUSED32;
|
||||
|
||||
if ( adjacency[ k*3 + 1 ] == face )
|
||||
adjacency[ k*3 + 1 ] = UNUSED32;
|
||||
|
||||
if ( adjacency[ k*3 + 2 ] == face )
|
||||
adjacency[ k*3 + 2 ] = UNUSED32;
|
||||
|
||||
adjacency[ face*3 + point ] = UNUSED32;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ASYMMETRIC ADJ cleanup
|
||||
if ( adjacency )
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
bool unlinked = false;
|
||||
|
||||
for( uint32_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
for( size_t point = 0; point < 3; ++point )
|
||||
{
|
||||
uint32_t k = adjacency[ face*3 + point ];
|
||||
if ( k != UNUSED32 )
|
||||
{
|
||||
assert( k < nFaces );
|
||||
_Analysis_assume_( k < nFaces );
|
||||
|
||||
uint32_t edge = find_edge<uint32_t>( &adjacency[ k * 3 ], face );
|
||||
if ( edge >= 3 )
|
||||
{
|
||||
unlinked = true;
|
||||
adjacency[ face*3 + point ] = UNUSED32;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( !unlinked )
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// BACKFACING cleanup
|
||||
if ( adjacency )
|
||||
{
|
||||
for( size_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
index_t i0 = indices[ face*3 ];
|
||||
index_t i1 = indices[ face*3 + 1 ];
|
||||
index_t i2 = indices[ face*3 + 2 ];
|
||||
|
||||
if ( i0 == index_t(-1)
|
||||
|| i1 == index_t(-1)
|
||||
|| i2 == index_t(-1) )
|
||||
{
|
||||
// ignore unused faces
|
||||
continue;
|
||||
}
|
||||
|
||||
assert( i0 < nVerts );
|
||||
assert( i1 < nVerts );
|
||||
assert( i2 < nVerts );
|
||||
|
||||
if ( i0 == i1
|
||||
|| i0 == i2
|
||||
|| i1 == i2 )
|
||||
{
|
||||
// ignore degenerate faces
|
||||
continue;
|
||||
}
|
||||
|
||||
uint32_t j0 = adjacency[ face*3 ];
|
||||
uint32_t j1 = adjacency[ face*3 + 1 ];
|
||||
uint32_t j2 = adjacency[ face*3 + 2 ];
|
||||
|
||||
if ( ( j0 == j1 && j0 != UNUSED32 )
|
||||
|| ( j0 == j2 && j0 != UNUSED32 )
|
||||
|| ( j1 == j2 && j1 != UNUSED32 ) )
|
||||
{
|
||||
uint32_t neighbor;
|
||||
|
||||
if ( j0 == j1 || j0 == j2 )
|
||||
{
|
||||
neighbor = j0;
|
||||
}
|
||||
else
|
||||
{
|
||||
neighbor = j1;
|
||||
}
|
||||
|
||||
// remove links then break bowties will clean up any remaining issues
|
||||
for( uint32_t edge = 0; edge < 3; ++edge )
|
||||
{
|
||||
if ( adjacency[ face * 3 + edge ] == neighbor )
|
||||
{
|
||||
adjacency[ face * 3 + edge ] = UNUSED32;
|
||||
}
|
||||
|
||||
if ( adjacency[ neighbor * 3 + edge ] == face )
|
||||
{
|
||||
adjacency[ neighbor * 3 + edge ] = UNUSED32;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
auto indicesNew = reinterpret_cast<index_t*>( reinterpret_cast<uint8_t*>( ids ) + sizeof(uint32_t) * nVerts );
|
||||
memcpy( indicesNew, indices, sizeof(index_t) * nFaces * 3 );
|
||||
|
||||
// BOWTIES cleanup
|
||||
if ( adjacency && breakBowties )
|
||||
{
|
||||
memset( faceSeen, 0, sizeof(bool) * nFaces * 3 );
|
||||
memset( ids, 0xFF, sizeof(uint32_t) * nVerts );
|
||||
|
||||
orbit_iterator<index_t> ovi( adjacency, indices, nFaces );
|
||||
|
||||
for( uint32_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
index_t i0 = indices[ face*3 ];
|
||||
index_t i1 = indices[ face*3 + 1 ];
|
||||
index_t i2 = indices[ face*3 + 2 ];
|
||||
|
||||
if ( i0 == index_t(-1)
|
||||
|| i1 == index_t(-1)
|
||||
|| i2 == index_t(-1) )
|
||||
{
|
||||
// ignore unused faces
|
||||
faceSeen[ face * 3 ] = true;
|
||||
faceSeen[ face * 3 + 1 ] = true;
|
||||
faceSeen[ face * 3 + 2 ] = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
assert( i0 < nVerts );
|
||||
assert( i1 < nVerts );
|
||||
assert( i2 < nVerts );
|
||||
|
||||
if ( i0 == i1
|
||||
|| i0 == i2
|
||||
|| i1 == i2 )
|
||||
{
|
||||
// ignore degenerate faces
|
||||
faceSeen[ face * 3 ] = true;
|
||||
faceSeen[ face * 3 + 1 ] = true;
|
||||
faceSeen[ face * 3 + 2 ] = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
for( uint32_t point = 0; point < 3; ++point )
|
||||
{
|
||||
if ( faceSeen[ face * 3 + point ] )
|
||||
continue;
|
||||
|
||||
faceSeen[ face * 3 + point ] = true;
|
||||
|
||||
index_t i = indices[ face*3 + point ];
|
||||
if ( i == index_t(-1) )
|
||||
continue;
|
||||
|
||||
assert( i < nVerts );
|
||||
|
||||
ovi.initialize( face, i, orbit_iterator<index_t>::ALL );
|
||||
ovi.moveToCCW();
|
||||
|
||||
index_t replaceVertex = index_t(-1);
|
||||
index_t replaceValue = index_t(-1);
|
||||
|
||||
while ( !ovi.done() )
|
||||
{
|
||||
uint32_t curFace = ovi.nextFace();
|
||||
if ( curFace >= nFaces )
|
||||
return E_FAIL;
|
||||
|
||||
uint32_t curPoint = ovi.getpoint();
|
||||
if ( curPoint > 2 )
|
||||
return E_FAIL;
|
||||
|
||||
faceSeen[ curFace*3 + curPoint ] = true;
|
||||
|
||||
index_t j = indices[ curFace * 3 + curPoint ];
|
||||
if ( j == index_t(-1) )
|
||||
continue;
|
||||
|
||||
assert ( j < nVerts );
|
||||
|
||||
if ( j == replaceVertex )
|
||||
{
|
||||
indicesNew[ curFace * 3 + curPoint ] = replaceValue;
|
||||
}
|
||||
else if ( ids[ j ] == UNUSED32 )
|
||||
{
|
||||
ids[ j ] = face;
|
||||
}
|
||||
else if ( ids[ j ] != face )
|
||||
{
|
||||
// We found a bowtie, duplicate a vert
|
||||
replaceVertex = j;
|
||||
replaceValue = index_t( curNewVert );
|
||||
indicesNew[ curFace * 3 + curPoint ] = replaceValue;
|
||||
++curNewVert;
|
||||
|
||||
dupVerts.push_back( j );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
assert( ( nVerts + dupVerts.size() ) == curNewVert );
|
||||
}
|
||||
|
||||
// Ensure no vertex is used by more than one attribute
|
||||
if ( attributes )
|
||||
{
|
||||
memset( ids, 0xFF, sizeof(uint32_t) * nVerts );
|
||||
|
||||
std::vector<uint32_t> dupAttr;
|
||||
dupAttr.reserve( dupVerts.size() );
|
||||
for( size_t j = 0; j < dupVerts.size(); ++j )
|
||||
{
|
||||
dupAttr.push_back( UNUSED32 );
|
||||
}
|
||||
|
||||
std::unordered_multimap<uint32_t,size_t> dups;
|
||||
|
||||
for( size_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
uint32_t a = attributes[ face ];
|
||||
|
||||
for( size_t point = 0; point < 3; ++point )
|
||||
{
|
||||
uint32_t j = indicesNew[ face*3 + point ];
|
||||
|
||||
uint32_t k = ( j >= nVerts ) ? dupAttr[ j - nVerts ] : ids[ j ];
|
||||
|
||||
if ( k == UNUSED32 )
|
||||
{
|
||||
if ( j >= nVerts )
|
||||
dupAttr[ j - nVerts ] = a;
|
||||
else
|
||||
ids[ j ] = a;
|
||||
}
|
||||
else if ( k != a )
|
||||
{
|
||||
// Look for a dup with the correct attribute
|
||||
auto range = dups.equal_range( j );
|
||||
auto it = range.first;
|
||||
for( ; it != range.second; ++it )
|
||||
{
|
||||
uint32_t m = ( it->second >= nVerts ) ? dupAttr[ it->second - nVerts ] : ids[ it->second ];
|
||||
if ( m == a )
|
||||
{
|
||||
indicesNew[ face * 3 + point ] = index_t( it->second );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( it == range.second )
|
||||
{
|
||||
// Duplicate the vert
|
||||
dups.insert( std::pair<uint32_t,size_t>( j, curNewVert ) );
|
||||
|
||||
indicesNew[ face * 3 + point ] = index_t( curNewVert );
|
||||
++curNewVert;
|
||||
|
||||
if ( j >= nVerts )
|
||||
{
|
||||
dupVerts.push_back( dupVerts[ j - nVerts ] );
|
||||
}
|
||||
else
|
||||
{
|
||||
dupVerts.push_back( j );
|
||||
}
|
||||
|
||||
dupAttr.push_back( a );
|
||||
|
||||
assert( dupVerts.size() == dupAttr.size() );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
assert( ( nVerts + dupVerts.size() ) == curNewVert );
|
||||
|
||||
#ifndef NDEBUG
|
||||
for( auto it = dupVerts.begin(); it != dupVerts.end(); ++it )
|
||||
{
|
||||
assert( *it < nVerts );
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
if ( (uint64_t(nVerts) + uint64_t(dupVerts.size()) ) >= index_t(-1) )
|
||||
return HRESULT_FROM_WIN32( ERROR_ARITHMETIC_OVERFLOW );
|
||||
|
||||
if ( !dupVerts.empty() )
|
||||
{
|
||||
memcpy( indices, indicesNew, sizeof(index_t) * nFaces * 3 );
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
namespace DirectX
|
||||
{
|
||||
|
||||
//=====================================================================================
|
||||
// Entry-points
|
||||
//=====================================================================================
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT Clean( uint16_t* indices, size_t nFaces, size_t nVerts, uint32_t* adjacency, const uint32_t* attributes,
|
||||
std::vector<uint32_t>& dupVerts, bool breakBowties )
|
||||
{
|
||||
HRESULT hr = Validate( indices, nFaces, nVerts, adjacency, VALIDATE_DEFAULT );
|
||||
if ( FAILED(hr) )
|
||||
return hr;
|
||||
|
||||
return _Clean<uint16_t>( indices, nFaces, nVerts, adjacency, attributes, dupVerts, breakBowties );
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT Clean( uint32_t* indices, size_t nFaces, size_t nVerts, uint32_t* adjacency, const uint32_t* attributes,
|
||||
std::vector<uint32_t>& dupVerts, bool breakBowties )
|
||||
{
|
||||
HRESULT hr = Validate( indices, nFaces, nVerts, adjacency, VALIDATE_DEFAULT );
|
||||
if ( FAILED(hr) )
|
||||
return hr;
|
||||
|
||||
return _Clean<uint32_t>( indices, nFaces, nVerts, adjacency, attributes, dupVerts, breakBowties );
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// DirectXMeshClean.cpp
|
||||
//
|
||||
// DirectX Mesh Geometry Library - Mesh clean-up
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#include "DirectXMeshP.h"
|
||||
|
||||
using namespace DirectX;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
template<class index_t>
|
||||
HRESULT _Clean( _Inout_updates_all_(nFaces*3) index_t* indices,
|
||||
size_t nFaces, size_t nVerts,
|
||||
_Inout_updates_all_opt_(nFaces*3) uint32_t* adjacency,
|
||||
_In_reads_opt_(nFaces) const uint32_t* attributes,
|
||||
_Inout_ std::vector<uint32_t>& dupVerts, bool breakBowties )
|
||||
{
|
||||
if ( !adjacency && !attributes )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( ( uint64_t(nFaces) * 3 ) >= UINT32_MAX )
|
||||
return HRESULT_FROM_WIN32( ERROR_ARITHMETIC_OVERFLOW );
|
||||
|
||||
dupVerts.clear();
|
||||
size_t curNewVert = nVerts;
|
||||
|
||||
size_t tsize = ( sizeof(bool) * nFaces * 3 ) + ( sizeof(uint32_t) * nVerts ) + ( sizeof(index_t) * nFaces * 3 );
|
||||
std::unique_ptr<uint8_t[]> temp( new (std::nothrow) uint8_t[ tsize ] );
|
||||
if ( !temp )
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
auto faceSeen = reinterpret_cast<bool*>( temp.get() );
|
||||
auto ids = reinterpret_cast<uint32_t*>( temp.get() + sizeof(bool) * nFaces * 3 );
|
||||
|
||||
// UNUSED/DEGENERATE cleanup
|
||||
for( uint32_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
index_t i0 = indices[ face*3 ];
|
||||
index_t i1 = indices[ face*3 + 1 ];
|
||||
index_t i2 = indices[ face*3 + 2 ];
|
||||
|
||||
if ( i0 == index_t(-1)
|
||||
|| i1 == index_t(-1)
|
||||
|| i2 == index_t(-1) )
|
||||
{
|
||||
// ensure all index entries in the unused face are 'unused'
|
||||
indices[ face*3 ] =
|
||||
indices[ face*3 + 1 ] =
|
||||
indices[ face*3 + 2 ] = index_t(-1);
|
||||
|
||||
// ensure no neighbor references the unused face
|
||||
if ( adjacency )
|
||||
{
|
||||
for( uint32_t point = 0; point < 3; ++point )
|
||||
{
|
||||
uint32_t k = adjacency[ face*3 + point ];
|
||||
if ( k != UNUSED32 )
|
||||
{
|
||||
assert( k < nFaces );
|
||||
_Analysis_assume_( k < nFaces );
|
||||
|
||||
if ( adjacency[ k*3 ] == face )
|
||||
adjacency[ k*3 ] = UNUSED32;
|
||||
|
||||
if ( adjacency[ k*3 + 1 ] == face )
|
||||
adjacency[ k*3 + 1 ] = UNUSED32;
|
||||
|
||||
if ( adjacency[ k*3 + 2 ] == face )
|
||||
adjacency[ k*3 + 2 ] = UNUSED32;
|
||||
|
||||
adjacency[ face*3 + point ] = UNUSED32;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( i0 == i1
|
||||
|| i0 == i2
|
||||
|| i1 == i2 )
|
||||
{
|
||||
// Clean doesn't trim out degenerates as most other functions ignore them
|
||||
|
||||
// ensure no neighbor references the degenerate face
|
||||
if ( adjacency )
|
||||
{
|
||||
for( uint32_t point = 0; point < 3; ++point )
|
||||
{
|
||||
uint32_t k = adjacency[ face*3 + point ];
|
||||
if ( k != UNUSED32 )
|
||||
{
|
||||
assert( k < nFaces );
|
||||
_Analysis_assume_( k < nFaces );
|
||||
|
||||
if ( adjacency[ k*3 ] == face )
|
||||
adjacency[ k*3 ] = UNUSED32;
|
||||
|
||||
if ( adjacency[ k*3 + 1 ] == face )
|
||||
adjacency[ k*3 + 1 ] = UNUSED32;
|
||||
|
||||
if ( adjacency[ k*3 + 2 ] == face )
|
||||
adjacency[ k*3 + 2 ] = UNUSED32;
|
||||
|
||||
adjacency[ face*3 + point ] = UNUSED32;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ASYMMETRIC ADJ cleanup
|
||||
if ( adjacency )
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
bool unlinked = false;
|
||||
|
||||
for( uint32_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
for( size_t point = 0; point < 3; ++point )
|
||||
{
|
||||
uint32_t k = adjacency[ face*3 + point ];
|
||||
if ( k != UNUSED32 )
|
||||
{
|
||||
assert( k < nFaces );
|
||||
_Analysis_assume_( k < nFaces );
|
||||
|
||||
uint32_t edge = find_edge<uint32_t>( &adjacency[ k * 3 ], face );
|
||||
if ( edge >= 3 )
|
||||
{
|
||||
unlinked = true;
|
||||
adjacency[ face*3 + point ] = UNUSED32;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( !unlinked )
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// BACKFACING cleanup
|
||||
if ( adjacency )
|
||||
{
|
||||
for( size_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
index_t i0 = indices[ face*3 ];
|
||||
index_t i1 = indices[ face*3 + 1 ];
|
||||
index_t i2 = indices[ face*3 + 2 ];
|
||||
|
||||
if ( i0 == index_t(-1)
|
||||
|| i1 == index_t(-1)
|
||||
|| i2 == index_t(-1) )
|
||||
{
|
||||
// ignore unused faces
|
||||
continue;
|
||||
}
|
||||
|
||||
assert( i0 < nVerts );
|
||||
assert( i1 < nVerts );
|
||||
assert( i2 < nVerts );
|
||||
|
||||
if ( i0 == i1
|
||||
|| i0 == i2
|
||||
|| i1 == i2 )
|
||||
{
|
||||
// ignore degenerate faces
|
||||
continue;
|
||||
}
|
||||
|
||||
uint32_t j0 = adjacency[ face*3 ];
|
||||
uint32_t j1 = adjacency[ face*3 + 1 ];
|
||||
uint32_t j2 = adjacency[ face*3 + 2 ];
|
||||
|
||||
if ( ( j0 == j1 && j0 != UNUSED32 )
|
||||
|| ( j0 == j2 && j0 != UNUSED32 )
|
||||
|| ( j1 == j2 && j1 != UNUSED32 ) )
|
||||
{
|
||||
uint32_t neighbor;
|
||||
|
||||
if ( j0 == j1 || j0 == j2 )
|
||||
{
|
||||
neighbor = j0;
|
||||
}
|
||||
else
|
||||
{
|
||||
neighbor = j1;
|
||||
}
|
||||
|
||||
// remove links then break bowties will clean up any remaining issues
|
||||
for( uint32_t edge = 0; edge < 3; ++edge )
|
||||
{
|
||||
if ( adjacency[ face * 3 + edge ] == neighbor )
|
||||
{
|
||||
adjacency[ face * 3 + edge ] = UNUSED32;
|
||||
}
|
||||
|
||||
if ( adjacency[ neighbor * 3 + edge ] == face )
|
||||
{
|
||||
adjacency[ neighbor * 3 + edge ] = UNUSED32;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
auto indicesNew = reinterpret_cast<index_t*>( reinterpret_cast<uint8_t*>( ids ) + sizeof(uint32_t) * nVerts );
|
||||
memcpy( indicesNew, indices, sizeof(index_t) * nFaces * 3 );
|
||||
|
||||
// BOWTIES cleanup
|
||||
if ( adjacency && breakBowties )
|
||||
{
|
||||
memset( faceSeen, 0, sizeof(bool) * nFaces * 3 );
|
||||
memset( ids, 0xFF, sizeof(uint32_t) * nVerts );
|
||||
|
||||
orbit_iterator<index_t> ovi( adjacency, indices, nFaces );
|
||||
|
||||
for( uint32_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
index_t i0 = indices[ face*3 ];
|
||||
index_t i1 = indices[ face*3 + 1 ];
|
||||
index_t i2 = indices[ face*3 + 2 ];
|
||||
|
||||
if ( i0 == index_t(-1)
|
||||
|| i1 == index_t(-1)
|
||||
|| i2 == index_t(-1) )
|
||||
{
|
||||
// ignore unused faces
|
||||
faceSeen[ face * 3 ] = true;
|
||||
faceSeen[ face * 3 + 1 ] = true;
|
||||
faceSeen[ face * 3 + 2 ] = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
assert( i0 < nVerts );
|
||||
assert( i1 < nVerts );
|
||||
assert( i2 < nVerts );
|
||||
|
||||
if ( i0 == i1
|
||||
|| i0 == i2
|
||||
|| i1 == i2 )
|
||||
{
|
||||
// ignore degenerate faces
|
||||
faceSeen[ face * 3 ] = true;
|
||||
faceSeen[ face * 3 + 1 ] = true;
|
||||
faceSeen[ face * 3 + 2 ] = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
for( uint32_t point = 0; point < 3; ++point )
|
||||
{
|
||||
if ( faceSeen[ face * 3 + point ] )
|
||||
continue;
|
||||
|
||||
faceSeen[ face * 3 + point ] = true;
|
||||
|
||||
index_t i = indices[ face*3 + point ];
|
||||
if ( i == index_t(-1) )
|
||||
continue;
|
||||
|
||||
assert( i < nVerts );
|
||||
|
||||
ovi.initialize( face, i, orbit_iterator<index_t>::ALL );
|
||||
ovi.moveToCCW();
|
||||
|
||||
index_t replaceVertex = index_t(-1);
|
||||
index_t replaceValue = index_t(-1);
|
||||
|
||||
while ( !ovi.done() )
|
||||
{
|
||||
uint32_t curFace = ovi.nextFace();
|
||||
if ( curFace >= nFaces )
|
||||
return E_FAIL;
|
||||
|
||||
uint32_t curPoint = ovi.getpoint();
|
||||
if ( curPoint > 2 )
|
||||
return E_FAIL;
|
||||
|
||||
faceSeen[ curFace*3 + curPoint ] = true;
|
||||
|
||||
index_t j = indices[ curFace * 3 + curPoint ];
|
||||
if ( j == index_t(-1) )
|
||||
continue;
|
||||
|
||||
assert ( j < nVerts );
|
||||
|
||||
if ( j == replaceVertex )
|
||||
{
|
||||
indicesNew[ curFace * 3 + curPoint ] = replaceValue;
|
||||
}
|
||||
else if ( ids[ j ] == UNUSED32 )
|
||||
{
|
||||
ids[ j ] = face;
|
||||
}
|
||||
else if ( ids[ j ] != face )
|
||||
{
|
||||
// We found a bowtie, duplicate a vert
|
||||
replaceVertex = j;
|
||||
replaceValue = index_t( curNewVert );
|
||||
indicesNew[ curFace * 3 + curPoint ] = replaceValue;
|
||||
++curNewVert;
|
||||
|
||||
dupVerts.push_back( j );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
assert( ( nVerts + dupVerts.size() ) == curNewVert );
|
||||
}
|
||||
|
||||
// Ensure no vertex is used by more than one attribute
|
||||
if ( attributes )
|
||||
{
|
||||
memset( ids, 0xFF, sizeof(uint32_t) * nVerts );
|
||||
|
||||
std::vector<uint32_t> dupAttr;
|
||||
dupAttr.reserve( dupVerts.size() );
|
||||
for( size_t j = 0; j < dupVerts.size(); ++j )
|
||||
{
|
||||
dupAttr.push_back( UNUSED32 );
|
||||
}
|
||||
|
||||
std::unordered_multimap<uint32_t,size_t> dups;
|
||||
|
||||
for( size_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
uint32_t a = attributes[ face ];
|
||||
|
||||
for( size_t point = 0; point < 3; ++point )
|
||||
{
|
||||
uint32_t j = indicesNew[ face*3 + point ];
|
||||
|
||||
uint32_t k = ( j >= nVerts ) ? dupAttr[ j - nVerts ] : ids[ j ];
|
||||
|
||||
if ( k == UNUSED32 )
|
||||
{
|
||||
if ( j >= nVerts )
|
||||
dupAttr[ j - nVerts ] = a;
|
||||
else
|
||||
ids[ j ] = a;
|
||||
}
|
||||
else if ( k != a )
|
||||
{
|
||||
// Look for a dup with the correct attribute
|
||||
auto range = dups.equal_range( j );
|
||||
auto it = range.first;
|
||||
for( ; it != range.second; ++it )
|
||||
{
|
||||
uint32_t m = ( it->second >= nVerts ) ? dupAttr[ it->second - nVerts ] : ids[ it->second ];
|
||||
if ( m == a )
|
||||
{
|
||||
indicesNew[ face * 3 + point ] = index_t( it->second );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( it == range.second )
|
||||
{
|
||||
// Duplicate the vert
|
||||
dups.insert( std::pair<uint32_t,size_t>( j, curNewVert ) );
|
||||
|
||||
indicesNew[ face * 3 + point ] = index_t( curNewVert );
|
||||
++curNewVert;
|
||||
|
||||
if ( j >= nVerts )
|
||||
{
|
||||
dupVerts.push_back( dupVerts[ j - nVerts ] );
|
||||
}
|
||||
else
|
||||
{
|
||||
dupVerts.push_back( j );
|
||||
}
|
||||
|
||||
dupAttr.push_back( a );
|
||||
|
||||
assert( dupVerts.size() == dupAttr.size() );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
assert( ( nVerts + dupVerts.size() ) == curNewVert );
|
||||
|
||||
#ifndef NDEBUG
|
||||
for( auto it = dupVerts.begin(); it != dupVerts.end(); ++it )
|
||||
{
|
||||
assert( *it < nVerts );
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
if ( (uint64_t(nVerts) + uint64_t(dupVerts.size()) ) >= index_t(-1) )
|
||||
return HRESULT_FROM_WIN32( ERROR_ARITHMETIC_OVERFLOW );
|
||||
|
||||
if ( !dupVerts.empty() )
|
||||
{
|
||||
memcpy( indices, indicesNew, sizeof(index_t) * nFaces * 3 );
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
namespace DirectX
|
||||
{
|
||||
|
||||
//=====================================================================================
|
||||
// Entry-points
|
||||
//=====================================================================================
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT Clean( uint16_t* indices, size_t nFaces, size_t nVerts, uint32_t* adjacency, const uint32_t* attributes,
|
||||
std::vector<uint32_t>& dupVerts, bool breakBowties )
|
||||
{
|
||||
HRESULT hr = Validate( indices, nFaces, nVerts, adjacency, VALIDATE_DEFAULT );
|
||||
if ( FAILED(hr) )
|
||||
return hr;
|
||||
|
||||
return _Clean<uint16_t>( indices, nFaces, nVerts, adjacency, attributes, dupVerts, breakBowties );
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT Clean( uint32_t* indices, size_t nFaces, size_t nVerts, uint32_t* adjacency, const uint32_t* attributes,
|
||||
std::vector<uint32_t>& dupVerts, bool breakBowties )
|
||||
{
|
||||
HRESULT hr = Validate( indices, nFaces, nVerts, adjacency, VALIDATE_DEFAULT );
|
||||
if ( FAILED(hr) )
|
||||
return hr;
|
||||
|
||||
return _Clean<uint32_t>( indices, nFaces, nVerts, adjacency, attributes, dupVerts, breakBowties );
|
||||
}
|
||||
|
||||
} // namespace
|
|
@ -1,153 +1,153 @@
|
|||
//-------------------------------------------------------------------------------------
|
||||
// DirectXMeshGSAdjacency.cpp
|
||||
//
|
||||
// DirectX Mesh Geometry Library - Geometry Shader adjacency computation
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#include "DirectXMeshP.h"
|
||||
|
||||
//
|
||||
// Generates an IB triangle list with adjacency (D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ)
|
||||
// http://msdn.microsoft.com/en-us/library/windows/desktop/bb205124.aspx
|
||||
//
|
||||
|
||||
namespace DirectX
|
||||
{
|
||||
|
||||
template<class index_t>
|
||||
HRESULT _GenerateGSAdjacency( _In_reads_(nFaces*3) const index_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const uint32_t* pointRep,
|
||||
_In_reads_(nFaces*3) const uint32_t* adjacency, _In_ size_t nVerts,
|
||||
_Out_writes_(nFaces*6) index_t* indicesAdj )
|
||||
{
|
||||
if ( !indices || !nFaces || !pointRep || !adjacency || !nVerts || !indicesAdj )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( nVerts >= index_t(-1) )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( indices == indicesAdj )
|
||||
{
|
||||
// Does not support in-place conversion of the index buffer
|
||||
return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED);
|
||||
}
|
||||
|
||||
if ( ( uint64_t(nFaces) * 3 ) >= UINT32_MAX )
|
||||
return HRESULT_FROM_WIN32( ERROR_ARITHMETIC_OVERFLOW );
|
||||
|
||||
size_t inputi = 0;
|
||||
size_t outputi = 0;
|
||||
|
||||
for( size_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
for( uint32_t point = 0; point < 3; ++point )
|
||||
{
|
||||
assert( outputi < (nFaces*6) );
|
||||
_Analysis_assume_( outputi < (nFaces*6) );
|
||||
|
||||
indicesAdj[ outputi ] = indices[ inputi ];
|
||||
++outputi;
|
||||
++inputi;
|
||||
|
||||
assert( outputi < (nFaces*6) );
|
||||
_Analysis_assume_( outputi < (nFaces*6) );
|
||||
|
||||
uint32_t a = adjacency[ face * 3 + point ];
|
||||
if ( a == UNUSED32 )
|
||||
{
|
||||
indicesAdj[ outputi ] = indices[ face * 3 + ( ( point+2 ) % 3 ) ];
|
||||
}
|
||||
else
|
||||
{
|
||||
uint32_t v1 = indices[ face * 3 + point ];
|
||||
uint32_t v2 = indices[ face * 3 + ( ( point + 1 ) % 3 ) ];
|
||||
|
||||
if ( v1 == index_t(-1) || v2 == index_t(-1) )
|
||||
{
|
||||
indicesAdj[ outputi ] = index_t(-1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( v1 >= nVerts
|
||||
|| v2 >= nVerts )
|
||||
return E_UNEXPECTED;
|
||||
|
||||
v1 = pointRep[ v1 ];
|
||||
v2 = pointRep[ v2 ];
|
||||
|
||||
uint32_t vOther = UNUSED32;
|
||||
|
||||
// find other vertex
|
||||
for( uint32_t k = 0; k < 3; ++k )
|
||||
{
|
||||
assert( a < nFaces );
|
||||
_Analysis_assume_( a < nFaces );
|
||||
uint32_t ak = indices[ a * 3 + k ];
|
||||
if ( ak == index_t(-1) )
|
||||
break;
|
||||
|
||||
if ( ak >= nVerts )
|
||||
return E_UNEXPECTED;
|
||||
|
||||
if ( pointRep[ ak ] == v1 )
|
||||
continue;
|
||||
|
||||
if ( pointRep[ ak ] == v2 )
|
||||
continue;
|
||||
|
||||
vOther = ak;
|
||||
}
|
||||
|
||||
if ( vOther == UNUSED32 )
|
||||
{
|
||||
indicesAdj[ outputi ] = indices[ face * 3 + ( ( point+2 ) % 3 ) ];
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
indicesAdj[ outputi ] = index_t( vOther );
|
||||
}
|
||||
}
|
||||
}
|
||||
++outputi;
|
||||
}
|
||||
}
|
||||
|
||||
assert( inputi == ( nFaces * 3 ) );
|
||||
assert( outputi == ( nFaces * 6 ) );
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// Entry-points
|
||||
//=====================================================================================
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT GenerateGSAdjacency( const uint16_t* indices, size_t nFaces, const uint32_t* pointRep, const uint32_t* adjacency, size_t nVerts,
|
||||
uint16_t* indicesAdj )
|
||||
{
|
||||
return _GenerateGSAdjacency<uint16_t>( indices, nFaces, pointRep, adjacency, nVerts, indicesAdj );
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT GenerateGSAdjacency( const uint32_t* indices, size_t nFaces, const uint32_t* pointRep, const uint32_t* adjacency, size_t nVerts,
|
||||
uint32_t* indicesAdj )
|
||||
{
|
||||
return _GenerateGSAdjacency<uint32_t>( indices, nFaces, pointRep, adjacency, nVerts, indicesAdj );
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// DirectXMeshGSAdjacency.cpp
|
||||
//
|
||||
// DirectX Mesh Geometry Library - Geometry Shader adjacency computation
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#include "DirectXMeshP.h"
|
||||
|
||||
//
|
||||
// Generates an IB triangle list with adjacency (D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ)
|
||||
// http://msdn.microsoft.com/en-us/library/windows/desktop/bb205124.aspx
|
||||
//
|
||||
|
||||
namespace DirectX
|
||||
{
|
||||
|
||||
template<class index_t>
|
||||
HRESULT _GenerateGSAdjacency( _In_reads_(nFaces*3) const index_t* indices, _In_ size_t nFaces,
|
||||
_In_reads_(nVerts) const uint32_t* pointRep,
|
||||
_In_reads_(nFaces*3) const uint32_t* adjacency, _In_ size_t nVerts,
|
||||
_Out_writes_(nFaces*6) index_t* indicesAdj )
|
||||
{
|
||||
if ( !indices || !nFaces || !pointRep || !adjacency || !nVerts || !indicesAdj )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( nVerts >= index_t(-1) )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( indices == indicesAdj )
|
||||
{
|
||||
// Does not support in-place conversion of the index buffer
|
||||
return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED);
|
||||
}
|
||||
|
||||
if ( ( uint64_t(nFaces) * 3 ) >= UINT32_MAX )
|
||||
return HRESULT_FROM_WIN32( ERROR_ARITHMETIC_OVERFLOW );
|
||||
|
||||
size_t inputi = 0;
|
||||
size_t outputi = 0;
|
||||
|
||||
for( size_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
for( uint32_t point = 0; point < 3; ++point )
|
||||
{
|
||||
assert( outputi < (nFaces*6) );
|
||||
_Analysis_assume_( outputi < (nFaces*6) );
|
||||
|
||||
indicesAdj[ outputi ] = indices[ inputi ];
|
||||
++outputi;
|
||||
++inputi;
|
||||
|
||||
assert( outputi < (nFaces*6) );
|
||||
_Analysis_assume_( outputi < (nFaces*6) );
|
||||
|
||||
uint32_t a = adjacency[ face * 3 + point ];
|
||||
if ( a == UNUSED32 )
|
||||
{
|
||||
indicesAdj[ outputi ] = indices[ face * 3 + ( ( point+2 ) % 3 ) ];
|
||||
}
|
||||
else
|
||||
{
|
||||
uint32_t v1 = indices[ face * 3 + point ];
|
||||
uint32_t v2 = indices[ face * 3 + ( ( point + 1 ) % 3 ) ];
|
||||
|
||||
if ( v1 == index_t(-1) || v2 == index_t(-1) )
|
||||
{
|
||||
indicesAdj[ outputi ] = index_t(-1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( v1 >= nVerts
|
||||
|| v2 >= nVerts )
|
||||
return E_UNEXPECTED;
|
||||
|
||||
v1 = pointRep[ v1 ];
|
||||
v2 = pointRep[ v2 ];
|
||||
|
||||
uint32_t vOther = UNUSED32;
|
||||
|
||||
// find other vertex
|
||||
for( uint32_t k = 0; k < 3; ++k )
|
||||
{
|
||||
assert( a < nFaces );
|
||||
_Analysis_assume_( a < nFaces );
|
||||
uint32_t ak = indices[ a * 3 + k ];
|
||||
if ( ak == index_t(-1) )
|
||||
break;
|
||||
|
||||
if ( ak >= nVerts )
|
||||
return E_UNEXPECTED;
|
||||
|
||||
if ( pointRep[ ak ] == v1 )
|
||||
continue;
|
||||
|
||||
if ( pointRep[ ak ] == v2 )
|
||||
continue;
|
||||
|
||||
vOther = ak;
|
||||
}
|
||||
|
||||
if ( vOther == UNUSED32 )
|
||||
{
|
||||
indicesAdj[ outputi ] = indices[ face * 3 + ( ( point+2 ) % 3 ) ];
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
indicesAdj[ outputi ] = index_t( vOther );
|
||||
}
|
||||
}
|
||||
}
|
||||
++outputi;
|
||||
}
|
||||
}
|
||||
|
||||
assert( inputi == ( nFaces * 3 ) );
|
||||
assert( outputi == ( nFaces * 6 ) );
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// Entry-points
|
||||
//=====================================================================================
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT GenerateGSAdjacency( const uint16_t* indices, size_t nFaces, const uint32_t* pointRep, const uint32_t* adjacency, size_t nVerts,
|
||||
uint16_t* indicesAdj )
|
||||
{
|
||||
return _GenerateGSAdjacency<uint16_t>( indices, nFaces, pointRep, adjacency, nVerts, indicesAdj );
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT GenerateGSAdjacency( const uint32_t* indices, size_t nFaces, const uint32_t* pointRep, const uint32_t* adjacency, size_t nVerts,
|
||||
uint32_t* indicesAdj )
|
||||
{
|
||||
return _GenerateGSAdjacency<uint32_t>( indices, nFaces, pointRep, adjacency, nVerts, indicesAdj );
|
||||
}
|
||||
|
||||
} // namespace
|
|
@ -1,335 +1,335 @@
|
|||
//-------------------------------------------------------------------------------------
|
||||
// DirectXMeshNormals.cpp
|
||||
//
|
||||
// DirectX Mesh Geometry Library - Normal computation
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#include "DirectXMeshP.h"
|
||||
|
||||
using namespace DirectX;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// Compute normals with equal weighting
|
||||
//-------------------------------------------------------------------------------------
|
||||
template<class index_t>
|
||||
HRESULT ComputeNormalsEqualWeight( _In_reads_(nFaces*3) const index_t* indices, size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions, size_t nVerts,
|
||||
bool cw, _Out_writes_(nVerts) XMFLOAT3* normals )
|
||||
{
|
||||
ScopedAlignedArrayXMVECTOR temp( reinterpret_cast<XMVECTOR*>( _aligned_malloc( sizeof(XMVECTOR) * nVerts, 16 ) ) );
|
||||
if ( !temp )
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
XMVECTOR* vertNormals = temp.get();
|
||||
memset( vertNormals, 0, sizeof(XMVECTOR) * nVerts );
|
||||
|
||||
for( size_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
index_t i0 = indices[ face*3 ];
|
||||
index_t i1 = indices[ face*3 + 1 ];
|
||||
index_t i2 = indices[ face*3 + 2 ];
|
||||
|
||||
if ( i0 == index_t(-1)
|
||||
|| i1 == index_t(-1)
|
||||
|| i2 == index_t(-1) )
|
||||
continue;
|
||||
|
||||
if ( i0 >= nVerts
|
||||
|| i1 >= nVerts
|
||||
|| i2 >= nVerts )
|
||||
return E_UNEXPECTED;
|
||||
|
||||
XMVECTOR p1 = XMLoadFloat3( &positions[ i0 ] );
|
||||
XMVECTOR p2 = XMLoadFloat3( &positions[ i1 ] );
|
||||
XMVECTOR p3 = XMLoadFloat3( &positions[ i2 ] );
|
||||
|
||||
XMVECTOR u = p2 - p1;
|
||||
XMVECTOR v = p3 - p1;
|
||||
|
||||
XMVECTOR faceNormal = XMVector3Normalize( XMVector3Cross( u, v ) );
|
||||
|
||||
vertNormals[ i0 ] = XMVectorAdd( vertNormals[ i0 ], faceNormal );
|
||||
vertNormals[ i1 ] = XMVectorAdd( vertNormals[ i1 ], faceNormal );
|
||||
vertNormals[ i2 ] = XMVectorAdd( vertNormals[ i2 ], faceNormal );
|
||||
}
|
||||
|
||||
// Store results
|
||||
if ( cw )
|
||||
{
|
||||
for( size_t vert = 0; vert < nVerts; ++vert )
|
||||
{
|
||||
XMVECTOR n = XMVector3Normalize( vertNormals[ vert ] );
|
||||
n = XMVectorNegate( n );
|
||||
XMStoreFloat3( &normals[ vert ], n );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for( size_t vert = 0; vert < nVerts; ++vert )
|
||||
{
|
||||
XMVECTOR n = XMVector3Normalize( vertNormals[ vert ] );
|
||||
XMStoreFloat3( &normals[ vert ], n );
|
||||
}
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// Compute normals with weighting by angle
|
||||
//-------------------------------------------------------------------------------------
|
||||
template<class index_t>
|
||||
HRESULT ComputeNormalsWeightedByAngle( _In_reads_(nFaces*3) const index_t* indices, size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions, size_t nVerts,
|
||||
bool cw, _Out_writes_(nVerts) XMFLOAT3* normals )
|
||||
{
|
||||
ScopedAlignedArrayXMVECTOR temp( reinterpret_cast<XMVECTOR*>( _aligned_malloc( sizeof(XMVECTOR) * nVerts, 16 ) ) );
|
||||
if ( !temp )
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
XMVECTOR* vertNormals = temp.get();
|
||||
memset( vertNormals, 0, sizeof(XMVECTOR) * nVerts );
|
||||
|
||||
for( size_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
index_t i0 = indices[ face*3 ];
|
||||
index_t i1 = indices[ face*3 + 1 ];
|
||||
index_t i2 = indices[ face*3 + 2 ];
|
||||
|
||||
if ( i0 == index_t(-1)
|
||||
|| i1 == index_t(-1)
|
||||
|| i2 == index_t(-1) )
|
||||
continue;
|
||||
|
||||
if ( i0 >= nVerts
|
||||
|| i1 >= nVerts
|
||||
|| i2 >= nVerts )
|
||||
return E_UNEXPECTED;
|
||||
|
||||
XMVECTOR p0 = XMLoadFloat3( &positions[ i0 ] );
|
||||
XMVECTOR p1 = XMLoadFloat3( &positions[ i1 ] );
|
||||
XMVECTOR p2 = XMLoadFloat3( &positions[ i2 ] );
|
||||
|
||||
XMVECTOR u = p1 - p0;
|
||||
XMVECTOR v = p2 - p0;
|
||||
|
||||
XMVECTOR faceNormal = XMVector3Normalize( XMVector3Cross( u, v ) );
|
||||
|
||||
// Corner 0 -> 1 - 0, 2 - 0
|
||||
XMVECTOR a = XMVector3Normalize( u );
|
||||
XMVECTOR b = XMVector3Normalize( v );
|
||||
XMVECTOR w0 = XMVector3Dot( a, b );
|
||||
w0 = XMVectorClamp( w0, g_XMNegativeOne, g_XMOne );
|
||||
w0 = XMVectorACos( w0 );
|
||||
|
||||
// Corner 1 -> 2 - 1, 0 - 1
|
||||
XMVECTOR c = XMVector3Normalize( p2 - p1 );
|
||||
XMVECTOR d = XMVector3Normalize( p0 - p1 );
|
||||
XMVECTOR w1 = XMVector3Dot( c, d );
|
||||
w1 = XMVectorClamp( w1, g_XMNegativeOne, g_XMOne );
|
||||
w1 = XMVectorACos( w1 );
|
||||
|
||||
// Corner 2 -> 0 - 2, 1 - 2
|
||||
XMVECTOR e = XMVector3Normalize( p0 - p2 );
|
||||
XMVECTOR f = XMVector3Normalize( p1 - p2 );
|
||||
XMVECTOR w2 = XMVector3Dot( e, f );
|
||||
w2 = XMVectorClamp( w2, g_XMNegativeOne, g_XMOne );
|
||||
w2 = XMVectorACos( w2 );
|
||||
|
||||
vertNormals[ i0 ] = XMVectorMultiplyAdd( faceNormal, w0, vertNormals[ i0 ] );
|
||||
vertNormals[ i1 ] = XMVectorMultiplyAdd( faceNormal, w1, vertNormals[ i1 ] );
|
||||
vertNormals[ i2 ] = XMVectorMultiplyAdd( faceNormal, w2, vertNormals[ i2 ] );
|
||||
}
|
||||
|
||||
// Store results
|
||||
if ( cw )
|
||||
{
|
||||
for( size_t vert = 0; vert < nVerts; ++vert )
|
||||
{
|
||||
XMVECTOR n = XMVector3Normalize( vertNormals[ vert ] );
|
||||
n = XMVectorNegate( n );
|
||||
XMStoreFloat3( &normals[ vert ], n );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for( size_t vert = 0; vert < nVerts; ++vert )
|
||||
{
|
||||
XMVECTOR n = XMVector3Normalize( vertNormals[ vert ] );
|
||||
XMStoreFloat3( &normals[ vert ], n );
|
||||
}
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// Compute normals with weighting by face area
|
||||
//-------------------------------------------------------------------------------------
|
||||
template<class index_t>
|
||||
HRESULT ComputeNormalsWeightedByArea( _In_reads_(nFaces*3) const index_t* indices, size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions, size_t nVerts,
|
||||
bool cw, _Out_writes_(nVerts) XMFLOAT3* normals )
|
||||
{
|
||||
ScopedAlignedArrayXMVECTOR temp( reinterpret_cast<XMVECTOR*>( _aligned_malloc( sizeof(XMVECTOR) * nVerts, 16 ) ) );
|
||||
if ( !temp )
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
XMVECTOR* vertNormals = temp.get();
|
||||
memset( vertNormals, 0, sizeof(XMVECTOR) * nVerts );
|
||||
|
||||
for( size_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
index_t i0 = indices[ face*3 ];
|
||||
index_t i1 = indices[ face*3 + 1 ];
|
||||
index_t i2 = indices[ face*3 + 2 ];
|
||||
|
||||
if ( i0 == index_t(-1)
|
||||
|| i1 == index_t(-1)
|
||||
|| i2 == index_t(-1) )
|
||||
continue;
|
||||
|
||||
if ( i0 >= nVerts
|
||||
|| i1 >= nVerts
|
||||
|| i2 >= nVerts )
|
||||
return E_UNEXPECTED;
|
||||
|
||||
XMVECTOR p0 = XMLoadFloat3( &positions[ i0 ] );
|
||||
XMVECTOR p1 = XMLoadFloat3( &positions[ i1 ] );
|
||||
XMVECTOR p2 = XMLoadFloat3( &positions[ i2 ] );
|
||||
|
||||
XMVECTOR u = p1 - p0;
|
||||
XMVECTOR v = p2 - p0;
|
||||
|
||||
XMVECTOR faceNormal = XMVector3Normalize( XMVector3Cross( u, v ) );
|
||||
|
||||
// Corner 0 -> 1 - 0, 2 - 0
|
||||
XMVECTOR w0 = XMVector3Cross( u, v );
|
||||
w0 = XMVector3Length( w0 );
|
||||
|
||||
// Corner 1 -> 2 - 1, 0 - 1
|
||||
XMVECTOR c = p2 - p1;
|
||||
XMVECTOR d = p0 - p1;
|
||||
XMVECTOR w1 = XMVector3Cross( c, d );
|
||||
w1 = XMVector3Length( w1 );
|
||||
|
||||
// Corner 2 -> 0 - 2, 1 - 2
|
||||
XMVECTOR e = p0 - p2;
|
||||
XMVECTOR f = p1 - p2;
|
||||
XMVECTOR w2 = XMVector3Cross( e, f );
|
||||
w2 = XMVector3Length( w2 );
|
||||
|
||||
vertNormals[ i0 ] = XMVectorMultiplyAdd( faceNormal, w0, vertNormals[ i0 ] );
|
||||
vertNormals[ i1 ] = XMVectorMultiplyAdd( faceNormal, w1, vertNormals[ i1 ] );
|
||||
vertNormals[ i2 ] = XMVectorMultiplyAdd( faceNormal, w2, vertNormals[ i2 ] );
|
||||
}
|
||||
|
||||
// Store results
|
||||
if ( cw )
|
||||
{
|
||||
for( size_t vert = 0; vert < nVerts; ++vert )
|
||||
{
|
||||
XMVECTOR n = XMVector3Normalize( vertNormals[ vert ] );
|
||||
n = XMVectorNegate( n );
|
||||
XMStoreFloat3( &normals[ vert ], n );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for( size_t vert = 0; vert < nVerts; ++vert )
|
||||
{
|
||||
XMVECTOR n = XMVector3Normalize( vertNormals[ vert ] );
|
||||
XMStoreFloat3( &normals[ vert ], n );
|
||||
}
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
namespace DirectX
|
||||
{
|
||||
|
||||
//=====================================================================================
|
||||
// Entry-points
|
||||
//=====================================================================================
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT ComputeNormals( const uint16_t* indices, size_t nFaces,
|
||||
const XMFLOAT3* positions, size_t nVerts,
|
||||
DWORD flags,
|
||||
XMFLOAT3* normals )
|
||||
{
|
||||
if ( !indices || !positions || !nFaces || !nVerts || !normals )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( nVerts >= UINT16_MAX )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( ( uint64_t(nFaces) * 3 ) >= UINT32_MAX )
|
||||
return HRESULT_FROM_WIN32( ERROR_ARITHMETIC_OVERFLOW );
|
||||
|
||||
bool cw = (flags & CNORM_WIND_CW) ? true : false;
|
||||
|
||||
if ( flags & CNORM_WEIGHT_BY_AREA )
|
||||
{
|
||||
return ComputeNormalsWeightedByArea<uint16_t>( indices, nFaces, positions, nVerts, cw, normals );
|
||||
}
|
||||
else if ( flags & CNORM_WEIGHT_EQUAL )
|
||||
{
|
||||
return ComputeNormalsEqualWeight<uint16_t>( indices, nFaces, positions, nVerts, cw, normals );
|
||||
}
|
||||
else
|
||||
{
|
||||
return ComputeNormalsWeightedByAngle<uint16_t>( indices, nFaces, positions, nVerts, cw, normals );
|
||||
}
|
||||
}
|
||||
|
||||
_Use_decl_annotations_
|
||||
HRESULT ComputeNormals( const uint32_t* indices, size_t nFaces,
|
||||
const XMFLOAT3* positions, size_t nVerts,
|
||||
DWORD flags,
|
||||
XMFLOAT3* normals )
|
||||
{
|
||||
if ( !indices || !positions || !nFaces || !nVerts || !normals )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( nVerts >= UINT32_MAX )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( ( uint64_t(nFaces) * 3 ) >= UINT32_MAX )
|
||||
return HRESULT_FROM_WIN32( ERROR_ARITHMETIC_OVERFLOW );
|
||||
|
||||
bool cw = (flags & CNORM_WIND_CW) ? true : false;
|
||||
|
||||
if ( flags & CNORM_WEIGHT_BY_AREA )
|
||||
{
|
||||
return ComputeNormalsWeightedByArea<uint32_t>( indices, nFaces, positions, nVerts, cw, normals );
|
||||
}
|
||||
else if ( flags & CNORM_WEIGHT_EQUAL )
|
||||
{
|
||||
return ComputeNormalsEqualWeight<uint32_t>( indices, nFaces, positions, nVerts, cw, normals );
|
||||
}
|
||||
else
|
||||
{
|
||||
return ComputeNormalsWeightedByAngle<uint32_t>( indices, nFaces, positions, nVerts, cw, normals );
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// DirectXMeshNormals.cpp
|
||||
//
|
||||
// DirectX Mesh Geometry Library - Normal computation
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#include "DirectXMeshP.h"
|
||||
|
||||
using namespace DirectX;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// Compute normals with equal weighting
|
||||
//-------------------------------------------------------------------------------------
|
||||
template<class index_t>
|
||||
HRESULT ComputeNormalsEqualWeight( _In_reads_(nFaces*3) const index_t* indices, size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions, size_t nVerts,
|
||||
bool cw, _Out_writes_(nVerts) XMFLOAT3* normals )
|
||||
{
|
||||
ScopedAlignedArrayXMVECTOR temp( reinterpret_cast<XMVECTOR*>( _aligned_malloc( sizeof(XMVECTOR) * nVerts, 16 ) ) );
|
||||
if ( !temp )
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
XMVECTOR* vertNormals = temp.get();
|
||||
memset( vertNormals, 0, sizeof(XMVECTOR) * nVerts );
|
||||
|
||||
for( size_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
index_t i0 = indices[ face*3 ];
|
||||
index_t i1 = indices[ face*3 + 1 ];
|
||||
index_t i2 = indices[ face*3 + 2 ];
|
||||
|
||||
if ( i0 == index_t(-1)
|
||||
|| i1 == index_t(-1)
|
||||
|| i2 == index_t(-1) )
|
||||
continue;
|
||||
|
||||
if ( i0 >= nVerts
|
||||
|| i1 >= nVerts
|
||||
|| i2 >= nVerts )
|
||||
return E_UNEXPECTED;
|
||||
|
||||
XMVECTOR p1 = XMLoadFloat3( &positions[ i0 ] );
|
||||
XMVECTOR p2 = XMLoadFloat3( &positions[ i1 ] );
|
||||
XMVECTOR p3 = XMLoadFloat3( &positions[ i2 ] );
|
||||
|
||||
XMVECTOR u = p2 - p1;
|
||||
XMVECTOR v = p3 - p1;
|
||||
|
||||
XMVECTOR faceNormal = XMVector3Normalize( XMVector3Cross( u, v ) );
|
||||
|
||||
vertNormals[ i0 ] = XMVectorAdd( vertNormals[ i0 ], faceNormal );
|
||||
vertNormals[ i1 ] = XMVectorAdd( vertNormals[ i1 ], faceNormal );
|
||||
vertNormals[ i2 ] = XMVectorAdd( vertNormals[ i2 ], faceNormal );
|
||||
}
|
||||
|
||||
// Store results
|
||||
if ( cw )
|
||||
{
|
||||
for( size_t vert = 0; vert < nVerts; ++vert )
|
||||
{
|
||||
XMVECTOR n = XMVector3Normalize( vertNormals[ vert ] );
|
||||
n = XMVectorNegate( n );
|
||||
XMStoreFloat3( &normals[ vert ], n );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for( size_t vert = 0; vert < nVerts; ++vert )
|
||||
{
|
||||
XMVECTOR n = XMVector3Normalize( vertNormals[ vert ] );
|
||||
XMStoreFloat3( &normals[ vert ], n );
|
||||
}
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// Compute normals with weighting by angle
|
||||
//-------------------------------------------------------------------------------------
|
||||
template<class index_t>
|
||||
HRESULT ComputeNormalsWeightedByAngle( _In_reads_(nFaces*3) const index_t* indices, size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions, size_t nVerts,
|
||||
bool cw, _Out_writes_(nVerts) XMFLOAT3* normals )
|
||||
{
|
||||
ScopedAlignedArrayXMVECTOR temp( reinterpret_cast<XMVECTOR*>( _aligned_malloc( sizeof(XMVECTOR) * nVerts, 16 ) ) );
|
||||
if ( !temp )
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
XMVECTOR* vertNormals = temp.get();
|
||||
memset( vertNormals, 0, sizeof(XMVECTOR) * nVerts );
|
||||
|
||||
for( size_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
index_t i0 = indices[ face*3 ];
|
||||
index_t i1 = indices[ face*3 + 1 ];
|
||||
index_t i2 = indices[ face*3 + 2 ];
|
||||
|
||||
if ( i0 == index_t(-1)
|
||||
|| i1 == index_t(-1)
|
||||
|| i2 == index_t(-1) )
|
||||
continue;
|
||||
|
||||
if ( i0 >= nVerts
|
||||
|| i1 >= nVerts
|
||||
|| i2 >= nVerts )
|
||||
return E_UNEXPECTED;
|
||||
|
||||
XMVECTOR p0 = XMLoadFloat3( &positions[ i0 ] );
|
||||
XMVECTOR p1 = XMLoadFloat3( &positions[ i1 ] );
|
||||
XMVECTOR p2 = XMLoadFloat3( &positions[ i2 ] );
|
||||
|
||||
XMVECTOR u = p1 - p0;
|
||||
XMVECTOR v = p2 - p0;
|
||||
|
||||
XMVECTOR faceNormal = XMVector3Normalize( XMVector3Cross( u, v ) );
|
||||
|
||||
// Corner 0 -> 1 - 0, 2 - 0
|
||||
XMVECTOR a = XMVector3Normalize( u );
|
||||
XMVECTOR b = XMVector3Normalize( v );
|
||||
XMVECTOR w0 = XMVector3Dot( a, b );
|
||||
w0 = XMVectorClamp( w0, g_XMNegativeOne, g_XMOne );
|
||||
w0 = XMVectorACos( w0 );
|
||||
|
||||
// Corner 1 -> 2 - 1, 0 - 1
|
||||
XMVECTOR c = XMVector3Normalize( p2 - p1 );
|
||||
XMVECTOR d = XMVector3Normalize( p0 - p1 );
|
||||
XMVECTOR w1 = XMVector3Dot( c, d );
|
||||
w1 = XMVectorClamp( w1, g_XMNegativeOne, g_XMOne );
|
||||
w1 = XMVectorACos( w1 );
|
||||
|
||||
// Corner 2 -> 0 - 2, 1 - 2
|
||||
XMVECTOR e = XMVector3Normalize( p0 - p2 );
|
||||
XMVECTOR f = XMVector3Normalize( p1 - p2 );
|
||||
XMVECTOR w2 = XMVector3Dot( e, f );
|
||||
w2 = XMVectorClamp( w2, g_XMNegativeOne, g_XMOne );
|
||||
w2 = XMVectorACos( w2 );
|
||||
|
||||
vertNormals[ i0 ] = XMVectorMultiplyAdd( faceNormal, w0, vertNormals[ i0 ] );
|
||||
vertNormals[ i1 ] = XMVectorMultiplyAdd( faceNormal, w1, vertNormals[ i1 ] );
|
||||
vertNormals[ i2 ] = XMVectorMultiplyAdd( faceNormal, w2, vertNormals[ i2 ] );
|
||||
}
|
||||
|
||||
// Store results
|
||||
if ( cw )
|
||||
{
|
||||
for( size_t vert = 0; vert < nVerts; ++vert )
|
||||
{
|
||||
XMVECTOR n = XMVector3Normalize( vertNormals[ vert ] );
|
||||
n = XMVectorNegate( n );
|
||||
XMStoreFloat3( &normals[ vert ], n );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for( size_t vert = 0; vert < nVerts; ++vert )
|
||||
{
|
||||
XMVECTOR n = XMVector3Normalize( vertNormals[ vert ] );
|
||||
XMStoreFloat3( &normals[ vert ], n );
|
||||
}
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// Compute normals with weighting by face area
|
||||
//-------------------------------------------------------------------------------------
|
||||
template<class index_t>
|
||||
HRESULT ComputeNormalsWeightedByArea( _In_reads_(nFaces*3) const index_t* indices, size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions, size_t nVerts,
|
||||
bool cw, _Out_writes_(nVerts) XMFLOAT3* normals )
|
||||
{
|
||||
ScopedAlignedArrayXMVECTOR temp( reinterpret_cast<XMVECTOR*>( _aligned_malloc( sizeof(XMVECTOR) * nVerts, 16 ) ) );
|
||||
if ( !temp )
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
XMVECTOR* vertNormals = temp.get();
|
||||
memset( vertNormals, 0, sizeof(XMVECTOR) * nVerts );
|
||||
|
||||
for( size_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
index_t i0 = indices[ face*3 ];
|
||||
index_t i1 = indices[ face*3 + 1 ];
|
||||
index_t i2 = indices[ face*3 + 2 ];
|
||||
|
||||
if ( i0 == index_t(-1)
|
||||
|| i1 == index_t(-1)
|
||||
|| i2 == index_t(-1) )
|
||||
continue;
|
||||
|
||||
if ( i0 >= nVerts
|
||||
|| i1 >= nVerts
|
||||
|| i2 >= nVerts )
|
||||
return E_UNEXPECTED;
|
||||
|
||||
XMVECTOR p0 = XMLoadFloat3( &positions[ i0 ] );
|
||||
XMVECTOR p1 = XMLoadFloat3( &positions[ i1 ] );
|
||||
XMVECTOR p2 = XMLoadFloat3( &positions[ i2 ] );
|
||||
|
||||
XMVECTOR u = p1 - p0;
|
||||
XMVECTOR v = p2 - p0;
|
||||
|
||||
XMVECTOR faceNormal = XMVector3Normalize( XMVector3Cross( u, v ) );
|
||||
|
||||
// Corner 0 -> 1 - 0, 2 - 0
|
||||
XMVECTOR w0 = XMVector3Cross( u, v );
|
||||
w0 = XMVector3Length( w0 );
|
||||
|
||||
// Corner 1 -> 2 - 1, 0 - 1
|
||||
XMVECTOR c = p2 - p1;
|
||||
XMVECTOR d = p0 - p1;
|
||||
XMVECTOR w1 = XMVector3Cross( c, d );
|
||||
w1 = XMVector3Length( w1 );
|
||||
|
||||
// Corner 2 -> 0 - 2, 1 - 2
|
||||
XMVECTOR e = p0 - p2;
|
||||
XMVECTOR f = p1 - p2;
|
||||
XMVECTOR w2 = XMVector3Cross( e, f );
|
||||
w2 = XMVector3Length( w2 );
|
||||
|
||||
vertNormals[ i0 ] = XMVectorMultiplyAdd( faceNormal, w0, vertNormals[ i0 ] );
|
||||
vertNormals[ i1 ] = XMVectorMultiplyAdd( faceNormal, w1, vertNormals[ i1 ] );
|
||||
vertNormals[ i2 ] = XMVectorMultiplyAdd( faceNormal, w2, vertNormals[ i2 ] );
|
||||
}
|
||||
|
||||
// Store results
|
||||
if ( cw )
|
||||
{
|
||||
for( size_t vert = 0; vert < nVerts; ++vert )
|
||||
{
|
||||
XMVECTOR n = XMVector3Normalize( vertNormals[ vert ] );
|
||||
n = XMVectorNegate( n );
|
||||
XMStoreFloat3( &normals[ vert ], n );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for( size_t vert = 0; vert < nVerts; ++vert )
|
||||
{
|
||||
XMVECTOR n = XMVector3Normalize( vertNormals[ vert ] );
|
||||
XMStoreFloat3( &normals[ vert ], n );
|
||||
}
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
namespace DirectX
|
||||
{
|
||||
|
||||
//=====================================================================================
|
||||
// Entry-points
|
||||
//=====================================================================================
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT ComputeNormals( const uint16_t* indices, size_t nFaces,
|
||||
const XMFLOAT3* positions, size_t nVerts,
|
||||
DWORD flags,
|
||||
XMFLOAT3* normals )
|
||||
{
|
||||
if ( !indices || !positions || !nFaces || !nVerts || !normals )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( nVerts >= UINT16_MAX )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( ( uint64_t(nFaces) * 3 ) >= UINT32_MAX )
|
||||
return HRESULT_FROM_WIN32( ERROR_ARITHMETIC_OVERFLOW );
|
||||
|
||||
bool cw = (flags & CNORM_WIND_CW) ? true : false;
|
||||
|
||||
if ( flags & CNORM_WEIGHT_BY_AREA )
|
||||
{
|
||||
return ComputeNormalsWeightedByArea<uint16_t>( indices, nFaces, positions, nVerts, cw, normals );
|
||||
}
|
||||
else if ( flags & CNORM_WEIGHT_EQUAL )
|
||||
{
|
||||
return ComputeNormalsEqualWeight<uint16_t>( indices, nFaces, positions, nVerts, cw, normals );
|
||||
}
|
||||
else
|
||||
{
|
||||
return ComputeNormalsWeightedByAngle<uint16_t>( indices, nFaces, positions, nVerts, cw, normals );
|
||||
}
|
||||
}
|
||||
|
||||
_Use_decl_annotations_
|
||||
HRESULT ComputeNormals( const uint32_t* indices, size_t nFaces,
|
||||
const XMFLOAT3* positions, size_t nVerts,
|
||||
DWORD flags,
|
||||
XMFLOAT3* normals )
|
||||
{
|
||||
if ( !indices || !positions || !nFaces || !nVerts || !normals )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( nVerts >= UINT32_MAX )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( ( uint64_t(nFaces) * 3 ) >= UINT32_MAX )
|
||||
return HRESULT_FROM_WIN32( ERROR_ARITHMETIC_OVERFLOW );
|
||||
|
||||
bool cw = (flags & CNORM_WIND_CW) ? true : false;
|
||||
|
||||
if ( flags & CNORM_WEIGHT_BY_AREA )
|
||||
{
|
||||
return ComputeNormalsWeightedByArea<uint32_t>( indices, nFaces, positions, nVerts, cw, normals );
|
||||
}
|
||||
else if ( flags & CNORM_WEIGHT_EQUAL )
|
||||
{
|
||||
return ComputeNormalsEqualWeight<uint32_t>( indices, nFaces, positions, nVerts, cw, normals );
|
||||
}
|
||||
else
|
||||
{
|
||||
return ComputeNormalsWeightedByAngle<uint32_t>( indices, nFaces, positions, nVerts, cw, normals );
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,289 +1,289 @@
|
|||
//-------------------------------------------------------------------------------------
|
||||
// DirectXMeshP.h
|
||||
//
|
||||
// DirectX Mesh Geometry Library
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable : 4005)
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#define NOMINMAX
|
||||
#define NODRAWTEXT
|
||||
#define NOGDI
|
||||
#define NOBITMAP
|
||||
#define NOMCX
|
||||
#define NOSERVICE
|
||||
#define NOHELP
|
||||
#pragma warning(pop)
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
#include <directxmath.h>
|
||||
#include <directxpackedvector.h>
|
||||
|
||||
#include <assert.h>
|
||||
#include <malloc.h>
|
||||
|
||||
#include <algorithm>
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
|
||||
#include "directxmesh.h"
|
||||
|
||||
#include "scoped.h"
|
||||
|
||||
#ifndef XBOX_DXGI_FORMAT_R10G10B10_SNORM_A2_UNORM
|
||||
#define XBOX_DXGI_FORMAT_R10G10B10_SNORM_A2_UNORM DXGI_FORMAT(189)
|
||||
#endif
|
||||
|
||||
|
||||
namespace DirectX
|
||||
{
|
||||
//---------------------------------------------------------------------------------
|
||||
const uint32_t UNUSED32 = uint32_t(-1);
|
||||
|
||||
static_assert( D3D11_16BIT_INDEX_STRIP_CUT_VALUE == uint16_t(-1), "Mismatch with Direct3D11" );
|
||||
static_assert( D3D11_16BIT_INDEX_STRIP_CUT_VALUE == UINT16_MAX, "Mismatch with Direct3D11" );
|
||||
|
||||
static_assert( D3D11_32BIT_INDEX_STRIP_CUT_VALUE == uint32_t(-1), "Mismatch with Direct3D11" );
|
||||
static_assert( D3D11_32BIT_INDEX_STRIP_CUT_VALUE == UINT32_MAX, "Mismatch with Direct3D11" );
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Utility for walking adjacency
|
||||
//---------------------------------------------------------------------------------
|
||||
template<class index_t>
|
||||
class orbit_iterator
|
||||
{
|
||||
public:
|
||||
enum WalkType
|
||||
{
|
||||
ALL = 0,
|
||||
CW,
|
||||
CCW
|
||||
};
|
||||
|
||||
orbit_iterator( _In_reads_(nFaces*3) const uint32_t* adjacency, _In_reads_(nFaces*3) const index_t* indices, size_t nFaces ) :
|
||||
m_face(UNUSED32),
|
||||
m_pointIndex(UNUSED32),
|
||||
m_currentFace(UNUSED32),
|
||||
m_currentEdge(UNUSED32),
|
||||
m_nextEdge(UNUSED32),
|
||||
m_adjacency(adjacency),
|
||||
m_indices(indices),
|
||||
m_nFaces(nFaces),
|
||||
m_clockWise(false),
|
||||
m_stopOnBoundary(false) {}
|
||||
|
||||
void initialize( uint32_t face, uint32_t point, WalkType wtype )
|
||||
{
|
||||
m_face = m_currentFace = face;
|
||||
m_pointIndex = point;
|
||||
m_clockWise = ( wtype != CCW );
|
||||
m_stopOnBoundary = ( wtype != ALL );
|
||||
|
||||
m_nextEdge = find( face, point );
|
||||
assert( m_nextEdge < 3 );
|
||||
_Analysis_assume_( m_nextEdge < 3 );
|
||||
|
||||
if ( !m_clockWise )
|
||||
{
|
||||
m_nextEdge = ( m_nextEdge + 2 ) % 3;
|
||||
}
|
||||
|
||||
m_currentEdge = m_nextEdge;
|
||||
}
|
||||
|
||||
uint32_t find( uint32_t face, uint32_t point )
|
||||
{
|
||||
assert( face < m_nFaces );
|
||||
_Analysis_assume_( face < m_nFaces );
|
||||
|
||||
if ( m_indices[ face*3 ] == point )
|
||||
return 0;
|
||||
else if ( m_indices[ face*3 + 1 ] == point )
|
||||
return 1;
|
||||
else
|
||||
{
|
||||
assert( m_indices[ face*3 + 2 ] == point );
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t nextFace()
|
||||
{
|
||||
assert( !done() );
|
||||
|
||||
uint32_t ret = m_currentFace;
|
||||
m_currentEdge = m_nextEdge;
|
||||
|
||||
for(;;)
|
||||
{
|
||||
uint32_t prevFace = m_currentFace;
|
||||
|
||||
assert( ( m_currentFace * 3 + m_nextEdge ) < ( m_nFaces * 3) );
|
||||
_Analysis_assume_( ( m_currentFace * 3 + m_nextEdge ) < ( m_nFaces * 3) );
|
||||
|
||||
m_currentFace = m_adjacency[ m_currentFace * 3 + m_nextEdge ];
|
||||
|
||||
if ( m_currentFace == m_face )
|
||||
{
|
||||
// wrapped around after a full orbit, so finished
|
||||
m_currentFace = UNUSED32;
|
||||
break;
|
||||
}
|
||||
else if ( m_currentFace != UNUSED32 )
|
||||
{
|
||||
assert( ( m_currentFace * 3 + 2 ) < ( m_nFaces * 3) );
|
||||
_Analysis_assume_( ( m_currentFace * 3 + 2 ) < ( m_nFaces * 3) );
|
||||
|
||||
if ( m_adjacency[ m_currentFace * 3 ] == prevFace )
|
||||
m_nextEdge = 0;
|
||||
else if ( m_adjacency[ m_currentFace * 3 + 1 ] == prevFace )
|
||||
m_nextEdge = 1;
|
||||
else
|
||||
{
|
||||
assert( m_adjacency[ m_currentFace * 3 + 2 ] == prevFace );
|
||||
m_nextEdge = 2;
|
||||
}
|
||||
|
||||
if ( m_clockWise )
|
||||
{
|
||||
m_nextEdge = ( m_nextEdge + 1 ) % 3;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_nextEdge = ( m_nextEdge + 2 ) % 3;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
else if ( m_clockWise && !m_stopOnBoundary )
|
||||
{
|
||||
// hit boundary and need to restart to go counter-clockwise
|
||||
m_clockWise = false;
|
||||
m_currentFace = m_face;
|
||||
|
||||
m_nextEdge = find( m_face, m_pointIndex );
|
||||
assert( m_nextEdge < 3 );
|
||||
_Analysis_assume_( m_nextEdge < 3 );
|
||||
|
||||
m_nextEdge = ( m_nextEdge + 2 ) % 3;
|
||||
m_currentEdge = ( m_currentEdge + 2 ) %3;
|
||||
|
||||
// Don't break out of loop so we can go the other way
|
||||
}
|
||||
else
|
||||
{
|
||||
// hit boundary and should stop
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool moveToCCW()
|
||||
{
|
||||
m_currentFace = m_face;
|
||||
|
||||
m_nextEdge = find( m_currentFace, m_pointIndex );
|
||||
uint32_t initialNextEdge = m_nextEdge;
|
||||
assert( m_nextEdge < 3 );
|
||||
_Analysis_assume_( m_nextEdge < 3 );
|
||||
|
||||
m_nextEdge = ( m_nextEdge + 2 ) % 3;
|
||||
|
||||
bool ret = false;
|
||||
|
||||
uint32_t prevFace;
|
||||
do
|
||||
{
|
||||
prevFace = m_currentFace;
|
||||
m_currentFace = m_adjacency[ m_currentFace * 3 + m_nextEdge ];
|
||||
|
||||
if ( m_currentFace != UNUSED32 )
|
||||
{
|
||||
if ( m_adjacency[ m_currentFace * 3 ] == prevFace )
|
||||
m_nextEdge = 0;
|
||||
else if ( m_adjacency[ m_currentFace * 3 + 1 ] == prevFace )
|
||||
m_nextEdge = 1;
|
||||
else
|
||||
{
|
||||
assert( m_adjacency[ m_currentFace * 3 + 2 ] == prevFace );
|
||||
m_nextEdge = 2;
|
||||
}
|
||||
|
||||
m_nextEdge = ( m_nextEdge + 2 ) % 3;
|
||||
}
|
||||
}
|
||||
while ( (m_currentFace != m_face) && (m_currentFace != UNUSED32 ) );
|
||||
|
||||
if ( m_currentFace == UNUSED32 )
|
||||
{
|
||||
m_currentFace = prevFace;
|
||||
m_nextEdge = ( m_nextEdge + 1 ) % 3;
|
||||
|
||||
m_pointIndex = m_indices[ m_currentFace * 3 + m_nextEdge ];
|
||||
|
||||
ret = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_nextEdge = initialNextEdge;
|
||||
}
|
||||
|
||||
m_clockWise = true;
|
||||
m_currentEdge = m_nextEdge;
|
||||
m_face = m_currentFace;
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool done() const { return ( m_currentFace == UNUSED32 ); };
|
||||
uint32_t getpoint() const { return m_clockWise ? m_currentEdge : ( ( m_currentEdge + 1 ) % 3 ); };
|
||||
|
||||
private:
|
||||
uint32_t m_face;
|
||||
uint32_t m_pointIndex;
|
||||
uint32_t m_currentFace;
|
||||
uint32_t m_currentEdge;
|
||||
uint32_t m_nextEdge;
|
||||
|
||||
const uint32_t* m_adjacency;
|
||||
const index_t* m_indices;
|
||||
size_t m_nFaces;
|
||||
|
||||
bool m_clockWise;
|
||||
bool m_stopOnBoundary;
|
||||
};
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
template<class index_t>
|
||||
inline uint32_t find_edge( _In_reads_(3) const index_t* indices, index_t search )
|
||||
{
|
||||
assert( indices != 0 );
|
||||
|
||||
uint32_t edge = 0;
|
||||
|
||||
for( ; edge < 3; ++edge )
|
||||
{
|
||||
if ( indices[ edge ] == search )
|
||||
break;
|
||||
}
|
||||
|
||||
return edge;
|
||||
}
|
||||
|
||||
}; // namespace
|
||||
//-------------------------------------------------------------------------------------
|
||||
// DirectXMeshP.h
|
||||
//
|
||||
// DirectX Mesh Geometry Library
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable : 4005)
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#define NOMINMAX
|
||||
#define NODRAWTEXT
|
||||
#define NOGDI
|
||||
#define NOBITMAP
|
||||
#define NOMCX
|
||||
#define NOSERVICE
|
||||
#define NOHELP
|
||||
#pragma warning(pop)
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
#include <directxmath.h>
|
||||
#include <directxpackedvector.h>
|
||||
|
||||
#include <assert.h>
|
||||
#include <malloc.h>
|
||||
|
||||
#include <algorithm>
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
|
||||
#include "directxmesh.h"
|
||||
|
||||
#include "scoped.h"
|
||||
|
||||
#ifndef XBOX_DXGI_FORMAT_R10G10B10_SNORM_A2_UNORM
|
||||
#define XBOX_DXGI_FORMAT_R10G10B10_SNORM_A2_UNORM DXGI_FORMAT(189)
|
||||
#endif
|
||||
|
||||
|
||||
namespace DirectX
|
||||
{
|
||||
//---------------------------------------------------------------------------------
|
||||
const uint32_t UNUSED32 = uint32_t(-1);
|
||||
|
||||
static_assert( D3D11_16BIT_INDEX_STRIP_CUT_VALUE == uint16_t(-1), "Mismatch with Direct3D11" );
|
||||
static_assert( D3D11_16BIT_INDEX_STRIP_CUT_VALUE == UINT16_MAX, "Mismatch with Direct3D11" );
|
||||
|
||||
static_assert( D3D11_32BIT_INDEX_STRIP_CUT_VALUE == uint32_t(-1), "Mismatch with Direct3D11" );
|
||||
static_assert( D3D11_32BIT_INDEX_STRIP_CUT_VALUE == UINT32_MAX, "Mismatch with Direct3D11" );
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Utility for walking adjacency
|
||||
//---------------------------------------------------------------------------------
|
||||
template<class index_t>
|
||||
class orbit_iterator
|
||||
{
|
||||
public:
|
||||
enum WalkType
|
||||
{
|
||||
ALL = 0,
|
||||
CW,
|
||||
CCW
|
||||
};
|
||||
|
||||
orbit_iterator( _In_reads_(nFaces*3) const uint32_t* adjacency, _In_reads_(nFaces*3) const index_t* indices, size_t nFaces ) :
|
||||
m_face(UNUSED32),
|
||||
m_pointIndex(UNUSED32),
|
||||
m_currentFace(UNUSED32),
|
||||
m_currentEdge(UNUSED32),
|
||||
m_nextEdge(UNUSED32),
|
||||
m_adjacency(adjacency),
|
||||
m_indices(indices),
|
||||
m_nFaces(nFaces),
|
||||
m_clockWise(false),
|
||||
m_stopOnBoundary(false) {}
|
||||
|
||||
void initialize( uint32_t face, uint32_t point, WalkType wtype )
|
||||
{
|
||||
m_face = m_currentFace = face;
|
||||
m_pointIndex = point;
|
||||
m_clockWise = ( wtype != CCW );
|
||||
m_stopOnBoundary = ( wtype != ALL );
|
||||
|
||||
m_nextEdge = find( face, point );
|
||||
assert( m_nextEdge < 3 );
|
||||
_Analysis_assume_( m_nextEdge < 3 );
|
||||
|
||||
if ( !m_clockWise )
|
||||
{
|
||||
m_nextEdge = ( m_nextEdge + 2 ) % 3;
|
||||
}
|
||||
|
||||
m_currentEdge = m_nextEdge;
|
||||
}
|
||||
|
||||
uint32_t find( uint32_t face, uint32_t point )
|
||||
{
|
||||
assert( face < m_nFaces );
|
||||
_Analysis_assume_( face < m_nFaces );
|
||||
|
||||
if ( m_indices[ face*3 ] == point )
|
||||
return 0;
|
||||
else if ( m_indices[ face*3 + 1 ] == point )
|
||||
return 1;
|
||||
else
|
||||
{
|
||||
assert( m_indices[ face*3 + 2 ] == point );
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t nextFace()
|
||||
{
|
||||
assert( !done() );
|
||||
|
||||
uint32_t ret = m_currentFace;
|
||||
m_currentEdge = m_nextEdge;
|
||||
|
||||
for(;;)
|
||||
{
|
||||
uint32_t prevFace = m_currentFace;
|
||||
|
||||
assert( ( m_currentFace * 3 + m_nextEdge ) < ( m_nFaces * 3) );
|
||||
_Analysis_assume_( ( m_currentFace * 3 + m_nextEdge ) < ( m_nFaces * 3) );
|
||||
|
||||
m_currentFace = m_adjacency[ m_currentFace * 3 + m_nextEdge ];
|
||||
|
||||
if ( m_currentFace == m_face )
|
||||
{
|
||||
// wrapped around after a full orbit, so finished
|
||||
m_currentFace = UNUSED32;
|
||||
break;
|
||||
}
|
||||
else if ( m_currentFace != UNUSED32 )
|
||||
{
|
||||
assert( ( m_currentFace * 3 + 2 ) < ( m_nFaces * 3) );
|
||||
_Analysis_assume_( ( m_currentFace * 3 + 2 ) < ( m_nFaces * 3) );
|
||||
|
||||
if ( m_adjacency[ m_currentFace * 3 ] == prevFace )
|
||||
m_nextEdge = 0;
|
||||
else if ( m_adjacency[ m_currentFace * 3 + 1 ] == prevFace )
|
||||
m_nextEdge = 1;
|
||||
else
|
||||
{
|
||||
assert( m_adjacency[ m_currentFace * 3 + 2 ] == prevFace );
|
||||
m_nextEdge = 2;
|
||||
}
|
||||
|
||||
if ( m_clockWise )
|
||||
{
|
||||
m_nextEdge = ( m_nextEdge + 1 ) % 3;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_nextEdge = ( m_nextEdge + 2 ) % 3;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
else if ( m_clockWise && !m_stopOnBoundary )
|
||||
{
|
||||
// hit boundary and need to restart to go counter-clockwise
|
||||
m_clockWise = false;
|
||||
m_currentFace = m_face;
|
||||
|
||||
m_nextEdge = find( m_face, m_pointIndex );
|
||||
assert( m_nextEdge < 3 );
|
||||
_Analysis_assume_( m_nextEdge < 3 );
|
||||
|
||||
m_nextEdge = ( m_nextEdge + 2 ) % 3;
|
||||
m_currentEdge = ( m_currentEdge + 2 ) %3;
|
||||
|
||||
// Don't break out of loop so we can go the other way
|
||||
}
|
||||
else
|
||||
{
|
||||
// hit boundary and should stop
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool moveToCCW()
|
||||
{
|
||||
m_currentFace = m_face;
|
||||
|
||||
m_nextEdge = find( m_currentFace, m_pointIndex );
|
||||
uint32_t initialNextEdge = m_nextEdge;
|
||||
assert( m_nextEdge < 3 );
|
||||
_Analysis_assume_( m_nextEdge < 3 );
|
||||
|
||||
m_nextEdge = ( m_nextEdge + 2 ) % 3;
|
||||
|
||||
bool ret = false;
|
||||
|
||||
uint32_t prevFace;
|
||||
do
|
||||
{
|
||||
prevFace = m_currentFace;
|
||||
m_currentFace = m_adjacency[ m_currentFace * 3 + m_nextEdge ];
|
||||
|
||||
if ( m_currentFace != UNUSED32 )
|
||||
{
|
||||
if ( m_adjacency[ m_currentFace * 3 ] == prevFace )
|
||||
m_nextEdge = 0;
|
||||
else if ( m_adjacency[ m_currentFace * 3 + 1 ] == prevFace )
|
||||
m_nextEdge = 1;
|
||||
else
|
||||
{
|
||||
assert( m_adjacency[ m_currentFace * 3 + 2 ] == prevFace );
|
||||
m_nextEdge = 2;
|
||||
}
|
||||
|
||||
m_nextEdge = ( m_nextEdge + 2 ) % 3;
|
||||
}
|
||||
}
|
||||
while ( (m_currentFace != m_face) && (m_currentFace != UNUSED32 ) );
|
||||
|
||||
if ( m_currentFace == UNUSED32 )
|
||||
{
|
||||
m_currentFace = prevFace;
|
||||
m_nextEdge = ( m_nextEdge + 1 ) % 3;
|
||||
|
||||
m_pointIndex = m_indices[ m_currentFace * 3 + m_nextEdge ];
|
||||
|
||||
ret = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_nextEdge = initialNextEdge;
|
||||
}
|
||||
|
||||
m_clockWise = true;
|
||||
m_currentEdge = m_nextEdge;
|
||||
m_face = m_currentFace;
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool done() const { return ( m_currentFace == UNUSED32 ); };
|
||||
uint32_t getpoint() const { return m_clockWise ? m_currentEdge : ( ( m_currentEdge + 1 ) % 3 ); };
|
||||
|
||||
private:
|
||||
uint32_t m_face;
|
||||
uint32_t m_pointIndex;
|
||||
uint32_t m_currentFace;
|
||||
uint32_t m_currentEdge;
|
||||
uint32_t m_nextEdge;
|
||||
|
||||
const uint32_t* m_adjacency;
|
||||
const index_t* m_indices;
|
||||
size_t m_nFaces;
|
||||
|
||||
bool m_clockWise;
|
||||
bool m_stopOnBoundary;
|
||||
};
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
template<class index_t>
|
||||
inline uint32_t find_edge( _In_reads_(3) const index_t* indices, index_t search )
|
||||
{
|
||||
assert( indices != 0 );
|
||||
|
||||
uint32_t edge = 0;
|
||||
|
||||
for( ; edge < 3; ++edge )
|
||||
{
|
||||
if ( indices[ edge ] == search )
|
||||
break;
|
||||
}
|
||||
|
||||
return edge;
|
||||
}
|
||||
|
||||
}; // namespace
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,277 +1,277 @@
|
|||
//-------------------------------------------------------------------------------------
|
||||
// DirectXMeshTangentFrame.cpp
|
||||
//
|
||||
// DirectX Mesh Geometry Library - Normals, Tangents, and Bi-Tangents Computation
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#include "DirectXMeshP.h"
|
||||
|
||||
using namespace DirectX;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// Compute normals with equal weighting
|
||||
//-------------------------------------------------------------------------------------
|
||||
template<class index_t>
|
||||
HRESULT _ComputeTangentFrame( _In_reads_(nFaces*3) const index_t* indices, size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions,
|
||||
_In_reads_(nVerts) const XMFLOAT3* normals,
|
||||
_In_reads_(nVerts) const XMFLOAT2* texcoords,
|
||||
size_t nVerts,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT3* tangents3,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT4* tangents4,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT3* bitangents )
|
||||
{
|
||||
if ( !indices || !nFaces || !positions || !normals || !texcoords || !nVerts )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( nVerts >= index_t(-1) )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( ( uint64_t(nFaces) * 3 ) >= UINT32_MAX )
|
||||
return HRESULT_FROM_WIN32( ERROR_ARITHMETIC_OVERFLOW );
|
||||
|
||||
static const float EPSILON = 0.0001f;
|
||||
static const XMVECTORF32 s_flips = { 1.f, -1.f, -1.f, 1.f };
|
||||
|
||||
ScopedAlignedArrayXMVECTOR temp( reinterpret_cast<XMVECTOR*>( _aligned_malloc( sizeof(XMVECTOR) * nVerts * 2, 16 ) ) );
|
||||
if ( !temp )
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
memset( temp.get(), 0, sizeof(XMVECTOR) * nVerts * 2 );
|
||||
|
||||
XMVECTOR* tangent1 = temp.get();
|
||||
XMVECTOR* tangent2 = temp.get() + nVerts;
|
||||
|
||||
for( size_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
index_t i0 = indices[ face*3 ];
|
||||
index_t i1 = indices[ face*3 + 1 ];
|
||||
index_t i2 = indices[ face*3 + 2 ];
|
||||
|
||||
if ( i0 == index_t(-1)
|
||||
|| i1 == index_t(-1)
|
||||
|| i2 == index_t(-1) )
|
||||
continue;
|
||||
|
||||
if ( i0 >= nVerts
|
||||
|| i1 >= nVerts
|
||||
|| i2 >= nVerts )
|
||||
return E_UNEXPECTED;
|
||||
|
||||
XMVECTOR t0 = XMLoadFloat2( &texcoords[ i0 ] );
|
||||
XMVECTOR t1 = XMLoadFloat2( &texcoords[ i1 ] );
|
||||
XMVECTOR t2 = XMLoadFloat2( &texcoords[ i2 ] );
|
||||
|
||||
XMVECTOR s = XMVectorMergeXY( t1 - t0, t2 - t0 );
|
||||
|
||||
XMFLOAT4A tmp;
|
||||
XMStoreFloat4A( &tmp, s );
|
||||
|
||||
float d = tmp.x * tmp.w - tmp.z * tmp.y;
|
||||
d = ( fabsf( d ) <= EPSILON ) ? 1.f : ( 1.f / d );
|
||||
s *= d;
|
||||
s = XMVectorMultiply( s, s_flips );
|
||||
|
||||
XMMATRIX m0;
|
||||
m0.r[0] = XMVectorPermute<3,2,6,7>( s, g_XMZero );
|
||||
m0.r[1] = XMVectorPermute<1,0,4,5>( s, g_XMZero );
|
||||
m0.r[2] = m0.r[3] = g_XMZero;
|
||||
|
||||
XMVECTOR p0 = XMLoadFloat3( &positions[ i0 ] );
|
||||
XMVECTOR p1 = XMLoadFloat3( &positions[ i1 ] );
|
||||
XMVECTOR p2 = XMLoadFloat3( &positions[ i2 ] );
|
||||
|
||||
XMMATRIX m1;
|
||||
m1.r[0] = p1 - p0;
|
||||
m1.r[1] = p2 - p0;
|
||||
m1.r[2] = m1.r[3] = g_XMZero;
|
||||
|
||||
XMMATRIX uv = XMMatrixMultiply( m0, m1 );
|
||||
|
||||
tangent1[ i0 ] = XMVectorAdd( tangent1[ i0 ], uv.r[0] );
|
||||
tangent1[ i1 ] = XMVectorAdd( tangent1[ i1 ], uv.r[0] );
|
||||
tangent1[ i2 ] = XMVectorAdd( tangent1[ i2 ], uv.r[0] );
|
||||
|
||||
tangent2[ i0 ] = XMVectorAdd( tangent2[ i0 ], uv.r[1] );
|
||||
tangent2[ i1 ] = XMVectorAdd( tangent2[ i1 ], uv.r[1] );
|
||||
tangent2[ i2 ] = XMVectorAdd( tangent2[ i2 ], uv.r[1] );
|
||||
}
|
||||
|
||||
for( size_t j = 0; j < nVerts; ++j )
|
||||
{
|
||||
// Gram-Schmidt orthonormalization
|
||||
XMVECTOR b0 = XMLoadFloat3( &normals[ j ] );
|
||||
b0 = XMVector3Normalize( b0 );
|
||||
|
||||
XMVECTOR tan1 = tangent1[ j ];
|
||||
XMVECTOR b1 = tan1 - XMVector3Dot( b0, tan1 ) * b0;
|
||||
b1 = XMVector3Normalize( b1 );
|
||||
|
||||
XMVECTOR tan2 = tangent2[ j ];
|
||||
XMVECTOR b2 = tan2 - XMVector3Dot( b0, tan2 ) * b0 - XMVector3Dot( b1, tan2 ) * b1;
|
||||
b2 = XMVector3Normalize( b2 );
|
||||
|
||||
// handle degenerate vectors
|
||||
float len1 = XMVectorGetX( XMVector3Length( b1 ) );
|
||||
float len2 = XMVectorGetY( XMVector3Length( b2 ) );
|
||||
|
||||
if ( ( len1 <= EPSILON ) || ( len2 <= EPSILON ) )
|
||||
{
|
||||
if ( len1 > 0.5f )
|
||||
{
|
||||
// Reset bi-tangent from tangent and normal
|
||||
b2 = XMVector3Cross( b0, b1 );
|
||||
}
|
||||
else if ( len2 > 0.5f )
|
||||
{
|
||||
// Reset tangent from bi-tangent and normal
|
||||
b1 = XMVector3Cross( b2, b0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
// Reset both tangent and bi-tangent from normal
|
||||
XMVECTOR axis;
|
||||
|
||||
float d0 = fabs( XMVectorGetX( XMVector3Dot( g_XMIdentityR0, b0 ) ) );
|
||||
float d1 = fabs( XMVectorGetX( XMVector3Dot( g_XMIdentityR1, b0 ) ) );
|
||||
float d2 = fabs( XMVectorGetX( XMVector3Dot( g_XMIdentityR2, b0 ) ) );
|
||||
if ( d0 < d1 )
|
||||
{
|
||||
axis = ( d0 < d2 ) ? g_XMIdentityR0 : g_XMIdentityR2;
|
||||
}
|
||||
else if ( d1 < d2 )
|
||||
{
|
||||
axis = g_XMIdentityR1;
|
||||
}
|
||||
else
|
||||
{
|
||||
axis = g_XMIdentityR2;
|
||||
}
|
||||
|
||||
b1 = XMVector3Cross( b0, axis );
|
||||
b2 = XMVector3Cross( b0, b1 );
|
||||
}
|
||||
}
|
||||
|
||||
if ( tangents3 )
|
||||
{
|
||||
XMStoreFloat3( &tangents3[ j ], b1 );
|
||||
}
|
||||
|
||||
if ( tangents4 )
|
||||
{
|
||||
XMVECTOR bi = XMVector3Cross( b0, tan1 );
|
||||
float w = XMVector3Less( XMVector3Dot( bi, tan2 ), g_XMZero ) ? -1.f : 1.f;
|
||||
|
||||
bi = XMVectorSetW( b1, w );
|
||||
XMStoreFloat4( &tangents4[ j ], bi );
|
||||
}
|
||||
|
||||
if ( bitangents )
|
||||
{
|
||||
XMStoreFloat3( &bitangents[ j ], b2 );
|
||||
}
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
namespace DirectX
|
||||
{
|
||||
|
||||
//=====================================================================================
|
||||
// Entry-points
|
||||
//=====================================================================================
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT ComputeTangentFrame( const uint16_t* indices, size_t nFaces,
|
||||
const XMFLOAT3* positions, const XMFLOAT3* normals, const XMFLOAT2* texcoords,
|
||||
size_t nVerts, XMFLOAT3* tangents, XMFLOAT3* bitangents )
|
||||
{
|
||||
if ( !tangents && !bitangents )
|
||||
return E_INVALIDARG;
|
||||
|
||||
return _ComputeTangentFrame<uint16_t>( indices, nFaces, positions, normals, texcoords, nVerts, tangents, nullptr, bitangents );
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT ComputeTangentFrame( const uint32_t* indices, size_t nFaces,
|
||||
const XMFLOAT3* positions, const XMFLOAT3* normals, const XMFLOAT2* texcoords,
|
||||
size_t nVerts, XMFLOAT3* tangents, XMFLOAT3* bitangents )
|
||||
{
|
||||
if ( !tangents && !bitangents )
|
||||
return E_INVALIDARG;
|
||||
|
||||
return _ComputeTangentFrame<uint32_t>( indices, nFaces, positions, normals, texcoords, nVerts, tangents, nullptr, bitangents );
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT ComputeTangentFrame( const uint16_t* indices, size_t nFaces,
|
||||
const XMFLOAT3* positions, const XMFLOAT3* normals, const XMFLOAT2* texcoords,
|
||||
size_t nVerts, XMFLOAT4* tangents, XMFLOAT3* bitangents )
|
||||
{
|
||||
if ( !tangents && !bitangents )
|
||||
return E_INVALIDARG;
|
||||
|
||||
return _ComputeTangentFrame<uint16_t>( indices, nFaces, positions, normals, texcoords, nVerts, nullptr, tangents, bitangents );
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT ComputeTangentFrame( const uint32_t* indices, size_t nFaces,
|
||||
const XMFLOAT3* positions, const XMFLOAT3* normals, const XMFLOAT2* texcoords,
|
||||
size_t nVerts, XMFLOAT4* tangents, XMFLOAT3* bitangents )
|
||||
{
|
||||
if ( !tangents && !bitangents )
|
||||
return E_INVALIDARG;
|
||||
|
||||
return _ComputeTangentFrame<uint32_t>( indices, nFaces, positions, normals, texcoords, nVerts, nullptr, tangents, bitangents );
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT ComputeTangentFrame( const uint16_t* indices, size_t nFaces,
|
||||
const XMFLOAT3* positions, const XMFLOAT3* normals, const XMFLOAT2* texcoords,
|
||||
size_t nVerts, XMFLOAT4* tangents )
|
||||
{
|
||||
if ( !tangents )
|
||||
return E_INVALIDARG;
|
||||
|
||||
return _ComputeTangentFrame<uint16_t>( indices, nFaces, positions, normals, texcoords, nVerts, nullptr, tangents, nullptr );
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT ComputeTangentFrame( const uint32_t* indices, size_t nFaces,
|
||||
const XMFLOAT3* positions, const XMFLOAT3* normals, const XMFLOAT2* texcoords,
|
||||
size_t nVerts, XMFLOAT4* tangents )
|
||||
{
|
||||
if ( !tangents )
|
||||
return E_INVALIDARG;
|
||||
|
||||
return _ComputeTangentFrame<uint32_t>( indices, nFaces, positions, normals, texcoords, nVerts, nullptr, tangents, nullptr );
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// DirectXMeshTangentFrame.cpp
|
||||
//
|
||||
// DirectX Mesh Geometry Library - Normals, Tangents, and Bi-Tangents Computation
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#include "DirectXMeshP.h"
|
||||
|
||||
using namespace DirectX;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// Compute normals with equal weighting
|
||||
//-------------------------------------------------------------------------------------
|
||||
template<class index_t>
|
||||
HRESULT _ComputeTangentFrame( _In_reads_(nFaces*3) const index_t* indices, size_t nFaces,
|
||||
_In_reads_(nVerts) const XMFLOAT3* positions,
|
||||
_In_reads_(nVerts) const XMFLOAT3* normals,
|
||||
_In_reads_(nVerts) const XMFLOAT2* texcoords,
|
||||
size_t nVerts,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT3* tangents3,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT4* tangents4,
|
||||
_Out_writes_opt_(nVerts) XMFLOAT3* bitangents )
|
||||
{
|
||||
if ( !indices || !nFaces || !positions || !normals || !texcoords || !nVerts )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( nVerts >= index_t(-1) )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( ( uint64_t(nFaces) * 3 ) >= UINT32_MAX )
|
||||
return HRESULT_FROM_WIN32( ERROR_ARITHMETIC_OVERFLOW );
|
||||
|
||||
static const float EPSILON = 0.0001f;
|
||||
static const XMVECTORF32 s_flips = { 1.f, -1.f, -1.f, 1.f };
|
||||
|
||||
ScopedAlignedArrayXMVECTOR temp( reinterpret_cast<XMVECTOR*>( _aligned_malloc( sizeof(XMVECTOR) * nVerts * 2, 16 ) ) );
|
||||
if ( !temp )
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
memset( temp.get(), 0, sizeof(XMVECTOR) * nVerts * 2 );
|
||||
|
||||
XMVECTOR* tangent1 = temp.get();
|
||||
XMVECTOR* tangent2 = temp.get() + nVerts;
|
||||
|
||||
for( size_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
index_t i0 = indices[ face*3 ];
|
||||
index_t i1 = indices[ face*3 + 1 ];
|
||||
index_t i2 = indices[ face*3 + 2 ];
|
||||
|
||||
if ( i0 == index_t(-1)
|
||||
|| i1 == index_t(-1)
|
||||
|| i2 == index_t(-1) )
|
||||
continue;
|
||||
|
||||
if ( i0 >= nVerts
|
||||
|| i1 >= nVerts
|
||||
|| i2 >= nVerts )
|
||||
return E_UNEXPECTED;
|
||||
|
||||
XMVECTOR t0 = XMLoadFloat2( &texcoords[ i0 ] );
|
||||
XMVECTOR t1 = XMLoadFloat2( &texcoords[ i1 ] );
|
||||
XMVECTOR t2 = XMLoadFloat2( &texcoords[ i2 ] );
|
||||
|
||||
XMVECTOR s = XMVectorMergeXY( t1 - t0, t2 - t0 );
|
||||
|
||||
XMFLOAT4A tmp;
|
||||
XMStoreFloat4A( &tmp, s );
|
||||
|
||||
float d = tmp.x * tmp.w - tmp.z * tmp.y;
|
||||
d = ( fabsf( d ) <= EPSILON ) ? 1.f : ( 1.f / d );
|
||||
s *= d;
|
||||
s = XMVectorMultiply( s, s_flips );
|
||||
|
||||
XMMATRIX m0;
|
||||
m0.r[0] = XMVectorPermute<3,2,6,7>( s, g_XMZero );
|
||||
m0.r[1] = XMVectorPermute<1,0,4,5>( s, g_XMZero );
|
||||
m0.r[2] = m0.r[3] = g_XMZero;
|
||||
|
||||
XMVECTOR p0 = XMLoadFloat3( &positions[ i0 ] );
|
||||
XMVECTOR p1 = XMLoadFloat3( &positions[ i1 ] );
|
||||
XMVECTOR p2 = XMLoadFloat3( &positions[ i2 ] );
|
||||
|
||||
XMMATRIX m1;
|
||||
m1.r[0] = p1 - p0;
|
||||
m1.r[1] = p2 - p0;
|
||||
m1.r[2] = m1.r[3] = g_XMZero;
|
||||
|
||||
XMMATRIX uv = XMMatrixMultiply( m0, m1 );
|
||||
|
||||
tangent1[ i0 ] = XMVectorAdd( tangent1[ i0 ], uv.r[0] );
|
||||
tangent1[ i1 ] = XMVectorAdd( tangent1[ i1 ], uv.r[0] );
|
||||
tangent1[ i2 ] = XMVectorAdd( tangent1[ i2 ], uv.r[0] );
|
||||
|
||||
tangent2[ i0 ] = XMVectorAdd( tangent2[ i0 ], uv.r[1] );
|
||||
tangent2[ i1 ] = XMVectorAdd( tangent2[ i1 ], uv.r[1] );
|
||||
tangent2[ i2 ] = XMVectorAdd( tangent2[ i2 ], uv.r[1] );
|
||||
}
|
||||
|
||||
for( size_t j = 0; j < nVerts; ++j )
|
||||
{
|
||||
// Gram-Schmidt orthonormalization
|
||||
XMVECTOR b0 = XMLoadFloat3( &normals[ j ] );
|
||||
b0 = XMVector3Normalize( b0 );
|
||||
|
||||
XMVECTOR tan1 = tangent1[ j ];
|
||||
XMVECTOR b1 = tan1 - XMVector3Dot( b0, tan1 ) * b0;
|
||||
b1 = XMVector3Normalize( b1 );
|
||||
|
||||
XMVECTOR tan2 = tangent2[ j ];
|
||||
XMVECTOR b2 = tan2 - XMVector3Dot( b0, tan2 ) * b0 - XMVector3Dot( b1, tan2 ) * b1;
|
||||
b2 = XMVector3Normalize( b2 );
|
||||
|
||||
// handle degenerate vectors
|
||||
float len1 = XMVectorGetX( XMVector3Length( b1 ) );
|
||||
float len2 = XMVectorGetY( XMVector3Length( b2 ) );
|
||||
|
||||
if ( ( len1 <= EPSILON ) || ( len2 <= EPSILON ) )
|
||||
{
|
||||
if ( len1 > 0.5f )
|
||||
{
|
||||
// Reset bi-tangent from tangent and normal
|
||||
b2 = XMVector3Cross( b0, b1 );
|
||||
}
|
||||
else if ( len2 > 0.5f )
|
||||
{
|
||||
// Reset tangent from bi-tangent and normal
|
||||
b1 = XMVector3Cross( b2, b0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
// Reset both tangent and bi-tangent from normal
|
||||
XMVECTOR axis;
|
||||
|
||||
float d0 = fabs( XMVectorGetX( XMVector3Dot( g_XMIdentityR0, b0 ) ) );
|
||||
float d1 = fabs( XMVectorGetX( XMVector3Dot( g_XMIdentityR1, b0 ) ) );
|
||||
float d2 = fabs( XMVectorGetX( XMVector3Dot( g_XMIdentityR2, b0 ) ) );
|
||||
if ( d0 < d1 )
|
||||
{
|
||||
axis = ( d0 < d2 ) ? g_XMIdentityR0 : g_XMIdentityR2;
|
||||
}
|
||||
else if ( d1 < d2 )
|
||||
{
|
||||
axis = g_XMIdentityR1;
|
||||
}
|
||||
else
|
||||
{
|
||||
axis = g_XMIdentityR2;
|
||||
}
|
||||
|
||||
b1 = XMVector3Cross( b0, axis );
|
||||
b2 = XMVector3Cross( b0, b1 );
|
||||
}
|
||||
}
|
||||
|
||||
if ( tangents3 )
|
||||
{
|
||||
XMStoreFloat3( &tangents3[ j ], b1 );
|
||||
}
|
||||
|
||||
if ( tangents4 )
|
||||
{
|
||||
XMVECTOR bi = XMVector3Cross( b0, tan1 );
|
||||
float w = XMVector3Less( XMVector3Dot( bi, tan2 ), g_XMZero ) ? -1.f : 1.f;
|
||||
|
||||
bi = XMVectorSetW( b1, w );
|
||||
XMStoreFloat4( &tangents4[ j ], bi );
|
||||
}
|
||||
|
||||
if ( bitangents )
|
||||
{
|
||||
XMStoreFloat3( &bitangents[ j ], b2 );
|
||||
}
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
namespace DirectX
|
||||
{
|
||||
|
||||
//=====================================================================================
|
||||
// Entry-points
|
||||
//=====================================================================================
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT ComputeTangentFrame( const uint16_t* indices, size_t nFaces,
|
||||
const XMFLOAT3* positions, const XMFLOAT3* normals, const XMFLOAT2* texcoords,
|
||||
size_t nVerts, XMFLOAT3* tangents, XMFLOAT3* bitangents )
|
||||
{
|
||||
if ( !tangents && !bitangents )
|
||||
return E_INVALIDARG;
|
||||
|
||||
return _ComputeTangentFrame<uint16_t>( indices, nFaces, positions, normals, texcoords, nVerts, tangents, nullptr, bitangents );
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT ComputeTangentFrame( const uint32_t* indices, size_t nFaces,
|
||||
const XMFLOAT3* positions, const XMFLOAT3* normals, const XMFLOAT2* texcoords,
|
||||
size_t nVerts, XMFLOAT3* tangents, XMFLOAT3* bitangents )
|
||||
{
|
||||
if ( !tangents && !bitangents )
|
||||
return E_INVALIDARG;
|
||||
|
||||
return _ComputeTangentFrame<uint32_t>( indices, nFaces, positions, normals, texcoords, nVerts, tangents, nullptr, bitangents );
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT ComputeTangentFrame( const uint16_t* indices, size_t nFaces,
|
||||
const XMFLOAT3* positions, const XMFLOAT3* normals, const XMFLOAT2* texcoords,
|
||||
size_t nVerts, XMFLOAT4* tangents, XMFLOAT3* bitangents )
|
||||
{
|
||||
if ( !tangents && !bitangents )
|
||||
return E_INVALIDARG;
|
||||
|
||||
return _ComputeTangentFrame<uint16_t>( indices, nFaces, positions, normals, texcoords, nVerts, nullptr, tangents, bitangents );
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT ComputeTangentFrame( const uint32_t* indices, size_t nFaces,
|
||||
const XMFLOAT3* positions, const XMFLOAT3* normals, const XMFLOAT2* texcoords,
|
||||
size_t nVerts, XMFLOAT4* tangents, XMFLOAT3* bitangents )
|
||||
{
|
||||
if ( !tangents && !bitangents )
|
||||
return E_INVALIDARG;
|
||||
|
||||
return _ComputeTangentFrame<uint32_t>( indices, nFaces, positions, normals, texcoords, nVerts, nullptr, tangents, bitangents );
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT ComputeTangentFrame( const uint16_t* indices, size_t nFaces,
|
||||
const XMFLOAT3* positions, const XMFLOAT3* normals, const XMFLOAT2* texcoords,
|
||||
size_t nVerts, XMFLOAT4* tangents )
|
||||
{
|
||||
if ( !tangents )
|
||||
return E_INVALIDARG;
|
||||
|
||||
return _ComputeTangentFrame<uint16_t>( indices, nFaces, positions, normals, texcoords, nVerts, nullptr, tangents, nullptr );
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT ComputeTangentFrame( const uint32_t* indices, size_t nFaces,
|
||||
const XMFLOAT3* positions, const XMFLOAT3* normals, const XMFLOAT2* texcoords,
|
||||
size_t nVerts, XMFLOAT4* tangents )
|
||||
{
|
||||
if ( !tangents )
|
||||
return E_INVALIDARG;
|
||||
|
||||
return _ComputeTangentFrame<uint32_t>( indices, nFaces, positions, normals, texcoords, nVerts, nullptr, tangents, nullptr );
|
||||
}
|
||||
|
||||
} // namespace
|
|
@ -1,387 +1,387 @@
|
|||
//-------------------------------------------------------------------------------------
|
||||
// DirectXMeshUtil.cpp
|
||||
//
|
||||
// DirectX Mesh Geometry Library - Utilities
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#include "DirectXMeshP.h"
|
||||
|
||||
using namespace DirectX;
|
||||
|
||||
#if defined(_XBOX_ONE) && defined(_TITLE)
|
||||
static_assert(XBOX_DXGI_FORMAT_R10G10B10_SNORM_A2_UNORM == DXGI_FORMAT_R10G10B10_SNORM_A2_UNORM, "Xbox One XDK mismatch detected");
|
||||
#endif
|
||||
|
||||
|
||||
namespace DirectX
|
||||
{
|
||||
|
||||
//=====================================================================================
|
||||
// DXGI Format Utilities
|
||||
//=====================================================================================
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// Returns bytes-per-element for a given DXGI format, or 0 on failure
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
size_t BytesPerElement( DXGI_FORMAT fmt )
|
||||
{
|
||||
// This list only includes those formats that are valid for use by IB or VB
|
||||
|
||||
switch( static_cast<int>(fmt) )
|
||||
{
|
||||
case DXGI_FORMAT_R32G32B32A32_FLOAT:
|
||||
case DXGI_FORMAT_R32G32B32A32_UINT:
|
||||
case DXGI_FORMAT_R32G32B32A32_SINT:
|
||||
return 16;
|
||||
|
||||
case DXGI_FORMAT_R32G32B32_FLOAT:
|
||||
case DXGI_FORMAT_R32G32B32_UINT:
|
||||
case DXGI_FORMAT_R32G32B32_SINT:
|
||||
return 12;
|
||||
|
||||
case DXGI_FORMAT_R16G16B16A16_FLOAT:
|
||||
case DXGI_FORMAT_R16G16B16A16_UNORM:
|
||||
case DXGI_FORMAT_R16G16B16A16_UINT:
|
||||
case DXGI_FORMAT_R16G16B16A16_SNORM:
|
||||
case DXGI_FORMAT_R16G16B16A16_SINT:
|
||||
case DXGI_FORMAT_R32G32_FLOAT:
|
||||
case DXGI_FORMAT_R32G32_UINT:
|
||||
case DXGI_FORMAT_R32G32_SINT:
|
||||
return 8;
|
||||
|
||||
case DXGI_FORMAT_R10G10B10A2_UNORM:
|
||||
case DXGI_FORMAT_R10G10B10A2_UINT:
|
||||
case DXGI_FORMAT_R11G11B10_FLOAT:
|
||||
case DXGI_FORMAT_R8G8B8A8_UNORM:
|
||||
case DXGI_FORMAT_R8G8B8A8_UINT:
|
||||
case DXGI_FORMAT_R8G8B8A8_SNORM:
|
||||
case DXGI_FORMAT_R8G8B8A8_SINT:
|
||||
case DXGI_FORMAT_R16G16_FLOAT:
|
||||
case DXGI_FORMAT_R16G16_UNORM:
|
||||
case DXGI_FORMAT_R16G16_UINT:
|
||||
case DXGI_FORMAT_R16G16_SNORM:
|
||||
case DXGI_FORMAT_R16G16_SINT:
|
||||
case DXGI_FORMAT_R32_FLOAT:
|
||||
case DXGI_FORMAT_R32_UINT:
|
||||
case DXGI_FORMAT_R32_SINT:
|
||||
case DXGI_FORMAT_B8G8R8A8_UNORM:
|
||||
case DXGI_FORMAT_B8G8R8X8_UNORM:
|
||||
case XBOX_DXGI_FORMAT_R10G10B10_SNORM_A2_UNORM:
|
||||
return 4;
|
||||
|
||||
case DXGI_FORMAT_R8G8_UNORM:
|
||||
case DXGI_FORMAT_R8G8_UINT:
|
||||
case DXGI_FORMAT_R8G8_SNORM:
|
||||
case DXGI_FORMAT_R8G8_SINT:
|
||||
case DXGI_FORMAT_R16_FLOAT:
|
||||
case DXGI_FORMAT_R16_UNORM:
|
||||
case DXGI_FORMAT_R16_UINT:
|
||||
case DXGI_FORMAT_R16_SNORM:
|
||||
case DXGI_FORMAT_R16_SINT:
|
||||
case DXGI_FORMAT_B5G6R5_UNORM:
|
||||
case DXGI_FORMAT_B5G5R5A1_UNORM:
|
||||
return 2;
|
||||
|
||||
case DXGI_FORMAT_R8_UNORM:
|
||||
case DXGI_FORMAT_R8_UINT:
|
||||
case DXGI_FORMAT_R8_SNORM:
|
||||
case DXGI_FORMAT_R8_SINT:
|
||||
return 1;
|
||||
|
||||
case DXGI_FORMAT_B4G4R4A4_UNORM:
|
||||
return 2;
|
||||
|
||||
default:
|
||||
// No BC, sRGB, X2Bias, SharedExp, Typeless, Depth, or Video formats
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// Input Layout Descriptor Utilities
|
||||
//=====================================================================================
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// Validates a D3D11_INPUT_ELEMENT_DESC structure
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
bool IsValid( const D3D11_INPUT_ELEMENT_DESC* vbDecl, size_t nDecl )
|
||||
{
|
||||
if ( !vbDecl || !nDecl )
|
||||
{
|
||||
// Note that 0 is allowed by the runtime for degenerate cases, but is not defined for DirectXMesh
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( nDecl > D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT )
|
||||
{
|
||||
// The upper-limit depends on feature level, so we assume highest value here
|
||||
return false;
|
||||
}
|
||||
|
||||
for( size_t j = 0; j < nDecl; ++j )
|
||||
{
|
||||
size_t bpe = BytesPerElement( vbDecl[ j ].Format );
|
||||
if ( !bpe )
|
||||
{
|
||||
// Not a valid DXGI format or it's not valid for VB usage
|
||||
return false;
|
||||
}
|
||||
|
||||
uint32_t alignment;
|
||||
|
||||
if ( bpe == 1 )
|
||||
alignment = 1;
|
||||
else if ( bpe == 2 )
|
||||
alignment = 2;
|
||||
else
|
||||
alignment = 4;
|
||||
|
||||
if ( ( vbDecl[ j ].AlignedByteOffset != D3D11_APPEND_ALIGNED_ELEMENT )
|
||||
&& ( vbDecl[ j ].AlignedByteOffset % alignment ) != 0 )
|
||||
{
|
||||
// Invalid alignment for element
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( vbDecl[ j ].InputSlot >= D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT )
|
||||
{
|
||||
// The upper-limit depends on feature level, so we assume highest value here
|
||||
return false;
|
||||
}
|
||||
|
||||
switch( vbDecl[ j ].InputSlotClass )
|
||||
{
|
||||
case D3D11_INPUT_PER_VERTEX_DATA:
|
||||
if ( vbDecl[ j ].InstanceDataStepRate != 0 )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
case D3D11_INPUT_PER_INSTANCE_DATA:
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( !vbDecl[ j ].SemanticName )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Debug layer also checks for trailing digit in the semantic name, and checks
|
||||
// for inconsistent semantic name/slot assignment.
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// Compute the offsets to each element, and total stride of each slot
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
void ComputeInputLayout( const D3D11_INPUT_ELEMENT_DESC* vbDecl, size_t nDecl, uint32_t* offsets, uint32_t* strides )
|
||||
{
|
||||
assert( IsValid( vbDecl, nDecl ) );
|
||||
|
||||
if ( offsets )
|
||||
memset( offsets, 0, sizeof(uint32_t) * nDecl );
|
||||
|
||||
if ( strides )
|
||||
memset( strides, 0, sizeof(uint32_t) * D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT );
|
||||
|
||||
uint32_t prevABO[ D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT ];
|
||||
memset( prevABO, 0, sizeof(uint32_t) * D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT );
|
||||
|
||||
for( size_t j = 0; j < nDecl; ++j )
|
||||
{
|
||||
uint32_t slot = vbDecl[ j ].InputSlot;
|
||||
if ( slot >= D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT )
|
||||
{
|
||||
// ignore bad input slots
|
||||
continue;
|
||||
}
|
||||
|
||||
size_t bpe = BytesPerElement( vbDecl[ j ].Format );
|
||||
if ( !bpe )
|
||||
{
|
||||
// ignore invalid format
|
||||
continue;
|
||||
}
|
||||
|
||||
uint32_t alignment;
|
||||
|
||||
if ( bpe == 1 )
|
||||
alignment = 1;
|
||||
else if ( bpe == 2 )
|
||||
alignment = 2;
|
||||
else
|
||||
alignment = 4;
|
||||
|
||||
uint32_t alignedByteOffset = vbDecl[ j ].AlignedByteOffset;
|
||||
|
||||
if ( alignedByteOffset == D3D11_APPEND_ALIGNED_ELEMENT )
|
||||
{
|
||||
alignedByteOffset = prevABO[ slot ];
|
||||
}
|
||||
|
||||
if ( offsets )
|
||||
{
|
||||
offsets[ j ] = alignedByteOffset;
|
||||
}
|
||||
|
||||
if( strides )
|
||||
{
|
||||
uint32_t istride = uint32_t( alignedByteOffset + bpe );
|
||||
strides[ slot ] = std::max<uint32_t>( strides[ slot ], istride );
|
||||
}
|
||||
|
||||
prevABO[ slot ] = uint32_t( alignedByteOffset + bpe + ( bpe % alignment ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// Attribute Utilities
|
||||
//=====================================================================================
|
||||
_Use_decl_annotations_
|
||||
std::vector<std::pair<size_t,size_t>> ComputeSubsets( const uint32_t* attributes, size_t nFaces )
|
||||
{
|
||||
std::vector<std::pair<size_t,size_t>> subsets;
|
||||
|
||||
if ( !nFaces )
|
||||
return subsets;
|
||||
|
||||
if ( !attributes )
|
||||
{
|
||||
subsets.emplace_back( std::pair<size_t,size_t>( 0, nFaces ) );
|
||||
return subsets;
|
||||
}
|
||||
|
||||
uint32_t lastAttr = attributes[ 0 ];
|
||||
size_t offset = 0;
|
||||
size_t count = 1;
|
||||
|
||||
for( size_t j = 1; j < nFaces; ++j )
|
||||
{
|
||||
if ( attributes[ j ] != lastAttr )
|
||||
{
|
||||
subsets.emplace_back( std::pair<size_t,size_t>( offset, count ) );
|
||||
lastAttr = attributes[ j ];
|
||||
offset = j;
|
||||
count = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
count += 1;
|
||||
}
|
||||
}
|
||||
|
||||
if ( count > 0 )
|
||||
{
|
||||
subsets.emplace_back( std::pair<size_t,size_t>( offset, count ) );
|
||||
}
|
||||
|
||||
return subsets;
|
||||
}
|
||||
|
||||
} // namespace // DirectX
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// Mesh Optimization Utilities
|
||||
//=====================================================================================
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
template<class index_t>
|
||||
void _ComputeVertexCacheMissRate( _In_reads_(nFaces*3) const index_t* indices, size_t nFaces, size_t nVerts, size_t cacheSize,
|
||||
float& acmr, float& atvr )
|
||||
{
|
||||
acmr = -1.f;
|
||||
atvr = -1.f;
|
||||
|
||||
if ( !indices || !nFaces || !nVerts || !cacheSize )
|
||||
return;
|
||||
|
||||
if ( ( uint64_t(nFaces) * 3 ) >= UINT32_MAX )
|
||||
return;
|
||||
|
||||
if ( nVerts >= index_t(-1) )
|
||||
return;
|
||||
|
||||
size_t misses = 0;
|
||||
|
||||
std::unique_ptr<uint32_t[]> fifo( new uint32_t[ cacheSize ] );
|
||||
size_t tail = 0;
|
||||
|
||||
memset( fifo.get(), 0xff, sizeof(uint32_t) * cacheSize );
|
||||
|
||||
for( size_t j = 0; j < (nFaces * 3); ++j )
|
||||
{
|
||||
if ( indices[ j ] == index_t(-1) )
|
||||
continue;
|
||||
|
||||
bool found = false;
|
||||
|
||||
for( size_t ptr = 0; ptr < cacheSize; ++ptr )
|
||||
{
|
||||
if ( fifo[ ptr ] == indices[ j ] )
|
||||
{
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( !found )
|
||||
{
|
||||
++misses;
|
||||
fifo[ tail ] = indices[ j ];
|
||||
++tail;
|
||||
if ( tail == cacheSize ) tail = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// ideal is 0.5, individual tris have 3.0
|
||||
acmr = float( misses ) / float( nFaces );
|
||||
|
||||
// ideal is 1.0, worst case is 6.0
|
||||
atvr = float( misses ) / float( nVerts );
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
namespace DirectX
|
||||
{
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
void ComputeVertexCacheMissRate( const uint16_t* indices, size_t nFaces, size_t nVerts, size_t cacheSize,
|
||||
float& acmr, float& atvr )
|
||||
{
|
||||
_ComputeVertexCacheMissRate<uint16_t>( indices, nFaces, nVerts, cacheSize, acmr, atvr );
|
||||
}
|
||||
|
||||
_Use_decl_annotations_
|
||||
void ComputeVertexCacheMissRate( const uint32_t* indices, size_t nFaces, size_t nVerts, size_t cacheSize,
|
||||
float& acmr, float& atvr )
|
||||
{
|
||||
_ComputeVertexCacheMissRate<uint32_t>( indices, nFaces, nVerts, cacheSize, acmr, atvr );
|
||||
}
|
||||
|
||||
} // namespace // DirectX
|
||||
//-------------------------------------------------------------------------------------
|
||||
// DirectXMeshUtil.cpp
|
||||
//
|
||||
// DirectX Mesh Geometry Library - Utilities
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#include "DirectXMeshP.h"
|
||||
|
||||
using namespace DirectX;
|
||||
|
||||
#if defined(_XBOX_ONE) && defined(_TITLE)
|
||||
static_assert(XBOX_DXGI_FORMAT_R10G10B10_SNORM_A2_UNORM == DXGI_FORMAT_R10G10B10_SNORM_A2_UNORM, "Xbox One XDK mismatch detected");
|
||||
#endif
|
||||
|
||||
|
||||
namespace DirectX
|
||||
{
|
||||
|
||||
//=====================================================================================
|
||||
// DXGI Format Utilities
|
||||
//=====================================================================================
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// Returns bytes-per-element for a given DXGI format, or 0 on failure
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
size_t BytesPerElement( DXGI_FORMAT fmt )
|
||||
{
|
||||
// This list only includes those formats that are valid for use by IB or VB
|
||||
|
||||
switch( static_cast<int>(fmt) )
|
||||
{
|
||||
case DXGI_FORMAT_R32G32B32A32_FLOAT:
|
||||
case DXGI_FORMAT_R32G32B32A32_UINT:
|
||||
case DXGI_FORMAT_R32G32B32A32_SINT:
|
||||
return 16;
|
||||
|
||||
case DXGI_FORMAT_R32G32B32_FLOAT:
|
||||
case DXGI_FORMAT_R32G32B32_UINT:
|
||||
case DXGI_FORMAT_R32G32B32_SINT:
|
||||
return 12;
|
||||
|
||||
case DXGI_FORMAT_R16G16B16A16_FLOAT:
|
||||
case DXGI_FORMAT_R16G16B16A16_UNORM:
|
||||
case DXGI_FORMAT_R16G16B16A16_UINT:
|
||||
case DXGI_FORMAT_R16G16B16A16_SNORM:
|
||||
case DXGI_FORMAT_R16G16B16A16_SINT:
|
||||
case DXGI_FORMAT_R32G32_FLOAT:
|
||||
case DXGI_FORMAT_R32G32_UINT:
|
||||
case DXGI_FORMAT_R32G32_SINT:
|
||||
return 8;
|
||||
|
||||
case DXGI_FORMAT_R10G10B10A2_UNORM:
|
||||
case DXGI_FORMAT_R10G10B10A2_UINT:
|
||||
case DXGI_FORMAT_R11G11B10_FLOAT:
|
||||
case DXGI_FORMAT_R8G8B8A8_UNORM:
|
||||
case DXGI_FORMAT_R8G8B8A8_UINT:
|
||||
case DXGI_FORMAT_R8G8B8A8_SNORM:
|
||||
case DXGI_FORMAT_R8G8B8A8_SINT:
|
||||
case DXGI_FORMAT_R16G16_FLOAT:
|
||||
case DXGI_FORMAT_R16G16_UNORM:
|
||||
case DXGI_FORMAT_R16G16_UINT:
|
||||
case DXGI_FORMAT_R16G16_SNORM:
|
||||
case DXGI_FORMAT_R16G16_SINT:
|
||||
case DXGI_FORMAT_R32_FLOAT:
|
||||
case DXGI_FORMAT_R32_UINT:
|
||||
case DXGI_FORMAT_R32_SINT:
|
||||
case DXGI_FORMAT_B8G8R8A8_UNORM:
|
||||
case DXGI_FORMAT_B8G8R8X8_UNORM:
|
||||
case XBOX_DXGI_FORMAT_R10G10B10_SNORM_A2_UNORM:
|
||||
return 4;
|
||||
|
||||
case DXGI_FORMAT_R8G8_UNORM:
|
||||
case DXGI_FORMAT_R8G8_UINT:
|
||||
case DXGI_FORMAT_R8G8_SNORM:
|
||||
case DXGI_FORMAT_R8G8_SINT:
|
||||
case DXGI_FORMAT_R16_FLOAT:
|
||||
case DXGI_FORMAT_R16_UNORM:
|
||||
case DXGI_FORMAT_R16_UINT:
|
||||
case DXGI_FORMAT_R16_SNORM:
|
||||
case DXGI_FORMAT_R16_SINT:
|
||||
case DXGI_FORMAT_B5G6R5_UNORM:
|
||||
case DXGI_FORMAT_B5G5R5A1_UNORM:
|
||||
return 2;
|
||||
|
||||
case DXGI_FORMAT_R8_UNORM:
|
||||
case DXGI_FORMAT_R8_UINT:
|
||||
case DXGI_FORMAT_R8_SNORM:
|
||||
case DXGI_FORMAT_R8_SINT:
|
||||
return 1;
|
||||
|
||||
case DXGI_FORMAT_B4G4R4A4_UNORM:
|
||||
return 2;
|
||||
|
||||
default:
|
||||
// No BC, sRGB, X2Bias, SharedExp, Typeless, Depth, or Video formats
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// Input Layout Descriptor Utilities
|
||||
//=====================================================================================
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// Validates a D3D11_INPUT_ELEMENT_DESC structure
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
bool IsValid( const D3D11_INPUT_ELEMENT_DESC* vbDecl, size_t nDecl )
|
||||
{
|
||||
if ( !vbDecl || !nDecl )
|
||||
{
|
||||
// Note that 0 is allowed by the runtime for degenerate cases, but is not defined for DirectXMesh
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( nDecl > D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT )
|
||||
{
|
||||
// The upper-limit depends on feature level, so we assume highest value here
|
||||
return false;
|
||||
}
|
||||
|
||||
for( size_t j = 0; j < nDecl; ++j )
|
||||
{
|
||||
size_t bpe = BytesPerElement( vbDecl[ j ].Format );
|
||||
if ( !bpe )
|
||||
{
|
||||
// Not a valid DXGI format or it's not valid for VB usage
|
||||
return false;
|
||||
}
|
||||
|
||||
uint32_t alignment;
|
||||
|
||||
if ( bpe == 1 )
|
||||
alignment = 1;
|
||||
else if ( bpe == 2 )
|
||||
alignment = 2;
|
||||
else
|
||||
alignment = 4;
|
||||
|
||||
if ( ( vbDecl[ j ].AlignedByteOffset != D3D11_APPEND_ALIGNED_ELEMENT )
|
||||
&& ( vbDecl[ j ].AlignedByteOffset % alignment ) != 0 )
|
||||
{
|
||||
// Invalid alignment for element
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( vbDecl[ j ].InputSlot >= D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT )
|
||||
{
|
||||
// The upper-limit depends on feature level, so we assume highest value here
|
||||
return false;
|
||||
}
|
||||
|
||||
switch( vbDecl[ j ].InputSlotClass )
|
||||
{
|
||||
case D3D11_INPUT_PER_VERTEX_DATA:
|
||||
if ( vbDecl[ j ].InstanceDataStepRate != 0 )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
case D3D11_INPUT_PER_INSTANCE_DATA:
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( !vbDecl[ j ].SemanticName )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Debug layer also checks for trailing digit in the semantic name, and checks
|
||||
// for inconsistent semantic name/slot assignment.
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// Compute the offsets to each element, and total stride of each slot
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
void ComputeInputLayout( const D3D11_INPUT_ELEMENT_DESC* vbDecl, size_t nDecl, uint32_t* offsets, uint32_t* strides )
|
||||
{
|
||||
assert( IsValid( vbDecl, nDecl ) );
|
||||
|
||||
if ( offsets )
|
||||
memset( offsets, 0, sizeof(uint32_t) * nDecl );
|
||||
|
||||
if ( strides )
|
||||
memset( strides, 0, sizeof(uint32_t) * D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT );
|
||||
|
||||
uint32_t prevABO[ D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT ];
|
||||
memset( prevABO, 0, sizeof(uint32_t) * D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT );
|
||||
|
||||
for( size_t j = 0; j < nDecl; ++j )
|
||||
{
|
||||
uint32_t slot = vbDecl[ j ].InputSlot;
|
||||
if ( slot >= D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT )
|
||||
{
|
||||
// ignore bad input slots
|
||||
continue;
|
||||
}
|
||||
|
||||
size_t bpe = BytesPerElement( vbDecl[ j ].Format );
|
||||
if ( !bpe )
|
||||
{
|
||||
// ignore invalid format
|
||||
continue;
|
||||
}
|
||||
|
||||
uint32_t alignment;
|
||||
|
||||
if ( bpe == 1 )
|
||||
alignment = 1;
|
||||
else if ( bpe == 2 )
|
||||
alignment = 2;
|
||||
else
|
||||
alignment = 4;
|
||||
|
||||
uint32_t alignedByteOffset = vbDecl[ j ].AlignedByteOffset;
|
||||
|
||||
if ( alignedByteOffset == D3D11_APPEND_ALIGNED_ELEMENT )
|
||||
{
|
||||
alignedByteOffset = prevABO[ slot ];
|
||||
}
|
||||
|
||||
if ( offsets )
|
||||
{
|
||||
offsets[ j ] = alignedByteOffset;
|
||||
}
|
||||
|
||||
if( strides )
|
||||
{
|
||||
uint32_t istride = uint32_t( alignedByteOffset + bpe );
|
||||
strides[ slot ] = std::max<uint32_t>( strides[ slot ], istride );
|
||||
}
|
||||
|
||||
prevABO[ slot ] = uint32_t( alignedByteOffset + bpe + ( bpe % alignment ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// Attribute Utilities
|
||||
//=====================================================================================
|
||||
_Use_decl_annotations_
|
||||
std::vector<std::pair<size_t,size_t>> ComputeSubsets( const uint32_t* attributes, size_t nFaces )
|
||||
{
|
||||
std::vector<std::pair<size_t,size_t>> subsets;
|
||||
|
||||
if ( !nFaces )
|
||||
return subsets;
|
||||
|
||||
if ( !attributes )
|
||||
{
|
||||
subsets.emplace_back( std::pair<size_t,size_t>( 0, nFaces ) );
|
||||
return subsets;
|
||||
}
|
||||
|
||||
uint32_t lastAttr = attributes[ 0 ];
|
||||
size_t offset = 0;
|
||||
size_t count = 1;
|
||||
|
||||
for( size_t j = 1; j < nFaces; ++j )
|
||||
{
|
||||
if ( attributes[ j ] != lastAttr )
|
||||
{
|
||||
subsets.emplace_back( std::pair<size_t,size_t>( offset, count ) );
|
||||
lastAttr = attributes[ j ];
|
||||
offset = j;
|
||||
count = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
count += 1;
|
||||
}
|
||||
}
|
||||
|
||||
if ( count > 0 )
|
||||
{
|
||||
subsets.emplace_back( std::pair<size_t,size_t>( offset, count ) );
|
||||
}
|
||||
|
||||
return subsets;
|
||||
}
|
||||
|
||||
} // namespace // DirectX
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// Mesh Optimization Utilities
|
||||
//=====================================================================================
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
template<class index_t>
|
||||
void _ComputeVertexCacheMissRate( _In_reads_(nFaces*3) const index_t* indices, size_t nFaces, size_t nVerts, size_t cacheSize,
|
||||
float& acmr, float& atvr )
|
||||
{
|
||||
acmr = -1.f;
|
||||
atvr = -1.f;
|
||||
|
||||
if ( !indices || !nFaces || !nVerts || !cacheSize )
|
||||
return;
|
||||
|
||||
if ( ( uint64_t(nFaces) * 3 ) >= UINT32_MAX )
|
||||
return;
|
||||
|
||||
if ( nVerts >= index_t(-1) )
|
||||
return;
|
||||
|
||||
size_t misses = 0;
|
||||
|
||||
std::unique_ptr<uint32_t[]> fifo( new uint32_t[ cacheSize ] );
|
||||
size_t tail = 0;
|
||||
|
||||
memset( fifo.get(), 0xff, sizeof(uint32_t) * cacheSize );
|
||||
|
||||
for( size_t j = 0; j < (nFaces * 3); ++j )
|
||||
{
|
||||
if ( indices[ j ] == index_t(-1) )
|
||||
continue;
|
||||
|
||||
bool found = false;
|
||||
|
||||
for( size_t ptr = 0; ptr < cacheSize; ++ptr )
|
||||
{
|
||||
if ( fifo[ ptr ] == indices[ j ] )
|
||||
{
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( !found )
|
||||
{
|
||||
++misses;
|
||||
fifo[ tail ] = indices[ j ];
|
||||
++tail;
|
||||
if ( tail == cacheSize ) tail = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// ideal is 0.5, individual tris have 3.0
|
||||
acmr = float( misses ) / float( nFaces );
|
||||
|
||||
// ideal is 1.0, worst case is 6.0
|
||||
atvr = float( misses ) / float( nVerts );
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
namespace DirectX
|
||||
{
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
void ComputeVertexCacheMissRate( const uint16_t* indices, size_t nFaces, size_t nVerts, size_t cacheSize,
|
||||
float& acmr, float& atvr )
|
||||
{
|
||||
_ComputeVertexCacheMissRate<uint16_t>( indices, nFaces, nVerts, cacheSize, acmr, atvr );
|
||||
}
|
||||
|
||||
_Use_decl_annotations_
|
||||
void ComputeVertexCacheMissRate( const uint32_t* indices, size_t nFaces, size_t nVerts, size_t cacheSize,
|
||||
float& acmr, float& atvr )
|
||||
{
|
||||
_ComputeVertexCacheMissRate<uint32_t>( indices, nFaces, nVerts, cacheSize, acmr, atvr );
|
||||
}
|
||||
|
||||
} // namespace // DirectX
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,426 +1,426 @@
|
|||
//-------------------------------------------------------------------------------------
|
||||
// DirectXMeshValidate.cpp
|
||||
//
|
||||
// DirectX Mesh Geometry Library - Mesh validation
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#include "DirectXMeshP.h"
|
||||
|
||||
using namespace DirectX;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// Validates indices and optionally the adjacency information
|
||||
//-------------------------------------------------------------------------------------
|
||||
template<class index_t>
|
||||
HRESULT ValidateIndices( _In_reads_(nFaces*3) const index_t* indices, _In_ size_t nFaces,
|
||||
_In_ size_t nVerts, _In_reads_opt_(nFaces*3) const uint32_t* adjacency,
|
||||
_In_ DWORD flags, _In_opt_ std::wstring* msgs )
|
||||
{
|
||||
bool result = true;
|
||||
|
||||
if ( !adjacency )
|
||||
{
|
||||
if ( flags & VALIDATE_BACKFACING )
|
||||
{
|
||||
if ( msgs )
|
||||
*msgs += L"Missing adjacency information required to check for BACKFACING\n";
|
||||
|
||||
result = false;
|
||||
}
|
||||
|
||||
if ( flags & VALIDATE_ASYMMETRIC_ADJ )
|
||||
{
|
||||
if ( msgs )
|
||||
*msgs += L"Missing adjacency information required to check for ASYMMETRIC_ADJ\n";
|
||||
|
||||
result = false;
|
||||
}
|
||||
|
||||
if ( !result )
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
|
||||
for( size_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
// Check for values in-range
|
||||
for( size_t point = 0; point < 3; ++point )
|
||||
{
|
||||
index_t i = indices[ face*3 + point ];
|
||||
if ( i >= nVerts && i != index_t(-1) )
|
||||
{
|
||||
if ( !msgs )
|
||||
return E_FAIL;
|
||||
|
||||
result = false;
|
||||
|
||||
wchar_t buff[ 128 ];
|
||||
swprintf_s( buff, L"An invalid index value (%u) was found on face %Iu\n", i, face );
|
||||
*msgs += buff;
|
||||
}
|
||||
|
||||
if ( adjacency )
|
||||
{
|
||||
uint32_t j = adjacency[ face*3 + point ];
|
||||
if ( j >= nFaces && j != UNUSED32 )
|
||||
{
|
||||
if ( !msgs )
|
||||
return E_FAIL;
|
||||
|
||||
result = false;
|
||||
|
||||
wchar_t buff[ 128 ];
|
||||
swprintf_s( buff, L"An invalid neighbor index value (%u) was found on face %Iu\n", j, face );
|
||||
*msgs += buff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check for unused faces
|
||||
index_t i0 = indices[ face*3 ];
|
||||
index_t i1 = indices[ face*3 + 1 ];
|
||||
index_t i2 = indices[ face*3 + 2 ];
|
||||
if ( i0 == index_t(-1)
|
||||
|| i1 == index_t(-1)
|
||||
|| i2 == index_t(-1) )
|
||||
{
|
||||
if ( flags & VALIDATE_UNUSED )
|
||||
{
|
||||
if ( i0 != i1
|
||||
|| i0 != i2
|
||||
|| i1 != i2 )
|
||||
{
|
||||
if ( !msgs )
|
||||
return E_FAIL;
|
||||
|
||||
result = false;
|
||||
|
||||
wchar_t buff[ 128 ];
|
||||
swprintf_s( buff, L"An unused face (%Iu) contains 'valid' but ignored vertices (%u,%u,%u)\n", face, i0, i1, i2 );
|
||||
*msgs += buff;
|
||||
}
|
||||
|
||||
if ( adjacency )
|
||||
{
|
||||
for( size_t point = 0; point < 3; ++point )
|
||||
{
|
||||
uint32_t k = adjacency[ face*3 + point ];
|
||||
if ( k != UNUSED32 )
|
||||
{
|
||||
if ( !msgs )
|
||||
return E_FAIL;
|
||||
|
||||
result = false;
|
||||
|
||||
wchar_t buff[ 128 ];
|
||||
swprintf_s( buff, L"An unused face (%Iu) has a neighbor %u\n", face, k );
|
||||
*msgs += buff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ignore unused triangles for remaining tests
|
||||
continue;
|
||||
}
|
||||
|
||||
// Check for degenerate triangles
|
||||
if ( i0 == i1
|
||||
|| i0 == i2
|
||||
|| i1 == i2 )
|
||||
{
|
||||
if ( flags & VALIDATE_DEGENERATE )
|
||||
{
|
||||
if ( !msgs )
|
||||
return E_FAIL;
|
||||
|
||||
result = false;
|
||||
|
||||
index_t bad;
|
||||
if ( i0 == i1 )
|
||||
bad = i0;
|
||||
else if ( i1 == i2 )
|
||||
bad = i2;
|
||||
else
|
||||
bad = i0;
|
||||
|
||||
wchar_t buff[ 128 ];
|
||||
swprintf_s( buff, L"A point (%u) was found more than once in triangle %Iu\n", bad, face );
|
||||
*msgs += buff;
|
||||
|
||||
if ( adjacency )
|
||||
{
|
||||
for( size_t point = 0; point < 3; ++point )
|
||||
{
|
||||
uint32_t k = adjacency[ face*3 + point ];
|
||||
if ( k != UNUSED32 )
|
||||
{
|
||||
result = false;
|
||||
|
||||
swprintf_s( buff, L"A degenerate face (%Iu) has a neighbor %u\n", face, k );
|
||||
*msgs += buff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ignore degenerate triangles for remaining tests
|
||||
continue;
|
||||
}
|
||||
|
||||
// Check for symmetric neighbors
|
||||
if ( ( flags & VALIDATE_ASYMMETRIC_ADJ ) && adjacency )
|
||||
{
|
||||
for( size_t point = 0; point < 3; ++point )
|
||||
{
|
||||
uint32_t k = adjacency[ face*3 + point ];
|
||||
if ( k == UNUSED32 )
|
||||
continue;
|
||||
|
||||
assert( k < nFaces );
|
||||
|
||||
uint32_t edge = find_edge<uint32_t>( &adjacency[ k * 3 ], uint32_t( face ) );
|
||||
if ( edge >= 3 )
|
||||
{
|
||||
if ( !msgs )
|
||||
return E_FAIL;
|
||||
|
||||
result = false;
|
||||
|
||||
wchar_t buff[ 256 ];
|
||||
swprintf_s( buff, L"A neighbor triangle (%u) does not reference back to this face (%Iu) as expected\n", k, face );
|
||||
*msgs += buff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check for duplicate neighbor
|
||||
if ( ( flags & VALIDATE_BACKFACING ) && adjacency )
|
||||
{
|
||||
uint32_t j0 = adjacency[ face*3 ];
|
||||
uint32_t j1 = adjacency[ face*3 + 1 ];
|
||||
uint32_t j2 = adjacency[ face*3 + 2 ];
|
||||
|
||||
if ( ( j0 == j1 && j0 != UNUSED32 )
|
||||
|| ( j0 == j2 && j0 != UNUSED32 )
|
||||
|| ( j1 == j2 && j1 != UNUSED32 ) )
|
||||
{
|
||||
if ( !msgs )
|
||||
return E_FAIL;
|
||||
|
||||
result = false;
|
||||
|
||||
uint32_t bad;
|
||||
if ( j0 == j1 && j0 != UNUSED32 )
|
||||
bad = j0;
|
||||
else if ( j0 == j2 && j0 != UNUSED32 )
|
||||
bad = j0;
|
||||
else
|
||||
bad = j1;
|
||||
|
||||
wchar_t buff[ 256 ];
|
||||
swprintf_s( buff, L"A neighbor triangle (%u) was found more than once on triangle %Iu\n"
|
||||
L"\t(likley problem is that two triangles share same points with opposite direction)\n", bad, face );
|
||||
*msgs += buff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result ? S_OK : E_FAIL;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// Validates mesh contains no bowties (i.e. a vertex is the apex of two separate triangle fans)
|
||||
//-------------------------------------------------------------------------------------
|
||||
template<class index_t>
|
||||
HRESULT ValidateNoBowties( _In_reads_(nFaces*3) const index_t* indices, _In_ size_t nFaces,
|
||||
_In_ size_t nVerts, _In_reads_opt_(nFaces*3) const uint32_t* adjacency,
|
||||
_In_opt_ std::wstring* msgs )
|
||||
{
|
||||
if ( !adjacency )
|
||||
{
|
||||
if ( msgs )
|
||||
*msgs += L"Missing adjacency information required to check for BOWTIES\n";
|
||||
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
|
||||
size_t tsize = ( sizeof(bool) * nFaces * 3 ) + ( sizeof(index_t) * nVerts * 2 ) + ( sizeof(bool) * nVerts );
|
||||
std::unique_ptr<uint8_t[]> temp( new (std::nothrow) uint8_t[ tsize ] );
|
||||
if ( !temp )
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
auto faceSeen = reinterpret_cast<bool*>( temp.get() );
|
||||
auto faceIds = reinterpret_cast<index_t*>( temp.get() + sizeof(bool) * nFaces * 3 );
|
||||
auto faceUsing = reinterpret_cast<index_t*>( reinterpret_cast<uint8_t*>( faceIds ) + sizeof(index_t) * nVerts );
|
||||
auto vertexBowtie = reinterpret_cast<bool*>( reinterpret_cast<uint8_t*>( faceUsing ) + sizeof(index_t) * nVerts );
|
||||
|
||||
memset( faceSeen, 0, sizeof(bool) * nFaces * 3 );
|
||||
memset( faceIds, 0xFF, sizeof(index_t) * nVerts );
|
||||
memset( faceUsing, 0, sizeof(index_t) * nVerts );
|
||||
memset( vertexBowtie, 0, sizeof(bool) * nVerts );
|
||||
|
||||
orbit_iterator<index_t> ovi( adjacency, indices, nFaces );
|
||||
|
||||
bool result = true;
|
||||
|
||||
for( uint32_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
index_t i0 = indices[ face*3 ];
|
||||
index_t i1 = indices[ face*3 + 1 ];
|
||||
index_t i2 = indices[ face*3 + 2 ];
|
||||
|
||||
if ( i0 == i1
|
||||
|| i0 == i2
|
||||
|| i1 == i2 )
|
||||
{
|
||||
// ignore degenerate faces
|
||||
faceSeen[ face * 3 ] = true;
|
||||
faceSeen[ face * 3 + 1 ] = true;
|
||||
faceSeen[ face * 3 + 2 ] = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
for( size_t point = 0; point < 3; ++point )
|
||||
{
|
||||
if ( faceSeen[ face * 3 + point ] )
|
||||
continue;
|
||||
|
||||
faceSeen[ face * 3 + point ] = true;
|
||||
|
||||
index_t i = indices[ face*3 + point ];
|
||||
ovi.initialize( face, i, orbit_iterator<index_t>::ALL );
|
||||
ovi.moveToCCW();
|
||||
while ( !ovi.done() )
|
||||
{
|
||||
uint32_t curFace = ovi.nextFace();
|
||||
if ( curFace >= nFaces )
|
||||
return E_FAIL;
|
||||
|
||||
uint32_t curPoint = ovi.getpoint();
|
||||
if ( curPoint > 2 )
|
||||
return E_FAIL;
|
||||
|
||||
faceSeen[ curFace*3 + curPoint ] = true;
|
||||
|
||||
uint32_t j = indices[ curFace * 3 + curPoint ];
|
||||
|
||||
if ( faceIds[ j ] == index_t(-1) )
|
||||
{
|
||||
faceIds[ j ] = index_t( face );
|
||||
faceUsing[ j ] = index_t( curFace );
|
||||
}
|
||||
else if ( ( faceIds[ j ] != index_t( face ) ) && !vertexBowtie[ j ] )
|
||||
{
|
||||
// We found a (unique) bowtie!
|
||||
|
||||
if ( !msgs )
|
||||
return E_FAIL;
|
||||
|
||||
if ( result )
|
||||
{
|
||||
// If this is the first bowtie found, add a quick explanation
|
||||
*msgs += L"A bowtie was found. Bowties can be fixed by calling Clean\n"
|
||||
L" A bowtie is the usage of a single vertex by two separate fans of triangles.\n"
|
||||
L" The fix is to duplicate the vertex so that each fan has its own vertex.\n";
|
||||
result = false;
|
||||
}
|
||||
|
||||
vertexBowtie[ j ] = true;
|
||||
|
||||
wchar_t buff[ 256 ];
|
||||
swprintf_s( buff, L"\nBowtie found around vertex %u shared by faces %u and %u\n", j, curFace, faceUsing[ j ] );
|
||||
*msgs += buff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result ? S_OK : E_FAIL;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
namespace DirectX
|
||||
{
|
||||
|
||||
//=====================================================================================
|
||||
// Entry-points
|
||||
//=====================================================================================
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT Validate( const uint16_t* indices, size_t nFaces, size_t nVerts,
|
||||
const uint32_t* adjacency, DWORD flags, std::wstring* msgs )
|
||||
{
|
||||
if ( !indices || !nFaces || !nVerts )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( nVerts >= UINT16_MAX )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( ( uint64_t(nFaces) * 3 ) >= UINT32_MAX )
|
||||
return HRESULT_FROM_WIN32( ERROR_ARITHMETIC_OVERFLOW );
|
||||
|
||||
if ( msgs )
|
||||
msgs->clear();
|
||||
|
||||
HRESULT hr = ValidateIndices<uint16_t>( indices, nFaces, nVerts, adjacency, flags, msgs );
|
||||
if ( FAILED(hr) )
|
||||
return hr;
|
||||
|
||||
if ( flags & VALIDATE_BOWTIES )
|
||||
{
|
||||
hr = ValidateNoBowties<uint16_t>( indices, nFaces, nVerts, adjacency, msgs );
|
||||
if ( FAILED(hr) )
|
||||
return hr;
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT Validate( const uint32_t* indices, size_t nFaces, size_t nVerts,
|
||||
const uint32_t* adjacency, DWORD flags, std::wstring* msgs )
|
||||
{
|
||||
if ( !indices || !nFaces || !nVerts )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( nVerts >= UINT32_MAX )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( ( uint64_t(nFaces) * 3 ) >= UINT32_MAX )
|
||||
return HRESULT_FROM_WIN32( ERROR_ARITHMETIC_OVERFLOW );
|
||||
|
||||
if ( msgs )
|
||||
msgs->clear();
|
||||
|
||||
HRESULT hr = ValidateIndices<uint32_t>( indices, nFaces, nVerts, adjacency, flags, msgs );
|
||||
if ( FAILED(hr) )
|
||||
return hr;
|
||||
|
||||
if ( flags & VALIDATE_BOWTIES )
|
||||
{
|
||||
hr = ValidateNoBowties<uint32_t>( indices, nFaces, nVerts, adjacency, msgs );
|
||||
if ( FAILED(hr) )
|
||||
return hr;
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// DirectXMeshValidate.cpp
|
||||
//
|
||||
// DirectX Mesh Geometry Library - Mesh validation
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#include "DirectXMeshP.h"
|
||||
|
||||
using namespace DirectX;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// Validates indices and optionally the adjacency information
|
||||
//-------------------------------------------------------------------------------------
|
||||
template<class index_t>
|
||||
HRESULT ValidateIndices( _In_reads_(nFaces*3) const index_t* indices, _In_ size_t nFaces,
|
||||
_In_ size_t nVerts, _In_reads_opt_(nFaces*3) const uint32_t* adjacency,
|
||||
_In_ DWORD flags, _In_opt_ std::wstring* msgs )
|
||||
{
|
||||
bool result = true;
|
||||
|
||||
if ( !adjacency )
|
||||
{
|
||||
if ( flags & VALIDATE_BACKFACING )
|
||||
{
|
||||
if ( msgs )
|
||||
*msgs += L"Missing adjacency information required to check for BACKFACING\n";
|
||||
|
||||
result = false;
|
||||
}
|
||||
|
||||
if ( flags & VALIDATE_ASYMMETRIC_ADJ )
|
||||
{
|
||||
if ( msgs )
|
||||
*msgs += L"Missing adjacency information required to check for ASYMMETRIC_ADJ\n";
|
||||
|
||||
result = false;
|
||||
}
|
||||
|
||||
if ( !result )
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
|
||||
for( size_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
// Check for values in-range
|
||||
for( size_t point = 0; point < 3; ++point )
|
||||
{
|
||||
index_t i = indices[ face*3 + point ];
|
||||
if ( i >= nVerts && i != index_t(-1) )
|
||||
{
|
||||
if ( !msgs )
|
||||
return E_FAIL;
|
||||
|
||||
result = false;
|
||||
|
||||
wchar_t buff[ 128 ];
|
||||
swprintf_s( buff, L"An invalid index value (%u) was found on face %Iu\n", i, face );
|
||||
*msgs += buff;
|
||||
}
|
||||
|
||||
if ( adjacency )
|
||||
{
|
||||
uint32_t j = adjacency[ face*3 + point ];
|
||||
if ( j >= nFaces && j != UNUSED32 )
|
||||
{
|
||||
if ( !msgs )
|
||||
return E_FAIL;
|
||||
|
||||
result = false;
|
||||
|
||||
wchar_t buff[ 128 ];
|
||||
swprintf_s( buff, L"An invalid neighbor index value (%u) was found on face %Iu\n", j, face );
|
||||
*msgs += buff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check for unused faces
|
||||
index_t i0 = indices[ face*3 ];
|
||||
index_t i1 = indices[ face*3 + 1 ];
|
||||
index_t i2 = indices[ face*3 + 2 ];
|
||||
if ( i0 == index_t(-1)
|
||||
|| i1 == index_t(-1)
|
||||
|| i2 == index_t(-1) )
|
||||
{
|
||||
if ( flags & VALIDATE_UNUSED )
|
||||
{
|
||||
if ( i0 != i1
|
||||
|| i0 != i2
|
||||
|| i1 != i2 )
|
||||
{
|
||||
if ( !msgs )
|
||||
return E_FAIL;
|
||||
|
||||
result = false;
|
||||
|
||||
wchar_t buff[ 128 ];
|
||||
swprintf_s( buff, L"An unused face (%Iu) contains 'valid' but ignored vertices (%u,%u,%u)\n", face, i0, i1, i2 );
|
||||
*msgs += buff;
|
||||
}
|
||||
|
||||
if ( adjacency )
|
||||
{
|
||||
for( size_t point = 0; point < 3; ++point )
|
||||
{
|
||||
uint32_t k = adjacency[ face*3 + point ];
|
||||
if ( k != UNUSED32 )
|
||||
{
|
||||
if ( !msgs )
|
||||
return E_FAIL;
|
||||
|
||||
result = false;
|
||||
|
||||
wchar_t buff[ 128 ];
|
||||
swprintf_s( buff, L"An unused face (%Iu) has a neighbor %u\n", face, k );
|
||||
*msgs += buff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ignore unused triangles for remaining tests
|
||||
continue;
|
||||
}
|
||||
|
||||
// Check for degenerate triangles
|
||||
if ( i0 == i1
|
||||
|| i0 == i2
|
||||
|| i1 == i2 )
|
||||
{
|
||||
if ( flags & VALIDATE_DEGENERATE )
|
||||
{
|
||||
if ( !msgs )
|
||||
return E_FAIL;
|
||||
|
||||
result = false;
|
||||
|
||||
index_t bad;
|
||||
if ( i0 == i1 )
|
||||
bad = i0;
|
||||
else if ( i1 == i2 )
|
||||
bad = i2;
|
||||
else
|
||||
bad = i0;
|
||||
|
||||
wchar_t buff[ 128 ];
|
||||
swprintf_s( buff, L"A point (%u) was found more than once in triangle %Iu\n", bad, face );
|
||||
*msgs += buff;
|
||||
|
||||
if ( adjacency )
|
||||
{
|
||||
for( size_t point = 0; point < 3; ++point )
|
||||
{
|
||||
uint32_t k = adjacency[ face*3 + point ];
|
||||
if ( k != UNUSED32 )
|
||||
{
|
||||
result = false;
|
||||
|
||||
swprintf_s( buff, L"A degenerate face (%Iu) has a neighbor %u\n", face, k );
|
||||
*msgs += buff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ignore degenerate triangles for remaining tests
|
||||
continue;
|
||||
}
|
||||
|
||||
// Check for symmetric neighbors
|
||||
if ( ( flags & VALIDATE_ASYMMETRIC_ADJ ) && adjacency )
|
||||
{
|
||||
for( size_t point = 0; point < 3; ++point )
|
||||
{
|
||||
uint32_t k = adjacency[ face*3 + point ];
|
||||
if ( k == UNUSED32 )
|
||||
continue;
|
||||
|
||||
assert( k < nFaces );
|
||||
|
||||
uint32_t edge = find_edge<uint32_t>( &adjacency[ k * 3 ], uint32_t( face ) );
|
||||
if ( edge >= 3 )
|
||||
{
|
||||
if ( !msgs )
|
||||
return E_FAIL;
|
||||
|
||||
result = false;
|
||||
|
||||
wchar_t buff[ 256 ];
|
||||
swprintf_s( buff, L"A neighbor triangle (%u) does not reference back to this face (%Iu) as expected\n", k, face );
|
||||
*msgs += buff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check for duplicate neighbor
|
||||
if ( ( flags & VALIDATE_BACKFACING ) && adjacency )
|
||||
{
|
||||
uint32_t j0 = adjacency[ face*3 ];
|
||||
uint32_t j1 = adjacency[ face*3 + 1 ];
|
||||
uint32_t j2 = adjacency[ face*3 + 2 ];
|
||||
|
||||
if ( ( j0 == j1 && j0 != UNUSED32 )
|
||||
|| ( j0 == j2 && j0 != UNUSED32 )
|
||||
|| ( j1 == j2 && j1 != UNUSED32 ) )
|
||||
{
|
||||
if ( !msgs )
|
||||
return E_FAIL;
|
||||
|
||||
result = false;
|
||||
|
||||
uint32_t bad;
|
||||
if ( j0 == j1 && j0 != UNUSED32 )
|
||||
bad = j0;
|
||||
else if ( j0 == j2 && j0 != UNUSED32 )
|
||||
bad = j0;
|
||||
else
|
||||
bad = j1;
|
||||
|
||||
wchar_t buff[ 256 ];
|
||||
swprintf_s( buff, L"A neighbor triangle (%u) was found more than once on triangle %Iu\n"
|
||||
L"\t(likley problem is that two triangles share same points with opposite direction)\n", bad, face );
|
||||
*msgs += buff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result ? S_OK : E_FAIL;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// Validates mesh contains no bowties (i.e. a vertex is the apex of two separate triangle fans)
|
||||
//-------------------------------------------------------------------------------------
|
||||
template<class index_t>
|
||||
HRESULT ValidateNoBowties( _In_reads_(nFaces*3) const index_t* indices, _In_ size_t nFaces,
|
||||
_In_ size_t nVerts, _In_reads_opt_(nFaces*3) const uint32_t* adjacency,
|
||||
_In_opt_ std::wstring* msgs )
|
||||
{
|
||||
if ( !adjacency )
|
||||
{
|
||||
if ( msgs )
|
||||
*msgs += L"Missing adjacency information required to check for BOWTIES\n";
|
||||
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
|
||||
size_t tsize = ( sizeof(bool) * nFaces * 3 ) + ( sizeof(index_t) * nVerts * 2 ) + ( sizeof(bool) * nVerts );
|
||||
std::unique_ptr<uint8_t[]> temp( new (std::nothrow) uint8_t[ tsize ] );
|
||||
if ( !temp )
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
auto faceSeen = reinterpret_cast<bool*>( temp.get() );
|
||||
auto faceIds = reinterpret_cast<index_t*>( temp.get() + sizeof(bool) * nFaces * 3 );
|
||||
auto faceUsing = reinterpret_cast<index_t*>( reinterpret_cast<uint8_t*>( faceIds ) + sizeof(index_t) * nVerts );
|
||||
auto vertexBowtie = reinterpret_cast<bool*>( reinterpret_cast<uint8_t*>( faceUsing ) + sizeof(index_t) * nVerts );
|
||||
|
||||
memset( faceSeen, 0, sizeof(bool) * nFaces * 3 );
|
||||
memset( faceIds, 0xFF, sizeof(index_t) * nVerts );
|
||||
memset( faceUsing, 0, sizeof(index_t) * nVerts );
|
||||
memset( vertexBowtie, 0, sizeof(bool) * nVerts );
|
||||
|
||||
orbit_iterator<index_t> ovi( adjacency, indices, nFaces );
|
||||
|
||||
bool result = true;
|
||||
|
||||
for( uint32_t face = 0; face < nFaces; ++face )
|
||||
{
|
||||
index_t i0 = indices[ face*3 ];
|
||||
index_t i1 = indices[ face*3 + 1 ];
|
||||
index_t i2 = indices[ face*3 + 2 ];
|
||||
|
||||
if ( i0 == i1
|
||||
|| i0 == i2
|
||||
|| i1 == i2 )
|
||||
{
|
||||
// ignore degenerate faces
|
||||
faceSeen[ face * 3 ] = true;
|
||||
faceSeen[ face * 3 + 1 ] = true;
|
||||
faceSeen[ face * 3 + 2 ] = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
for( size_t point = 0; point < 3; ++point )
|
||||
{
|
||||
if ( faceSeen[ face * 3 + point ] )
|
||||
continue;
|
||||
|
||||
faceSeen[ face * 3 + point ] = true;
|
||||
|
||||
index_t i = indices[ face*3 + point ];
|
||||
ovi.initialize( face, i, orbit_iterator<index_t>::ALL );
|
||||
ovi.moveToCCW();
|
||||
while ( !ovi.done() )
|
||||
{
|
||||
uint32_t curFace = ovi.nextFace();
|
||||
if ( curFace >= nFaces )
|
||||
return E_FAIL;
|
||||
|
||||
uint32_t curPoint = ovi.getpoint();
|
||||
if ( curPoint > 2 )
|
||||
return E_FAIL;
|
||||
|
||||
faceSeen[ curFace*3 + curPoint ] = true;
|
||||
|
||||
uint32_t j = indices[ curFace * 3 + curPoint ];
|
||||
|
||||
if ( faceIds[ j ] == index_t(-1) )
|
||||
{
|
||||
faceIds[ j ] = index_t( face );
|
||||
faceUsing[ j ] = index_t( curFace );
|
||||
}
|
||||
else if ( ( faceIds[ j ] != index_t( face ) ) && !vertexBowtie[ j ] )
|
||||
{
|
||||
// We found a (unique) bowtie!
|
||||
|
||||
if ( !msgs )
|
||||
return E_FAIL;
|
||||
|
||||
if ( result )
|
||||
{
|
||||
// If this is the first bowtie found, add a quick explanation
|
||||
*msgs += L"A bowtie was found. Bowties can be fixed by calling Clean\n"
|
||||
L" A bowtie is the usage of a single vertex by two separate fans of triangles.\n"
|
||||
L" The fix is to duplicate the vertex so that each fan has its own vertex.\n";
|
||||
result = false;
|
||||
}
|
||||
|
||||
vertexBowtie[ j ] = true;
|
||||
|
||||
wchar_t buff[ 256 ];
|
||||
swprintf_s( buff, L"\nBowtie found around vertex %u shared by faces %u and %u\n", j, curFace, faceUsing[ j ] );
|
||||
*msgs += buff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result ? S_OK : E_FAIL;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
namespace DirectX
|
||||
{
|
||||
|
||||
//=====================================================================================
|
||||
// Entry-points
|
||||
//=====================================================================================
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT Validate( const uint16_t* indices, size_t nFaces, size_t nVerts,
|
||||
const uint32_t* adjacency, DWORD flags, std::wstring* msgs )
|
||||
{
|
||||
if ( !indices || !nFaces || !nVerts )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( nVerts >= UINT16_MAX )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( ( uint64_t(nFaces) * 3 ) >= UINT32_MAX )
|
||||
return HRESULT_FROM_WIN32( ERROR_ARITHMETIC_OVERFLOW );
|
||||
|
||||
if ( msgs )
|
||||
msgs->clear();
|
||||
|
||||
HRESULT hr = ValidateIndices<uint16_t>( indices, nFaces, nVerts, adjacency, flags, msgs );
|
||||
if ( FAILED(hr) )
|
||||
return hr;
|
||||
|
||||
if ( flags & VALIDATE_BOWTIES )
|
||||
{
|
||||
hr = ValidateNoBowties<uint16_t>( indices, nFaces, nVerts, adjacency, msgs );
|
||||
if ( FAILED(hr) )
|
||||
return hr;
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
_Use_decl_annotations_
|
||||
HRESULT Validate( const uint32_t* indices, size_t nFaces, size_t nVerts,
|
||||
const uint32_t* adjacency, DWORD flags, std::wstring* msgs )
|
||||
{
|
||||
if ( !indices || !nFaces || !nVerts )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( nVerts >= UINT32_MAX )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if ( ( uint64_t(nFaces) * 3 ) >= UINT32_MAX )
|
||||
return HRESULT_FROM_WIN32( ERROR_ARITHMETIC_OVERFLOW );
|
||||
|
||||
if ( msgs )
|
||||
msgs->clear();
|
||||
|
||||
HRESULT hr = ValidateIndices<uint32_t>( indices, nFaces, nVerts, adjacency, flags, msgs );
|
||||
if ( FAILED(hr) )
|
||||
return hr;
|
||||
|
||||
if ( flags & VALIDATE_BOWTIES )
|
||||
{
|
||||
hr = ValidateNoBowties<uint32_t>( indices, nFaces, nVerts, adjacency, msgs );
|
||||
if ( FAILED(hr) )
|
||||
return hr;
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
} // namespace
|
|
@ -1,401 +1,401 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Profile|Win32">
|
||||
<Configuration>Profile</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Profile|x64">
|
||||
<Configuration>Profile</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectName>DirectXMesh</ProjectName>
|
||||
<ProjectGuid>{6857F086-F6FE-4150-9ED7-7446F1C1C220}</ProjectGuid>
|
||||
<RootNamespace>DirectXMesh</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings" />
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command></Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command></Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command></Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command></Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command></Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command></Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command></Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command></Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command></Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command></Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command></Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command></Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<CLInclude Include="DirectXMesh.h" />
|
||||
<CLInclude Include="DirectXMeshP.h" />
|
||||
<CLInclude Include="DirectXMesh.inl" />
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshClean.cpp" />
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshNormals.cpp" />
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp" />
|
||||
<ClCompile Include="DirectXMeshRemap.cpp" />
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp" />
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<PrecompiledHeader>Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp" />
|
||||
<CLInclude Include="scoped.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup></ItemGroup>
|
||||
<ItemGroup></ItemGroup>
|
||||
<ItemGroup></ItemGroup>
|
||||
<ItemGroup></ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets" />
|
||||
</Project>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Profile|Win32">
|
||||
<Configuration>Profile</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Profile|x64">
|
||||
<Configuration>Profile</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectName>DirectXMesh</ProjectName>
|
||||
<ProjectGuid>{6857F086-F6FE-4150-9ED7-7446F1C1C220}</ProjectGuid>
|
||||
<RootNamespace>DirectXMesh</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings" />
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command></Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command></Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command></Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command></Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command></Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command></Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command></Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command></Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command></Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command></Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command></Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command></Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<CLInclude Include="DirectXMesh.h" />
|
||||
<CLInclude Include="DirectXMeshP.h" />
|
||||
<CLInclude Include="DirectXMesh.inl" />
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshClean.cpp" />
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshNormals.cpp" />
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp" />
|
||||
<ClCompile Include="DirectXMeshRemap.cpp" />
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp" />
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<PrecompiledHeader>Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp" />
|
||||
<CLInclude Include="scoped.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup></ItemGroup>
|
||||
<ItemGroup></ItemGroup>
|
||||
<ItemGroup></ItemGroup>
|
||||
<ItemGroup></ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets" />
|
||||
</Project>
|
||||
|
|
|
@ -1,64 +1,64 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns:atg="http://atg.xbox.com" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{688f36e0-2397-4b02-99d4-8d815ef0133e}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{ca75b164-7662-49ef-888e-95ef0625674c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CLInclude Include="DirectXMesh.inl">
|
||||
<Filter>Header Files</Filter>
|
||||
</CLInclude>
|
||||
<CLInclude Include="DirectXMesh.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</CLInclude>
|
||||
<CLInclude Include="scoped.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</CLInclude>
|
||||
<ClCompile Include="DirectXMeshRemap.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshClean.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshNormals.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CLInclude Include="DirectXMeshP.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</CLInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns:atg="http://atg.xbox.com" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{688f36e0-2397-4b02-99d4-8d815ef0133e}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{ca75b164-7662-49ef-888e-95ef0625674c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CLInclude Include="DirectXMesh.inl">
|
||||
<Filter>Header Files</Filter>
|
||||
</CLInclude>
|
||||
<CLInclude Include="DirectXMesh.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</CLInclude>
|
||||
<CLInclude Include="scoped.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</CLInclude>
|
||||
<ClCompile Include="DirectXMeshRemap.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshClean.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshNormals.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CLInclude Include="DirectXMeshP.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</CLInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,417 +1,417 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Profile|Win32">
|
||||
<Configuration>Profile</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Profile|x64">
|
||||
<Configuration>Profile</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectName>DirectXMesh</ProjectName>
|
||||
<ProjectGuid>{6857F086-F6FE-4150-9ED7-7446F1C1C220}</ProjectGuid>
|
||||
<RootNamespace>DirectXMesh</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings" />
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<CLInclude Include="DirectXMesh.h" />
|
||||
<CLInclude Include="DirectXMeshP.h" />
|
||||
<CLInclude Include="DirectXMesh.inl" />
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshClean.cpp" />
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshNormals.cpp" />
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp" />
|
||||
<ClCompile Include="DirectXMeshRemap.cpp" />
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp" />
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<PrecompiledHeader>Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp" />
|
||||
<CLInclude Include="scoped.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets" />
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Profile|Win32">
|
||||
<Configuration>Profile</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Profile|x64">
|
||||
<Configuration>Profile</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectName>DirectXMesh</ProjectName>
|
||||
<ProjectGuid>{6857F086-F6FE-4150-9ED7-7446F1C1C220}</ProjectGuid>
|
||||
<RootNamespace>DirectXMesh</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings" />
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<CLInclude Include="DirectXMesh.h" />
|
||||
<CLInclude Include="DirectXMeshP.h" />
|
||||
<CLInclude Include="DirectXMesh.inl" />
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshClean.cpp" />
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshNormals.cpp" />
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp" />
|
||||
<ClCompile Include="DirectXMeshRemap.cpp" />
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp" />
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<PrecompiledHeader>Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp" />
|
||||
<CLInclude Include="scoped.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets" />
|
||||
</Project>
|
|
@ -1,64 +1,64 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns:atg="http://atg.xbox.com" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{d76fe36f-16db-490a-9ba9-13d02e13a65b}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{d4f97b15-a8e2-4223-a242-ca68b901e1fb}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CLInclude Include="DirectXMesh.inl">
|
||||
<Filter>Header Files</Filter>
|
||||
</CLInclude>
|
||||
<CLInclude Include="DirectXMesh.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</CLInclude>
|
||||
<ClCompile Include="DirectXMeshRemap.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<CLInclude Include="scoped.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</CLInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshClean.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshNormals.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CLInclude Include="DirectXMeshP.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</CLInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns:atg="http://atg.xbox.com" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{d76fe36f-16db-490a-9ba9-13d02e13a65b}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{d4f97b15-a8e2-4223-a242-ca68b901e1fb}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CLInclude Include="DirectXMesh.inl">
|
||||
<Filter>Header Files</Filter>
|
||||
</CLInclude>
|
||||
<CLInclude Include="DirectXMesh.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</CLInclude>
|
||||
<ClCompile Include="DirectXMeshRemap.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<CLInclude Include="scoped.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</CLInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshClean.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshNormals.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CLInclude Include="DirectXMeshP.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</CLInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,269 +1,269 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|ARM">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshClean.cpp" />
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshNormals.cpp" />
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp" />
|
||||
<ClCompile Include="DirectXMeshRemap.cpp" />
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp" />
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="DirectXMesh.h" />
|
||||
<ClInclude Include="DirectXMeshP.h" />
|
||||
<ClInclude Include="scoped.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="DirectXMesh.inl" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{107a408e-c148-4594-b469-075fe0adb7a5}</ProjectGuid>
|
||||
<Keyword>StaticLibrary</Keyword>
|
||||
<ProjectName>DirectXMesh</ProjectName>
|
||||
<RootNamespace>DirectXMesh</RootNamespace>
|
||||
<DefaultLanguage>en-US</DefaultLanguage>
|
||||
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
|
||||
<AppContainerApplication>true</AppContainerApplication>
|
||||
<ApplicationType>Windows Store</ApplicationType>
|
||||
<WindowsTargetPlatformVersion>10.0.14393.0</WindowsTargetPlatformVersion>
|
||||
<WindowsTargetPlatformMinVersion>10.0.10586.0</WindowsTargetPlatformMinVersion>
|
||||
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>Bin\Windows10\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows10\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>Bin\Windows10\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows10\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
||||
<OutDir>Bin\Windows10\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows10\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
||||
<OutDir>Bin\Windows10\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows10\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<OutDir>Bin\Windows10\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows10\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<OutDir>Bin\Windows10\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows10\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<PreprocessorDefinitions>_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<PreprocessorDefinitions>_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|arm'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<PreprocessorDefinitions>_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|arm'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<PreprocessorDefinitions>_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<PreprocessorDefinitions>_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<PreprocessorDefinitions>_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|ARM">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshClean.cpp" />
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshNormals.cpp" />
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp" />
|
||||
<ClCompile Include="DirectXMeshRemap.cpp" />
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp" />
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="DirectXMesh.h" />
|
||||
<ClInclude Include="DirectXMeshP.h" />
|
||||
<ClInclude Include="scoped.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="DirectXMesh.inl" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{107a408e-c148-4594-b469-075fe0adb7a5}</ProjectGuid>
|
||||
<Keyword>StaticLibrary</Keyword>
|
||||
<ProjectName>DirectXMesh</ProjectName>
|
||||
<RootNamespace>DirectXMesh</RootNamespace>
|
||||
<DefaultLanguage>en-US</DefaultLanguage>
|
||||
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
|
||||
<AppContainerApplication>true</AppContainerApplication>
|
||||
<ApplicationType>Windows Store</ApplicationType>
|
||||
<WindowsTargetPlatformVersion>10.0.14393.0</WindowsTargetPlatformVersion>
|
||||
<WindowsTargetPlatformMinVersion>10.0.10586.0</WindowsTargetPlatformMinVersion>
|
||||
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>Bin\Windows10\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows10\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>Bin\Windows10\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows10\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
||||
<OutDir>Bin\Windows10\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows10\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
||||
<OutDir>Bin\Windows10\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows10\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<OutDir>Bin\Windows10\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows10\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<OutDir>Bin\Windows10\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows10\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<PreprocessorDefinitions>_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<PreprocessorDefinitions>_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|arm'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<PreprocessorDefinitions>_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|arm'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<PreprocessorDefinitions>_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<PreprocessorDefinitions>_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<PreprocessorDefinitions>_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
|
@ -1,62 +1,62 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshClean.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshNormals.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshRemap.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="DirectXMesh.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="scoped.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DirectXMeshP.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{0e8a37a4-6364-45e5-bc79-c24c97b7107c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{019eb570-a575-464f-9fa4-eae2fa7ff34c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="DirectXMesh.inl">
|
||||
<Filter>Header Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshClean.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshNormals.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshRemap.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="DirectXMesh.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="scoped.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DirectXMeshP.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{0e8a37a4-6364-45e5-bc79-c24c97b7107c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{019eb570-a575-464f-9fa4-eae2fa7ff34c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="DirectXMesh.inl">
|
||||
<Filter>Header Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,269 +1,269 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|ARM">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="DirectXMesh.h" />
|
||||
<ClInclude Include="DirectXMeshP.h" />
|
||||
<ClInclude Include="scoped.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="DirectXMesh.inl" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshClean.cpp" />
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshNormals.cpp" />
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp" />
|
||||
<ClCompile Include="DirectXMeshRemap.cpp" />
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp" />
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{86ebe2b8-f2b0-43a0-912f-996c197d7f97}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectName>DirectXMesh</ProjectName>
|
||||
<RootNamespace>DirectXMesh</RootNamespace>
|
||||
<DefaultLanguage>en-US</DefaultLanguage>
|
||||
<MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
|
||||
<AppContainerApplication>true</AppContainerApplication>
|
||||
<ApplicationType>Windows Store</ApplicationType>
|
||||
<ApplicationTypeRevision>8.1</ApplicationTypeRevision>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<OutDir>Bin\Windows8\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows8\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<OutDir>Bin\Windows8\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows8\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<OutDir>Bin\Windows8\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows8\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<OutDir>Bin\Windows8\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows8\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<OutDir>Bin\Windows8\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows8\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<OutDir>Bin\Windows8\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows8\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
<Lib>
|
||||
<AdditionalOptions>/IGNORE:4264</AdditionalOptions>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
<Lib>
|
||||
<AdditionalOptions>/IGNORE:4264</AdditionalOptions>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|arm'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
<Lib>
|
||||
<AdditionalOptions>/IGNORE:4264</AdditionalOptions>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|arm'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
<Lib>
|
||||
<AdditionalOptions>/IGNORE:4264</AdditionalOptions>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
<Lib>
|
||||
<AdditionalOptions>/IGNORE:4264</AdditionalOptions>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
<Lib>
|
||||
<AdditionalOptions>/IGNORE:4264</AdditionalOptions>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|ARM">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="DirectXMesh.h" />
|
||||
<ClInclude Include="DirectXMeshP.h" />
|
||||
<ClInclude Include="scoped.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="DirectXMesh.inl" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshClean.cpp" />
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshNormals.cpp" />
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp" />
|
||||
<ClCompile Include="DirectXMeshRemap.cpp" />
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp" />
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{86ebe2b8-f2b0-43a0-912f-996c197d7f97}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectName>DirectXMesh</ProjectName>
|
||||
<RootNamespace>DirectXMesh</RootNamespace>
|
||||
<DefaultLanguage>en-US</DefaultLanguage>
|
||||
<MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
|
||||
<AppContainerApplication>true</AppContainerApplication>
|
||||
<ApplicationType>Windows Store</ApplicationType>
|
||||
<ApplicationTypeRevision>8.1</ApplicationTypeRevision>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<OutDir>Bin\Windows8\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows8\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<OutDir>Bin\Windows8\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows8\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<OutDir>Bin\Windows8\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows8\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<OutDir>Bin\Windows8\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows8\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<OutDir>Bin\Windows8\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows8\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<OutDir>Bin\Windows8\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Windows8\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
<Lib>
|
||||
<AdditionalOptions>/IGNORE:4264</AdditionalOptions>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
<Lib>
|
||||
<AdditionalOptions>/IGNORE:4264</AdditionalOptions>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|arm'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
<Lib>
|
||||
<AdditionalOptions>/IGNORE:4264</AdditionalOptions>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|arm'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
<Lib>
|
||||
<AdditionalOptions>/IGNORE:4264</AdditionalOptions>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
<Lib>
|
||||
<AdditionalOptions>/IGNORE:4264</AdditionalOptions>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
<Lib>
|
||||
<AdditionalOptions>/IGNORE:4264</AdditionalOptions>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
|
@ -1,62 +1,62 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClInclude Include="DirectXMesh.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="scoped.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DirectXMeshP.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshClean.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshNormals.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshRemap.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{32bf5d94-9970-42cd-a5e7-d77db6fbffa7}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{0139b037-f738-49c5-80e0-a35dba54372c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="DirectXMesh.inl">
|
||||
<Filter>Header Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClInclude Include="DirectXMesh.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="scoped.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DirectXMeshP.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshClean.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshNormals.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshRemap.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{32bf5d94-9970-42cd-a5e7-d77db6fbffa7}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{0139b037-f738-49c5-80e0-a35dba54372c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="DirectXMesh.inl">
|
||||
<Filter>Header Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,179 +1,179 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="DirectXMesh.h" />
|
||||
<ClInclude Include="DirectXMeshP.h" />
|
||||
<ClInclude Include="scoped.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="DirectXMesh.inl" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshClean.cpp" />
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshNormals.cpp" />
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp" />
|
||||
<ClCompile Include="DirectXMeshRemap.cpp" />
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp" />
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{d61dfa02-cc01-4de4-b3f3-b4ebe4a76678}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectName>DirectXMesh</ProjectName>
|
||||
<RootNamespace>DirectXMesh</RootNamespace>
|
||||
<DefaultLanguage>en-US</DefaultLanguage>
|
||||
<MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
|
||||
<AppContainerApplication>true</AppContainerApplication>
|
||||
<ApplicationType>Windows Phone</ApplicationType>
|
||||
<ApplicationTypeRevision>8.1</ApplicationTypeRevision>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v120_wp81</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v120_wp81</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v120_wp81</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v120_wp81</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
||||
<OutDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
||||
<OutDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="DirectXMesh.h" />
|
||||
<ClInclude Include="DirectXMeshP.h" />
|
||||
<ClInclude Include="scoped.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="DirectXMesh.inl" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshClean.cpp" />
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshNormals.cpp" />
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp" />
|
||||
<ClCompile Include="DirectXMeshRemap.cpp" />
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp" />
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{d61dfa02-cc01-4de4-b3f3-b4ebe4a76678}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectName>DirectXMesh</ProjectName>
|
||||
<RootNamespace>DirectXMesh</RootNamespace>
|
||||
<DefaultLanguage>en-US</DefaultLanguage>
|
||||
<MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
|
||||
<AppContainerApplication>true</AppContainerApplication>
|
||||
<ApplicationType>Windows Phone</ApplicationType>
|
||||
<ApplicationTypeRevision>8.1</ApplicationTypeRevision>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v120_wp81</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v120_wp81</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v120_wp81</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v120_wp81</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
||||
<OutDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
||||
<OutDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
|
@ -1,62 +1,62 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{76600727-c5e3-4391-8da1-31033b61259f}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{c70e4b19-005c-49af-825d-ea46c05e38d7}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="DirectXMesh.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="scoped.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DirectXMeshP.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshClean.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshNormals.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshRemap.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="DirectXMesh.inl">
|
||||
<Filter>Header Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{76600727-c5e3-4391-8da1-31033b61259f}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{c70e4b19-005c-49af-825d-ea46c05e38d7}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="DirectXMesh.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="scoped.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DirectXMeshP.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshClean.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshNormals.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshRemap.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="DirectXMesh.inl">
|
||||
<Filter>Header Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,191 +1,191 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Release|Durango">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Durango</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Profile|Durango">
|
||||
<Configuration>Profile</Configuration>
|
||||
<Platform>Durango</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|Durango">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Durango</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="DirectXMesh.h" />
|
||||
<ClInclude Include="DirectXMeshP.h" />
|
||||
<ClInclude Include="scoped.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="DirectXMesh.inl" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshClean.cpp" />
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshNormals.cpp" />
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp" />
|
||||
<ClCompile Include="DirectXMeshRemap.cpp" />
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp" />
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Durango'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<RootNamespace>DirectXMesh</RootNamespace>
|
||||
<ProjectGuid>{1a920ef0-11d7-4a11-9ab7-63c4424ad096}</ProjectGuid>
|
||||
<DefaultLanguage>en-US</DefaultLanguage>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ApplicationEnvironment>title</ApplicationEnvironment>
|
||||
<!-- - - - -->
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
|
||||
<TargetRuntime>Native</TargetRuntime>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Durango'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<EmbedManifest>false</EmbedManifest>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Durango'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<EmbedManifest>false</EmbedManifest>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<EmbedManifest>false</EmbedManifest>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Durango'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Durango'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">
|
||||
<ReferencePath>$(Console_SdkLibPath);$(Console_SdkWindowsMetadataPath)</ReferencePath>
|
||||
<LibraryPath>$(Console_SdkLibPath)</LibraryPath>
|
||||
<LibraryWPath>$(Console_SdkLibPath);$(Console_SdkWindowsMetadataPath)</LibraryWPath>
|
||||
<IncludePath>$(Console_SdkIncludeRoot)</IncludePath>
|
||||
<ExecutablePath>$(Console_SdkRoot)bin;$(VCInstallDir)bin\x86_amd64;$(VCInstallDir)bin;$(WindowsSDK_ExecutablePath_x86);$(VSInstallDir)Common7\Tools\bin;$(VSInstallDir)Common7\tools;$(VSInstallDir)Common7\ide;$(ProgramFiles)\HTML Help Workshop;$(MSBuildToolsPath32);$(FxCopDir);$(PATH);</ExecutablePath>
|
||||
<OutDir>Bin\XboxOneXDK_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\XboxOneXDK_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Durango'">
|
||||
<ReferencePath>$(Console_SdkLibPath);$(Console_SdkWindowsMetadataPath)</ReferencePath>
|
||||
<LibraryPath>$(Console_SdkLibPath)</LibraryPath>
|
||||
<LibraryWPath>$(Console_SdkLibPath);$(Console_SdkWindowsMetadataPath)</LibraryWPath>
|
||||
<IncludePath>$(Console_SdkIncludeRoot)</IncludePath>
|
||||
<ExecutablePath>$(Console_SdkRoot)bin;$(VCInstallDir)bin\x86_amd64;$(VCInstallDir)bin;$(WindowsSDK_ExecutablePath_x86);$(VSInstallDir)Common7\Tools\bin;$(VSInstallDir)Common7\tools;$(VSInstallDir)Common7\ide;$(ProgramFiles)\HTML Help Workshop;$(MSBuildToolsPath32);$(FxCopDir);$(PATH);</ExecutablePath>
|
||||
<OutDir>Bin\XboxOneXDK_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\XboxOneXDK_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">
|
||||
<ReferencePath>$(Console_SdkLibPath);$(Console_SdkWindowsMetadataPath)</ReferencePath>
|
||||
<LibraryPath>$(Console_SdkLibPath)</LibraryPath>
|
||||
<LibraryWPath>$(Console_SdkLibPath);$(Console_SdkWindowsMetadataPath)</LibraryWPath>
|
||||
<IncludePath>$(Console_SdkIncludeRoot)</IncludePath>
|
||||
<ExecutablePath>$(Console_SdkRoot)bin;$(VCInstallDir)bin\x86_amd64;$(VCInstallDir)bin;$(WindowsSDK_ExecutablePath_x86);$(VSInstallDir)Common7\Tools\bin;$(VSInstallDir)Common7\tools;$(VSInstallDir)Common7\ide;$(ProgramFiles)\HTML Help Workshop;$(MSBuildToolsPath32);$(FxCopDir);$(PATH);</ExecutablePath>
|
||||
<OutDir>Bin\XboxOneXDK_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\XboxOneXDK_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">
|
||||
<Link>
|
||||
<AdditionalDependencies>d3d11_x.lib;combase.lib;kernelx.lib;toolhelpx.lib;uuid.lib;</AdditionalDependencies>
|
||||
<EntryPointSymbol>
|
||||
</EntryPointSymbol>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<AdditionalUsingDirectories>$(Console_SdkPackagesRoot);$(Console_SdkWindowsMetadataPath);%(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<PreprocessorDefinitions>NDEBUG;__WRL_NO_DEFAULT_LIB__;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Durango'">
|
||||
<Link>
|
||||
<AdditionalDependencies>pixEvt.lib;d3d11_x.lib;combase.lib;kernelx.lib;toolhelpx.lib;uuid.lib;</AdditionalDependencies>
|
||||
<EntryPointSymbol>
|
||||
</EntryPointSymbol>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<AdditionalUsingDirectories>$(Console_SdkPackagesRoot);$(Console_SdkWindowsMetadataPath);%(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<PreprocessorDefinitions>NDEBUG;__WRL_NO_DEFAULT_LIB__;_LIB;PROFILE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">
|
||||
<Link>
|
||||
<AdditionalDependencies>d3d11_x.lib;combase.lib;kernelx.lib;toolhelpx.lib;uuid.lib;</AdditionalDependencies>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<AdditionalUsingDirectories>$(Console_SdkPackagesRoot);$(Console_SdkWindowsMetadataPath);%(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_DEBUG;__WRL_NO_DEFAULT_LIB__;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Release|Durango">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Durango</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Profile|Durango">
|
||||
<Configuration>Profile</Configuration>
|
||||
<Platform>Durango</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|Durango">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Durango</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="DirectXMesh.h" />
|
||||
<ClInclude Include="DirectXMeshP.h" />
|
||||
<ClInclude Include="scoped.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="DirectXMesh.inl" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshClean.cpp" />
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp" />
|
||||
<ClCompile Include="DirectXMeshNormals.cpp" />
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp" />
|
||||
<ClCompile Include="DirectXMeshRemap.cpp" />
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp" />
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Durango'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp" />
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<RootNamespace>DirectXMesh</RootNamespace>
|
||||
<ProjectGuid>{1a920ef0-11d7-4a11-9ab7-63c4424ad096}</ProjectGuid>
|
||||
<DefaultLanguage>en-US</DefaultLanguage>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ApplicationEnvironment>title</ApplicationEnvironment>
|
||||
<!-- - - - -->
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
|
||||
<TargetRuntime>Native</TargetRuntime>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Durango'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<EmbedManifest>false</EmbedManifest>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Durango'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<EmbedManifest>false</EmbedManifest>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<EmbedManifest>false</EmbedManifest>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Durango'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Durango'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">
|
||||
<ReferencePath>$(Console_SdkLibPath);$(Console_SdkWindowsMetadataPath)</ReferencePath>
|
||||
<LibraryPath>$(Console_SdkLibPath)</LibraryPath>
|
||||
<LibraryWPath>$(Console_SdkLibPath);$(Console_SdkWindowsMetadataPath)</LibraryWPath>
|
||||
<IncludePath>$(Console_SdkIncludeRoot)</IncludePath>
|
||||
<ExecutablePath>$(Console_SdkRoot)bin;$(VCInstallDir)bin\x86_amd64;$(VCInstallDir)bin;$(WindowsSDK_ExecutablePath_x86);$(VSInstallDir)Common7\Tools\bin;$(VSInstallDir)Common7\tools;$(VSInstallDir)Common7\ide;$(ProgramFiles)\HTML Help Workshop;$(MSBuildToolsPath32);$(FxCopDir);$(PATH);</ExecutablePath>
|
||||
<OutDir>Bin\XboxOneXDK_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\XboxOneXDK_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Durango'">
|
||||
<ReferencePath>$(Console_SdkLibPath);$(Console_SdkWindowsMetadataPath)</ReferencePath>
|
||||
<LibraryPath>$(Console_SdkLibPath)</LibraryPath>
|
||||
<LibraryWPath>$(Console_SdkLibPath);$(Console_SdkWindowsMetadataPath)</LibraryWPath>
|
||||
<IncludePath>$(Console_SdkIncludeRoot)</IncludePath>
|
||||
<ExecutablePath>$(Console_SdkRoot)bin;$(VCInstallDir)bin\x86_amd64;$(VCInstallDir)bin;$(WindowsSDK_ExecutablePath_x86);$(VSInstallDir)Common7\Tools\bin;$(VSInstallDir)Common7\tools;$(VSInstallDir)Common7\ide;$(ProgramFiles)\HTML Help Workshop;$(MSBuildToolsPath32);$(FxCopDir);$(PATH);</ExecutablePath>
|
||||
<OutDir>Bin\XboxOneXDK_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\XboxOneXDK_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">
|
||||
<ReferencePath>$(Console_SdkLibPath);$(Console_SdkWindowsMetadataPath)</ReferencePath>
|
||||
<LibraryPath>$(Console_SdkLibPath)</LibraryPath>
|
||||
<LibraryWPath>$(Console_SdkLibPath);$(Console_SdkWindowsMetadataPath)</LibraryWPath>
|
||||
<IncludePath>$(Console_SdkIncludeRoot)</IncludePath>
|
||||
<ExecutablePath>$(Console_SdkRoot)bin;$(VCInstallDir)bin\x86_amd64;$(VCInstallDir)bin;$(WindowsSDK_ExecutablePath_x86);$(VSInstallDir)Common7\Tools\bin;$(VSInstallDir)Common7\tools;$(VSInstallDir)Common7\ide;$(ProgramFiles)\HTML Help Workshop;$(MSBuildToolsPath32);$(FxCopDir);$(PATH);</ExecutablePath>
|
||||
<OutDir>Bin\XboxOneXDK_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\XboxOneXDK_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>DirectXMesh</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">
|
||||
<Link>
|
||||
<AdditionalDependencies>d3d11_x.lib;combase.lib;kernelx.lib;toolhelpx.lib;uuid.lib;</AdditionalDependencies>
|
||||
<EntryPointSymbol>
|
||||
</EntryPointSymbol>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<AdditionalUsingDirectories>$(Console_SdkPackagesRoot);$(Console_SdkWindowsMetadataPath);%(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<PreprocessorDefinitions>NDEBUG;__WRL_NO_DEFAULT_LIB__;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Durango'">
|
||||
<Link>
|
||||
<AdditionalDependencies>pixEvt.lib;d3d11_x.lib;combase.lib;kernelx.lib;toolhelpx.lib;uuid.lib;</AdditionalDependencies>
|
||||
<EntryPointSymbol>
|
||||
</EntryPointSymbol>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<AdditionalUsingDirectories>$(Console_SdkPackagesRoot);$(Console_SdkWindowsMetadataPath);%(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<PreprocessorDefinitions>NDEBUG;__WRL_NO_DEFAULT_LIB__;_LIB;PROFILE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">
|
||||
<Link>
|
||||
<AdditionalDependencies>d3d11_x.lib;combase.lib;kernelx.lib;toolhelpx.lib;uuid.lib;</AdditionalDependencies>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<AdditionalUsingDirectories>$(Console_SdkPackagesRoot);$(Console_SdkWindowsMetadataPath);%(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_DEBUG;__WRL_NO_DEFAULT_LIB__;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<CompileAsWinRT>false</CompileAsWinRT>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
|
@ -1,64 +1,64 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="DirectXMesh.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DirectXMeshP.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="scoped.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="DirectXMesh.inl">
|
||||
<Filter>Header Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshClean.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshNormals.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshRemap.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="DirectXMesh.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DirectXMeshP.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="scoped.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="DirectXMesh.inl">
|
||||
<Filter>Header Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DirectXMeshAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshClean.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshGSAdjacency.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshNormals.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshOptimize.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshRemap.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshTangentFrame.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshUtil.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshValidate.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBReader.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DirectXMeshVBWriter.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,32 +1,32 @@
|
|||
//-------------------------------------------------------------------------------------
|
||||
// scoped.h
|
||||
//
|
||||
// Utility header with helper classes for exception-safe handling of resources
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <assert.h>
|
||||
#include <memory>
|
||||
#include <malloc.h>
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
struct aligned_deleter { void operator()(void* p) { _aligned_free(p); } };
|
||||
|
||||
typedef std::unique_ptr<float[], aligned_deleter> ScopedAlignedArrayFloat;
|
||||
|
||||
typedef std::unique_ptr<DirectX::XMVECTOR[], aligned_deleter> ScopedAlignedArrayXMVECTOR;
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
struct handle_closer { void operator()(HANDLE h) { assert(h != INVALID_HANDLE_VALUE); if (h) CloseHandle(h); } };
|
||||
|
||||
typedef public std::unique_ptr<void, handle_closer> ScopedHandle;
|
||||
|
||||
inline HANDLE safe_handle( HANDLE h ) { return (h == INVALID_HANDLE_VALUE) ? 0 : h; }
|
||||
//-------------------------------------------------------------------------------------
|
||||
// scoped.h
|
||||
//
|
||||
// Utility header with helper classes for exception-safe handling of resources
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <assert.h>
|
||||
#include <memory>
|
||||
#include <malloc.h>
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
struct aligned_deleter { void operator()(void* p) { _aligned_free(p); } };
|
||||
|
||||
typedef std::unique_ptr<float[], aligned_deleter> ScopedAlignedArrayFloat;
|
||||
|
||||
typedef std::unique_ptr<DirectX::XMVECTOR[], aligned_deleter> ScopedAlignedArrayXMVECTOR;
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
struct handle_closer { void operator()(HANDLE h) { assert(h != INVALID_HANDLE_VALUE); if (h) CloseHandle(h); } };
|
||||
|
||||
typedef public std::unique_ptr<void, handle_closer> ScopedHandle;
|
||||
|
||||
inline HANDLE safe_handle( HANDLE h ) { return (h == INVALID_HANDLE_VALUE) ? 0 : h; }
|
||||
|
|
|
@ -1,47 +1,47 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2013
|
||||
VisualStudioVersion = 12.0.40629.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXMesh", "DirectXMesh\DirectXMesh_Desktop_2013.vcxproj", "{6857F086-F6FE-4150-9ED7-7446F1C1C220}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "meshconvert", "Meshconvert\Meshconvert_Desktop_2013.vcxproj", "{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|x64 = Debug|x64
|
||||
Profile|Win32 = Profile|Win32
|
||||
Profile|x64 = Profile|x64
|
||||
Release|Win32 = Release|Win32
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Debug|x64.Build.0 = Debug|x64
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Profile|Win32.ActiveCfg = Profile|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Profile|Win32.Build.0 = Profile|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Profile|x64.ActiveCfg = Profile|x64
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Profile|x64.Build.0 = Profile|x64
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Release|Win32.Build.0 = Release|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Release|x64.ActiveCfg = Release|x64
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Release|x64.Build.0 = Release|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Debug|x64.Build.0 = Debug|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Profile|Win32.ActiveCfg = Profile|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Profile|Win32.Build.0 = Profile|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Profile|x64.ActiveCfg = Profile|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Profile|x64.Build.0 = Profile|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Release|Win32.Build.0 = Release|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Release|x64.ActiveCfg = Release|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2013
|
||||
VisualStudioVersion = 12.0.40629.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXMesh", "DirectXMesh\DirectXMesh_Desktop_2013.vcxproj", "{6857F086-F6FE-4150-9ED7-7446F1C1C220}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "meshconvert", "Meshconvert\Meshconvert_Desktop_2013.vcxproj", "{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|x64 = Debug|x64
|
||||
Profile|Win32 = Profile|Win32
|
||||
Profile|x64 = Profile|x64
|
||||
Release|Win32 = Release|Win32
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Debug|x64.Build.0 = Debug|x64
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Profile|Win32.ActiveCfg = Profile|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Profile|Win32.Build.0 = Profile|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Profile|x64.ActiveCfg = Profile|x64
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Profile|x64.Build.0 = Profile|x64
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Release|Win32.Build.0 = Release|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Release|x64.ActiveCfg = Release|x64
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Release|x64.Build.0 = Release|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Debug|x64.Build.0 = Debug|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Profile|Win32.ActiveCfg = Profile|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Profile|Win32.Build.0 = Profile|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Profile|x64.ActiveCfg = Profile|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Profile|x64.Build.0 = Profile|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Release|Win32.Build.0 = Release|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Release|x64.ActiveCfg = Release|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
|
@ -1,47 +1,47 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.23107.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXMesh", "DirectXMesh\DirectXMesh_Desktop_2015.vcxproj", "{6857F086-F6FE-4150-9ED7-7446F1C1C220}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "meshconvert", "Meshconvert\Meshconvert_Desktop_2015.vcxproj", "{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|x64 = Debug|x64
|
||||
Profile|Win32 = Profile|Win32
|
||||
Profile|x64 = Profile|x64
|
||||
Release|Win32 = Release|Win32
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Debug|x64.Build.0 = Debug|x64
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Profile|Win32.ActiveCfg = Profile|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Profile|Win32.Build.0 = Profile|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Profile|x64.ActiveCfg = Profile|x64
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Profile|x64.Build.0 = Profile|x64
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Release|Win32.Build.0 = Release|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Release|x64.ActiveCfg = Release|x64
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Release|x64.Build.0 = Release|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Debug|x64.Build.0 = Debug|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Profile|Win32.ActiveCfg = Profile|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Profile|Win32.Build.0 = Profile|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Profile|x64.ActiveCfg = Profile|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Profile|x64.Build.0 = Profile|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Release|Win32.Build.0 = Release|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Release|x64.ActiveCfg = Release|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.23107.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXMesh", "DirectXMesh\DirectXMesh_Desktop_2015.vcxproj", "{6857F086-F6FE-4150-9ED7-7446F1C1C220}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "meshconvert", "Meshconvert\Meshconvert_Desktop_2015.vcxproj", "{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|x64 = Debug|x64
|
||||
Profile|Win32 = Profile|Win32
|
||||
Profile|x64 = Profile|x64
|
||||
Release|Win32 = Release|Win32
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Debug|x64.Build.0 = Debug|x64
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Profile|Win32.ActiveCfg = Profile|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Profile|Win32.Build.0 = Profile|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Profile|x64.ActiveCfg = Profile|x64
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Profile|x64.Build.0 = Profile|x64
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Release|Win32.Build.0 = Release|Win32
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Release|x64.ActiveCfg = Release|x64
|
||||
{6857F086-F6FE-4150-9ED7-7446F1C1C220}.Release|x64.Build.0 = Release|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Debug|x64.Build.0 = Debug|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Profile|Win32.ActiveCfg = Profile|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Profile|Win32.Build.0 = Profile|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Profile|x64.ActiveCfg = Profile|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Profile|x64.Build.0 = Profile|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Release|Win32.Build.0 = Release|Win32
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Release|x64.ActiveCfg = Release|x64
|
||||
{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
|
@ -1,34 +1,34 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2015
|
||||
VisualStudioVersion = 14.0.22609.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXMesh", "DirectXMesh\DirectXMesh_Windows10.vcxproj", "{107A408E-C148-4594-B469-075FE0ADB7A5}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|ARM = Debug|ARM
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|ARM = Release|ARM
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Debug|x64.Build.0 = Debug|x64
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Debug|x86.Build.0 = Debug|Win32
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Release|ARM.Build.0 = Release|ARM
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Release|x64.ActiveCfg = Release|x64
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Release|x64.Build.0 = Release|x64
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Release|x86.ActiveCfg = Release|Win32
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Release|x86.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2015
|
||||
VisualStudioVersion = 14.0.22609.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXMesh", "DirectXMesh\DirectXMesh_Windows10.vcxproj", "{107A408E-C148-4594-B469-075FE0ADB7A5}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|ARM = Debug|ARM
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|ARM = Release|ARM
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Debug|x64.Build.0 = Debug|x64
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Debug|x86.Build.0 = Debug|Win32
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Release|ARM.Build.0 = Release|ARM
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Release|x64.ActiveCfg = Release|x64
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Release|x64.Build.0 = Release|x64
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Release|x86.ActiveCfg = Release|Win32
|
||||
{107A408E-C148-4594-B469-075FE0ADB7A5}.Release|x86.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
|
@ -1,34 +1,34 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2013
|
||||
VisualStudioVersion = 12.0.30501.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXMesh", "DirectXMesh\DirectXMesh_Windows81.vcxproj", "{86EBE2B8-F2B0-43A0-912F-996C197D7F97}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|ARM = Debug|ARM
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|x64 = Debug|x64
|
||||
Release|ARM = Release|ARM
|
||||
Release|Win32 = Release|Win32
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Debug|x64.Build.0 = Debug|x64
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Release|ARM.Build.0 = Release|ARM
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Release|Win32.Build.0 = Release|Win32
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Release|x64.ActiveCfg = Release|x64
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2013
|
||||
VisualStudioVersion = 12.0.30501.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXMesh", "DirectXMesh\DirectXMesh_Windows81.vcxproj", "{86EBE2B8-F2B0-43A0-912F-996C197D7F97}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|ARM = Debug|ARM
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|x64 = Debug|x64
|
||||
Release|ARM = Release|ARM
|
||||
Release|Win32 = Release|Win32
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Debug|x64.Build.0 = Debug|x64
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Release|ARM.Build.0 = Release|ARM
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Release|Win32.Build.0 = Release|Win32
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Release|x64.ActiveCfg = Release|x64
|
||||
{86EBE2B8-F2B0-43A0-912F-996C197D7F97}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
|
@ -1,28 +1,28 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2013
|
||||
VisualStudioVersion = 12.0.30501.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXMesh", "DirectXMesh\DirectXMesh_WindowsPhone81.vcxproj", "{D61DFA02-CC01-4DE4-B3F3-B4EBE4A76678}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|ARM = Debug|ARM
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release|ARM = Release|ARM
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{D61DFA02-CC01-4DE4-B3F3-B4EBE4A76678}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{D61DFA02-CC01-4DE4-B3F3-B4EBE4A76678}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{D61DFA02-CC01-4DE4-B3F3-B4EBE4A76678}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{D61DFA02-CC01-4DE4-B3F3-B4EBE4A76678}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{D61DFA02-CC01-4DE4-B3F3-B4EBE4A76678}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{D61DFA02-CC01-4DE4-B3F3-B4EBE4A76678}.Release|ARM.Build.0 = Release|ARM
|
||||
{D61DFA02-CC01-4DE4-B3F3-B4EBE4A76678}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{D61DFA02-CC01-4DE4-B3F3-B4EBE4A76678}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2013
|
||||
VisualStudioVersion = 12.0.30501.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXMesh", "DirectXMesh\DirectXMesh_WindowsPhone81.vcxproj", "{D61DFA02-CC01-4DE4-B3F3-B4EBE4A76678}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|ARM = Debug|ARM
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release|ARM = Release|ARM
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{D61DFA02-CC01-4DE4-B3F3-B4EBE4A76678}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{D61DFA02-CC01-4DE4-B3F3-B4EBE4A76678}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{D61DFA02-CC01-4DE4-B3F3-B4EBE4A76678}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{D61DFA02-CC01-4DE4-B3F3-B4EBE4A76678}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{D61DFA02-CC01-4DE4-B3F3-B4EBE4A76678}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{D61DFA02-CC01-4DE4-B3F3-B4EBE4A76678}.Release|ARM.Build.0 = Release|ARM
|
||||
{D61DFA02-CC01-4DE4-B3F3-B4EBE4A76678}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{D61DFA02-CC01-4DE4-B3F3-B4EBE4A76678}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
|
@ -1,25 +1,25 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.23107.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXMesh", "DirectXMesh\DirectXMesh_XboxOneXDK_2015.vcxproj", "{1A920EF0-11D7-4A11-9AB7-63C4424AD096}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Durango = Debug|Durango
|
||||
Profile|Durango = Profile|Durango
|
||||
Release|Durango = Release|Durango
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{1A920EF0-11D7-4A11-9AB7-63C4424AD096}.Debug|Durango.ActiveCfg = Debug|Durango
|
||||
{1A920EF0-11D7-4A11-9AB7-63C4424AD096}.Debug|Durango.Build.0 = Debug|Durango
|
||||
{1A920EF0-11D7-4A11-9AB7-63C4424AD096}.Profile|Durango.ActiveCfg = Profile|Durango
|
||||
{1A920EF0-11D7-4A11-9AB7-63C4424AD096}.Profile|Durango.Build.0 = Profile|Durango
|
||||
{1A920EF0-11D7-4A11-9AB7-63C4424AD096}.Release|Durango.ActiveCfg = Release|Durango
|
||||
{1A920EF0-11D7-4A11-9AB7-63C4424AD096}.Release|Durango.Build.0 = Release|Durango
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.23107.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXMesh", "DirectXMesh\DirectXMesh_XboxOneXDK_2015.vcxproj", "{1A920EF0-11D7-4A11-9AB7-63C4424AD096}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Durango = Debug|Durango
|
||||
Profile|Durango = Profile|Durango
|
||||
Release|Durango = Release|Durango
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{1A920EF0-11D7-4A11-9AB7-63C4424AD096}.Debug|Durango.ActiveCfg = Debug|Durango
|
||||
{1A920EF0-11D7-4A11-9AB7-63C4424AD096}.Debug|Durango.Build.0 = Debug|Durango
|
||||
{1A920EF0-11D7-4A11-9AB7-63C4424AD096}.Profile|Durango.ActiveCfg = Profile|Durango
|
||||
{1A920EF0-11D7-4A11-9AB7-63C4424AD096}.Profile|Durango.Build.0 = Profile|Durango
|
||||
{1A920EF0-11D7-4A11-9AB7-63C4424AD096}.Release|Durango.ActiveCfg = Release|Durango
|
||||
{1A920EF0-11D7-4A11-9AB7-63C4424AD096}.Release|Durango.Build.0 = Release|Durango
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
42
MIT.txt
42
MIT.txt
|
@ -1,21 +1,21 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 Microsoft Corp
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this
|
||||
software and associated documentation files (the "Software"), to deal in the Software
|
||||
without restriction, including without limitation the rights to use, copy, modify,
|
||||
merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies
|
||||
or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
||||
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
||||
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 Microsoft Corp
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this
|
||||
software and associated documentation files (the "Software"), to deal in the Software
|
||||
without restriction, including without limitation the rights to use, copy, modify,
|
||||
merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies
|
||||
or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
||||
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
||||
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
|
5006
Meshconvert/Mesh.cpp
5006
Meshconvert/Mesh.cpp
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,125 +1,125 @@
|
|||
//--------------------------------------------------------------------------------------
|
||||
// File: Mesh.h
|
||||
//
|
||||
// Mesh processing helper class
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#if defined(_XBOX_ONE) && defined(_TITLE)
|
||||
#include <d3d11_x.h>
|
||||
#define DCOMMON_H_INCLUDED
|
||||
#else
|
||||
#include <d3d11_1.h>
|
||||
#endif
|
||||
|
||||
#include <directxmath.h>
|
||||
|
||||
#include "directxmesh.h"
|
||||
|
||||
class Mesh
|
||||
{
|
||||
public:
|
||||
Mesh() : mnFaces(0), mnVerts(0) {}
|
||||
Mesh(Mesh&& moveFrom);
|
||||
Mesh& operator= (Mesh&& moveFrom);
|
||||
|
||||
Mesh(Mesh const&) = delete;
|
||||
Mesh& operator= (Mesh const&) = delete;
|
||||
|
||||
// Methods
|
||||
void Clear();
|
||||
|
||||
HRESULT SetIndexData( _In_ size_t nFaces, _In_reads_(nFaces*3) const uint16_t* indices, _In_reads_opt_(nFaces) uint32_t* attributes = nullptr );
|
||||
HRESULT SetIndexData( _In_ size_t nFaces, _In_reads_(nFaces*3) const uint32_t* indices, _In_reads_opt_(nFaces) uint32_t* attributes = nullptr );
|
||||
|
||||
HRESULT SetVertexData( _Inout_ DirectX::VBReader& reader, _In_ size_t nVerts );
|
||||
|
||||
HRESULT Validate( _In_ DWORD flags, _In_opt_ std::wstring* msgs ) const;
|
||||
|
||||
HRESULT Clean();
|
||||
|
||||
HRESULT GenerateAdjacency( _In_ float epsilon );
|
||||
|
||||
HRESULT ComputeNormals( _In_ DWORD flags );
|
||||
|
||||
HRESULT ComputeTangentFrame( _In_ bool bitangents );
|
||||
|
||||
HRESULT Optimize( _In_ uint32_t vertexCache = DirectX::OPTFACES_V_DEFAULT, _In_ uint32_t restart = DirectX::OPTFACES_R_DEFAULT );
|
||||
|
||||
HRESULT ReverseWinding();
|
||||
|
||||
HRESULT InvertUTexCoord();
|
||||
HRESULT InvertVTexCoord();
|
||||
|
||||
HRESULT ReverseHandedness();
|
||||
|
||||
// Accessors
|
||||
const uint32_t* GetAttributeBuffer() const { return mAttributes.get(); }
|
||||
const uint32_t* GetAdjacencyBuffer() const { return mAdjacency.get(); }
|
||||
const DirectX::XMFLOAT3* GetPositionBuffer() const { return mPositions.get(); }
|
||||
const DirectX::XMFLOAT3* GetNormalBuffer() const { return mNormals.get(); }
|
||||
const DirectX::XMFLOAT2* GetTexCoordBuffer() const { return mTexCoords.get(); }
|
||||
const DirectX::XMFLOAT4* GetTangentBuffer() const { return mTangents.get(); }
|
||||
|
||||
size_t GetFaceCount() const { return mnFaces; }
|
||||
size_t GetVertexCount() const { return mnVerts; }
|
||||
|
||||
bool Is16BitIndexBuffer() const;
|
||||
|
||||
const uint32_t* GetIndexBuffer() const { return mIndices.get(); }
|
||||
std::unique_ptr<uint16_t []> GetIndexBuffer16() const;
|
||||
|
||||
HRESULT GetVertexBuffer(_Inout_ DirectX::VBWriter& writer ) const;
|
||||
|
||||
// Save mesh to file
|
||||
struct Material
|
||||
{
|
||||
std::wstring name;
|
||||
bool perVertexColor;
|
||||
float specularPower;
|
||||
float alpha;
|
||||
DirectX::XMFLOAT3 ambientColor;
|
||||
DirectX::XMFLOAT3 diffuseColor;
|
||||
DirectX::XMFLOAT3 specularColor;
|
||||
DirectX::XMFLOAT3 emissiveColor;
|
||||
std::wstring texture;
|
||||
};
|
||||
|
||||
HRESULT ExportToVBO( _In_z_ const wchar_t* szFileName ) const;
|
||||
HRESULT ExportToCMO( _In_z_ const wchar_t* szFileName, _In_ size_t nMaterials, _In_reads_opt_(nMaterials) const Material* materials ) const;
|
||||
HRESULT ExportToSDKMESH( _In_z_ const wchar_t* szFileName, _In_ size_t nMaterials, _In_reads_opt_(nMaterials) const Material* materials ) const;
|
||||
|
||||
// Create mesh from file
|
||||
static HRESULT CreateFromVBO( _In_z_ const wchar_t* szFileName, _Inout_ std::unique_ptr<Mesh>& result );
|
||||
|
||||
private:
|
||||
size_t mnFaces;
|
||||
size_t mnVerts;
|
||||
std::unique_ptr<uint32_t[]> mIndices;
|
||||
std::unique_ptr<uint32_t[]> mAttributes;
|
||||
std::unique_ptr<uint32_t[]> mAdjacency;
|
||||
std::unique_ptr<DirectX::XMFLOAT3[]> mPositions;
|
||||
std::unique_ptr<DirectX::XMFLOAT3[]> mNormals;
|
||||
std::unique_ptr<DirectX::XMFLOAT4[]> mTangents;
|
||||
std::unique_ptr<DirectX::XMFLOAT3[]> mBiTangents;
|
||||
std::unique_ptr<DirectX::XMFLOAT2[]> mTexCoords;
|
||||
std::unique_ptr<DirectX::XMFLOAT4[]> mColors;
|
||||
std::unique_ptr<DirectX::XMFLOAT4[]> mBlendIndices;
|
||||
std::unique_ptr<DirectX::XMFLOAT4[]> mBlendWeights;
|
||||
//--------------------------------------------------------------------------------------
|
||||
// File: Mesh.h
|
||||
//
|
||||
// Mesh processing helper class
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#if defined(_XBOX_ONE) && defined(_TITLE)
|
||||
#include <d3d11_x.h>
|
||||
#define DCOMMON_H_INCLUDED
|
||||
#else
|
||||
#include <d3d11_1.h>
|
||||
#endif
|
||||
|
||||
#include <directxmath.h>
|
||||
|
||||
#include "directxmesh.h"
|
||||
|
||||
class Mesh
|
||||
{
|
||||
public:
|
||||
Mesh() : mnFaces(0), mnVerts(0) {}
|
||||
Mesh(Mesh&& moveFrom);
|
||||
Mesh& operator= (Mesh&& moveFrom);
|
||||
|
||||
Mesh(Mesh const&) = delete;
|
||||
Mesh& operator= (Mesh const&) = delete;
|
||||
|
||||
// Methods
|
||||
void Clear();
|
||||
|
||||
HRESULT SetIndexData( _In_ size_t nFaces, _In_reads_(nFaces*3) const uint16_t* indices, _In_reads_opt_(nFaces) uint32_t* attributes = nullptr );
|
||||
HRESULT SetIndexData( _In_ size_t nFaces, _In_reads_(nFaces*3) const uint32_t* indices, _In_reads_opt_(nFaces) uint32_t* attributes = nullptr );
|
||||
|
||||
HRESULT SetVertexData( _Inout_ DirectX::VBReader& reader, _In_ size_t nVerts );
|
||||
|
||||
HRESULT Validate( _In_ DWORD flags, _In_opt_ std::wstring* msgs ) const;
|
||||
|
||||
HRESULT Clean();
|
||||
|
||||
HRESULT GenerateAdjacency( _In_ float epsilon );
|
||||
|
||||
HRESULT ComputeNormals( _In_ DWORD flags );
|
||||
|
||||
HRESULT ComputeTangentFrame( _In_ bool bitangents );
|
||||
|
||||
HRESULT Optimize( _In_ uint32_t vertexCache = DirectX::OPTFACES_V_DEFAULT, _In_ uint32_t restart = DirectX::OPTFACES_R_DEFAULT );
|
||||
|
||||
HRESULT ReverseWinding();
|
||||
|
||||
HRESULT InvertUTexCoord();
|
||||
HRESULT InvertVTexCoord();
|
||||
|
||||
HRESULT ReverseHandedness();
|
||||
|
||||
// Accessors
|
||||
const uint32_t* GetAttributeBuffer() const { return mAttributes.get(); }
|
||||
const uint32_t* GetAdjacencyBuffer() const { return mAdjacency.get(); }
|
||||
const DirectX::XMFLOAT3* GetPositionBuffer() const { return mPositions.get(); }
|
||||
const DirectX::XMFLOAT3* GetNormalBuffer() const { return mNormals.get(); }
|
||||
const DirectX::XMFLOAT2* GetTexCoordBuffer() const { return mTexCoords.get(); }
|
||||
const DirectX::XMFLOAT4* GetTangentBuffer() const { return mTangents.get(); }
|
||||
|
||||
size_t GetFaceCount() const { return mnFaces; }
|
||||
size_t GetVertexCount() const { return mnVerts; }
|
||||
|
||||
bool Is16BitIndexBuffer() const;
|
||||
|
||||
const uint32_t* GetIndexBuffer() const { return mIndices.get(); }
|
||||
std::unique_ptr<uint16_t []> GetIndexBuffer16() const;
|
||||
|
||||
HRESULT GetVertexBuffer(_Inout_ DirectX::VBWriter& writer ) const;
|
||||
|
||||
// Save mesh to file
|
||||
struct Material
|
||||
{
|
||||
std::wstring name;
|
||||
bool perVertexColor;
|
||||
float specularPower;
|
||||
float alpha;
|
||||
DirectX::XMFLOAT3 ambientColor;
|
||||
DirectX::XMFLOAT3 diffuseColor;
|
||||
DirectX::XMFLOAT3 specularColor;
|
||||
DirectX::XMFLOAT3 emissiveColor;
|
||||
std::wstring texture;
|
||||
};
|
||||
|
||||
HRESULT ExportToVBO( _In_z_ const wchar_t* szFileName ) const;
|
||||
HRESULT ExportToCMO( _In_z_ const wchar_t* szFileName, _In_ size_t nMaterials, _In_reads_opt_(nMaterials) const Material* materials ) const;
|
||||
HRESULT ExportToSDKMESH( _In_z_ const wchar_t* szFileName, _In_ size_t nMaterials, _In_reads_opt_(nMaterials) const Material* materials ) const;
|
||||
|
||||
// Create mesh from file
|
||||
static HRESULT CreateFromVBO( _In_z_ const wchar_t* szFileName, _Inout_ std::unique_ptr<Mesh>& result );
|
||||
|
||||
private:
|
||||
size_t mnFaces;
|
||||
size_t mnVerts;
|
||||
std::unique_ptr<uint32_t[]> mIndices;
|
||||
std::unique_ptr<uint32_t[]> mAttributes;
|
||||
std::unique_ptr<uint32_t[]> mAdjacency;
|
||||
std::unique_ptr<DirectX::XMFLOAT3[]> mPositions;
|
||||
std::unique_ptr<DirectX::XMFLOAT3[]> mNormals;
|
||||
std::unique_ptr<DirectX::XMFLOAT4[]> mTangents;
|
||||
std::unique_ptr<DirectX::XMFLOAT3[]> mBiTangents;
|
||||
std::unique_ptr<DirectX::XMFLOAT2[]> mTexCoords;
|
||||
std::unique_ptr<DirectX::XMFLOAT4[]> mColors;
|
||||
std::unique_ptr<DirectX::XMFLOAT4[]> mBlendIndices;
|
||||
std::unique_ptr<DirectX::XMFLOAT4[]> mBlendWeights;
|
||||
};
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,401 +1,401 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Profile|Win32">
|
||||
<Configuration>Profile</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Profile|x64">
|
||||
<Configuration>Profile</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectName>meshconvert</ProjectName>
|
||||
<ProjectGuid>{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}</ProjectGuid>
|
||||
<RootNamespace>meshconvert</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings" />
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;oleaut32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;oleaut32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;oleaut32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;oleaut32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\DirectXMesh\DirectXMesh_Desktop_2013.vcxproj">
|
||||
<Project>{6857f086-f6fe-4150-9ed7-7446f1c1c220}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Meshconvert.cpp" />
|
||||
<ClCompile Include="Mesh.cpp" />
|
||||
<ClInclude Include="..\Utilities\WaveFrontReader.h" />
|
||||
<CLInclude Include="Mesh.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="Meshconvert.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets" />
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Profile|Win32">
|
||||
<Configuration>Profile</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Profile|x64">
|
||||
<Configuration>Profile</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectName>meshconvert</ProjectName>
|
||||
<ProjectGuid>{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}</ProjectGuid>
|
||||
<RootNamespace>meshconvert</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings" />
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
|
||||
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;oleaut32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;oleaut32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;oleaut32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;oleaut32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\DirectXMesh\DirectXMesh_Desktop_2013.vcxproj">
|
||||
<Project>{6857f086-f6fe-4150-9ed7-7446f1c1c220}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Meshconvert.cpp" />
|
||||
<ClCompile Include="Mesh.cpp" />
|
||||
<ClInclude Include="..\Utilities\WaveFrontReader.h" />
|
||||
<CLInclude Include="Mesh.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="Meshconvert.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets" />
|
||||
</Project>
|
|
@ -1,26 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns:atg="http://atg.xbox.com" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{8e114980-c1a3-4ada-ad7c-83caadf5daeb}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\Utilities\WaveFrontReader.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Meshconvert.cpp" />
|
||||
<ClCompile Include="Mesh.cpp" />
|
||||
<CLInclude Include="Mesh.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="Meshconvert.rc">
|
||||
<Filter>Resource Files</Filter>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns:atg="http://atg.xbox.com" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{8e114980-c1a3-4ada-ad7c-83caadf5daeb}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\Utilities\WaveFrontReader.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Meshconvert.cpp" />
|
||||
<ClCompile Include="Mesh.cpp" />
|
||||
<CLInclude Include="Mesh.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="Meshconvert.rc">
|
||||
<Filter>Resource Files</Filter>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,401 +1,401 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Profile|Win32">
|
||||
<Configuration>Profile</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Profile|x64">
|
||||
<Configuration>Profile</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectName>meshconvert</ProjectName>
|
||||
<ProjectGuid>{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}</ProjectGuid>
|
||||
<RootNamespace>meshconvert</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings" />
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;oleaut32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;oleaut32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;oleaut32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;oleaut32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\DirectXMesh\DirectXMesh_Desktop_2015.vcxproj">
|
||||
<Project>{6857f086-f6fe-4150-9ed7-7446f1c1c220}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Meshconvert.cpp" />
|
||||
<ClCompile Include="Mesh.cpp" />
|
||||
<ClInclude Include="..\Utilities\WaveFrontReader.h" />
|
||||
<CLInclude Include="Mesh.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="Meshconvert.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets" />
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Profile|Win32">
|
||||
<Configuration>Profile</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Profile|x64">
|
||||
<Configuration>Profile</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectName>meshconvert</ProjectName>
|
||||
<ProjectGuid>{6D4CFD0E-8772-462A-9AC1-7DBAD9C16880}</ProjectGuid>
|
||||
<RootNamespace>meshconvert</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings" />
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
|
||||
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>meshconvert</TargetName>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;oleaut32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;oleaut32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;oleaut32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<OpenMPSupport>true</OpenMPSupport>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<AdditionalIncludeDirectories>..\DirectXMesh;..\Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_CONSOLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>ole32.lib;oleaut32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<EnableDPIAwareness>false</EnableDPIAwareness>
|
||||
</Manifest>
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\DirectXMesh\DirectXMesh_Desktop_2015.vcxproj">
|
||||
<Project>{6857f086-f6fe-4150-9ed7-7446f1c1c220}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Meshconvert.cpp" />
|
||||
<ClCompile Include="Mesh.cpp" />
|
||||
<ClInclude Include="..\Utilities\WaveFrontReader.h" />
|
||||
<CLInclude Include="Mesh.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="Meshconvert.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets" />
|
||||
</Project>
|
|
@ -1,26 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns:atg="http://atg.xbox.com" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{8e114980-c1a3-4ada-ad7c-83caadf5daeb}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\Utilities\WaveFrontReader.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Meshconvert.cpp" />
|
||||
<ClCompile Include="Mesh.cpp" />
|
||||
<CLInclude Include="Mesh.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="Meshconvert.rc">
|
||||
<Filter>Resource Files</Filter>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns:atg="http://atg.xbox.com" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{8e114980-c1a3-4ada-ad7c-83caadf5daeb}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\Utilities\WaveFrontReader.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Meshconvert.cpp" />
|
||||
<ClCompile Include="Mesh.cpp" />
|
||||
<CLInclude Include="Mesh.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="Meshconvert.rc">
|
||||
<Filter>Resource Files</Filter>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,76 +1,76 @@
|
|||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#define IDC_STATIC -1
|
||||
#include <WinResRc.h>
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDI_MAIN_ICON ICON "directx.ico"
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#define IDC_STATIC -1\r\n"
|
||||
"#include <winresrc.h>\r\n"
|
||||
"\r\n"
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#define IDC_STATIC -1
|
||||
#include <WinResRc.h>
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDI_MAIN_ICON ICON "directx.ico"
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#define IDC_STATIC -1\r\n"
|
||||
"#include <winresrc.h>\r\n"
|
||||
"\r\n"
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
|
|
210
ReadMe.txt
210
ReadMe.txt
|
@ -1,106 +1,106 @@
|
|||
DIRECTX MESH LIBRARY (DirectXMesh)
|
||||
------------------------------------
|
||||
|
||||
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
|
||||
August 2, 2016
|
||||
|
||||
This package contains DirectXMesh, a shared source library for performing various geometry
|
||||
content processing operations including generating normals and tangent frames, triangle
|
||||
adjacency computations, and vertex cache optimization.
|
||||
|
||||
The source is written for Visual Studio 2013 or 2015. It is recommended that you
|
||||
make use of VS 2013 Update 5 or VS 2015 Update 3 and Windows 7 Service Pack 1 or later.
|
||||
|
||||
These components are designed to work without requiring any content from the DirectX SDK. For details,
|
||||
see "Where is the DirectX SDK?" <http://msdn.microsoft.com/en-us/library/ee663275.aspx>.
|
||||
|
||||
DirectXMesh\
|
||||
This contains the DirectXMesh library.
|
||||
|
||||
Note that the majority of the header files here are intended for internal implementation
|
||||
of the library only (DirectXMeshP.h and scoped.h). Only DirectXMesh.h is meant as a
|
||||
'public' header for the library.
|
||||
|
||||
Utilities\
|
||||
This contains helper code related to mesh processing that is not general enough to be
|
||||
part of the DirectXMesh library.
|
||||
|
||||
WaveFrontReader.h - Contains a simple C++ class for reading mesh data from a WaveFront OBJ file.
|
||||
|
||||
Meshconvert\
|
||||
This DirectXMesh sample is an implementation of the "meshconvert" command-line texture utility
|
||||
from the DirectX SDK utilizing DirectXMesh rather than D3DX.
|
||||
|
||||
Note this tool does not support legacy .X files, but can export CMO, SDKMESH, and VBO files.
|
||||
|
||||
All content and source code for this package are subject to the terms of the MIT License.
|
||||
<http://opensource.org/licenses/MIT>.
|
||||
|
||||
Documentation is available at <https://github.com/Microsoft/DirectXMesh/wiki>.
|
||||
|
||||
For the latest version of DirectXMesh, bug reports, etc. please visit the project site.
|
||||
|
||||
http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
|
||||
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the
|
||||
Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
|
||||
|
||||
https://opensource.microsoft.com/codeofconduct/
|
||||
|
||||
|
||||
---------------
|
||||
RELEASE HISTORY
|
||||
---------------
|
||||
|
||||
August 2, 2016
|
||||
Updated for VS 2015 Update 3 and Windows 10 SDK (14393)
|
||||
|
||||
July 19, 2016
|
||||
meshconvert command-line tool updated with -flipu switch
|
||||
|
||||
June 27, 2016
|
||||
Code cleanup
|
||||
|
||||
April 26, 2016
|
||||
Retired VS 2012 projects and obsolete adapter code
|
||||
Minor code and project file cleanup
|
||||
|
||||
November 30, 2015
|
||||
meshconvert command-line tool updated with -flipv and -flipz switches; removed -fliptc
|
||||
Updated for VS 2015 Update 1 and Windows 10 SDK (10586)
|
||||
|
||||
October 30, 2015
|
||||
Minor code cleanup
|
||||
|
||||
August 18, 2015
|
||||
Xbox One platform updates
|
||||
|
||||
July 29, 2015
|
||||
Updated for VS 2015 and Windows 10 SDK RTM
|
||||
Retired VS 2010 projects
|
||||
WaveFrontReader: updated utility to minimize debug output
|
||||
|
||||
July 8, 2015
|
||||
Minor SAL fix and project cleanup
|
||||
|
||||
March 27, 2015
|
||||
Added projects for Windows apps Technical Preview
|
||||
Fixed attributes usage for OptimizeFacesEx
|
||||
meshconvert: fix when importing from .vbo
|
||||
Minor code cleanup
|
||||
|
||||
November 14, 2014
|
||||
meshconvert: sample improvements and fixes
|
||||
Added workarounds for potential compiler bug when using VB reader/writer
|
||||
|
||||
October 28, 2014
|
||||
meshconvert command-line sample
|
||||
Added VBReader/VBWriter::GetElement method
|
||||
Added more ComputeTangentFrame overloads
|
||||
Explicit calling-convention annotation for public headers
|
||||
Windows phone 8.1 platform support
|
||||
Minor code and project cleanup
|
||||
|
||||
June 27, 2014
|
||||
DIRECTX MESH LIBRARY (DirectXMesh)
|
||||
------------------------------------
|
||||
|
||||
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
|
||||
August 2, 2016
|
||||
|
||||
This package contains DirectXMesh, a shared source library for performing various geometry
|
||||
content processing operations including generating normals and tangent frames, triangle
|
||||
adjacency computations, and vertex cache optimization.
|
||||
|
||||
The source is written for Visual Studio 2013 or 2015. It is recommended that you
|
||||
make use of VS 2013 Update 5 or VS 2015 Update 3 and Windows 7 Service Pack 1 or later.
|
||||
|
||||
These components are designed to work without requiring any content from the DirectX SDK. For details,
|
||||
see "Where is the DirectX SDK?" <http://msdn.microsoft.com/en-us/library/ee663275.aspx>.
|
||||
|
||||
DirectXMesh\
|
||||
This contains the DirectXMesh library.
|
||||
|
||||
Note that the majority of the header files here are intended for internal implementation
|
||||
of the library only (DirectXMeshP.h and scoped.h). Only DirectXMesh.h is meant as a
|
||||
'public' header for the library.
|
||||
|
||||
Utilities\
|
||||
This contains helper code related to mesh processing that is not general enough to be
|
||||
part of the DirectXMesh library.
|
||||
|
||||
WaveFrontReader.h - Contains a simple C++ class for reading mesh data from a WaveFront OBJ file.
|
||||
|
||||
Meshconvert\
|
||||
This DirectXMesh sample is an implementation of the "meshconvert" command-line texture utility
|
||||
from the DirectX SDK utilizing DirectXMesh rather than D3DX.
|
||||
|
||||
Note this tool does not support legacy .X files, but can export CMO, SDKMESH, and VBO files.
|
||||
|
||||
All content and source code for this package are subject to the terms of the MIT License.
|
||||
<http://opensource.org/licenses/MIT>.
|
||||
|
||||
Documentation is available at <https://github.com/Microsoft/DirectXMesh/wiki>.
|
||||
|
||||
For the latest version of DirectXMesh, bug reports, etc. please visit the project site.
|
||||
|
||||
http://go.microsoft.com/fwlink/?LinkID=324981
|
||||
|
||||
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the
|
||||
Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
|
||||
|
||||
https://opensource.microsoft.com/codeofconduct/
|
||||
|
||||
|
||||
---------------
|
||||
RELEASE HISTORY
|
||||
---------------
|
||||
|
||||
August 2, 2016
|
||||
Updated for VS 2015 Update 3 and Windows 10 SDK (14393)
|
||||
|
||||
July 19, 2016
|
||||
meshconvert command-line tool updated with -flipu switch
|
||||
|
||||
June 27, 2016
|
||||
Code cleanup
|
||||
|
||||
April 26, 2016
|
||||
Retired VS 2012 projects and obsolete adapter code
|
||||
Minor code and project file cleanup
|
||||
|
||||
November 30, 2015
|
||||
meshconvert command-line tool updated with -flipv and -flipz switches; removed -fliptc
|
||||
Updated for VS 2015 Update 1 and Windows 10 SDK (10586)
|
||||
|
||||
October 30, 2015
|
||||
Minor code cleanup
|
||||
|
||||
August 18, 2015
|
||||
Xbox One platform updates
|
||||
|
||||
July 29, 2015
|
||||
Updated for VS 2015 and Windows 10 SDK RTM
|
||||
Retired VS 2010 projects
|
||||
WaveFrontReader: updated utility to minimize debug output
|
||||
|
||||
July 8, 2015
|
||||
Minor SAL fix and project cleanup
|
||||
|
||||
March 27, 2015
|
||||
Added projects for Windows apps Technical Preview
|
||||
Fixed attributes usage for OptimizeFacesEx
|
||||
meshconvert: fix when importing from .vbo
|
||||
Minor code cleanup
|
||||
|
||||
November 14, 2014
|
||||
meshconvert: sample improvements and fixes
|
||||
Added workarounds for potential compiler bug when using VB reader/writer
|
||||
|
||||
October 28, 2014
|
||||
meshconvert command-line sample
|
||||
Added VBReader/VBWriter::GetElement method
|
||||
Added more ComputeTangentFrame overloads
|
||||
Explicit calling-convention annotation for public headers
|
||||
Windows phone 8.1 platform support
|
||||
Minor code and project cleanup
|
||||
|
||||
June 27, 2014
|
||||
Original release
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Загрузка…
Ссылка в новой задаче