# HG changeset patch # User Matti Hamalainen # Date 1574457062 -7200 # Node ID 2e85c180afdf792ae0d21b063e6ece692d7a0911 # Parent 1215fdd0a8abcb890fe10de961b5eebc2a062d2f Add support for specifying shader file filenames in the scene for each model. diff -r 1215fdd0a8ab -r 2e85c180afdf dmmodel.cpp --- a/dmmodel.cpp Fri Nov 22 22:57:14 2019 +0200 +++ b/dmmodel.cpp Fri Nov 22 23:11:02 2019 +0200 @@ -664,7 +664,7 @@ DMModel newmodel; if (tokens.size() != 2) { - return dmError(info, + return dmSyntaxError(info, "Keyword model expects a filename argument"); } @@ -674,6 +674,30 @@ info.state = 1; } else + if (info.state == 1 && (key == "shaderfile")) + { + if (tokens.size() != 3) + { + return dmSyntaxError(info, + "Keyword shaderfile expects shader type (fs, vs) and filename arguments"); + } + + std::string + &shtype = tokens[1], + &shfile = tokens[2]; + + if (shtype == "fs") + model->fragShaderFile = shfile; + else + if (shtype == "vs") + model->vertShaderFile = shfile; + else + { + return dmSyntaxError(info, + "Invalid shaderfile type '"+ shtype +"'"); + } + } + else if (info.state == 1 && (key == "translate" || key == "rotate" || key == "scale")) { DMVector3 vec; @@ -709,7 +733,7 @@ { if (tokens.size() != 2) { - return dmError(info, + return dmSyntaxError(info, "Expected argument for shininess"); }