125 Commits

Author SHA1 Message Date
Bastien Bouclet
1d764bd787 GRAPHICS: Vector renderer clipping rect related cleanups
Selecting whether a clipping variant of a draw call needs to be used is
no longer the responsibility to the caller. The clipping rect is now
part of the state of the renderer.

Also fix some of the draw calls to better apply the clipping rect.
2019-10-07 21:47:42 +02:00
D G Turner
d78459f8bc GUI: Fix GCC Compiler Warnings in GUI Theme Parser Code
This removes the usage of memset to clear complex structures and replaces
them with constructor methods for the structures which will be executed
when these are instantiated.
2019-08-17 05:03:04 +01:00
Le Philousophe
3a7219fa57 JANITORIAL: Avoid C4121 warnings in MSVC by reordering fields
C4121 is about 'symbol': alignment of a member was sensitive to packing
2019-06-30 21:43:58 +03:00
Adrian Frühwirth
3747d852ee JANITORIAL: Fix whitespace 2018-04-15 16:31:31 +02:00
Bastien Bouclet
4d0bb753e4 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.
2018-03-12 11:46:04 +01:00
Eugene Sandulenko
6524a8d103 GUI: Added transparency to PicWidgets 2016-08-24 16:07:55 +06:00
Eugene Sandulenko
c6e04845cc GUI: Switched GUI to draw on TransparentSurface 2016-08-24 16:07:55 +06:00
Eugene Sandulenko
94bc75ae46 GUI: Implemented centering of dialog background 2016-08-24 16:07:55 +06:00
Eugene Sandulenko
75f9b099dc GUI: Added possibility to specify scale mode for AlphaBitmaps 2016-08-24 16:07:55 +06:00
Eugene Sandulenko
38114eb760 GUI: Plug NinePatch bitmaps into parser 2016-08-24 16:07:55 +06:00
Eugene Sandulenko
ec7312ac13 GUI: Implemented more modes to autoscale 2016-08-24 16:07:55 +06:00
Eugene Sandulenko
4474ccf814 GUI: Implemented alphabitmap autoscale 2016-08-24 16:07:55 +06:00
Eugene Sandulenko
53a42ececf GUI: Added new alphabitmap image type 2016-08-24 16:07:55 +06:00
Alexander Tkachev
6fd6043391 GUI: Fix blitAlphaBitmapClip() 2016-07-03 12:24:11 +02:00
Alexander Tkachev
916c86e689 GUI: Add blitAlphaBitmapClip() 2016-07-03 12:23:41 +02:00
Alexander Tkachev
e636894b06 GUI: Add fillSurfaceClip() 2016-07-03 12:23:12 +02:00
Alexander Tkachev
a39a6533c4 GUI: Add drawCrossClip() 2016-07-03 12:22:41 +02:00
Alexander Tkachev
0dcd29e998 GUI: Fix drawRoundedSquareClip() 2016-07-03 12:22:26 +02:00
Alexander Tkachev
80412a4139 GUI: Add drawTabClip() 2016-07-03 12:22:10 +02:00
Alexander Tkachev
ee00156d54 GUI: Add drawBeveledSquareClip() 2016-07-03 12:21:55 +02:00
Alexander Tkachev
05383532b7 GUI: Add drawLineClip() 2016-07-03 12:21:40 +02:00
Alexander Tkachev
2231de040f GUI: Add drawCircle() 2016-07-03 12:21:24 +02:00
Alexander Tkachev
f22d11953d GUI: Add drawSquareClip() 2016-07-03 12:21:09 +02:00
Alexander Tkachev
559ca37daf GUI: Add VectorRendererSpec::drawTriangleClip() 2016-07-03 12:20:37 +02:00
Alexander Tkachev
3d2730a0dd GUI: clippingRect propagated deeper 2016-07-03 12:15:51 +02:00
Alexander Tkachev
d7278cc48b GUI: Prepare button to be clipped 2016-07-03 12:14:45 +02:00
Filippos Karapetis
614de0d761 GRAPHICS: Remove trailing whitespace 2014-10-28 15:38:50 +02:00
Einar Johan Trøan Sømåen
0593c2eab2 GRAPHICS: Fix some Doxygen comments that seem wrong. 2014-08-29 03:26:48 +02:00
Narek Mailian
5c00dbbd2a GRAPHICS: Add support for Soft Shadows with rounded squares 2013-08-16 20:54:08 +02:00
Narek Mailian
887a99e211 GRAPHICS: Added changes and improved code from inisider/scummvm (partial text)
Includes code from https://github.com/inisider/scummvm/ , which has been
squashed and bugfixed
2013-08-16 20:54:08 +02:00
Johannes Schickel
5111746911 GRAPHICS: Take advantage of Surface::getPixels. 2013-08-03 04:02:49 +02:00
Johannes Schickel
affb7c3cb3 GRAPHICS: Prefer getBasePtr over direct Surface::pixels access. 2013-08-03 02:52:34 +02:00
Johannes Schickel
89abab97e3 JANITORIAL: Remove trailing whitespaces.
Powered by:
git ls-files "*.cpp" "*.h" "*.m" "*.mm" | xargs sed -i -e 's/[ \t]*$//'
2012-09-26 04:17:55 +02:00
Eugene Sandulenko
1dbc41d411 GUI: Move _gradientBytes to VectorRendererSpec 2011-12-10 11:51:10 +00:00
MaximRussia
ad4471f70c GUI: Improved pop up and scrollbar arrows look
Previous triangle drawing was all wrong, rewrote it from the scratch.
Added padding to drawsteps in stx files
2011-12-07 14:04:10 +00:00
strangerke
69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Ori Avtalion
9414d7a6e2 JANITORIAL: Reduce header dependencies in shared code
Some backends may break as I only compiled SDL
2011-04-28 15:08:58 +03:00
Max Horn
f242266f6d Change a couple places from 'end of namespace' to 'End of namespace', for consistency
svn-id: r44634
2009-10-04 21:26:33 +00:00
Max Horn
a882a6f467 GUI: Replaced ThemeParser::_drawFunction hashmap by a static function getDrawingFunctionCallback which maps strings to draw funcs
svn-id: r41931
2009-06-28 19:57:27 +00:00
Johannes Schickel
b8d2c41cdd Remove VECTOR_RENDERER_FORMAT check and related documentation.
svn-id: r38405
2009-02-17 12:20:40 +00:00
Max Horn
a351648358 Rewrote VectorRendererSpec & VectorRendererAA to use a Graphics::PixelFormat, instead of relying on color masks -> should fix bug #2537212, possibly at a slow down on low-end systems (a regression which we certainly could resolve, though). Note: I left the PixelType template param in on purpose, in case we want one day to compile in both 16 and 32 bit pixel support simultaneously
svn-id: r36288
2009-02-13 00:03:13 +00:00
Max Horn
e354c4b4f2 Got rid of VectorRenderer::surfacePitch() & VectorRenderer::bytesPerPixel(): the latter was not used, for the former it is silly to go through a virtual method to compute that value; all in all, this code performs too many unnecessary divisions ;)
svn-id: r36151
2009-01-30 16:18:58 +00:00
Max Horn
f465abb75d Removed unused area convolution code from VectorRenderer
svn-id: r36148
2009-01-30 15:43:45 +00:00
Jordi Vilalta Prat
b1999a2a16 Fixed indentation and removed whitespaces at the end of line
svn-id: r35481
2008-12-22 11:22:15 +00:00
Max Horn
c0f82d3518 Renamed Graphics::TextAlignment -> Graphics::TextAlign and merged it with GUI::ThemeEngine::TextAlignVertical
svn-id: r35023
2008-11-12 14:30:16 +00:00
Vicent Marti
b98f89c7f0 Merged GUI::Theme and Gui::ThemeEngine into the same class, GUI::ThemeEngine.
Massive cleanup.

svn-id: r34983
2008-11-10 11:24:55 +00:00
Nicola Mettifogo
33b6bc4215 Reordered initialization lists to kill a ton of warnings.
svn-id: r34892
2008-11-04 05:29:53 +00:00
Johannes Schickel
d8a76a6b59 Typo.
svn-id: r34866
2008-10-29 20:05:59 +00:00
Johannes Schickel
ebcb486191 Enable gui renderer for all bit depths we support currently.
svn-id: r34865
2008-10-29 20:02:56 +00:00
Johannes Schickel
98b0c4b33c Committed my patch from -devel, which reintroduces DISABLE_FANCY_THEMES to strip functionallity in theme renderer uneeded by small devices.
svn-id: r34864
2008-10-29 19:48:15 +00:00