aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/graphics/palette32.cpp
AgeCommit message (Collapse)Author
2019-10-11SCI32: Enable Mac code (remove ENABLE_SCI32_MAC)sluicebox
2019-10-04SCI: Really Fix MSVC WarningD G Turner
The Palette structure referred to here is in sci/graphics/helpers.h not in the Graphics CursorMan class as previously thought. Rather than adding a structure constructor which could have side effects currently, the full structure is initialized here to avoid the MSVC warning. The previous change to CursorMan class Palette can be retained as it is a reasonable code improvement in any case.
2017-10-06SCI32: Clean up GfxPalette32Colin Snover
* Replace raw pointers with smart pointers * Use references instead of const pointers where appropriate * Tweak initialisation * Tweak palette copies to the stack
2017-09-27SCI32: Fix backwards palette checkColin Snover
2017-09-24SCI32: Disable all SCI32 Mac codeColin Snover
This code is currently untestable and is almost certainly at least partly based on guesswork & not actual reverse-engineering (as was the case for all other pre-2015 SCI32 code), so future developers interested in adding SCI32 Mac support should use it only as an intermediate reference rather than as known good code.
2017-09-24SCI32: Support palette-inverting SCI3 variant of kPalVaryColin Snover
This is used by RAMA in room 6201, after eating the alien fruit.
2017-07-17SCI32: Remove ENABLE_SCI3_GAMES ifdef, now that they are supportedColin Snover
2017-07-13SCI32: Ignore chest view palette in PhantasmagoriaColin Snover
This fixes the 3-frame glitch that was also present in the original game when moving in the chapel from room 6500 to 6400 in chapter 7. Fixes Trac#9788.
2017-07-13SCI32: Stop optimising palette mergesColin Snover
While this optimisation helped to reduce unnecessary palette updates in KQ7, it broke Phant1, which relies on changes to index 255 in the source palette causing palette invalidation. Refs Trac#9788.
2017-07-06SCI32: Fix bad palette entries when built without USE_RGB_COLORColin Snover
This is only a problem for the Windows games that need some palette entries to be ignored.
2017-07-06SCI32: Improve kPlayVMD renderingColin Snover
1. Added a new game option for linear interpolation when scaling overlay-mode video in ScummVM builds with USE_RGB_COLOR; 2. Implemented SCI2.1-variant of the VMD player renderer (fixes Trac#9857), which bypasses the engine's normal rendering pipeline; 3. Improved accuracy of the SCI3-variant of the VMD player by writing HunkPalettes into the VMD's CelObjMem instead of submitting palettes directly to GfxPalette32.
2017-07-06SCI32: Work around bogus palette entries in select Windows gamesColin Snover
2017-07-06SCI32: Remove magic numbers in HunkPaletteColin Snover
2017-07-06SCI32: Speed up & deduplicate palette submission codeColin Snover
2017-05-06SCI32: Fix terrible rendering performance when vsync is enabledColin Snover
More than one call to OSystem::updateScreen per frame on systems with vsync ruins performance because the call is blocked until the next vsync interval. This also fixes bad rendering performance with the OpenGL backend.
2017-04-22SCI32: Add palette code for late SCI2.1mid+ gamesColin Snover
Sometime during SCI2.1mid, the palette manager was changed to save and restore the source palette, and to add in-game gamma correction. Previously, only the vary start and target palettes were saved, and gamma correction was only configurable in SSCI by editing RESOURCE.CFG.
2017-03-27SCI: Implement bounds-checked reads of game resourcesColin Snover
2016-10-20SCI32: Split out detection of features that cross SSCI versionsColin Snover
2016-09-29SCI32: Fix broken palette cycling in SCI2/2.1early gamesColin Snover
This fixes the incorrect appearance of the Sierra logo in PQ4 when the main menu appears in hi-res mode. The behaviour of kPalCycle(SetCycle) changed in between 2.1early and 2.1mid to fix an off-by-one error that prevented the last palette entry in a cycle range from being used. Some earlier games, like PQ4CD in hi-res mode, relied on this behaviour, and would render incorrectly if the last palette entry in a range was used.
2016-09-29SCI32: Clean up and document GfxPalette32Colin Snover
2016-09-29SCI32: Fix off-by-one error in palette fadesColin Snover
2016-09-29SCI32: Update screen on frameout, instead of in the event loopColin Snover
2016-08-23SCI32: Fix palette in SCI32 Mac gamesFilippos Karapetis
2016-07-12SCI32: Fix unnecessary palette updatesColin Snover
Some games load palettes that include color 255, but this is hardcoded to white in SSCI, so just ignore it during merges since it is ignored when the hardware palette is updated anyway.
2016-07-12SCI32: Avoid flash of incorrect colour when palettes are changedColin Snover
Avoid forcing the screen to refresh after a palette change if the screen is also about to be drawn to, as the palette change + draw is intended to be an atomic operation.
2016-07-11SCI32: Fix incorrect logic of cycler overflowColin Snover
2016-07-11SCI32: Minor cleanup of GfxPalette32Colin Snover
2016-07-11SCI32: Fix bad output caused by missing palette copiesColin Snover
Sometimes, games accidentally use palette entries that are not marked as used and expect them to be a particular colour, like the Phantasmagoria title screen, or the white palette entry (always 255 in DOS/Win).
2016-07-11SCI32: Split GfxPalette and GfxPalette32 + HunkPaletteColin Snover
2016-06-26SCI32: Fix broken Remap implementationColin Snover
Remap would crash SCI2.1early games with 19 remap slots, and did not actually work in most cases in SCI2.1mid+ games. The SCI16 implementation was moved to its own separate file but was otherwise touched as little as possible, so may still have similar problems to the SCI32 code. 1. Split SCI16 and SCI32 code into separate files 2. Use -32 prefixes for SCI32 code and no prefix for SCI16 code, where possible, to match other existing code 3. Avoid accidental corruption of values from the VM that may be valid when signed or larger than 8 bits 4. Added documentation 5. Add missing remap CelObj calls 6. Inline where possible in performance-critical code paths 7. Fix bad `matchColor` function, and move it from GfxPalette to GfxRemap32 since it is only used by GfxRemap32 8. Fix bad capitalisation in getCycleMap 9. Remove unnecessary initialisation of SingleRemaps 10. Update architecture to more closely mirror how SSCI worked 11. Clarify the purpose of each type of remap type (and associated variable names) 12. Split large `apply` function into smaller units 13. Fix buffer overrun when loading a SCI2.1early game with remap 14. Remove use of `#define` constants 15. Warn instead of crashing with an error on invalid input (to match SSCI more closely) 16. Change the collision avoidance mechanism between the RemapType enum and remap kernel functions 17. Add save/load function
2016-03-11SCI32: Initial implementation of kRemapColorsFilippos Karapetis
applyRemap() is still not finished, so nothing is actually visible yet
2016-03-08SCI: Add missing namespace comments in graphics/.Johannes Schickel
2016-03-08SCI: SpacingFilippos Karapetis
2016-03-07SCI32: Add unnecessary micro-optimisation to palette merging codeColin Snover
2016-03-07SCI32: Fix palette color overflowColin Snover
2016-03-07SCI32: Enable GfxPalette32::cycleAllPauseColin Snover
This is used by the Mr Soylent machines in SQ6 (e.g. room 370).
2016-02-18SCI: Minor cleanupColin Snover
1. Reorder member initialisations to match class member order 2. Use #pragma mark instead of comments for annotating sections 3. Remove useless >=0 checks on unsigned types
2016-02-19SCI: Use American English, like we do in other parts of ScummVMFilippos Karapetis
This replaces "colour" to "color"
2016-02-18SCI: Fix palette equality checkColin Snover
2016-02-18SCI: Implement accurate renderer architecture for SCI32Colin Snover
2016-02-14SCI: Proper initialization.Eugene Sandulenko
There is no guarantee of initialization order in the constructor declaration, thus corss references are not a good idea.
2016-01-15SCI: Fix usage of override functions and silence a warningFilippos Karapetis
2016-01-14SCI: Minor clean-ups to comments and null pointer valuesColin Snover
2016-01-14SCI: Implement SCI32 kPalette findColor and matchColorColin Snover
It seems that findColor is used only by kPalette, and matchColor is used only by Remap.
2016-01-14SCI: Implement SCI32 kPalVary and kPalette setFadeColin Snover
This also fixes kPalCycle signatures to be more accurate.
2016-01-08SCI: Fix the math in applyFade(), and simplify setFade()Filippos Karapetis
2016-01-08SCI: *Really* fix the logic in applyFade()Filippos Karapetis
Thanks wjp
2016-01-08SCI: Fix the logic in applyFade()Filippos Karapetis
Note that this is still unused, as it is normally called from kSetShowStyle()
2016-01-08SCI: Renamed one more function name to conform to our guidelinesFilippos Karapetis
2016-01-08SCI: Make GfxPalette32 conform to out formatting guidelinesFilippos Karapetis
We do not prepend underscores to private class functions