| // |
| // Copyright 2014 The ANGLE Project Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| // |
| |
| #ifndef LIBANGLE_FEATURES_H_ |
| #define LIBANGLE_FEATURES_H_ |
| |
| #include "common/platform.h" |
| |
| #define ANGLE_DISABLED 0 |
| #define ANGLE_ENABLED 1 |
| |
| // Feature defaults |
| |
| // Direct3D9EX |
| // The "Debug This Pixel..." feature in PIX often fails when using the |
| // D3D9Ex interfaces. In order to get debug pixel to work on a Vista/Win 7 |
| // machine, define "ANGLE_D3D9EX=0" in your project file. |
| #if !defined(ANGLE_D3D9EX) |
| # define ANGLE_D3D9EX ANGLE_ENABLED |
| #endif |
| |
| // Vsync |
| // ENABLED allows Vsync to be configured at runtime |
| // DISABLED disallows Vsync |
| #if !defined(ANGLE_VSYNC) |
| # define ANGLE_VSYNC ANGLE_ENABLED |
| #endif |
| |
| // Program binary loading |
| #if !defined(ANGLE_PROGRAM_BINARY_LOAD) |
| # define ANGLE_PROGRAM_BINARY_LOAD ANGLE_ENABLED |
| #endif |
| |
| // Append HLSL assembly to shader debug info. Defaults to enabled in Debug and off in Release. |
| #if !defined(ANGLE_APPEND_ASSEMBLY_TO_SHADER_DEBUG_INFO) |
| # if !defined(NDEBUG) |
| # define ANGLE_APPEND_ASSEMBLY_TO_SHADER_DEBUG_INFO ANGLE_ENABLED |
| # else |
| # define ANGLE_APPEND_ASSEMBLY_TO_SHADER_DEBUG_INFO ANGLE_DISABLED |
| # endif // !defined(NDEBUG) |
| #endif // !defined(ANGLE_APPEND_ASSEMBLY_TO_SHADER_DEBUG_INFO) |
| |
| // Program link validation of precisions for uniforms. This feature was |
| // requested by developers to allow non-conformant shaders to be used which |
| // contain mismatched precisions. |
| // ENABLED validate that precision for uniforms match between vertex and fragment shaders |
| // DISABLED allow precision for uniforms to differ between vertex and fragment shaders |
| #if !defined(ANGLE_PROGRAM_LINK_VALIDATE_UNIFORM_PRECISION) |
| # define ANGLE_PROGRAM_LINK_VALIDATE_UNIFORM_PRECISION ANGLE_ENABLED |
| #endif |
| |
| // Controls if our threading code uses std::async or falls back to single-threaded operations. |
| // Note that we can't easily use std::async in UWPs due to UWP threading restrictions. |
| #if !defined(ANGLE_STD_ASYNC_WORKERS) && !defined(ANGLE_ENABLE_WINDOWS_UWP) |
| # define ANGLE_STD_ASYNC_WORKERS ANGLE_ENABLED |
| #endif // !defined(ANGLE_STD_ASYNC_WORKERS) && & !defined(ANGLE_ENABLE_WINDOWS_UWP) |
| |
| #endif // LIBANGLE_FEATURES_H_ |