-
-
Notifications
You must be signed in to change notification settings - Fork 114
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
write pixel graphics directly to linux console framebuffer #1369
Comments
looks like oyu just need permissions to open the appropriate framebuffer device, and then you can |
Hey while you're at this, I just thought about this project supporting IO_URING as well. It has to be enabled in the kernel but it's enabled by default in the latest kernel stable and mainline. Framebuffer support is the same, needs to be enabled but typically it is for linux. This is only not the case for certain devices/situations including WSL2 (where when I enable the framebuffer devices, io_uring, and other perf options (compliments to Clear Linux for making those easy to determine), things speed up a bit.) |
Curious: Do you have GPM mouse support when running on the raw console? |
i'm quite familiar with io_uring, and it's great stuff, but i don't quite see how it would apply to Notcurses? i'm unafraid of new, esoteric, linux-only APIs; we use pidfd already in |
I believe so! I claim it, so I assume I tested it at some point =]. |
I wasn't sure how much it might play into this project either hence seeing if it has any viability or if it's just not something that is applicable to this type of project. |
it looks like we can detect a raw framebuffer with the |
but i think this needs be performed using the framebuffer device, not the tty. |
i'm not sure how/if DRM Dumb Buffers need play a role https://manpages.debian.org/testing/libdrm-dev/drm-memory.7.en.html |
i'm also unsure how one determines which framebuffer is relevant if several are present. |
there's also
|
i think the thing to do here might be to rerun |
we now open the framebuffer device and apply the |
so an interesting element here is that our method of drawing is fundamentally different. for everything else, we provide rectangular data, and it's laid out for us, written as a large glyph. here, we need lay down the lines ourselves, and they're done via mmap direct writes. that latter is a wrinkle -- it changes up the ordering of things. we purposefully do bitmap phase 1, glyph phase 1, bitmap phase 2, glyph phase 2, as that's necessary for wipe/restore logic. if we draw directly from |
this is pretty much working now, at the level of iterm anyway -- we can draw, but no wiping/rebuilding yet. |
w3m appears capable of rendering pixel images in the linux console sans fbterm. i didn't know this was possible -- i thought you had to use fbterm or something similar to get sub-cell (maybe it's actually bringing the console into framebuffer mode?). figure out what's going on, and use it for our
NCBLIT_PIXEL
implementation onTERM=linux
.The text was updated successfully, but these errors were encountered: