splitting texture logic