This repository has been archived by the owner on Jul 3, 2020. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds a
graphics
subsystem plus a BGA driver to provide a default renderer. Since the BGA backend has to perform calculations every time it's going to find a pixel, it's fairly slow at rendering, but it's decent enough.Right now, graphics can be loaded with
runtime.graphics.enableGraphics()
and pixels can be manipulated by fetching them throughruntime.graphics.screen.get(x, y)
which will return a pixel from the backend. The backend should return a pixel with getters and setters forr
,g
, andb
.This is basically as thin as possible of a wrapper around multiple possible graphics renderers (BGA, virtio-gpu in the future), to be able to abstract direct access to the video buffers, providing the most basic functions (enabling graphics, pixel manipulation) allowing higher level functions (image drawing, printing text, shape drawing, etc.) to be implemented on top of that.
However, this should be refactored into an optional module later, along with other things.