2 def __init__(self, context):
9 self.window_manager = context.window_manager
10 self.window_manager.progress_begin(0.0, 1.0)
12 self.window_manager = None
14 def push_task(self, task, low, high):
15 self.stack.append((self.task, self.start, self.delta))
16 self.set_task(task, low, high)
18 def push_task_slice(self, task, index, count):
19 self.push_task(task, index/count, (index+1)/count)
25 self.set_progress(1.0)
26 self.task, self.start, self.delta = self.stack.pop()
28 def set_task(self, task, low, high):
30 outer = self.stack[-1]
32 task = "{}: {}".format(outer[0], task)
33 low = outer[1]+low*outer[2]
34 high = outer[1]+high*outer[2]
40 self.set_progress(0.0)
42 def set_task_slice(self, task, index, count):
43 self.set_task(task, index/count, (index+1)/count)
45 def set_progress(self, value):
46 value = self.start+self.delta*value
47 if value>self.last+0.01:
48 if self.window_manager:
49 self.window_manager.progress_update(value)
53 def linear_to_srgb(l):
57 return 1.055*(l**(1/2.4))-0.055
59 def get_colormap(srgb):