aboutsummaryrefslogtreecommitdiff
path: root/graphics
AgeCommit message (Collapse)Author
2017-10-15GRAPHICS: Send blank cursors to graphics backendsColin Snover
Blank cursors don't mean to continue drawing the previous cursor, they mean that the cursor in the backend needs to be blank.
2017-10-15BACKENDS: Refactor OpenGL & SDL graphics backendsColin Snover
This patch refactors the OpenGL and SDL graphics backends, primarily to unify window scaling and mouse handling, and to fix coordinate mapping between the ScummVM window and the virtual game screen when they have different aspect ratios. Unified code for these two backends has been moved to a new header-only WindowedGraphicsManager class, so named because it contains code for managing graphics managers that interact with a windowing system and render virtual screens within a larger physical content window. The biggest behavioral change here is with the coordinate system mapping: Previously, mouse offsets were converted by mapping the whole space within the window as input to the virtual game screen without maintaining aspect ratio. This was done to prevent 'stickiness' when the mouse cursor was within the window but outside of the virtual game screen, but it caused noticeable distortion of mouse movement speed on the axis with blank space. Instead of introducing mouse speed distortion to prevent stickiness, this patch changes coordinate transformation to show the system cursor when the mouse moves outside of the virtual game screen when mouse grab is off, or by holding the mouse inside the virtual game screen (instead of the entire window) when mouse grab is on. This patch also improves some other properties of the GraphicsManager/PaletteManager interfaces: * Nullipotent operations (getWidth, getHeight, etc.) of the PaletteManager/GraphicsManager interfaces are now const * Methods marked `virtual` but not inherited by any subclass have been de-virtualized * Extra unnecessary calculations of hardware height in SurfaceSdlGraphicsManager have been removed * Methods have been renamed where appropriate for clarity (setWindowSize -> handleResize, etc.) * C++11 support improved with `override` specifier added on overridden virtual methods in subclasses (primarily to avoid myself accidentally creating new methods in the subclasses by changing types/names during refactoring) Additional refactoring can and should be done at some point to continue to deduplicate code between the OpenGL and SDL backends. Since the primary goal here was to improve the coordinate mapping, full refactoring of these backends was not completed here.
2017-10-07BACKENDS: Fix window sizing of games that switch between multiple resolutionsColin Snover
2017-09-11GRAPHICS: Compare all fields in a PixelFormat individually instead of using ↵Cameron Cawley
memcmp.
2017-09-10GRAPHICS: Remove dead code in BDF loadCharacter codeColin Snover
2017-08-28GRAPHICS: MACGUI: Do not crash when nothing was drawn yetEugene Sandulenko
2017-08-26GRAPHICS: MACGUI: Clear whole surface when resizingEugene Sandulenko
This removes black artifacts when previous text was narrower
2017-08-22GRAPHICS: MACGUI: Now MacWindowManager processes most of the events, remove ↵Eugene Sandulenko
filter
2017-08-22GRAPHICS: MACGUI: Added support for scrolling with mouse wheelEugene Sandulenko
2017-08-22GRAPHICS: MACGUI: Ignore keys with modifiers in MacTextWindowEugene Sandulenko
2017-08-22GRAPHICS: MACGUI: Improved debug output in MacFontManagerEugene Sandulenko
2017-08-21GRAPHICS: MACGUI: Pass command id when creating menu to avoid namespace clashesEugene Sandulenko
This fixes Command menu in WAGE.
2017-08-21JANITORIAL: Fix spelling error in commentEugene Sandulenko
2017-08-18GRAPHICS: MACGUI: Fix MacTextWindow dragging and resizingEugene Sandulenko
2017-08-18GRAPHICS: MACGUI: Perform sanity checks before blittingEugene Sandulenko
2017-08-15GRAPHICS: MACGUI: Syncronise internal state when selection is cutEugene Sandulenko
2017-08-15GRAPHICS: MACGUI: Fix crash in selection when there is no text foundEugene Sandulenko
2017-08-15GRAPHICS: MACGUI: Fix MacText::getTextChunk() for multiline selectionsEugene Sandulenko
2017-08-14GRAPHICS: MACGUI: Initial code for MacTextWindow::cutSelection()Eugene Sandulenko
2017-08-12Graphics:: Add multiply blend modeSimei Yin
2017-08-12GRAPHICS: Consider flip mode when handling off-screen clippingSimei Yin
2017-08-11GRAPHICS: MACGUI: Fix GCC Compiler Warnings.D G Turner
2017-08-08GRAPHICS: MACGUI: Initial code for Cutting/Paste multiline input textsEugene Sandulenko
2017-08-07GRAPHICS: MACGUI: Do not resize MacTextWindow when not necessaryEugene Sandulenko
2017-08-07GRAPHICS: MACGUI: Fix selection visual feedbackEugene Sandulenko
2017-08-07GRAPHICS: MACGUI: Correctly process revere oneliner selectionsEugene Sandulenko
2017-08-07GRAPHICS: MACGUI: Correctly expand selection beyond last lineEugene Sandulenko
2017-08-07GRAPHICS: MACGUI: Correctly display last selection lineEugene Sandulenko
2017-08-07GRAPHICS: MACGUI: Do not draw selection in the initial stateEugene Sandulenko
2017-08-06GRAPHICS: MACGUI: Better handling for displaying selection endEugene Sandulenko
2017-08-06JANITORIAL: Silence some more GCC 7 fallthrough warningsTorbjörn Andersson
These weren't explicitly flagged as deliberate, but I recognize Duff's Device when I see it.
2017-08-06GRAPHICS: MACGUI: Fix cursor position when MacTextWindow is scrolledEugene Sandulenko
2017-08-05GRAPHICS: MACGUI: Enforce surface cleanup on MacText clearingEugene Sandulenko
2017-08-05GRAPHICS: MACGUI: More work on clearing MacTextWindow contentEugene Sandulenko
2017-08-05GRAPHICS: MACGUI: Made CLIP statemements more usefulEugene Sandulenko
2017-08-05GRAPHICS: MACGUI: Fix GCC Compiler Warnings.D G Turner
2017-08-05GRAPHICS: MACGUI: Do not crash when window callback is nullEugene Sandulenko
2017-08-05GRAPHICS: MACGUI: Added more selection manipulation methods to MacTextWindowEugene Sandulenko
2017-08-04GRAPHICS: MACGUI: Fix compilationEugene Sandulenko
2017-08-04GRAPHICS: MACGUI: Fix displaying two line text selectionsEugene Sandulenko
2017-08-04GRAPHICS: MACGUI: Fixed bug with column detection in text selectionEugene Sandulenko
2017-08-04GRAPHICS: MACGUI: Fix end line text selection hihglightEugene Sandulenko
2017-08-04GRAPHICS: MACGUI: Fix detection for Cut command enablementEugene Sandulenko
2017-08-04GRAPHICS: MACGUI: Better selection row detectionEugene Sandulenko
2017-08-04GRAPHICS: MACGUI: Improved text selection edge case behaviourEugene Sandulenko
2017-08-04GRAPHICS: MACGUI: Leave text highlight after selection is madeEugene Sandulenko
2017-08-04GRAPHICS: MACGUI: Added method to append input to MacTextWindowEugene Sandulenko
2017-08-04GRAPHICS: MACGUI: Bugfixes for selection copying in MacTextEugene Sandulenko
2017-08-04GRAPHICS: MACGUI: Initial code for copying selection to clipboardEugene Sandulenko
2017-08-04GRAPHICS: MACGUI: Correctly display selection during scrollingEugene Sandulenko