示例#1
0
/* outside thread, called before redraw notifiers, it moves finished preview over */
static void shader_preview_updatejob(void *spv)
{
	ShaderPreview *sp = spv;
	
	if (sp->id) {
		if (sp->pr_method == PR_NODE_RENDER) {
			if (GS(sp->id->name) == ID_MA) {
				Material *mat = (Material *)sp->id;
				
				if (sp->matcopy && mat->nodetree && sp->matcopy->nodetree)
					ntreeLocalSync(sp->matcopy->nodetree, mat->nodetree);
			}
			else if (GS(sp->id->name) == ID_TE) {
				Tex *tex = (Tex *)sp->id;
				
				if (sp->texcopy && tex->nodetree && sp->texcopy->nodetree)
					ntreeLocalSync(sp->texcopy->nodetree, tex->nodetree);
			}
			else if (GS(sp->id->name) == ID_WO) {
				World *wrld = (World *)sp->id;
				
				if (sp->worldcopy && wrld->nodetree && sp->worldcopy->nodetree)
					ntreeLocalSync(sp->worldcopy->nodetree, wrld->nodetree);
			}
			else if (GS(sp->id->name) == ID_LA) {
				Lamp *la = (Lamp *)sp->id;
				
				if (sp->lampcopy && la->nodetree && sp->lampcopy->nodetree)
					ntreeLocalSync(sp->lampcopy->nodetree, la->nodetree);
			}
		}
	}
}
示例#2
0
/* outside thread, called before redraw notifiers, it moves finished preview over */
static void shader_preview_updatejob(void *spv)
{
	ShaderPreview *sp= spv;
	
	if(sp->id) {
		if(sp->pr_method==PR_NODE_RENDER) {
			if( GS(sp->id->name) == ID_MA) {
				Material *mat= (Material *)sp->id;
				
				if(sp->matcopy && mat->nodetree && sp->matcopy->nodetree)
					ntreeLocalSync(sp->matcopy->nodetree, mat->nodetree);
			}
			else if( GS(sp->id->name) == ID_TE) {
				Tex *tex= (Tex *)sp->id;
				
				if(sp->texcopy && tex->nodetree && sp->texcopy->nodetree)
					ntreeLocalSync(sp->texcopy->nodetree, tex->nodetree);
			}
		}		
	}
}