|  | @@ -22,6 +22,9 @@
 | 
											
												
													
														|  |  extern LA MAIN;
 |  |  extern LA MAIN;
 | 
											
												
													
														|  |  extern struct _tnsMain *T;
 |  |  extern struct _tnsMain *T;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +void tnsRemoveMaterial(tnsMaterial* mat);
 | 
											
												
													
														|  | 
 |  | +void tns_InvalidateMeshWithMaterial(tnsMaterial* m);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  void la_ReadGLocation(tnsOffscreen* off, int x, int y,float* xyz0){
 |  |  void la_ReadGLocation(tnsOffscreen* off, int x, int y,float* xyz0){
 | 
											
												
													
														|  |      if(!off->pColor[2]){ tnsVectorSet3(xyz0,0,0,0); return; }
 |  |      if(!off->pColor[2]){ tnsVectorSet3(xyz0,0,0,0); return; }
 | 
											
												
													
														|  |      glBindFramebuffer(GL_READ_FRAMEBUFFER, off->FboHandle);
 |  |      glBindFramebuffer(GL_READ_FRAMEBUFFER, off->FboHandle);
 | 
											
										
											
												
													
														|  | @@ -1929,7 +1932,7 @@ int OPINV_RemoveRootObject(laOperator *a, laEvent *e){
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  int OPINV_NewMaterial(laOperator *a, laEvent *e){
 |  |  int OPINV_NewMaterial(laOperator *a, laEvent *e){
 | 
											
												
													
														|  |      tnsMaterial* mat=tnsCreateMaterial("Material"); laNotifyUsers("tns.world.materials");
 |  |      tnsMaterial* mat=tnsCreateMaterial("Material"); laNotifyUsers("tns.world.materials");
 | 
											
												
													
														|  | -    if(!a->This && a->This->EndInstance) return;
 |  | 
 | 
											
												
													
														|  | 
 |  | +    if(!a->This && a->This->EndInstance) return LA_CANCELED;
 | 
											
												
													
														|  |      laPropContainer* pc=la_EnsureSubTarget(a->This->LastPs->p,a->This->EndInstance);
 |  |      laPropContainer* pc=la_EnsureSubTarget(a->This->LastPs->p,a->This->EndInstance);
 | 
											
												
													
														|  |      if(pc==TNS_PC_OBJECT_MESH){
 |  |      if(pc==TNS_PC_OBJECT_MESH){
 | 
											
												
													
														|  |          tnsMeshObject* mo=a->This->EndInstance; if(mo->CurrentMaterial){
 |  |          tnsMeshObject* mo=a->This->EndInstance; if(mo->CurrentMaterial){
 |