Comments (14)
Hello @thilofrank,
Support for this method of visible frame buffer update is in our task backlog and will be implemented for an upcoming update. Can you tell me, are you using a self-refresh display with internal GRAM? Just curious.
from guix.
I use an ILI9341 spi display controller, that has GRAM included.
from guix.
The documentation mentions Ping-Pong-Framebuffers. Is this the same?
from guix.
Regarding GRAM- perfect. Regarding Ping-Pong buffers, related but not exactly the same. GUIX currently supports full frame-buffer size ping-pong buffers, so the application is writing to and updating the working buffer while the LCD refresh circuitry operates out of the visible buffer. This is really intended for architectures without self-refresh, i.e. the MCU or external LCD controller is continuously updating the LCD data. After each drawing sequence, the buffers are toggled. This is really implemented by the display driver, which also updates the GUIX canvas memory pointer after each buffer toggle.
The partial buffer design is similar, but each working buffer is N scan lines in size. GUIX already implements full clipping, so the idea is that we clip the drawing to N scan lines, shift this out to the GRAM, draw the next N scan lines, etc... If you have two small buffers, drawing to buffer A and shifting buffer B to the GRAM can happen in parallel. GUIX also keeps track of the canvas dirty area, so often a full screen refresh is not required. The partial buffer design only redraws the dirty scan lines with each refresh operation. This requires a logic change in the internal GUIX canvas refresh function, so we can't implement this only in the hardware specific display driver. That is the reason a GUIX update release is required to support this correctly.
from guix.
The ILI9341 has a command to set its windows (x,y,w,h). If a partial framebuffer helds all data w/o the non-dirty areas, it can be flushed in one shoot. Is this your idea for the future?
from guix.
Just wondering if there's been any update on this? The idea of partial frame buffers is quite appealing in memory-constrained scenarios.
from guix.
@azeater we have this task in our backlog but it's not going to make into the July update release. We should be able to tackle this for the next update release after July.
from guix.
Hi, sorry to revive a closed issue but I was wondering where this has been implemented/if it has been released yet?
from guix.
@azeater Apologies for closing this issue. The mentioned feature hasn't been supported yet, but we will consider supporting the feature in the future. If you are working with hardware from ST, Microchip, NXP, or Renesas, you may also seek assistance from them for further guidance and support on this matter.
from guix.
@thilofrank @azeater Is this feature still required? Could you provide information about the hardware you are utilizing and the specific scenarios in which you are employing this feature?
from guix.
Hi @ting-ms - yes I would definitely say this is required. Any embedded system with memory constraints would greatly benefit from this. For example, using a 320x240 16 bit display requires a full frame buffer of 153600 bytes - on a small MCU with 256KB of RAM that's over half the RAM needed to update the display which could be a blocker in using GUIX.
@thilofrank mentioned TouchGFX but I've got experience with LVGL which also supports partial frame buffers and works quite well.
from guix.
@azeater Thank you for your response. Are you currently in the evaluation stage, or do you have a production waiting for the implementation of this feature?
from guix.
We are currently developing a product and are waiting on this feature.
from guix.
@thilofrank @azeater The partial frame buffer is currently available in GUIX release 6.3.0.
For detailed instructions on how to use this feature, please reference the documentation Appendix D - Canvas Partial Frame Buffer Feature | Microsoft Learn.
from guix.
Related Issues (20)
- PNG/DEFLATE font compression
- How to implement physical key operations
- GuiX Studio uses the Azure-RTOS GUIX repo, rather than the Eclipse-ThreadX repository HOT 1
- GUIX resources typo
- GUIX multiple identical resources
- How to uncompress compressed pixelmaps in GUIX?
- Documentation question about gx_system_event_send() error code HOT 8
- Incorrect PNG function being called when 2d engine is disabled HOT 3
- Bad LowerCase/UpperCase file loading in recent file window HOT 3
- GUIX Studio RGB888 frame buffer support HOT 7
- Documentation Errors HOT 5
- 4bit per pixel png image support HOT 2
- GUIX in low power mode HOT 11
- gx_studio_auto_event_handler calls event function on a deleted widget HOT 9
- GUIX Studio font heights above 240 pixels are not possible HOT 2
- If a vertical lists has a multiple childs of different heights, the scrollbar thumb does not reach the end of the scrollbar HOT 3
- The GX_EVENT_FOCUS_LOST event is not sent if the parent does not have focus HOT 2
- GX_VERTICAL_LIST does not release input if it contains GX_SINGLE_LINE_TEXT_INPUT HOT 2
- Increase maximum font size HOT 2
- Hebrew : multiline text view widgets dont display correctly on several lines HOT 10
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from guix.