# HG changeset patch # User John Tsiombikas # Date 1380254767 -10800 # Node ID f5fdefbb7a1dd5ad715c55e02bf0a1fadbce4a41 # Parent b35427826b6028d4a30aaf10ea23ee441ef93ffd added materials loading to goatview diff -r b35427826b60 -r f5fdefbb7a1d goatview/src/main.c --- a/goatview/src/main.c Fri Sep 27 06:58:37 2013 +0300 +++ b/goatview/src/main.c Fri Sep 27 07:06:07 2013 +0300 @@ -102,7 +102,24 @@ int *vidx; if((mtl = goat3d_get_mesh_mtl(mesh))) { - /* TODO */ + float white[] = {1, 1, 1, 1}; + float black[] = {0, 0, 0, 0}; + float zero = 0.0; + const float *diffuse, *specular, *shininess; + + if(!(diffuse = goat3d_get_mtl_attrib(mtl, GOAT3D_MAT_ATTR_DIFFUSE))) { + diffuse = white; + } + if(!(specular = goat3d_get_mtl_attrib(mtl, GOAT3D_MAT_ATTR_SPECULAR))) { + specular = black; + } + if(!(shininess = goat3d_get_mtl_attrib(mtl, GOAT3D_MAT_ATTR_SHININESS))) { + shininess = &zero; + } + + glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, diffuse); + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular); + glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, *shininess); } vnum = goat3d_get_mesh_attrib_count(mesh, GOAT3D_MESH_ATTR_VERTEX);