mirror of
https://github.com/ncblakely/GiantsTools
synced 2024-11-22 14:15:37 +01:00
153 lines
5.1 KiB
C++
153 lines
5.1 KiB
C++
//--------------------------------------------------------------------------------------
|
|
// File: pch.h
|
|
//
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// Licensed under the MIT License.
|
|
//
|
|
// http://go.microsoft.com/fwlink/?LinkId=248929
|
|
//--------------------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
|
|
// Off by default warnings
|
|
#pragma warning(disable : 4619 4616 4061 4265 4365 4571 4623 4625 4626 4628 4668 4710 4711 4746 4774 4820 4987 5026 5027 5031 5032 5039 5045 5219 26812)
|
|
// C4619/4616 #pragma warning warnings
|
|
// C4061 enumerator 'X' in switch of enum 'X' is not explicitly handled by a case label
|
|
// C4265 class has virtual functions, but destructor is not virtual
|
|
// C4365 signed/unsigned mismatch
|
|
// C4571 behavior change
|
|
// C4623 default constructor was implicitly defined as deleted
|
|
// C4625 copy constructor was implicitly defined as deleted
|
|
// C4626 assignment operator was implicitly defined as deleted
|
|
// C4628 digraphs not supported
|
|
// C4668 not defined as a preprocessor macro
|
|
// C4710 function not inlined
|
|
// C4711 selected for automatic inline expansion
|
|
// C4746 volatile access of '<expression>' is subject to /volatile:<iso|ms> setting
|
|
// C4774 format string expected in argument 3 is not a string literal
|
|
// C4820 padding added after data member
|
|
// C4987 nonstandard extension used
|
|
// C5026 move constructor was implicitly defined as deleted
|
|
// C5027 move assignment operator was implicitly defined as deleted
|
|
// C5031/5032 push/pop mismatches in windows headers
|
|
// C5039 pointer or reference to potentially throwing function passed to extern C function under - EHc
|
|
// C5045 Spectre mitigation warning
|
|
// C5219 implicit conversion from 'int' to 'float', possible loss of data
|
|
// 26812: The enum type 'x' is unscoped. Prefer 'enum class' over 'enum' (Enum.3).
|
|
|
|
// Windows 8.1 SDK related Off by default warnings
|
|
#pragma warning(disable : 4471 4917 4986 5029)
|
|
// C4471 forward declaration of an unscoped enumeration must have an underlying type
|
|
// C4917 a GUID can only be associated with a class, interface or namespace
|
|
// C4986 exception specification does not match previous declaration
|
|
// C5029 nonstandard extension used
|
|
|
|
// Xbox One XDK related Off by default warnings
|
|
#pragma warning(disable : 4643 5043)
|
|
// C4643 Forward declaring in namespace std is not permitted by the C++ Standard
|
|
// C5043 exception specification does not match previous declaration
|
|
|
|
#ifdef __INTEL_COMPILER
|
|
#pragma warning(disable : 161 2960 3280)
|
|
// warning #161: unrecognized #pragma
|
|
// message #2960: allocation may not satisfy the type's alignment; consider using <aligned_new> header
|
|
// message #3280: declaration hides member
|
|
#endif
|
|
|
|
#ifdef __clang__
|
|
#pragma clang diagnostic ignored "-Wc++98-compat"
|
|
#pragma clang diagnostic ignored "-Wc++98-compat-pedantic"
|
|
#pragma clang diagnostic ignored "-Wc++98-compat-local-type-template-args"
|
|
#pragma clang diagnostic ignored "-Wcovered-switch-default"
|
|
#pragma clang diagnostic ignored "-Wexit-time-destructors"
|
|
#pragma clang diagnostic ignored "-Wfloat-equal"
|
|
#pragma clang diagnostic ignored "-Wglobal-constructors"
|
|
#pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
|
|
#pragma clang diagnostic ignored "-Wlanguage-extension-token"
|
|
#pragma clang diagnostic ignored "-Wmissing-variable-declarations"
|
|
#pragma clang diagnostic ignored "-Wmicrosoft-include"
|
|
#pragma clang diagnostic ignored "-Wnested-anon-types"
|
|
#pragma clang diagnostic ignored "-Wreserved-id-macro"
|
|
#pragma clang diagnostic ignored "-Wswitch-enum"
|
|
#pragma clang diagnostic ignored "-Wunknown-pragmas"
|
|
#pragma clang diagnostic ignored "-Wunused-const-variable"
|
|
#pragma clang diagnostic ignored "-Wunused-member-function"
|
|
#endif
|
|
|
|
#ifndef WIN32_LEAN_AND_MEAN
|
|
#define WIN32_LEAN_AND_MEAN
|
|
#endif
|
|
|
|
#pragma warning(push)
|
|
#pragma warning(disable : 4005)
|
|
#define NOMINMAX
|
|
#define NODRAWTEXT
|
|
#define NOGDI
|
|
#define NOBITMAP
|
|
#define NOMCX
|
|
#define NOSERVICE
|
|
#define NOHELP
|
|
#pragma warning(pop)
|
|
|
|
#include <Windows.h>
|
|
|
|
#ifndef _WIN32_WINNT_WIN10
|
|
#define _WIN32_WINNT_WIN10 0x0A00
|
|
#endif
|
|
|
|
#ifndef WINAPI_FAMILY_GAMES
|
|
#define WINAPI_FAMILY_GAMES 6
|
|
#endif
|
|
|
|
#ifdef _GAMING_XBOX
|
|
#error This version of DirectX Tool Kit not supported for GDK
|
|
#elif defined(_XBOX_ONE) && defined(_TITLE)
|
|
#include <d3d11_x.h>
|
|
#else
|
|
#include <d3d11_1.h>
|
|
#endif
|
|
|
|
#define _XM_NO_XMVECTOR_OVERLOADS_
|
|
|
|
#include <DirectXMath.h>
|
|
#include <DirectXPackedVector.h>
|
|
#include <DirectXCollision.h>
|
|
|
|
#include <algorithm>
|
|
#include <array>
|
|
#include <cstddef>
|
|
#include <cstdint>
|
|
#include <exception>
|
|
#include <list>
|
|
#include <map>
|
|
#include <memory>
|
|
#include <set>
|
|
#include <stdexcept>
|
|
#include <string>
|
|
#include <type_traits>
|
|
#include <utility>
|
|
#include <vector>
|
|
|
|
#pragma warning(push)
|
|
#pragma warning(disable : 4702)
|
|
#include <functional>
|
|
#pragma warning(pop)
|
|
|
|
#include <malloc.h>
|
|
|
|
#pragma warning(push)
|
|
#pragma warning(disable : 4467 5038 5204 5220)
|
|
#include <wrl.h>
|
|
#pragma warning(pop)
|
|
|
|
#include <wincodec.h>
|
|
|
|
#if (defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_APP)) || (defined(_XBOX_ONE) && defined(_TITLE))
|
|
#pragma warning(push)
|
|
#pragma warning(disable: 4471 5204)
|
|
#include <Windows.UI.Core.h>
|
|
#pragma warning(pop)
|
|
#endif
|
|
|
|
#include <mutex>
|