144fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang//
244fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang// Copyright (c) 2014 The ANGLE Project Authors. All rights reserved.
344fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang// Use of this source code is governed by a BSD-style license that can be
444fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang// found in the LICENSE file.
544fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang//
644fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang
744fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang// platform.h: Operating system specific includes and defines.
844fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang
944fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#ifndef COMMON_PLATFORM_H_
1044fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#define COMMON_PLATFORM_H_
1144fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang
1244fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#if defined(_WIN32) || defined(_WIN64)
1344fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   define ANGLE_PLATFORM_WINDOWS 1
1444fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#elif defined(__APPLE__)
1544fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   define ANGLE_PLATFORM_APPLE 1
1644fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   define ANGLE_PLATFORM_POSIX 1
1744fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#elif defined(__linux__)
1844fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   define ANGLE_PLATFORM_LINUX 1
1944fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   define ANGLE_PLATFORM_POSIX 1
2044fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#elif defined(ANDROID)
2144fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   define ANGLE_PLATFORM_ANDROID 1
2244fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   define ANGLE_PLATFORM_POSIX 1
2344fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#elif defined(__FreeBSD__) || \
2444fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang      defined(__OpenBSD__) || \
2544fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang      defined(__NetBSD__) || \
2644fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang      defined(__DragonFly__) || \
2744fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang      defined(__sun) || \
2844fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang      defined(__GLIBC__) || \
2944fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang      defined(__GNU__) || \
3044fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang      defined(__QNX__)
3144fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   define ANGLE_PLATFORM_POSIX 1
3244fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#else
3344fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   error Unsupported platform.
3444fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#endif
3544fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang
36fb8394756ea5940cf41e8276a81d54bacdceb5a6Shannon Woods#ifdef ANGLE_PLATFORM_WINDOWS
3744fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   ifndef STRICT
3844fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#       define STRICT 1
3944fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   endif
4044fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   ifndef WIN32_LEAN_AND_MEAN
4144fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#       define WIN32_LEAN_AND_MEAN 1
4244fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   endif
4344fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   ifndef NOMINMAX
4444fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#       define NOMINMAX 1
4544fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   endif
4644fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang
4744fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   include <windows.h>
4844fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   include <intrin.h>
4944fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang
5044fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   if defined(ANGLE_ENABLE_D3D9) || defined(ANGLE_ENABLE_PERF)
5144fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#       include <d3d9.h>
5244fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#       include <d3dcompiler.h>
5344fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   endif
5444fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang
5544fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   if defined(ANGLE_ENABLE_D3D11)
5644fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#       include <d3d10_1.h>
5744fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#       include <d3d11.h>
5844fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#       include <dxgi.h>
5944fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#       include <dxgi1_2.h>
6044fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#       include <d3dcompiler.h>
6144fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   endif
6244fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang
6344fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   undef near
6444fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#   undef far
6544fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#endif
6644fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang
6744fa7594bc518b1b004b1deb91d1c2f125df9f68Geoff Lang#endif // COMMON_PLATFORM_H_
68