mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-04 18:41:51 +00:00
fix obj parser on Windows
This commit is contained in:
parent
a02d626c0a
commit
b6ceadcee7
3 changed files with 11 additions and 2 deletions
|
|
@ -208,6 +208,14 @@ std::string_view BasicParser::readUntil(char c) {
|
|||
return source.substr(start, pos-start);
|
||||
}
|
||||
|
||||
std::string_view BasicParser::readUntilEOL() {
|
||||
int start = pos;
|
||||
while (hasNext() && source[pos] != '\r' && source[pos] != '\n') {
|
||||
pos++;
|
||||
}
|
||||
return source.substr(start, pos-start);
|
||||
}
|
||||
|
||||
std::string BasicParser::parseName() {
|
||||
char c = peek();
|
||||
if (!is_identifier_start(c)) {
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@ protected:
|
|||
|
||||
public:
|
||||
std::string_view readUntil(char c);
|
||||
std::string_view readUntilEOL();
|
||||
std::string parseName();
|
||||
bool hasNext();
|
||||
char peek();
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ public:
|
|||
while (hasNext()) {
|
||||
if (peek() != '#' && parseName() == "usemtl") {
|
||||
skipWhitespace();
|
||||
texture = readUntil('\n');
|
||||
texture = readUntilEOL();
|
||||
break;
|
||||
}
|
||||
skipLine();
|
||||
|
|
@ -103,7 +103,7 @@ public:
|
|||
auto cmd = parseName();
|
||||
if (cmd == "usemtl") {
|
||||
skipWhitespace();
|
||||
texture = readUntil('\n');
|
||||
texture = readUntilEOL();
|
||||
mesh = &model->addMesh(texture);
|
||||
break;
|
||||
} else if (cmd == "f") {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue