ronan_rt Posted February 21, 2017 Report Posted February 21, 2017 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?
Joel Bodenmann Posted February 22, 2017 Report Posted February 22, 2017 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.
ronan_rt Posted February 23, 2017 Author Report Posted February 23, 2017 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
Joel Bodenmann Posted February 23, 2017 Report Posted February 23, 2017 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.
ronan_rt Posted February 23, 2017 Author Report Posted February 23, 2017 Yes! I already implemented this function. I Called BTE_ColorFill, and works fine. But I dont know where I should put this on my program. Can you help me?
Joel Bodenmann Posted February 23, 2017 Report Posted February 23, 2017 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.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now