11 enum ETileFlags : uint32_t
27 size_t getHashCode()
const
29 size_t result = level;
30 result = result * 16777619 + x;
31 result = result * 16777619 + y;
42 int getWidth()
const {
return extent.getWidth(); }
43 int getHeight()
const {
return extent.getHeight(); }
45 bool isSet(TileFlags::ETileFlags flag)
const {
return (flags & flag) == flag; }
47 bool isOOB()
const {
return isSet(TileFlags::OutOfBounds); }
48 bool isRequested()
const {
return isSet(TileFlags::Requested); }
49 bool isInvalidated()
const {
return isSet(TileFlags::Invalidated); }
50 bool isResident()
const {
return data && !isInvalidated(); }
52 void invalidate() { generation++; flags |= TileFlags::Invalidated; }
53 void setValid() { flags &=
~TileFlags::Invalidated; unsetRequested(); }
55 void setRequested() { flags |= TileFlags::Requested; }
56 void unsetRequested() { flags &=
~TileFlags::Requested; }
63 std::atomic<size_t> generation = 1;
64 std::atomic<uint32_t> usage = 0;
65 std::atomic<uint32_t> flags = TileFlags::None;
Contains all Cogs related functionality.