From 872c39b24ecf4063f785ff3e8b2f940acd8c2d59 Mon Sep 17 00:00:00 2001 From: day Date: Sun, 15 Mar 2026 19:31:23 +0100 Subject: 100% obj/mtl parsing --- src/render/model.h | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'src/render/model.h') 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; -- cgit v1.2.3