void Sampler::unload()
{
- // TODO check which params actually need refreshing
- if(!owner->get_id())
- dirty_params = -1;
+ if(owner && !owner->get_id())
+ {
+ if(min_filter!=NEAREST_MIPMAP_LINEAR)
+ dirty_params |= MIN_FILTER;
+ if(mag_filter!=LINEAR)
+ dirty_params |= MAG_FILTER;
+ if(max_anisotropy!=1.0f)
+ dirty_params |= MAX_ANISOTROPY;
+ if(wrap_s!=REPEAT)
+ dirty_params |= WRAP_S;
+ if(wrap_t!=REPEAT)
+ dirty_params |= WRAP_T;
+ if(wrap_r!=REPEAT)
+ dirty_params |= WRAP_R;
+ if(compare || cmp_func!=LEQUAL)
+ dirty_params |= COMPARE;
+ }
}