]> git.sesse.net Git - casparcg/blobdiff - modules/screen/consumer/screen_consumer.cpp
[screen_consumer] #495 Fixed full screen mode
[casparcg] / modules / screen / consumer / screen_consumer.cpp
index d40429d2492d0e6ab0ab3dcdfc23c87d31778ce2..818bdf12e976c237f25faf6c7f946e444b9790c9 100644 (file)
@@ -241,10 +241,20 @@ public:
                        : (config_.windowed
                                ? sf::Style::Resize | sf::Style::Close
                                : sf::Style::Fullscreen);
-               window_.create(sf::VideoMode(screen_width_, screen_height_, 32), u8(print()), window_style);
+               window_.create(sf::VideoMode::getDesktopMode(), u8(print()), window_style);
+
+               if (config_.windowed)
+               {
+                       window_.setPosition(sf::Vector2i(screen_x_, screen_y_));
+                       window_.setSize(sf::Vector2u(screen_width_, screen_height_));
+               }
+               else
+               {
+                       screen_width_   = window_.getSize().x;
+                       screen_height_  = window_.getSize().y;
+               }
+
                window_.setMouseCursorVisible(config_.interactive);
-               window_.setPosition(sf::Vector2i(screen_x_, screen_y_));
-               window_.setSize(sf::Vector2u(screen_width_, screen_height_));
                window_.setActive();
 
                if(!GLEW_VERSION_2_1 && glewInit() != GLEW_OK)
@@ -696,7 +706,8 @@ void describe_consumer(core::help_sink& sink, const core::help_repository& repo)
        sink.example(L">> ADD 1 SCREEN 1 BORDERLESS", L"opens a screen consumer without borders/window decorations on screen 1.");
 }
 
-spl::shared_ptr<core::frame_consumer> create_consumer(const std::vector<std::wstring>& params, core::interaction_sink* sink)
+spl::shared_ptr<core::frame_consumer> create_consumer(
+               const std::vector<std::wstring>& params, core::interaction_sink* sink, std::vector<spl::shared_ptr<core::video_channel>> channels)
 {
        if (params.size() < 1 || !boost::iequals(params.at(0), L"SCREEN"))
                return core::frame_consumer::empty();
@@ -718,7 +729,8 @@ spl::shared_ptr<core::frame_consumer> create_consumer(const std::vector<std::wst
        return spl::make_shared<screen_consumer_proxy>(config, sink);
 }
 
-spl::shared_ptr<core::frame_consumer> create_preconfigured_consumer(const boost::property_tree::wptree& ptree, core::interaction_sink* sink)
+spl::shared_ptr<core::frame_consumer> create_preconfigured_consumer(
+               const boost::property_tree::wptree& ptree, core::interaction_sink* sink, std::vector<spl::shared_ptr<core::video_channel>> channels)
 {
        configuration config;
        config.name                             = ptree.get(L"name",                            config.name);