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