cancel
Showing results for 
Search instead for 
Did you mean: 

Live image with TouchGFX?

bear2023R
Associate III

HI,

as we understand, TouchGFX does not provide support for mulitple layers, even though many targeted STM32 controllers do.

We need to display a live image from the camera (at maximum possible frame rate) and overlay some gaphics on the top of it. Kind of OSD. What is the best/recommended way to achieve this task with TouchGFX? Is it feasible to do so with TouchGFX at all or the resulting performce will suffer too much?

What do we do with StemWin - the hardware LTDC Layer 0 is used for the camera live image, while Layer 1 is for any graphics over the latter. Neither of two get affected by each ohter and very high frame rate is achievable without visible performance degradation.

What solution TouchGFX may offer for similar tasks? Thanks.

If it is matter:
The display resoltion is 800x600, the camera image is a standard grayscale PAL 720x576

1 ACCEPTED SOLUTION

Accepted Solutions

Hello @bear2023R ,

Sorry for the delayed response. Unfortunately, with the current version of TouchGFX, it is not possible to use multiple LTDC layers. In STM32CubeMX, you will encounter the following error message:

OsmanSOYKURT_0-1776344119219.png

We are aware of this limitation, and we plan to invest time in addressing it, as use cases like the one you mentioned could greatly benefit from support for multiple layers. I will forward your feedback to our team.

Osman SOYKURT
ST Software Developer | TouchGFX

View solution in original post

4 REPLIES 4
bear2023R
Associate III

Can anybody answer the question, please? Or the lack of answers means "NO" for TouchGFX in this kind of applciations?

Thanks.

Hello @bear2023R ,

Sorry for the delayed response. Unfortunately, with the current version of TouchGFX, it is not possible to use multiple LTDC layers. In STM32CubeMX, you will encounter the following error message:

OsmanSOYKURT_0-1776344119219.png

We are aware of this limitation, and we plan to invest time in addressing it, as use cases like the one you mentioned could greatly benefit from support for multiple layers. I will forward your feedback to our team.

Osman SOYKURT
ST Software Developer | TouchGFX

Thanks, Osman. Any specific timings on when we may expect this feuture? A year? Five?
This might help to decide between TouchGFX and alternative solutions. Thanks for understanding.

amb
Senior

Hello @bear2023R 

I can give you a doable solution:

First,put a image widget at the very bottom of your screen,name it bitmapBackGround.

Then in your screenView.h file:

BitmapId dynamicBitmapsBG;

In your screenView.c file:

dynamicBitmapsBG = Bitmap::dynamicBitmapCreate(yourWidth, yourHeight, Bitmap::RGB565);
bitmapBackGround.setBitmap(dynamicBitmapsBG);
bitmapBackGround.setPosition(0, 0, yourWidth, yourHeight);
bitmapBackGround.invalidate();

 Now if you want to change content of bitmapBackGround:

first:

uint8_t *adr = Bitmap::dynamicBitmapGetAddress(dynamicBitmapsBG);

Then in your content update function:

memcpy(adr,src,yourWidth*yourHeight*2);