BRT Community

Please login or register.

Login with username, password and session length
Advanced search  

News:

Welcome to the Bridgetek Community!

Please read our Welcome Note

Technical Support enquires
please contact the team
@ Bridgetek Support

Please refer to our website for detailed information on all our products - Bridgetek - Bridging Technology

Author Topic: double buffering, alpha blending, vertical blanking on EVE  (Read 8793 times)

proton

  • Newbie
  • *
  • Posts: 1
    • View Profile

Hello,
I like to draw (or copy pixels from a MCU) in a working memory buffer region that is not actively displayed while the LCD controller is displaying another region buffer. I would like to periodically make the LCD controller switch the two memory regions (double buffering)or use some kind of alpha blending visibility to toggle the two regions. Can EVE2 or more recent do this? Or is is possible to update the memory in a vertical blanking phase?

I like to work with a screen of 800x480 pixels or maybe 480x272 pixels. I was thinking of buying an off the shelf module from New Haven Display or Matrix Orbital.

Can the EVE be set up in 800x480 x 8bit color such that we can put two full screens in the 1MB RAM?

Thanks,
Logged

BRT Community

  • Administrator
  • Hero Member
  • *****
  • Posts: 748
    • View Profile
Re: double buffering, alpha blending, vertical blanking on EVE
« Reply #1 on: May 20, 2021, 05:53:46 PM »

Hi,

There are a couple of things that may help with regards to your questions although there may also be other ways using EVE's GPU and widget features to achieve it without swapping bitmaps as this can risk tearing etc.     

For the display list itself, EVE has double buffering and so if you create your content using graphic primitives and widgets then it will be double buffered. It also avoids the need to manually create and edit bitmaps unless the application needs this in particular (for example a line can be drawn by specifying the start and end point and EVE will work out how to draw the line). You can also optimise it to avoid completely re-sending the list - for example, you can use the append command to append a list of static items which you have created and then add some dynamic numbers or text for readouts. What was your overall requirement for the application?

For your question about images and changing during the scan-out,

EVE has bitmap formats such as RGB332 and ARGB2 (if you need alpha) which use 1 byte per pixel and so could fit two images in RAM_G.

The BT81x has a command CMD_SYNC which allows you to wait for the end of the scan out and so can help avoid tearing. You can use this to help when editing the data on the fly of a bitmap for example or updating a macro value as shown here.

//To update REG_MACRO_0 at the end of scan out, to avoid tearing:
cmd_sync();
cmd_memwrite(REG_MACRO_0, 4);
cmd(value);

Best Regards, BRT Community
« Last Edit: May 20, 2021, 06:02:08 PM by BRT Community »
Logged