1 /* Copyright (C) 2012 Wildfire Games. 2 * This file is part of 0 A.D. 3 * 4 * 0 A.D. is free software: you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation, either version 2 of the License, or 7 * (at your option) any later version. 8 * 9 * 0 A.D. is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with 0 A.D. If not, see <http://www.gnu.org/licenses/>. 16 */ 17 18 #ifndef INCLUDED_PREPROCESSORWRAPPER 19 #define INCLUDED_PREPROCESSORWRAPPER 20 21 #include "ps/Preprocessor.h" 22 #include "ps/CStr.h" 23 24 class CShaderDefines; 25 26 /** 27 * Convenience wrapper around CPreprocessor. 28 */ 29 class CPreprocessorWrapper 30 { 31 public: 32 void AddDefine(const char* name, const char* value); 33 34 void AddDefines(const CShaderDefines& defines); 35 36 bool TestConditional(const CStr& expr); 37 38 CStr Preprocess(const CStr& input); 39 40 private: 41 CPreprocessor m_Preprocessor; 42 }; 43 44 #endif // INCLUDED_PREPROCESSORWRAPPER 45