Files
Aerofoil/PortabilityLayer/ScanlineMask.h

32 lines
665 B
C
Raw Normal View History

2019-12-26 12:58:58 -05:00
#pragma once
#include <stdint.h>
#include "SharedTypes.h"
#include "ScanlineMaskDataStorage.h"
2019-12-26 12:58:58 -05:00
namespace PortabilityLayer
{
class ScanlineMaskBuilder;
class ScanlineMaskIterator;
2019-12-26 12:58:58 -05:00
class ScanlineMask
{
public:
void Destroy();
const Rect &GetRect() const;
ScanlineMaskIterator GetIterator() const;
2019-12-26 12:58:58 -05:00
static ScanlineMask *Create(const Rect &rect, const ScanlineMaskBuilder &builder);
2019-12-26 12:58:58 -05:00
private:
explicit ScanlineMask(const Rect &rect, ScanlineMaskDataStorage dataStorage, const void *data, size_t numSpans);
2019-12-26 12:58:58 -05:00
~ScanlineMask();
const ScanlineMaskDataStorage m_dataStorage;
2019-12-26 12:58:58 -05:00
const void *m_data;
const size_t m_numSpans;
const Rect m_rect;
2019-12-26 12:58:58 -05:00
};
}