Revision control
- //
- // Redistribution and use in source and binary forms, with or without
- // modification, are permitted provided that the following conditions
- // are met:
- // * Redistributions of source code must retain the above copyright
- // notice, this list of conditions and the following disclaimer.
- // * Redistributions in binary form must reproduce the above copyright
- // notice, this list of conditions and the following disclaimer in the
- // documentation and/or other materials provided with the distribution.
- // * Neither the name of NVIDIA CORPORATION nor the names of its
- // contributors may be used to endorse or promote products derived
- // from this software without specific prior written permission.
- //
- // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
- // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- // OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- //
- // Copyright (c) 2008-2021 NVIDIA Corporation. All rights reserved.
- // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
- // Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
-
- #ifndef PSFOUNDATION_PSWINDOWSINCLUDE_H
- #define PSFOUNDATION_PSWINDOWSINCLUDE_H
-
- #include "Ps.h"
-
- #ifndef _WIN32
- #error "This file should only be included by Windows builds!!"
- #endif
-
- #ifdef _WINDOWS_ // windows already included
- #error "Only include windows.h through this file!!"
- #endif
-
- // We only support >= Windows XP, and we need this for critical section and
- // Setting this hides some important APIs (e.g. LoadPackagedLibrary), so don't do it
- #if !PX_UWP
- #define _WIN32_WINNT 0x0501
- #else
- #define _WIN32_WINNT 0x0602
- #endif
-
- // turn off as much as we can for windows. All we really need is the thread functions(critical sections/Interlocked*
- // etc)
- #define NOGDICAPMASKS
- #define NOVIRTUALKEYCODES
- #define NOWINMESSAGES
- #define NOWINSTYLES
- #define NOSYSMETRICS
- #define NOMENUS
- #define NOICONS
- #define NOKEYSTATES
- #define NOSYSCOMMANDS
- #define NORASTEROPS
- #define NOSHOWWINDOW
- #define NOATOM
- #define NOCLIPBOARD
- #define NOCOLOR
- #define NOCTLMGR
- #define NODRAWTEXT
- #define NOGDI
- #define NOMB
- #define NOMEMMGR
- #define NOMETAFILE
- #define NOMINMAX
- #define NOOPENFILE
- #define NOSCROLL
- #define NOSERVICE
- #define NOSOUND
- #define NOTEXTMETRIC
- #define NOWH
- #define NOWINOFFSETS
- #define NOCOMM
- #define NOKANJI
- #define NOHELP
- #define NOPROFILER
- #define NODEFERWINDOWPOS
- #define NOMCX
- #define WIN32_LEAN_AND_MEAN
- // We need a slightly wider API surface for e.g. MultiByteToWideChar
- #if !PX_UWP
- #define NOUSER
- #define NONLS
- #define NOMSG
- #endif
-
- #pragma warning(push)
- #pragma warning(disable : 4668) //'symbol' is not defined as a preprocessor macro, replacing with '0' for 'directives'
- #include <windows.h>
- #pragma warning(pop)
-
- #if PX_SSE2
- #include <xmmintrin.h>
- #endif
-
- #endif // #ifndef PSFOUNDATION_PSWINDOWSINCLUDE_H