diff --git a/OSBindings/Mac/Clock Signal.xcodeproj/xcshareddata/xcschemes/Clock Signal Kiosk.xcscheme b/OSBindings/Mac/Clock Signal.xcodeproj/xcshareddata/xcschemes/Clock Signal Kiosk.xcscheme index 04eb4197f..575580d92 100644 --- a/OSBindings/Mac/Clock Signal.xcodeproj/xcshareddata/xcschemes/Clock Signal Kiosk.xcscheme +++ b/OSBindings/Mac/Clock Signal.xcodeproj/xcshareddata/xcschemes/Clock Signal Kiosk.xcscheme @@ -82,19 +82,19 @@ + isEnabled = "NO"> + isEnabled = "NO"> + isEnabled = "NO"> + isEnabled = "YES"> activity_observer; bool uses_mouse; std::vector joysticks; machine_runner.machine_mutex = &machine_mutex; - const auto setup_machine_input_output = [&scan_target, &machine, &speaker_delegate, &activity_observer, &joysticks, &uses_mouse, &machine_runner] { + const auto setup_machine_input_output = [&software_scan_target, &machine, &speaker_delegate, &activity_observer, &joysticks, &uses_mouse, &machine_runner] { // Wire up the best-effort updater, its delegate, and the speaker delegate. machine_runner.machine = machine.get(); - machine->scan_producer()->set_scan_target(&scan_target); + machine->scan_producer()->set_scan_target(&software_scan_target); // For now, lie about audio output intentions. const auto audio_producer = machine->audio_producer(); @@ -986,8 +990,8 @@ int main(int argc, char *argv[]) { machine_runner.start(); while(!should_quit) { // Draw a new frame, indicating completion of the draw to the machine runner. - scan_target.update(int(window_width), int(window_height)); - scan_target.draw(int(window_width), int(window_height)); +// opengl_scan_target.update(int(window_width), int(window_height)); +// opengl_scan_target.draw(int(window_width), int(window_height)); if(activity_observer) activity_observer->draw(); machine_runner.signal_did_draw(); @@ -1012,7 +1016,7 @@ int main(int argc, char *argv[]) { case SDL_WINDOWEVENT_RESIZED: { GLint target_framebuffer = 0; glGetIntegerv(GL_FRAMEBUFFER_BINDING, &target_framebuffer); - scan_target.set_target_framebuffer(target_framebuffer); + opengl_scan_target.set_target_framebuffer(target_framebuffer); SDL_GetWindowSize(window, &window_width, &window_height); if(activity_observer) activity_observer->set_aspect_ratio(float(window_width) / float(window_height)); } break; @@ -1039,7 +1043,7 @@ int main(int argc, char *argv[]) { if(error != Machine::Error::None) break; machine = std::move(new_machine); - static_cast(&scan_target)->will_change_owner(); + static_cast(&opengl_scan_target)->will_change_owner(); setup_machine_input_output(); window_titler.set_file_name(final_path_component(event.drop.file)); } break; diff --git a/Outputs/SoftwareRendering/ScanTarget.cpp b/Outputs/SoftwareRendering/ScanTarget.cpp index cfccde587..613fc2346 100644 --- a/Outputs/SoftwareRendering/ScanTarget.cpp +++ b/Outputs/SoftwareRendering/ScanTarget.cpp @@ -6,4 +6,22 @@ // Copyright © 2022 Thomas Harte. All rights reserved. // -#include "SoftwareScanTarget.hpp" +#include "ScanTarget.hpp" + +using namespace Outputs::Display::Software; + +template < + Outputs::Display::InputDataType input_type, + Outputs::Display::DisplayType display_type, + Outputs::Display::ColourSpace colour_space +> void ScanTarget::process() { + // TODO. +} + +void ScanTarget::set_modals(Modals m) { + printf(""); +} + +void ScanTarget::submit() { + printf(""); +} diff --git a/Outputs/SoftwareRendering/ScanTarget.hpp b/Outputs/SoftwareRendering/ScanTarget.hpp index 21d4e2d91..dc7b7c5c2 100644 --- a/Outputs/SoftwareRendering/ScanTarget.hpp +++ b/Outputs/SoftwareRendering/ScanTarget.hpp @@ -25,13 +25,14 @@ class ScanTarget: public Outputs::Display::ScanTarget { // The following are all overridden from Outputs::Display::ScanTarget; // some notes on their meaning to this specific scan target are given below. - void set_modals(Modals) override {} - Scan *begin_scan() override { return *current_scan_; } + void set_modals(Modals) override; + Scan *begin_scan() override { return ¤t_scan_; } uint8_t *begin_data(size_t, size_t) override { return nullptr; } // void submit() final; + template void process(); Scan current_scan_;