c++ - What is the absolute lowest level of "drawing" abstraction in GNU/Linux? -
motivation - write program in c (and assembly, if required) color rectangular area in screen red.
strict requirements - gnu/linux running bare minimum utilities , interfaces in text/console mode. no x (or equivalent wayland/mir), no non-default (outside posix, lsb, etc. provided kernel) library or interface , no assumptions except presence of device driver monitor.
effectively, looking information on how write program send signal through vga port , cable monitor color particular portion of screen red.
apologies if sounds rude, no "why want this?" or "why don't use abc library?" answer. trying understand how write implementation of x server or kernel framebuffer (/dev/fb0) library example. ok provide link source of c library.
no assumptions except presence of device driver monitor.
that means can use x or wayland, because graphics driver infrastructure on linux.
linux (the kernel) doesn't contain graphics primitives. provides interfaces talk gpu, allocate memory on , configure on-screen framebuffer. except raw framebuffer memory access linux kernel have no way perform drawing operations. need infrastructure in userspace.
wayland builds on top of dri2, in turn talks drm kernel-api. require gpu dependent state tracker. mesa has state trackers number of gpus , provides opengl , openvg frontends.
the nvidia , ati propiatary, closed source graphics drivers designed work x only. make use of gpu must use x. that's way is.
outside of can manipulate on-screen framebuffer memory through /dev/fbdev
, that's mere pixel pushing, without gpu acceleration.
Comments
Post a Comment