openMSX
DoubledFrame.cc
Go to the documentation of this file.
1#include "DoubledFrame.hh"
2#include "narrow.hh"
3#include <cstdint>
4
5namespace openmsx {
6
7void DoubledFrame::init(FrameSource* field_, int skip_)
8{
10 field = field_;
11 skip = skip_;
12 setHeight(2 * field->getHeight());
13}
14
15unsigned DoubledFrame::getLineWidth(unsigned line) const
16{
17 int t = narrow<int>(line) - skip;
18 return (t >= 0) ? field->getLineWidth(t / 2) : 1;
19}
20
21const void* DoubledFrame::getLineInfo(
22 unsigned line, unsigned& width, void* buf, unsigned bufWidth) const
23{
24 return field->getLineInfo(std::max(narrow<int>(line) - skip, 0) / 2, width, buf, bufWidth);
25}
26
27} // namespace openmsx
TclObject t
void init(FrameSource *field, int skip)
Definition: DoubledFrame.cc:7
Interface for getting lines from a video frame.
Definition: FrameSource.hh:18
virtual unsigned getLineWidth(unsigned line) const =0
Gets the number of display pixels on the given line.
void setHeight(unsigned height_)
Definition: FrameSource.hh:150
virtual const void * getLineInfo(unsigned line, unsigned &lineWidth, void *buf, unsigned bufWidth) const =0
Abstract implementation of getLinePtr().
void init(FieldType fieldType_)
(Re)initialize an existing FrameSource.
Definition: FrameSource.hh:39
unsigned getHeight() const
Gets the number of lines in this frame.
Definition: FrameSource.hh:49
@ FIELD_NONINTERLACED
Interlacing is off for this frame.
Definition: FrameSource.hh:27
constexpr vecN< N, T > max(const vecN< N, T > &x, const vecN< N, T > &y)
Definition: gl_vec.hh:285
This file implemented 3 utility functions:
Definition: Autofire.cc:9