-
-
Notifications
You must be signed in to change notification settings - Fork 39.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Initial PoC for Dynamic lighting support #22296
base: develop
Are you sure you want to change the base?
Conversation
FWIW I do have #22119, and it seems cleaner to have the driver itself do the double buffering, then it could be changed from a void -> bool |
In many aspects it is not cleaner. It then couples the components even tighter, and following the existing code patterns, would introduce another wall of ifdefs. Then there is the fragmentation of such driver specific implementations, which can introduce inconsistency and make the code harder to diagnose. Also splits would need to share the driver specific buffer for the implementation to be compliant. (It also doesnt to solve the additional implementation requirements i've briefly summarised in the description). Resource usage is potentially already an issue on some boards, its potentially something QMK has to deviate on and not adhere to the spec. The storage and render area of the eventual solution, is maybe the part that needs the most investigation to work out direction. Though I plan to work through the interrupt issues mentioned (less implementation and more concepts) as the feature could go in with just a user implemented weak backing. And then jump back to this area maybe next week. |
quantum/lamparray.c
Outdated
data->position.x = (LAMPARRAY_WIDTH / 224) * g_led_config.point[lamp_id].x; | ||
data->position.y = (LAMPARRAY_HEIGHT / 64) * (64 - g_led_config.point[lamp_id].y); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe this should take RGB_MATRIX_CENTER
into account (by assuming that the boundaries are 2x the specified center coordinates).
Description
Still early days, but is somewhat functional and highlights a few areas that need decisions.
Discussion points
26.9 Color Attributes
?r:255 g:0 b:0 i:1
?r:1 g:0 b:0 i:255
?sharing buffers is expensivesync whole buffer periodically to ensure in step?complete
flagDevice type as only keyboard?Allowing override?Mouse would then enable reporting of buttons but removing basic + modsvusb
andarm_atsam
platformsTODO:
PoC rgblight patch
Types of Changes
Issues Fixed or Closed by This PR
Checklist