bool Parser::ParseBlendOperation(ngfx::BlendOperation & color, ngfx::BlendOperation & alpha) { if (!IsBlendOperation(Cur().Str())) { SpawnError("Failed to parse color blend operation"); return false; } color = blendOpKeywords[Consume().Str()]; if (Match(Token::TOK_COMMA)) { Token alphaTok = Consume(); if (!IsBlendOperation(alphaTok.Str())) { SpawnError("Failed to parse alpha blend operation"); return false; } alpha = blendOpKeywords[alphaTok.Str()]; } return true; }
bool IsStencilOperation(Token const & tok) { auto tokStr = (std::string)tok.Str(); return stencilKeywords.find(tokStr) != stencilKeywords.end(); }
bool IsComparisonFunction(Token const & tok) { auto tokStr = (std::string)tok.Str(); return comparisonKeywords.find(tokStr) != comparisonKeywords.end(); }