[vlmc-devel] [PATCH] Renderer: have quint64 as a pointer of Window Id
yikei lu
luyikei.qmltu at gmail.com
Wed Apr 6 05:04:32 CEST 2016
While we'll need to implement streaming, I don't really know how it
goes for now :) If it's only about saving paths, it will be easy
2016-04-06 3:54 GMT+09:00 Hugo Beauzée-Luyssen <hugo at beauzee.fr>:
> On 04/05/2016 11:46 AM, Yikai Lu wrote:
>> ---
>> src/Gui/preview/PreviewWidget.cpp | 2 +-
>> src/Renderer/ClipRenderer.cpp | 4 ++--
>> src/Renderer/GenericRenderer.cpp | 8 +++-----
>> src/Renderer/GenericRenderer.h | 7 ++-----
>> src/Renderer/WorkflowRenderer.cpp | 5 ++---
>> 5 files changed, 10 insertions(+), 16 deletions(-)
>>
>> diff --git a/src/Gui/preview/PreviewWidget.cpp b/src/Gui/preview/PreviewWidget.cpp
>> index a50e9a9..fb080d8 100644
>> --- a/src/Gui/preview/PreviewWidget.cpp
>> +++ b/src/Gui/preview/PreviewWidget.cpp
>> @@ -71,7 +71,7 @@ PreviewWidget::setRenderer(GenericRenderer *renderer)
>> // Give the renderer to the ruler
>> m_ui->rulerWidget->setRenderer( m_renderer );
>>
>> - m_renderer->setRenderWidget( m_ui->renderWidget );
>> + m_renderer->setRenderWidget( reinterpret_cast<quint64>( static_cast<RenderWidget*>( m_ui->renderWidget )->id() ) );
>>
>> #if defined ( Q_OS_MAC )
>> /* Releases the NSView in the RenderWidget*/
>> diff --git a/src/Renderer/ClipRenderer.cpp b/src/Renderer/ClipRenderer.cpp
>> index 318d6bd..6e86da7 100644
>> --- a/src/Renderer/ClipRenderer.cpp
>> +++ b/src/Renderer/ClipRenderer.cpp
>> @@ -31,7 +31,6 @@
>> #include "Library/Library.h"
>> #include "Media/Media.h"
>> #include "Workflow/MainWorkflow.h"
>> -#include "Gui/preview/RenderWidget.h"
>>
>> ClipRenderer::ClipRenderer() :
>> GenericRenderer(),
>> @@ -89,7 +88,8 @@ ClipRenderer::startPreview()
>>
>> delete m_sourceRenderer;
>> m_sourceRenderer = m_selectedClip->getMedia()->source()->createRenderer( m_eventWatcher );
>> - m_sourceRenderer->setOutputWidget( (void *) static_cast< RenderWidget* >( m_renderWidget )->id() );
>> + if ( m_renderWidgetId != 0 )
>> + m_sourceRenderer->setOutputWidget( (void *) m_renderWidgetId );
>>
>> connect( m_eventWatcher, SIGNAL( stopped() ), this, SLOT( videoStopped() ) );
>> connect( m_eventWatcher, SIGNAL( paused() ), this, SIGNAL( paused() ) );
>> diff --git a/src/Renderer/GenericRenderer.cpp b/src/Renderer/GenericRenderer.cpp
>> index 6ed435a..3456b3e 100644
>> --- a/src/Renderer/GenericRenderer.cpp
>> +++ b/src/Renderer/GenericRenderer.cpp
>> @@ -21,12 +21,12 @@
>> *****************************************************************************/
>>
>> #include "GenericRenderer.h"
>> -#include "preview/RenderWidget.h"
>> #include <QtGlobal>
>>
>> GenericRenderer::GenericRenderer()
>> : m_sourceRenderer( nullptr )
>> , m_paused( false )
>> + , m_renderWidgetId( 0 )
>> {
>> m_eventWatcher = new RendererEventWatcher;
>> }
>> @@ -37,11 +37,10 @@ GenericRenderer::~GenericRenderer()
>> delete m_eventWatcher;
>> }
>>
>> -#ifdef WITH_GUI
>> void
>> -GenericRenderer::setRenderWidget(QWidget *renderWidget)
>> +GenericRenderer::setRenderWidget( quint64 id )
>> {
>> - m_renderWidget = renderWidget;
>> + m_renderWidgetId = id;
>> }
>>
>> RendererEventWatcher*
>> @@ -49,4 +48,3 @@ GenericRenderer::eventWatcher()
>> {
>> return m_eventWatcher;
>> }
>> -#endif
>> diff --git a/src/Renderer/GenericRenderer.h b/src/Renderer/GenericRenderer.h
>> index 5cb34f5..cf9a670 100644
>> --- a/src/Renderer/GenericRenderer.h
>> +++ b/src/Renderer/GenericRenderer.h
>> @@ -26,9 +26,6 @@
>> #include "config.h"
>>
>> #include <QObject>
>> -#ifdef WITH_GUI
>> -# include <QWidget>
>> -#endif
>>
>> #include "EffectsEngine/EffectUser.h"
>> #include "Workflow/Types.h"
>> @@ -57,7 +54,7 @@ public:
>> * \param renderWidget The widget to use for render.
>> * \sa setPreviewLabel( QLabel* )
>> */
>> - void setRenderWidget( QWidget* renderWidget );
>> + void setRenderWidget( quint64 id );
>> #endif
>>
>> /**
>> @@ -174,7 +171,7 @@ protected:
>> */
>> bool m_paused;
>>
>> - QWidget* m_renderWidget;
>> + quint64 m_renderWidgetId;
>>
>> public slots:
>> /**
>> diff --git a/src/Renderer/WorkflowRenderer.cpp b/src/Renderer/WorkflowRenderer.cpp
>> index f50838a..fa8066f 100644
>> --- a/src/Renderer/WorkflowRenderer.cpp
>> +++ b/src/Renderer/WorkflowRenderer.cpp
>> @@ -37,7 +37,6 @@
>> #include "Backend/IBackend.h"
>> #include "Backend/ISource.h"
>> #include "Workflow/MainWorkflow.h"
>> -#include "Gui/preview/RenderWidget.h"
>> #include "Settings/Settings.h"
>> #include "Tools/VlmcDebug.h"
>> #include "Workflow/Types.h"
>> @@ -88,8 +87,8 @@ WorkflowRenderer::setupRenderer( quint32 width, quint32 height, double fps, cons
>> m_sourceRenderer = m_source->createRenderer( m_eventWatcher );
>> m_sourceRenderer->setName( "WorkflowRenderer" );
>> m_sourceRenderer->enableMemoryInput( m_esHandler, getLockCallback(), getUnlockCallback() );
>> - if ( m_renderWidget != nullptr )
>> - m_sourceRenderer->setOutputWidget( (void *) static_cast< RenderWidget* >( m_renderWidget )->id() );
>> + if ( m_renderWidgetId != 0 )
>> + m_sourceRenderer->setOutputWidget( (void *) m_renderWidgetId );
>> }
>>
>> int
>>
>
> While I like the idea of not passing a widget to the WorkflowRenderer, I
> think we should probably abstract the renderer target more.
> For instance, this won't work when we try to stream the preview through
> HTTP in the case of the web UI.
> This might require to add an interface in the backend namespace... I'm a
> bit unsure yet.
>
> --
> Hugo Beauzée-Luyssen
> www.beauzee.fr
> _______________________________________________
> Vlmc-devel mailing list
> Vlmc-devel at videolan.org
> https://mailman.videolan.org/listinfo/vlmc-devel
More information about the Vlmc-devel
mailing list