diff options
author | Bastien Bouclet | 2018-01-07 10:39:22 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2018-03-12 11:46:04 +0100 |
commit | 4d0bb753e418ee9f70937777cb3827cd3181a26b (patch) | |
tree | 151cffe7d73693389430ba33f8843f941629c6fb /graphics | |
parent | 99eb0159dbd35c0081352fbc9bfeaf3077204655 (diff) | |
download | scummvm-rg350-4d0bb753e418ee9f70937777cb3827cd3181a26b.tar.gz scummvm-rg350-4d0bb753e418ee9f70937777cb3827cd3181a26b.tar.bz2 scummvm-rg350-4d0bb753e418ee9f70937777cb3827cd3181a26b.zip |
GUI: Remove the ThemeItem draw queues
Drawing nows happens directly when the Dialog or Widget draw methods are
called. This makes it easy to debug why a particular low level draw
method was called, by inspecting the call stack.
This replaces the notion of "buffering" by two independant ways to
control what is drawn and where:
- The active layer is used to select whether the foreground or
background part of the dialogs are rendered by the draw calls.
- The active surface is used to select if the draw calls affect the back
buffer or the screen.
The foreground layer of the active dialog is drawn directly to the
screen. Its background layer is drawn to the back buffer. This way
widgets can restore the back buffer in order to update without having to
redraw the dialog's background.
Dialogs lower in the dialog stack are drawn entirely to the back buffer.
Diffstat (limited to 'graphics')
-rw-r--r-- | graphics/VectorRenderer.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/graphics/VectorRenderer.h b/graphics/VectorRenderer.h index 5f7b6e60d3..2b84c21894 100644 --- a/graphics/VectorRenderer.h +++ b/graphics/VectorRenderer.h @@ -290,6 +290,13 @@ public: } /** + * Returns the currently active drawing surface + */ + virtual TransparentSurface *getActiveSurface() { + return _activeSurface; + } + + /** * Fills the active surface with the specified fg/bg color or the active gradient. * Defaults to using the active Foreground color for filling. */ |