@ -40,26 +40,18 @@  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Check  if  config  flags  have  been  externally  provided  on  compilation  line  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# if !defined(EXTERNAL_CONFIG_FLAGS)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    # include  "config.h"          // Defines module configuration flags   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    # include  "config.h"     // Defines module configuration flags   
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# include  "utils.h"          // Required for: LoadFileData(), LoadFileText(), SaveFileText()  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# include  "utils.h"          // Required for: TRACELOG(), LoadFileData(), LoadFileText(), SaveFileText()  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# include  "rlgl.h"           // OpenGL abstraction layer to OpenGL 1.1, 2.1, 3.3+ or ES2  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# include  "raymath.h"        // Required for: Vector3, Quaternion and Matrix functionality  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# include  <stdio.h>          // Required for: sprintf()  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# include  <stdlib.h>         // Required for: malloc(), free()  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# include  <string.h>         // Required for: memcmp(), strlen()  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# include  <math.h>           // Required for: sinf(), cosf(), sqrtf(), fabsf()  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# if defined(_WIN32)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    # include  <direct.h>     // Required for: _chdir() [Used in LoadOBJ()]   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    # define CHDIR _chdir   
			
		 
		
	
		
			
			 
			 
			
			 
			
			# else  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    # include  <unistd.h>     // Required for: chdir() (POSIX) [Used in LoadOBJ()]   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    # define CHDIR chdir   
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# include  "rlgl.h"           // raylib OpenGL abstraction layer to OpenGL 1.1, 2.1, 3.3+ or ES2  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# if defined(SUPPORT_FILEFORMAT_OBJ) || defined(SUPPORT_FILEFORMAT_MTL)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    # define TINYOBJ_MALLOC RL_MALLOC   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    # define TINYOBJ_CALLOC RL_CALLOC   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -89,6 +81,14 @@  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    # include  "external/par_shapes.h"    // Shapes 3d parametric generation   
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# if defined(_WIN32)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    # include  <direct.h>     // Required for: _chdir() [Used in LoadOBJ()]   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    # define CHDIR _chdir   
			
		 
		
	
		
			
			 
			 
			
			 
			
			# else  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    # include  <unistd.h>     // Required for: chdir() (POSIX) [Used in LoadOBJ()]   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    # define CHDIR chdir   
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Defines  and  Macros  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -1051,13 +1051,13 @@ void DrawMeshInstanced(Mesh mesh, Material material, Matrix *transforms, int ins  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  That ' s  because  BeginMode3D ( )  sets  it  and  there  is  no  model - drawing  function   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  that  modifies  it ,  all  use  rlPushMatrix ( )  and  rlPopMatrix ( )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Matrix  matModel  =  MatrixIdentity ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Matrix  matView  =  rlGetMatrixModelview ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Matrix  matView  =  rlMatrixToMatrix ( rl GetMatrixModelview ()  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Matrix  matModelView  =  MatrixIdentity ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Matrix  matProjection  =  rlGetMatrixProjection ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Matrix  matProjection  =  rlMatrixToMatrix ( rl GetMatrixProjection ()  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Upload  view  and  projection  matrices  ( if  locations  available )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( material . shader . locs [ SHADER_LOC_MATRIX_VIEW ]  ! =  - 1 )  rlSetUniformMatrix ( material . shader . locs [ SHADER_LOC_MATRIX_VIEW ] ,  matView ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( material . shader . locs [ SHADER_LOC_MATRIX_PROJECTION ]  ! =  - 1 )  rlSetUniformMatrix ( material . shader . locs [ SHADER_LOC_MATRIX_PROJECTION ] ,  matProjection ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( material . shader . locs [ SHADER_LOC_MATRIX_VIEW ]  ! =  - 1 )  rlSetUniformMatrix ( material . shader . locs [ SHADER_LOC_MATRIX_VIEW ] ,  rlMatrixFromMatrix (  matView) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( material . shader . locs [ SHADER_LOC_MATRIX_PROJECTION ]  ! =  - 1 )  rlSetUniformMatrix ( material . shader . locs [ SHADER_LOC_MATRIX_PROJECTION ] ,  rlMatrixFromMatrix (  matProjection) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( instancing )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -1089,24 +1089,24 @@ void DrawMeshInstanced(Mesh mesh, Material material, Matrix *transforms, int ins  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /  Accumulate  internal  matrix  transform  ( push / pop )  and  view  matrix   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /  NOTE :  In  this  case ,  model  instance  transformation  must  be  computed  in  the  shader   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        matModelView  =  MatrixMultiply ( rlGetMatrixTransform ( ) ,  matView ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        matModelView  =  MatrixMultiply ( rlMatrixToMatrix ( rl GetMatrixTransform ()  ) ,  matView ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /  Model  transformation  matrix  is  send  to  shader  uniform  location :  SHADER_LOC_MATRIX_MODEL   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( material . shader . locs [ SHADER_LOC_MATRIX_MODEL ]  ! =  - 1 )  rlSetUniformMatrix ( material . shader . locs [ SHADER_LOC_MATRIX_MODEL ] ,  transforms [ 0 ] ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( material . shader . locs [ SHADER_LOC_MATRIX_MODEL ]  ! =  - 1 )  rlSetUniformMatrix ( material . shader . locs [ SHADER_LOC_MATRIX_MODEL ] ,  rlMatrixFromMatrix (  transforms[ 0 ])  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /  Accumulate  several  model  transformations :   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /     transforms [ 0 ] :  model  transformation  provided  ( includes  DrawModel ( )  params  combined  with  model . transform )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /     rlGetMatrixTransform ( ) :  rlgl  internal  transform  matrix  due  to  push / pop  matrix  stack   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        matModel  =  MatrixMultiply ( transforms [ 0 ] ,  rlGetMatrixTransform ( ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        matModel  =  MatrixMultiply ( transforms [ 0 ] ,  rlMatrixToMatrix ( rl GetMatrixTransform ()  ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			          
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /  Get  model - view  matrix   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        matModelView  =  MatrixMultiply ( matModel ,  matView ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Upload  model  normal  matrix  ( if  locations  available )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( material . shader . locs [ SHADER_LOC_MATRIX_NORMAL ]  ! =  - 1 )  rlSetUniformMatrix ( material . shader . locs [ SHADER_LOC_MATRIX_NORMAL ] ,  MatrixTranspose ( MatrixInvert ( matModel ) ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( material . shader . locs [ SHADER_LOC_MATRIX_NORMAL ]  ! =  - 1 )  rlSetUniformMatrix ( material . shader . locs [ SHADER_LOC_MATRIX_NORMAL ] ,  rlMatrixFromMatrix (  MatrixTranspose( MatrixInvert ( matModel)  ) ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Bind  active  texture  maps  ( if  available )   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -1199,11 +1199,11 @@ void DrawMeshInstanced(Mesh mesh, Material material, Matrix *transforms, int ins  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            / /  Setup  current  eye  viewport  ( half  screen  width )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            rlViewport ( eye * rlGetFramebufferWidth ( ) / 2 ,  0 ,  rlGetFramebufferWidth ( ) / 2 ,  rlGetFramebufferHeight ( ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            matModelViewProjection  =  MatrixMultiply ( MatrixMultiply ( matModelView ,  rlGetMatrixViewOffsetStereo ( eye ) ) ,  rlGetMatrixProjectionStereo ( eye ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            matModelViewProjection  =  MatrixMultiply ( MatrixMultiply ( matModelView ,  rlMatrixToMatrix ( rl GetMatrixViewOffsetStereo ( eye)  ) ) ,  rlMatrixToMatrix ( rl GetMatrixProjectionStereo ( eye)  ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /  Send  combined  model - view - projection  matrix  to  shader   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        rlSetUniformMatrix ( material . shader . locs [ SHADER_LOC_MATRIX_MVP ] ,  matModelViewProjection ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        rlSetUniformMatrix ( material . shader . locs [ SHADER_LOC_MATRIX_MVP ] ,  rlMatrixFromMatrix (  matModelViewProjection) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( instancing )  / /  Draw  mesh  instanced   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -1247,8 +1247,8 @@ void DrawMeshInstanced(Mesh mesh, Material material, Matrix *transforms, int ins  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /  Restore  rlgl  internal  modelview  and  projection  matrices   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        rlSetMatrixModelview ( matView ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        rlSetMatrixProjection ( matProjection ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        rlSetMatrixModelview ( rlMatrixFromMatrix (  matView) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        rlSetMatrixProjection ( rlMatrixFromMatrix (  matProjection) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -1371,7 +1371,11 @@ Material *LoadMaterials(const char *fileName, int *materialCount)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Set  materials  shader  to  default  ( DIFFUSE ,  SPECULAR ,  NORMAL )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( materials  ! =  NULL )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( unsigned  int  i  =  0 ;  i  <  count ;  i + + )  materials [ i ] . shader  =  rlGetShaderDefault ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( unsigned  int  i  =  0 ;  i  <  count ;  i + + )    
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            materials [ i ] . shader . id  =  rlGetShaderIdDefault ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            materials [ i ] . shader . locs  =  rlGetShaderLocsDefault ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    * materialCount  =  count ;   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -1384,8 +1388,12 @@ Material LoadMaterialDefault(void)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Material  material  =  {  0  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    material . maps  =  ( MaterialMap  * ) RL_CALLOC ( MAX_MATERIAL_MAPS ,  sizeof ( MaterialMap ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    material . shader  =  rlGetShaderDefault ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    material . maps [ MATERIAL_MAP_DIFFUSE ] . texture  =  rlGetTextureDefault ( ) ;    / /  White  texture  ( 1 x1  pixel )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Using  rlgl  default  shader   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    material . shader . id  =  rlGetShaderIdDefault ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    material . shader . locs  =  rlGetShaderLocsDefault ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			      
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Using  rlgl  default  texture  ( 1 x1  pixel ,  UNCOMPRESSED_R8G8B8A8 ,  1  mipmap )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    material . maps [ MATERIAL_MAP_DIFFUSE ] . texture  =  ( Texture2D ) {  rlGetTextureIdDefault ( ) ,  1 ,  1 ,  1 ,  PIXELFORMAT_UNCOMPRESSED_R8G8B8A8  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / / material . maps [ MATERIAL_MAP_NORMAL ] . texture ;          / /  NOTE :  By  default ,  not  set   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / / material . maps [ MATERIAL_MAP_SPECULAR ] . texture ;        / /  NOTE :  By  default ,  not  set   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -1399,12 +1407,12 @@ Material LoadMaterialDefault(void)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			void  UnloadMaterial ( Material  material )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Unload  material  shader  ( avoid  unloading  default  shader ,  managed  by  raylib )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( material . shader . id  ! =  rlGetShaderDefault ( ). id  )  UnloadShader ( material . shader ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( material . shader . id  ! =  rlGetShaderId Default ( ) )  UnloadShader ( material . shader ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Unload  loaded  texture  maps  ( avoid  unloading  default  texture ,  managed  by  raylib )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    for  ( int  i  =  0 ;  i  <  MAX_MATERIAL_MAPS ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( material . maps [ i ] . texture . id  ! =  rlGetTextureDefault ( ). id  )  rlUnloadTexture ( material . maps [ i ] . texture . id ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( material . maps [ i ] . texture . id  ! =  rlGetTextureId Default ( ) )  rlUnloadTexture ( material . maps [ i ] . texture . id ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    RL_FREE ( material . maps ) ;   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -3400,10 +3408,11 @@ static Model LoadOBJ(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			            / /  NOTE :  Uses  default  shader ,  which  only  supports  MATERIAL_MAP_DIFFUSE   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . materials [ m ]  =  LoadMaterialDefault ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . materials [ m ] . maps [ MATERIAL_MAP_DIFFUSE ] . texture  =  rlGetTextureDefault ( ) ;      / /  Get  default  texture ,  in  case  no  texture  is  defined   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            / /  Get  default  texture ,  in  case  no  texture  is  defined   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            / /  NOTE :  rlgl  default  texture  is  a  1 x1  pixel  UNCOMPRESSED_R8G8B8A8   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . materials [ m ] . maps [ MATERIAL_MAP_DIFFUSE ] . texture  =  ( Texture2D ) {  rlGetTextureIdDefault ( ) ,  1 ,  1 ,  1 ,  PIXELFORMAT_UNCOMPRESSED_R8G8B8A8  } ;     
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			            if  ( materials [ m ] . diffuse_texname  ! =  NULL )  model . materials [ m ] . maps [ MATERIAL_MAP_DIFFUSE ] . texture  =  LoadTexture ( materials [ m ] . diffuse_texname ) ;   / / char  * diffuse_texname ;  / /  map_Kd   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            else  model . materials [ m ] . maps [ MATERIAL_MAP_DIFFUSE ] . texture  =  rlGetTextureDefault ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . materials [ m ] . maps [ MATERIAL_MAP_DIFFUSE ] . color  =  ( Color ) {  ( unsigned  char ) ( materials [ m ] . diffuse [ 0 ] * 255.0f ) ,  ( unsigned  char ) ( materials [ m ] . diffuse [ 1 ] * 255.0f ) ,  ( unsigned  char ) ( materials [ m ] . diffuse [ 2 ] * 255.0f ) ,  255  } ;  / / float  diffuse [ 3 ] ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . materials [ m ] . maps [ MATERIAL_MAP_DIFFUSE ] . value  =  0.0f ;