17#include "SubComponent.h"
21class Monitor final :
public SubComponent {
23 Descriptions descriptions = {
26 .description =
"Computer Monitor"
30 ConfigOptions options = {
58 MonitorConfig config = { };
67 Monitor(C64 &ref) : SubComponent(ref) { }
69 Monitor& operator= (
const Monitor& other) {
82 template <
class T>
void serialize(T& worker) {
84 if (isResetter(worker))
return;
104 << config.bloomRadius
105 << config.bloomBrightness
106 << config.bloomWeight
109 << config.dotMaskBrightness
112 << config.scanlineBrightness
113 << config.scanlineWeight
115 << config.disalignment
116 << config.disalignmentH
117 << config.disalignmentV;
120 } SERIALIZERS(serialize);
129 const Descriptions &getDescriptions()
const override {
return descriptions; }
133 void _dump(Category category, std::ostream& os)
const override;
142 const MonitorConfig &getConfig()
const {
return config; }
143 const ConfigOptions &getOptions()
const override {
return options; }
144 i64 getOption(Option opt)
const override;
145 void checkOption(Option opt, i64 value)
override;
146 void setOption(Option opt, i64 value)
override;
156 u32 getColor(isize nr, Palette palette);
157 u32 getColor(isize nr) {
return getColor(nr, config.palette); }
VirtualC64 project namespace.
Definition CmdQueue.cpp:16
@ OPT_MON_VCENTER
Vertical centering.
Definition OptionTypes.h:78
@ OPT_MON_SCANLINE_BRIGHTNESS
Scanline brightness.
Definition OptionTypes.h:91
@ OPT_MON_DOTMASK_BRIGHTNESS
Dotmask brightness.
Definition OptionTypes.h:89
@ OPT_MON_SCANLINE_WEIGHT
Scanline weight.
Definition OptionTypes.h:92
@ OPT_MON_UPSCALER
Pixel upscaler.
Definition OptionTypes.h:81
@ OPT_MON_SCANLINES
Scanline mode.
Definition OptionTypes.h:90
@ OPT_MON_DOTMASK
Dotmask pattern.
Definition OptionTypes.h:88
@ OPT_MON_CONTRAST
Contrast.
Definition OptionTypes.h:75
@ OPT_MON_BLOOM_RADIUS
Bloom radius.
Definition OptionTypes.h:85
@ OPT_MON_BLOOM_BRIGHTNESS
Bloom brightness.
Definition OptionTypes.h:86
@ OPT_MON_BLOOM
Bloom enable.
Definition OptionTypes.h:84
@ OPT_MON_DISALIGNMENT
Cathode ray disalignment enable.
Definition OptionTypes.h:93
@ OPT_MON_SATURATION
Color saturation.
Definition OptionTypes.h:76
@ OPT_MON_VZOOM
Vertical centering.
Definition OptionTypes.h:80
@ OPT_MON_DISALIGNMENT_V
Vertical cathode ray disalignment.
Definition OptionTypes.h:95
@ OPT_MON_HCENTER
Horizontal centering.
Definition OptionTypes.h:77
@ OPT_MON_PALETTE
Color palette.
Definition OptionTypes.h:73
@ OPT_MON_BRIGHTNESS
Brightness.
Definition OptionTypes.h:74
@ OPT_MON_HZOOM
Horizontal zoom.
Definition OptionTypes.h:79
@ OPT_MON_BLOOM_WEIGHT
Bloom weight.
Definition OptionTypes.h:87
@ OPT_MON_BLUR_RADIUS
Blur radius.
Definition OptionTypes.h:83
@ OPT_MON_BLUR
Blur enable.
Definition OptionTypes.h:82
@ OPT_MON_DISALIGNMENT_H
Horizontal cathode ray disalignment.
Definition OptionTypes.h:94