1 // 2 // SuperTuxKart - a fun racing game with go-kart 3 // Copyright (C) 2014-2015 Joerg Henrichs 4 // 5 // This program is free software; you can redistribute it and/or 6 // modify it under the terms of the GNU General Public License 7 // as published by the Free Software Foundation; either version 3 8 // of the License, or (at your option) any later version. 9 // 10 // This program is distributed in the hope that it will be useful, 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 // GNU General Public License for more details. 14 // 15 // You should have received a copy of the GNU General Public License 16 // along with this program; if not, write to the Free Software 17 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 19 #ifndef HEADER_GRAPHICS_RESTrICTIONS_HPP 20 #define HEADER_GRAPHICS_RESTrICTIONS_HPP 21 22 /** 23 * \defgroup graphics 24 */ 25 26 #include <string> 27 #include <vector> 28 29 namespace GraphicsRestrictions 30 { 31 /** Which graphical restrictions can be defined. Note that 32 * the variable m_names_of_restrictions in the cpp file contains the 33 * string representation used in the XML files. Any change to this 34 * type declaration needs a change in that variable as well. */ 35 enum GraphicsRestrictionsType 36 { 37 GR_UNIFORM_BUFFER_OBJECT, 38 GR_GEOMETRY_SHADER, 39 GR_DRAW_INDIRECT, 40 GR_TEXTURE_VIEW, 41 GR_TEXTURE_STORAGE, 42 GR_IMAGE_LOAD_STORE, 43 GR_BASE_INSTANCE, 44 GR_COMPUTE_SHADER, 45 GR_ARRAYS_OF_ARRAYS, 46 GR_SHADER_STORAGE_BUFFER_OBJECT, 47 GR_MULTI_DRAW_INDIRECT, 48 GR_SHADER_ATOMIC_COUNTERS, 49 GR_BUFFER_STORAGE, 50 GR_BINDLESS_TEXTURE, 51 GR_EXT_TEXTURE_COMPRESSION_S3TC, 52 GR_AMD_VERTEX_SHADER_LAYER, 53 GR_EXPLICIT_ATTRIB_LOCATION, 54 GR_TEXTURE_FILTER_ANISOTROPIC, 55 GR_TEXTURE_FORMAT_BGRA8888, 56 GR_COLOR_BUFFER_FLOAT, 57 GR_DRIVER_RECENT_ENOUGH, 58 GR_HIGHDEFINITION_TEXTURES, 59 GR_HIGHDEFINITION_TEXTURES_256, 60 GR_ADVANCED_PIPELINE, 61 GR_CORRECT_10BIT_NORMALIZATION, 62 GR_GI, 63 GR_FORCE_LEGACY_DEVICE, 64 GR_VERTEX_ID_WORKING, 65 GR_HARDWARE_SKINNING, 66 GR_NPOT_TEXTURES, 67 GR_TEXTURE_BUFFER_OBJECT, 68 GR_SYSTEM_SCREEN_KEYBOARD, 69 GR_COUNT /** MUST be last entry. */ 70 } ; 71 72 void init(const std::string &driver_version, 73 const std::string &card_name, 74 const std::string &vendor ); 75 bool isDisabled(GraphicsRestrictionsType type); 76 77 void unitTesting(); 78 }; // HardwareStats 79 80 #endif 81