aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/graphics
AgeCommit message (Collapse)Author
2017-02-05SCI: Fix more unsafe C-string usageColin Snover
2017-01-16SCI32: Add pic cel to CelInfo32 debugging outputColin Snover
2017-01-16SCI32: Fix handling of negative z-indexesColin Snover
Fixes the ego disappearing behind the castle doors in MGDX.
2017-01-16SCI32: Clarify comment about empty code path in cursor codeColin Snover
2017-01-12SCI32: Fix crash trying to clip invalid rects generated by transitionsColin Snover
In PQ4CD, when leaving the shooting range through the front door, some transition screen items will be generated that have invalid dimensions. SSCI simply clips these rectangles to zero.
2017-01-12SCI32: "Fix" renderer for PQ4CDColin Snover
PQ4CD and several other games contain a hack in two renderer methods to avoid rendering invalid screen items with zero or negative-dimension target rects. This prevents PQ4CD from crashing during the fifth phase of target practice.
2017-01-12SCI32: Add workarounds, transitions, fixes for PQ4CDColin Snover
2017-01-11SCI32: Fix uninitialised read of cursor background at start of gameColin Snover
2017-01-11SCI32: Improve mouse responsivenessColin Snover
This is most noticeable at the beginning of the game during benchmarking, where the benchmarking loop used to cause the mouse to get stuck for the duration of the benchmark.
2017-01-09SCI32: Fix bad coordinates in PQ:SWAT demoColin Snover
2017-01-09SCI32: Fix invalid bitmap deletion in AVIPlayerColin Snover
2017-01-09SCI32: Fix crashes and bad cel positioning in GK2 demoColin Snover
2017-01-06SCI: Add FIXME for (very unlikely) race condition in _palVarySignalWillem Jan Palenstijn
2017-01-02SCI32: Load VMDs from resource bundlesColin Snover
GK2 includes some VMDs in the RESSCI.00n volume bundles for the chase scene at the end of Chapter 6.
2016-12-19SCI32: Improve ScreenItem missing resource errorColin Snover
2016-12-19SCI32: Add support for alternate graphics selectorsColin Snover
Used by at least Phantasmagoria 2.
2016-12-19SCI32: Change plane and screen item sorting algorithmColin Snover
SSCI's last resort comparison here was to compare the object IDs of planes & screen items, but this randomly breaks (at least) the "you have died" dialog at the end of Phant1, and text & buttons in Hoyle5, even in SSCI itself. This commit changes last resort comparison to use a monotonically increasing ID instead, which keeps objects with identical priority & z-index in creation order when compared. Fixes Trac#9585.
2016-12-19SCI32: Fix incorrect parsing of empty |f| text escape codeColin Snover
This sequence is used in Hoyle5 when viewing the rules for a game.
2016-12-17SCI32: Fix bitmap surface memory leaks in video playersColin Snover
Fixes Trac#9662.
2016-12-12SCI32: Adjust transition timingsColin Snover
Transition timings were originally chosen largely by feel in SQ6, as there was little other evidence to determine the correct speed. As additional games started being playable in ScummVM, it became apparent that these speeds were not quite right. Additional adjustments may be needed in the future, but these new timings seem to be somewhat closer to expectations than before.
2016-12-10SCI: Fix buffer overflows in GfxPicture circle drawingColin Snover
Fixes Trac#9660.
2016-11-19SCI32: Remove no-longer-necessary Phant1 VMD sync hackColin Snover
2016-11-04SCI32: Implement kPlayVMDIgnorePalettesColin Snover
Used in Shivers room 35170 when pressing the play button.
2016-11-04SCI32: Stop digital audio when VMDs open in some SCI2.1 gamesColin Snover
2016-11-04SCI32: Fix VMD playback stuttering when kEventFlagToFrame is usedColin Snover
For example, Shivers room 932 when subtitles are enabled.
2016-11-02SCI32: Fix incorrect text width calculation of non-ASCII stringsColin Snover
Fixes Trac#9639.
2016-11-02SCI: Remove old SCI32 hires detection heuristicColin Snover
2016-11-02SCI32: Automate kNumCels workaroundColin Snover
2016-11-02SCI32: Remove incorrect palette.h #includeColin Snover
2016-10-26SCI32: Fix AVI renderingColin Snover
Fixes Trac#9588.
2016-10-26SCI32: Initialize video buffers to avoid flash of garbage memoryColin Snover
2016-10-26SCI32: Use standard max_size method instead of ARRAYSIZE for a containerColin Snover
2016-10-22SCI32: Fix slow SCI2.1mid transitionsColin Snover
SSCI transitions code sends a large number of small show rects to the graphics manager, one at a time, for each division of a transition. Each time a rect is submitted, a call to showBits is made. This design was used when transitions for SCI32 were first implemented in ScummVM, and it worked OK because the hardware surface was updated by EventManager::getSciEvent, not showBits, so the large number of calls to showBits from the transitions code did not adversely affect engine performance. Later in SCI32 engine development, hardware surface updates were changed to occur in showBits so that the hardware surface would be updated at frame-out time, instead of at input-in time. This change meant that now the large number of calls to showBits from transitions became very expensive, and the engine would stall constantly refreshing the entire hardware surface. To fix this problem, the transitions code now (1) maximises the size of rects coming from transitions, when possible, and (2) only calls showBits when all the rects from one frame of a transition have been calculated and added to the show rects list. Additionally, there were some arithmetic errors in the implementation of pixel dissolve that have been corrected in this changeset. Fixes Trac#9614.
2016-10-21SCI32: Implement HShutterIn for SCI2.1mid+Colin Snover
Fixes Trac#9584.
2016-10-20SCI32: Fix typoColin Snover
2016-10-20SCI32: Split out detection of features that cross SSCI versionsColin Snover
2016-10-16SCI32: Fix screen items incorrectly drawing over higher planesColin Snover
Fixes Trac#9583.
2016-10-10SCI32: Check for existence of visiblePlane before dereferencingColin Snover
CID 1351620.
2016-10-09SCI32: Allow 'focused' variable to break out of the event loopColin Snover
2016-10-09SCI32: Clarify some identifiersColin Snover
transparentColor -> skipColor displace -> origin scaledWidth -> xResolution scaledHeight -> yResolution
2016-10-09SCI32: Change storage type of int16 arrays to hold reg_ts insteadColin Snover
Memory references and integers in SSCI are both 16-bit numbers, so game scripts frequently (incorrectly) use an IntArray instead of an IDArray for holding references. Since references in ScummVM are 32-bit reg_ts, IntArray entries must be large enough to hold reg_ts in order to be compatible with game scripts that store references in integer arrays. The alternative solution is to find and patch all incorrect use of IntArray across all games. This is possible, but a bit risky from a save game stability perspective, since incorrect IntArray usage is sometimes not apparent until well after the array is instantiated (like GK1's global interview array). This change invalidates existing SCI32 save games.
2016-10-09JANITORIAL: Remove trailing spacesEugene Sandulenko
2016-10-01SCI32: Make kNumCels error more detailedColin Snover
2016-10-01SCI32: Add the rest of the code from PR #813 for dynamic line drawingFilippos Karapetis
2016-09-30SCI32: Fix some buildbot compiler warningsColin 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-29SCI: Deduplicate call origin formattingColin Snover
2016-09-29SCI: Add prefix to global variable constantsColin Snover