This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RTOS/TDA2P-ACD: Creating Separate Buffers for Overlay

Part Number: TDA2P-ACD


Tool/software: TI-RTOS

Hello All,

I have created an overlay link similar to GrpxLink of Vision SDK, for overlaying two different bitmap images on display.  My usecase is as shown below,

**********************************************
NetworkRx (A15) -> Decode -> VPE -> Sync -> Dup -> Alg_A (DSP1) -> DssM2mWb -> Display_Video


Dup -> Gate -> Alg_B (DSP1)


OverlayLink (IPU1_0) -> Display_Grpx
**********************************************

My application is such that, both the bitmap images overlayed on display shall be switched ON and OFF by user through UART console. This much I have achieved.

By default both the images are overlayed when I start the usecase. But when I switch OFF any one of the overlayed image, the second image is also switched OFF and then immediately switched ON as there is a single output buffer used & for every switch ON or OFF request, buffer is first cleared using "Draw2D_clearBuf(pObj->draw2DHndl)".

So my question here is, is it possible to use two separate buffers for two separate bitmap images to be overlayed on display. If yes, can anybody give some inputs on how to achieve this.

Thanks & Regards,

Abhay

  • Abhay,

    How are you displaying two bitmaps? using single display? If you are, then this will just do overlaying, not blending..
    If you are doing overlaying two bitmaps in a single buffer, you need to clear portion of the one window and then redraw second bitmap.. Otherwise it can potentially erase the contents of the other bitmap as well.

    Rgds,
    Brijesh
  • Hi Brijesh,

    I am displaying two images on display in same way as TI does the overlay of TI logo as well as core load bars.

    If you are doing overlaying two bitmaps in a single buffer, you need to clear portion of the one window and then redraw second bitmap.. Otherwise it can potentially erase the contents of the other bitmap as well.
    ===> Currently I am doing the same way as you had referred to above. But if I want to, say erase, only one overlay image without affecting/redrawing second one, then how do I do this. Can I do this by having two buffers for two different types of overlay images (for example: one buffer for TI logo & one more buffer for some other type of logo).

    For this to achieve, what changes do I need to make in my overlay link. Please note my overlay link code is essentially the same as "grpxSrcLink_tsk.c" of "grpxSrc". Please let me know if you need more information on what I am trying to achieve.

    Thanks,
    Abhay
  • Abhay,

    There are multiple ways you could do it.
    1, You could use same draw function and using some flag, either draw the bitmap or erase the contents with the default color.. Call this API accordingly. Please note both the bitmaps must be non-overlapping here..
    2, You could keep three buffers, one for actual display, two for the bitmaps. When you want to change, erase entire display buffer and copy only require bitmap from the other buffers.. Please note that this may require more CPU time and can show tearing artifacts on the display.

    Rgds,
    brijesh
  • Hi Abhay,

    Any further question on this thread. I am currently closing thread, due to no activity for long time.
    We could reopen it if you have any questions.

    Rgds,
    Brijesh
  • Hi Brijesh,

    Sure I will reopen the thread later as this task is kept on hold.
    Thank you for your support.

    Thanks & Regards,
    Abhay