yum-mirror/glslang
git clone https://git.yummers.dev/yum-mirror/glslang
ec7e23f4
main
1// 2// Copyright (C) 2016 Google, Inc. 3// 4// All rights reserved. 5// 6// Redistribution and use in source and binary forms, with or without 7// modification, are permitted provided that the following conditions 8// are met: 9// 10// Redistributions of source code must retain the above copyright 11// notice, this list of conditions and the following disclaimer. 12// 13// Redistributions in binary form must reproduce the above 14// copyright notice, this list of conditions and the following 15// disclaimer in the documentation and/or other materials provided 16// with the distribution. 17// 18// Neither the name of Google Inc. nor the names of its 19// contributors may be used to endorse or promote products derived 20// from this software without specific prior written permission. 21// 22// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 23// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 24// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 25// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 26// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 27// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 28// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 29// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 30// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 32// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 33// POSSIBILITY OF SUCH DAMAGE. 34 35#ifndef GLSLANG_SPIRV_LOGGER_H 36#define GLSLANG_SPIRV_LOGGER_H 37 38#include <string> 39#include <vector> 40#include "glslang/Include/visibility.h" 41 42namespace spv { 43 44// A class for holding all SPIR-V build status messages, including 45// missing/TBD functionalities, warnings, and errors. 46class GLSLANG_EXPORT SpvBuildLogger { 47public : 48SpvBuildLogger () {} 49 50// Registers a TBD functionality. 51void tbdFunctionality (const std ::string & f ); 52// Registers a missing functionality. 53void missingFunctionality (const std ::string & f ); 54 55// Logs a warning. 56void warning (const std ::string & w ) {warnings .push_back (w ); } 57// Logs an error. 58void error (const std ::string & e ) {errors .push_back (e ); } 59 60// Returns all messages accumulated in the order of: 61// TBD functionalities, missing functionalities, warnings, errors. 62std ::string getAllMessages ()const ; 63 64private : 65SpvBuildLogger (const SpvBuildLogger & ); 66 67std ::vector < std::string > tbdFeatures; 68std ::vector < std::string > missingFeatures; 69std ::vector < std::string > warnings; 70std ::vector < std::string > errors; 71}; 72 73} // end spv namespace 74 75#endif // GLSLANG_SPIRV_LOGGER_H