diff --git a/src/stage/output/pixbuf-displayer.cpp b/src/stage/output/pixbuf-displayer.cpp index a210075f7..125f600c7 100644 --- a/src/stage/output/pixbuf-displayer.cpp +++ b/src/stage/output/pixbuf-displayer.cpp @@ -1,10 +1,11 @@ /* - GdkDisplayer - displaying video via GDK + PixbufDisplayer - displaying video via bitmap image Copyright (C) 2000, Arne Schirmacher 2001-2007, Dan Dennedy 2008, Joel Holdsworth + 2025, Hermann Vosseler   **Lumiera** is free software; you can redistribute it and/or modify it   under the terms of the GNU General Public License as published by the @@ -15,29 +16,26 @@ /** @file pixbuf-displayer.cpp - ** Dysfunctional implementation code, formerly used to - ** create a video display based on GDK - ** @deprecated obsolete since GTK-3 + ** Implementation of fallback functionality for video display. ** @todo WIP as of 5/2025 attempt to accommodate to GTK-3 ////////////////////////////////////////////////TICKET #1403 */ #include "stage/gtk-base.hpp" #include "stage/output/pixbuf-displayer.hpp" +#include "lib/format-cout.hpp" #if false ///////////////////////////////////////////////////////////////////////////////////////////////////TICKET #950 : new solution for video display #include #endif ///////////////////////////////////////////////////////////////////////////////////////////////////TICKET #950 : new solution for video display #include -using std::cerr; -using std::endl; namespace stage { namespace output { - GdkDisplayer::GdkDisplayer (Gtk::Widget* drawing_area, + PixbufDisplayer::PixbufDisplayer (Gtk::Image* drawing_area, int width, int height) : Displayer{width,height} , drawingArea_{drawing_area} @@ -45,16 +43,17 @@ namespace output { REQUIRE (drawing_area); REQUIRE (width > 0); REQUIRE (height > 0); + cout << "USING PixbufDisplayer" <get_window()->gobj(); REQUIRE (window != NULL); - + + if (not init_) + { + auto iconSet = Gtk::IconSet::lookup_default (Gtk::StockID("panel_play")); + drawingArea_->set(iconSet, Gtk::IconSize(Gtk::ICON_SIZE_DIALOG)); + init_ = true; + cout << "INIT Pixbuf"<< iconSet.get() <queue_draw(); + int pixSiz = drawingArea_->property_pixel_size(); + cout << "bong.."< 2001-2007, Dan Dennedy 2008, Joel Holdsworth + 2025, Hermann Vosseler   **Lumiera** is free software; you can redistribute it and/or modify it   under the terms of the GNU General Public License as published by the @@ -15,9 +16,8 @@ /** @file pixbuf-displayer.hpp - ** Display video via GDK + ** Display video as bitmap image with the UI toolkit. ** - ** @deprecated obsolete since GTK-3 ** @todo WIP as of 5/2025 attempt to accommodate to GTK-3 ////////////////////////////////////////////////TICKET #1403 ** @see displayer.hpp */ @@ -36,17 +36,16 @@ namespace stage { namespace output { /** - * GdkDisplayer is a class which is responsible for rendering a video + * PixbufDisplayer is a class which is responsible for rendering a video * image via GDK. * - * @todo the GdkDisplayer class is not supported anymore in Gtk3. - * This is due to Gtk3 only supporting drawing with Cairo - * ////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #950 : new solution for video display * @todo WIP as of 5/2025 attempt to accommodate to GTK-3 /////////////////////////////////////////////////TICKET #1403 */ -class GdkDisplayer +class PixbufDisplayer : public Displayer { + Gtk::Image* drawingArea_; + public: /** @@ -58,7 +57,7 @@ class GdkDisplayer * @param[in] height The height of the video image in pixels. This * value must be greater than zero. */ - GdkDisplayer (Gtk::Widget* drawing_area, int width, int height ); + PixbufDisplayer (Gtk::Image* drawing_area, int width, int height ); /** * Put an image of a given width and height with the expected input @@ -68,20 +67,10 @@ class GdkDisplayer void put (void* const image); protected: - - /** - * Indicates if this object can be used to render images on the - * running system. - */ - bool usable(); + bool usable() override; private: - - /** - * The widget that video will be drawn into. - * @remarks This value must be a valid pointer. - */ - Gtk::Widget* drawingArea_; + bool init_{false}; }; diff --git a/src/stage/widget/video-display-widget.cpp b/src/stage/widget/video-display-widget.cpp index 6248d12be..d609fbad3 100644 --- a/src/stage/widget/video-display-widget.cpp +++ b/src/stage/widget/video-display-widget.cpp @@ -37,13 +37,14 @@ namespace widget { using std::make_unique; using stage::output::XvDisplayer; - using stage::output::GdkDisplayer; + using stage::output::PixbufDisplayer; using stage::output::NullDisplayer; VideoDisplayWidget::VideoDisplayWidget() { get_style_context()->add_class (CLASS_background); // Style to ensure an opaque backdrop get_style_context()->add_class (CLASS_videodisplay); + this->show_all(); } @@ -73,11 +74,11 @@ namespace widget { displayer_ = make_unique (this, videoWidth, videoHeight); if (displayer_->usable()) return; - - displayer_ = make_unique (this, videoWidth, videoHeight); + */ + displayer_ = make_unique (this, videoWidth, videoHeight); if (displayer_->usable()) return; - */ + displayer_ = make_unique (this, videoWidth, videoHeight); ENSURE (displayer_->usable()); } diff --git a/wiki/thinkPad.ichthyo.mm b/wiki/thinkPad.ichthyo.mm index 7540c9f14..bfdc77b93 100644 --- a/wiki/thinkPad.ichthyo.mm +++ b/wiki/thinkPad.ichthyo.mm @@ -129984,10 +129984,23 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension) - - + + + + + + + + + + + + + + + @@ -151138,17 +151151,22 @@ std::cout << tmpl.render({"what", "World"}) << s + + + + - + + @@ -154715,7 +154733,7 @@ std::cout << tmpl.render({"what", "World"}) << s - + @@ -158572,13 +158590,21 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo - + -

- Dokumentation zu
- Themenbereichen +

+ Quellen +

+

+ und +

+

+ Dokumentation +

+

+ zu
Themenbereichen

@@ -158706,6 +158732,15 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
+ + + + + + + + +