diff options
| author | day <day@national.shitposting.agency> | 2026-03-15 19:31:23 +0100 |
|---|---|---|
| committer | day <day@national.shitposting.agency> | 2026-03-15 19:31:23 +0100 |
| commit | 872c39b24ecf4063f785ff3e8b2f940acd8c2d59 (patch) | |
| tree | 9396ee9085f4d99440605be923d5115fad18d45e /src/render/model.h | |
| parent | fed4ed30fa727e528aa4ee3fad1b5123e022c6be (diff) | |
100% obj/mtl parsing
Diffstat (limited to 'src/render/model.h')
| -rw-r--r-- | src/render/model.h | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/render/model.h b/src/render/model.h index 0c61fdc..63b053c 100644 --- a/src/render/model.h +++ b/src/render/model.h @@ -36,7 +36,8 @@ namespace MTL { Ke = ( 'K' | ( 'e' << 8 ) ), Ni = ( 'N' | ( 'i' << 8 ) ), d = ( 'd' | ( ' ' << 8 ) ), - illum = ( 'i' | ( 'l' << 8 ) ) + illum = ( 'i' | ( 'l' << 8 ) ), + map_Kd = ( 'm' | ( 'a' << 8 ) ) }; struct MTLDATA { @@ -49,6 +50,7 @@ namespace MTL { F32 Ni; F32 d; I32 illum; + STR map_Kd; }; struct MTLLIB { @@ -131,8 +133,19 @@ namespace MTL { break; } } break; + case LINE_TYPES::map_Kd: { + char* start = f_mtl + i + 7; + char* end = start; + while( *end && *end != '\n' ) ++end; + U32 len = end - start; + STR temp; + temp.reserve( len + 1 ); + memcpy( temp, start, len ); + temp.data[len] = 0; + mtl.data[mtl.data.size - 1].map_Kd = temp.data; + } break; case LINE_TYPES::comment: break; - default: dlog( "unhandled char combo %c%c\n", c0, c1 ); break; + default: dlog( "mtl_from_file() : unhandled char combo %c%c\n", c0, c1 ); break; } while( f_mtl[i] && f_mtl[i] != '\n' ) ++i; @@ -309,7 +322,7 @@ namespace OBJ { case LINE_TYPES::comment: case LINE_TYPES::o: case LINE_TYPES::s: break; - default: dlog( "unhandled char combo %c%c\n", c0, c1 ); break; + default: dlog( "obj_from_file() : unhandled char combo %c%c\n", c0, c1 ); break; } while( f_obj[i] && f_obj[i] != '\n' ) ++i; |
