mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-25 16:31:42 +00:00
Add vsync getter.
This commit is contained in:
parent
a6c6a1c6da
commit
e55f61deb2
@ -111,6 +111,10 @@ void VideoOutput::set_colour_rom(const std::vector<uint8_t> &rom) {
|
|||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool VideoOutput::vsync() {
|
||||||
|
return counter_ >= v_sync_start_position_ && counter_ < v_sync_end_position_;
|
||||||
|
}
|
||||||
|
|
||||||
void VideoOutput::run_for(const Cycles cycles) {
|
void VideoOutput::run_for(const Cycles cycles) {
|
||||||
// Horizontal: 0-39: pixels; otherwise blank; 48-53 sync, 54-56 colour burst.
|
// Horizontal: 0-39: pixels; otherwise blank; 48-53 sync, 54-56 colour burst.
|
||||||
// Vertical: 0-223: pixels; otherwise blank; 256-259 (50Hz) or 234-238 (60Hz) sync.
|
// Vertical: 0-223: pixels; otherwise blank; 256-259 (50Hz) or 234-238 (60Hz) sync.
|
||||||
@ -123,7 +127,7 @@ void VideoOutput::run_for(const Cycles cycles) {
|
|||||||
int h_counter = counter_ & 63;
|
int h_counter = counter_ & 63;
|
||||||
int cycles_run_for = 0;
|
int cycles_run_for = 0;
|
||||||
|
|
||||||
if(counter_ >= v_sync_start_position_ && counter_ < v_sync_end_position_) {
|
if(vsync()) {
|
||||||
// this is a sync line
|
// this is a sync line
|
||||||
cycles_run_for = v_sync_end_position_ - counter_;
|
cycles_run_for = v_sync_end_position_ - counter_;
|
||||||
clamp(crt_.output_sync((v_sync_end_position_ - v_sync_start_position_) * 6));
|
clamp(crt_.output_sync((v_sync_end_position_ - v_sync_start_position_) * 6));
|
||||||
|
@ -24,6 +24,8 @@ class VideoOutput {
|
|||||||
|
|
||||||
void run_for(const Cycles cycles);
|
void run_for(const Cycles cycles);
|
||||||
|
|
||||||
|
bool vsync();
|
||||||
|
|
||||||
void set_scan_target(Outputs::Display::ScanTarget *scan_target);
|
void set_scan_target(Outputs::Display::ScanTarget *scan_target);
|
||||||
void set_display_type(Outputs::Display::DisplayType display_type);
|
void set_display_type(Outputs::Display::DisplayType display_type);
|
||||||
Outputs::Display::DisplayType get_display_type() const;
|
Outputs::Display::DisplayType get_display_type() const;
|
||||||
|
Loading…
Reference in New Issue
Block a user