Lines Matching refs:mat

245 _glmLoadTexture(GLMmaterial *mat)
247 if (mat->map_kd) {
252 glGenTextures(1, &mat->texture_kd);
254 image = LoadRGBImage( mat->map_kd, &imgWidth, &imgHeight, &imgFormat );
256 /*fprintf(stderr, "Couldn't open texture %s\n", mat->map_kd);*/
257 free(mat->map_kd);
258 mat->map_kd = NULL;
259 mat->texture_kd = 0;
263 printf("load texture %s %d x %d\n", mat->map_kd, imgWidth, imgHeight);
265 glBindTexture(GL_TEXTURE_2D, mat->texture_kd);
283 GLMmaterial *mat = &model->materials[i];
284 _glmLoadTexture(mat);
420 glmShaderMaterial(GLMmaterial *mat)
426 if (!mat->prog) {
430 const char *diffuseTex = mat->texture_kd ? "true" : "false";
431 const char *specularTex = mat->texture_ks ? "true" : "false";
441 mat->prog = LinkShaders(vs, fs);
442 assert(mat->prog);
444 glUseProgram(mat->prog);
446 mat->uAmbient = glGetUniformLocation(mat->prog, "ambient");
447 mat->uDiffuse = glGetUniformLocation(mat->prog, "diffuse");
448 mat->uSpecular = glGetUniformLocation(mat->prog, "specular");
449 mat->uShininess = glGetUniformLocation(mat->prog, "shininess");
450 mat->uDiffTex = glGetUniformLocation(mat->prog, "diffTex");
451 mat->uSpecTex = glGetUniformLocation(mat->prog, "specTex");
453 uAmbientLight = glGetUniformLocation(mat->prog, "ambientLight");
454 uDiffuseLight = glGetUniformLocation(mat->prog, "diffuseLight");
455 uSpecularLight = glGetUniformLocation(mat->prog, "specularLight");
457 glUniform4fv(mat->uAmbient, 1, mat->ambient);
458 glUniform4fv(mat->uDiffuse, 1, mat->diffuse);
459 glUniform4fv(mat->uSpecular, 1, mat->specular);
460 glUniform1f(mat->uShininess, mat->shininess);
461 glUniform1i(mat->uDiffTex, 0);
462 glUniform1i(mat->uSpecTex, 1);
470 if (mat->texture_ks)
471 glBindTexture(GL_TEXTURE_CUBE_MAP, mat->texture_ks);
476 if (mat->texture_kd)
477 glBindTexture(GL_TEXTURE_2D, mat->texture_kd);
481 if (mat->diffuse[3] < 1.0) {
489 glUseProgram(mat->prog);