[vlmc-devel] [PATCH 5/7] GenericRenderer Implement setRenderTarget

Hugo Beauzée-Luyssen hugo at beauzee.fr
Sun Apr 17 10:29:10 CEST 2016


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 ?


More information about the Vlmc-devel mailing list