From c827d14d9747e03f534bbcd988eb41c5c3117c76 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Sun, 12 Nov 2017 17:17:27 -0500 Subject: [PATCH] Corrects various GCC warnings across the 6560, CPC, TIA, Oric video and elsewhere. --- Components/6560/6560.hpp | 6 +++--- Machines/AmstradCPC/AmstradCPC.cpp | 2 +- Machines/Atari2600/TIA.cpp | 2 +- Machines/Oric/Video.cpp | 6 +++--- .../Machine/Wrappers/CSElectron.mm | 2 +- .../Clock Signal/Machine/Wrappers/CSOric.mm | 2 +- Outputs/CRT/CRTTypes.hpp | 6 +++--- Outputs/CRT/Internals/CRTOpenGL.cpp | 4 +++- .../Internals/Shaders/IntermediateShader.cpp | 20 +++++++++---------- .../CRT/Internals/Shaders/OutputShader.cpp | 8 ++++---- 10 files changed, 30 insertions(+), 28 deletions(-) diff --git a/Components/6560/6560.hpp b/Components/6560/6560.hpp index 6675a09e2..abcaac36b 100644 --- a/Components/6560/6560.hpp +++ b/Components/6560/6560.hpp @@ -42,7 +42,7 @@ class Speaker: public ::Outputs::Filter { template class MOS6560 { public: MOS6560() : - crt_(new Outputs::CRT::CRT(65*4, 4, Outputs::CRT::NTSC60, 2)), + crt_(new Outputs::CRT::CRT(65*4, 4, Outputs::CRT::DisplayType::NTSC60, 2)), speaker_(new Speaker) { crt_->set_composite_sampling_function( "float composite_sample(usampler2D texID, vec2 coordinate, vec2 iCoordinate, float phase, float amplitude)" @@ -104,7 +104,7 @@ template class MOS6560 { switch(output_mode) { default: chrominances = pal_chrominances; - display_type = Outputs::CRT::PAL50; + display_type = Outputs::CRT::DisplayType::PAL50; timing_.cycles_per_line = 71; timing_.line_counter_increment_offset = 0; timing_.lines_per_progressive_field = 312; @@ -113,7 +113,7 @@ template class MOS6560 { case OutputMode::NTSC: chrominances = ntsc_chrominances; - display_type = Outputs::CRT::NTSC60; + display_type = Outputs::CRT::DisplayType::NTSC60; timing_.cycles_per_line = 65; timing_.line_counter_increment_offset = 65 - 33; // TODO: this is a bit of a hack; separate vertical and horizontal counting timing_.lines_per_progressive_field = 261; diff --git a/Machines/AmstradCPC/AmstradCPC.cpp b/Machines/AmstradCPC/AmstradCPC.cpp index 397fea426..e5c230886 100644 --- a/Machines/AmstradCPC/AmstradCPC.cpp +++ b/Machines/AmstradCPC/AmstradCPC.cpp @@ -300,7 +300,7 @@ class CRTCBusHandler { "return vec3(float((sample >> 4) & 3u), float((sample >> 2) & 3u), float(sample & 3u)) / 2.0;" "}"); crt_->set_visible_area(Outputs::CRT::Rect(0.075f, 0.05f, 0.9f, 0.9f)); - crt_->set_output_device(Outputs::CRT::Monitor); + crt_->set_output_device(Outputs::CRT::OutputDevice::Monitor); } /// Destructs the CRT. diff --git a/Machines/Atari2600/TIA.cpp b/Machines/Atari2600/TIA.cpp index e79dc60bb..4cc975c40 100644 --- a/Machines/Atari2600/TIA.cpp +++ b/Machines/Atari2600/TIA.cpp @@ -23,7 +23,7 @@ namespace { TIA::TIA(bool create_crt) { if(create_crt) { crt_.reset(new Outputs::CRT::CRT(cycles_per_line * 2 - 1, 1, Outputs::CRT::DisplayType::NTSC60, 1)); - crt_->set_output_device(Outputs::CRT::Television); + crt_->set_output_device(Outputs::CRT::OutputDevice::Television); set_output_mode(OutputMode::NTSC); } diff --git a/Machines/Oric/Video.cpp b/Machines/Oric/Video.cpp index 49cc54789..fcdfd60fb 100644 --- a/Machines/Oric/Video.cpp +++ b/Machines/Oric/Video.cpp @@ -41,7 +41,7 @@ VideoOutput::VideoOutput(uint8_t *memory) : ); crt_->set_composite_function_type(Outputs::CRT::CRT::CompositeSourceType::DiscreteFourSamplesPerCycle, 0.0f); - set_output_device(Outputs::CRT::Television); + set_output_device(Outputs::CRT::OutputDevice::Television); crt_->set_visible_area(crt_->get_rect_for_area(53, 224, 16 * 6, 40 * 6, 4.0f / 3.0f)); } @@ -129,7 +129,7 @@ void VideoOutput::run_for(const Cycles cycles) { if(control_byte & 0x60) { if(pixel_target_) { uint16_t colours[2]; - if(output_device_ == Outputs::CRT::Monitor) { + if(output_device_ == Outputs::CRT::OutputDevice::Monitor) { colours[0] = static_cast(paper_ ^ inverse_mask); colours[1] = static_cast(ink_ ^ inverse_mask); } else { @@ -183,7 +183,7 @@ void VideoOutput::run_for(const Cycles cycles) { pixel_target_[0] = pixel_target_[1] = pixel_target_[2] = pixel_target_[3] = pixel_target_[4] = pixel_target_[5] = - (output_device_ == Outputs::CRT::Monitor) ? paper_ ^ inverse_mask : colour_forms_[paper_ ^ inverse_mask]; + (output_device_ == Outputs::CRT::OutputDevice::Monitor) ? paper_ ^ inverse_mask : colour_forms_[paper_ ^ inverse_mask]; } } if(pixel_target_) pixel_target_ += 6; diff --git a/OSBindings/Mac/Clock Signal/Machine/Wrappers/CSElectron.mm b/OSBindings/Mac/Clock Signal/Machine/Wrappers/CSElectron.mm index 1f0aa2ba0..4fbebb477 100644 --- a/OSBindings/Mac/Clock Signal/Machine/Wrappers/CSElectron.mm +++ b/OSBindings/Mac/Clock Signal/Machine/Wrappers/CSElectron.mm @@ -41,7 +41,7 @@ - (void)setUseTelevisionOutput:(BOOL)useTelevisionOutput { @synchronized(self) { _useTelevisionOutput = useTelevisionOutput; - _electron->get_crt()->set_output_device(useTelevisionOutput ? Outputs::CRT::Television : Outputs::CRT::Monitor); + _electron->get_crt()->set_output_device(useTelevisionOutput ? Outputs::CRT::OutputDevice::Television : Outputs::CRT::OutputDevice::Monitor); } } @end diff --git a/OSBindings/Mac/Clock Signal/Machine/Wrappers/CSOric.mm b/OSBindings/Mac/Clock Signal/Machine/Wrappers/CSOric.mm index 5c5a396f0..b3739bc8c 100644 --- a/OSBindings/Mac/Clock Signal/Machine/Wrappers/CSOric.mm +++ b/OSBindings/Mac/Clock Signal/Machine/Wrappers/CSOric.mm @@ -36,7 +36,7 @@ - (void)setUseCompositeOutput:(BOOL)useCompositeOutput { @synchronized(self) { _useCompositeOutput = useCompositeOutput; - _oric->set_output_device(useCompositeOutput ? Outputs::CRT::Television : Outputs::CRT::Monitor); + _oric->set_output_device(useCompositeOutput ? Outputs::CRT::OutputDevice::Television : Outputs::CRT::OutputDevice::Monitor); } } diff --git a/Outputs/CRT/CRTTypes.hpp b/Outputs/CRT/CRTTypes.hpp index f983ed35b..d86cd72a2 100644 --- a/Outputs/CRT/CRTTypes.hpp +++ b/Outputs/CRT/CRTTypes.hpp @@ -26,17 +26,17 @@ struct Rect { origin({x, y}), size({width, height}) {} }; -enum DisplayType { +enum class DisplayType { PAL50, NTSC60 }; -enum ColourSpace { +enum class ColourSpace { YIQ, YUV }; -enum OutputDevice { +enum class OutputDevice { Monitor, Television }; diff --git a/Outputs/CRT/Internals/CRTOpenGL.cpp b/Outputs/CRT/Internals/CRTOpenGL.cpp index 961088cf1..261e10bc1 100644 --- a/Outputs/CRT/Internals/CRTOpenGL.cpp +++ b/Outputs/CRT/Internals/CRTOpenGL.cpp @@ -71,7 +71,7 @@ OpenGLOutputBuilder::~OpenGLOutputBuilder() { } bool OpenGLOutputBuilder::get_is_television_output() { - return output_device_ == Television || !rgb_input_shader_program_; + return output_device_ == OutputDevice::Television || !rgb_input_shader_program_; } void OpenGLOutputBuilder::draw_frame(unsigned int output_width, unsigned int output_height, bool only_if_dirty) { @@ -369,6 +369,8 @@ void OpenGLOutputBuilder::set_colour_space_uniforms() { fromRGB = rgbToYUV; toRGB = yuvToRGB; break; + + default: assert(false); break; } if(composite_input_shader_program_) composite_input_shader_program_->set_colour_conversion_matrices(fromRGB, toRGB); diff --git a/Outputs/CRT/Internals/Shaders/IntermediateShader.cpp b/Outputs/CRT/Internals/Shaders/IntermediateShader.cpp index 5032a3d1b..88fe7f46e 100644 --- a/Outputs/CRT/Internals/Shaders/IntermediateShader.cpp +++ b/Outputs/CRT/Internals/Shaders/IntermediateShader.cpp @@ -32,7 +32,7 @@ std::unique_ptr IntermediateShader::make_shader(const std::s const char *input_variable = input_is_inputPosition ? "inputPosition" : "outputPosition"; char *vertex_shader; - asprintf(&vertex_shader, + (void)asprintf(&vertex_shader, "#version 150\n" "in vec2 inputStart;" @@ -108,7 +108,7 @@ std::unique_ptr IntermediateShader::make_shader(const std::s "}", sampler_type, input_variable); std::unique_ptr shader(new IntermediateShader(vertex_shader, fragment_shader, bindings)); - free(vertex_shader); + std::free(vertex_shader); return shader; } @@ -117,7 +117,7 @@ std::unique_ptr IntermediateShader::make_source_conversion_s char *derived_composite_sample = nullptr; const char *composite_sample = composite_shader.c_str(); if(!composite_shader.size()) { - asprintf(&derived_composite_sample, + (void)asprintf(&derived_composite_sample, "%s\n" "uniform mat3 rgbToLumaChroma;" "float composite_sample(usampler2D texID, vec2 coordinate, vec2 iCoordinate, float phase, float amplitude)" @@ -132,7 +132,7 @@ std::unique_ptr IntermediateShader::make_source_conversion_s } char *fragment_shader; - asprintf(&fragment_shader, + (void)asprintf(&fragment_shader, "#version 150\n" "in vec2 inputPositionsVarying[11];" @@ -150,17 +150,17 @@ std::unique_ptr IntermediateShader::make_source_conversion_s "fragColour = vec4(composite_sample(texID, inputPositionsVarying[5], iInputPositionVarying, phaseAndAmplitudeVarying.x, phaseAndAmplitudeVarying.y));" "}" , composite_sample); - free(derived_composite_sample); + std::free(derived_composite_sample); std::unique_ptr shader = make_shader(fragment_shader, true, true); - free(fragment_shader); + std::free(fragment_shader); return shader; } std::unique_ptr IntermediateShader::make_rgb_source_shader(const std::string &rgb_shader) { char *fragment_shader; - asprintf(&fragment_shader, + (void)asprintf(&fragment_shader, "#version 150\n" "in vec2 inputPositionsVarying[11];" @@ -180,7 +180,7 @@ std::unique_ptr IntermediateShader::make_rgb_source_shader(c , rgb_shader.c_str()); std::unique_ptr shader = make_shader(fragment_shader, true, true); - free(fragment_shader); + std::free(fragment_shader); return shader; } @@ -340,8 +340,8 @@ void IntermediateShader::set_filter_coefficients(float sampling_rate, float cuto // int sample = 0; // int c = 0; - memset(weights, 0, sizeof(float)*12); - memset(offsets, 0, sizeof(float)*5); + std::memset(weights, 0, sizeof(float)*12); + std::memset(offsets, 0, sizeof(float)*5); unsigned int half_size = (taps >> 1); for(unsigned int c = 0; c < taps; c++) { diff --git a/Outputs/CRT/Internals/Shaders/OutputShader.cpp b/Outputs/CRT/Internals/Shaders/OutputShader.cpp index 6746ba671..956fea938 100644 --- a/Outputs/CRT/Internals/Shaders/OutputShader.cpp +++ b/Outputs/CRT/Internals/Shaders/OutputShader.cpp @@ -25,7 +25,7 @@ std::unique_ptr OutputShader::make_shader(const char *fragment_met const char *sampler_type = use_usampler ? "usampler2D" : "sampler2D"; char *vertex_shader; - asprintf(&vertex_shader, + (void)asprintf(&vertex_shader, "#version 150\n" "in vec2 horizontal;" @@ -64,7 +64,7 @@ std::unique_ptr OutputShader::make_shader(const char *fragment_met "}", sampler_type); char *fragment_shader; - asprintf(&fragment_shader, + (void)asprintf(&fragment_shader, "#version 150\n" "in float lateralVarying;" @@ -85,8 +85,8 @@ std::unique_ptr OutputShader::make_shader(const char *fragment_met sampler_type, fragment_methods, colour_expression); std::unique_ptr result(new OutputShader(vertex_shader, fragment_shader, bindings)); - free(vertex_shader); - free(fragment_shader); + std::free(vertex_shader); + std::free(fragment_shader); return result; }