| e8555c89 Andy McCall |
1 |
#include "DoubledFrame.hh" |
| 2 |
|
| 3 |
#include "narrow.hh" |
| 4 |
|
| 5 |
namespace openmsx { |
| 6 |
|
| 7 |
void DoubledFrame::init(FrameSource* field_, int skip_) |
| 8 |
{ |
| 9 |
FrameSource::init(FieldType::NONINTERLACED); |
| 10 |
field = field_; |
| 11 |
skip = skip_; |
| 12 |
setHeight(2 * field->getHeight()); |
| 13 |
} |
| 14 |
|
| 15 |
unsigned DoubledFrame::getLineWidth(unsigned line) const |
| 16 |
{ |
| 17 |
int t = narrow<int>(line) - skip; |
| 18 |
return (t >= 0) ? field->getLineWidth(t / 2) : 1; |
| 19 |
} |
| 20 |
|
| 21 |
std::span<const FrameSource::Pixel> DoubledFrame::getUnscaledLine( |
| 22 |
unsigned line, std::span<Pixel> helpBuf) const |
| 23 |
{ |
| 24 |
return field->getUnscaledLine(std::max(narrow<int>(line) - skip, 0) / 2, helpBuf); |
| 25 |
} |
| 26 |
|
| 27 |
} |