Jump to content

Recommended Posts

Posted

Hello folks!

Im trying to implement some acceleration on my RA8875 screen, because its connected through SPI. Where is the function where the screen is CLEARED? When I push a button (to change a screen), the screen become cleared, than white, thaaaan fill with the desired collor. There is a known function called BTE that draws immediatly. So I want to try to change the main function.

Can you point me?

Posted

Do not attempt to change anything internal like that. Those things are not like that just because for no reasons. The mechanisms used by the GWIN module (and anything else in the µGFX library) are a result of years of experience and many complex pieces that fit together nicely. When not having the big picture you don't see all the things that go on in the background, what simplifications have been assumed to save memory and so on. Changing something like this is the wrong approach for fixing symptoms rather than problems and you will end up with many other problems instead.

Implement the area filling in your RA8875 driver and you'll get a huge performance boost already. After that, apply other mechanisms that have been discussed in this forum many times.

Any changes inside of the core code, even if it's just so little of a change, will have many side effects and will imply many more problems.

Posted

I understand that. But what about the clearing screen? That cant be in that speed. U suggest to change my hardware? Use D0-D16 pins?

THe SPI speed is at maximun, so the screen is cleared with a slow white filling

Posted

No, we definitely don't suggest to change your hardware. Your hardware is fine.

The µGFX code is optimized to always use the best possible method to achieve something. In case of clearing the screen it would use the hardware clearing if you implemented that. If you haven't it will use gdispGFillArea(0, 0, gdispGetWidth(), gdispGetHeight()). That function would then use the area filling hardware acceleration (if you implemented that) or fall back to manually clearing the screen by basically doing setPixel() - which is what you're experiencing currently.
Hence we suggest you to simply implement the hardware area filling (rectangle drawing) support into your RA8875 and your problem will be gone. The performance of your entire GUI will increase immensely.

Posted

Have a look at the GDISP driver / GDisplay documentation. It tells you the function signature (the function name is gdisp_lld_fill() or something like that, that the linker will try to link against).
If you implemented the hardware filling functionality into your driver correctly then it should just work. Maybe you forgot to set the corresponding define in the driver configuration file.
You might want to have a look at some of the other drivers that implement hardware acceleration.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...