[vlmc-devel] [PATCH 5/7] GenericRenderer Implement setRenderTarget
yikei lu
luyikei.qmltu at gmail.com
Sun Apr 17 10:45:23 CEST 2016
I'll use std::move :)
2016-04-17 17:42 GMT+09:00 yikei lu <luyikei.qmltu at gmail.com>:
> oh well we might want to use unique_ptr internally in GenericRenderer
>
>
> 2016-04-17 17:35 GMT+09:00 yikei lu <luyikei.qmltu at gmail.com>:
>> well then the ownership of the pointer will change. And if
>> GenericRenderer should have the ownership, I think we don't have to
>> use unique_ptr.
>>
>> Or we can use std::unique_ptr outside GenericRenderer, and pass it as
>> a raw pointer, which won't change the ownership
>>
>>
>> 2016-04-17 17:29 GMT+09:00 Hugo Beauzée-Luyssen <hugo at beauzee.fr>:
>>> On 04/17/2016 10:27 AM, yikei lu wrote:
>>>>
>>>> I think it would be better to use shared_ptr rather than unique_ptr
>>>> because we we could call setRenderTarget outside the
>>>> GenericRenderer-based classes,
>>>>
>>>>
>>>>
>>>> 2016-04-17 17:00 GMT+09:00 Hugo Beauzée-Luyssen <hugo at beauzee.fr>:
>>>>>
>>>>> On 04/17/2016 09:45 AM, yikei lu wrote:
>>>>>>
>>>>>>
>>>>>> Yeah, I also once thought that it would be great to use unique_ptr,
>>>>>> but still I don't really know when we should use it since I don't use
>>>>>> it so much. :)
>>>>>>
>>>>>> I think this is simple enough to manage it, but it might be better to
>>>>>> use unique_pt because when we setRenderTarget, the pointer should be
>>>>>> used only in GenericRenderer. But the parent renderer has the
>>>>>> ownership of the pointer.
>>>>>>
>>>>>> Yes I think it's safe to use unique_pt :)
>>>>>> Regards
>>>>>>
>>>>>> 2016-04-17 16:34 GMT+09:00 Hugo Beauzée-Luyssen <hugo at beauzee.fr>:
>>>>>>>
>>>>>>>
>>>>>>> On 04/16/2016 08:22 AM, Yikai Lu wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ---
>>>>>>>> src/Renderer/GenericRenderer.cpp | 8 ++++++++
>>>>>>>> src/Renderer/GenericRenderer.h | 5 +++++
>>>>>>>> 2 files changed, 13 insertions(+)
>>>>>>>>
>>>>>>>> diff --git a/src/Renderer/GenericRenderer.cpp
>>>>>>>> b/src/Renderer/GenericRenderer.cpp
>>>>>>>> index 598b59e..49ea01b 100644
>>>>>>>> --- a/src/Renderer/GenericRenderer.cpp
>>>>>>>> +++ b/src/Renderer/GenericRenderer.cpp
>>>>>>>> @@ -27,6 +27,7 @@
>>>>>>>> GenericRenderer::GenericRenderer()
>>>>>>>> : m_sourceRenderer( nullptr )
>>>>>>>> , m_paused( false )
>>>>>>>> + , m_renderTarget( nullptr )
>>>>>>>> {
>>>>>>>> m_eventWatcher = new RendererEventWatcher;
>>>>>>>> }
>>>>>>>> @@ -35,6 +36,7 @@ GenericRenderer::~GenericRenderer()
>>>>>>>> {
>>>>>>>> delete m_sourceRenderer;
>>>>>>>> delete m_eventWatcher;
>>>>>>>> + delete m_renderTarget;
>>>>>>>> }
>>>>>>>>
>>>>>>>> bool
>>>>>>>> @@ -49,6 +51,12 @@ GenericRenderer::isRendering() const
>>>>>>>> return m_isRendering;
>>>>>>>> }
>>>>>>>>
>>>>>>>> +void
>>>>>>>> +GenericRenderer::setRenderTarget( Backend::IRenderTarget *target )
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I'm enclined to think this should take a std::unique_ptr instead of a
>>>>>>> raw
>>>>>>> one, opinion?
>>>>>>>
>>>>>>>
>>>>>>>> +{
>>>>>>>> + m_renderTarget = target;
>>>>>>>> +}
>>>>>>>> +
>>>>>>>> #ifdef WITH_GUI
>>>>>>>> RendererEventWatcher*
>>>>>>>> GenericRenderer::eventWatcher()
>>>>>>>> diff --git a/src/Renderer/GenericRenderer.h
>>>>>>>> b/src/Renderer/GenericRenderer.h
>>>>>>>> index 6fb326a..fbc9a5e 100644
>>>>>>>> --- a/src/Renderer/GenericRenderer.h
>>>>>>>> +++ b/src/Renderer/GenericRenderer.h
>>>>>>>> @@ -29,6 +29,7 @@
>>>>>>>>
>>>>>>>> #include "Workflow/Types.h"
>>>>>>>> #include "Tools/RendererEventWatcher.h"
>>>>>>>> +#include "Backend/IRenderTarget.h"
>>>>>>>>
>>>>>>>> class Clip;
>>>>>>>> class Media;
>>>>>>>> @@ -135,6 +136,8 @@ public:
>>>>>>>> */
>>>>>>>> bool isRendering() const;
>>>>>>>>
>>>>>>>> + void setRenderTarget(
>>>>>>>> Backend::IRenderTarget* target );
>>>>>>>> +
>>>>>>>> RendererEventWatcher* eventWatcher();
>>>>>>>> protected:
>>>>>>>> Backend::ISourceRenderer* m_sourceRenderer;
>>>>>>>> @@ -150,6 +153,8 @@ protected:
>>>>>>>> bool m_paused;
>>>>>>>> bool m_isRendering;
>>>>>>>>
>>>>>>>> + Backend::IRenderTarget* m_renderTarget;
>>>>>>>> +
>>>>>>>> public slots:
>>>>>>>> /**
>>>>>>>> * \brief This SLOT will be called when the time cursor
>>>>>>>> has
>>>>>>>> changed.
>>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Vlmc-devel mailing list
>>>>>>> Vlmc-devel at videolan.org
>>>>>>> https://mailman.videolan.org/listinfo/vlmc-devel
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Vlmc-devel mailing list
>>>>>> Vlmc-devel at videolan.org
>>>>>> https://mailman.videolan.org/listinfo/vlmc-devel
>>>>>>
>>>>> Ok, I'll wait for your updated patch then :)
>>>>> Thanks!
>>>>>
>>>>> _______________________________________________
>>>>> Vlmc-devel mailing list
>>>>> Vlmc-devel at videolan.org
>>>>> https://mailman.videolan.org/listinfo/vlmc-devel
>>>>
>>>> _______________________________________________
>>>> Vlmc-devel mailing list
>>>> Vlmc-devel at videolan.org
>>>> https://mailman.videolan.org/listinfo/vlmc-devel
>>>>
>>> I don't see why that would change with unique_ptr ?
>>>
>>> _______________________________________________
>>> Vlmc-devel mailing list
>>> Vlmc-devel at videolan.org
>>> https://mailman.videolan.org/listinfo/vlmc-devel
More information about the Vlmc-devel
mailing list