blob: d8fdabba341e823345c647fa5edd36b22052b4c5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#ifndef LOAD_PROGRESS_H
#define LOAD_PROGRESS_H
class LoadProgress
{
volatile float* progressIndicator;
float progressInterval;
public:
float totalItems;
float processedItems;
LoadProgress(unsigned total, float interval, float* indicator) : processedItems(0), totalItems(total), progressIndicator(indicator), progressInterval (interval) {}
void ItemProcessed (int count = 1)
{
processedItems = std::min (totalItems, processedItems + count);
if (progressIndicator)
*progressIndicator = totalItems == 0 ? 1.0f : progressInterval * processedItems / totalItems;
}
};
#endif
|