aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/graphics
AgeCommit message (Collapse)Author
2017-04-23SCI32: Reset ScreenItem cel type when updating from a VM objectColin Snover
In Phant2, when going to email on Curtis's office computer, a screen item that contained a bitmap on the last frame was updated to contain a view on the next frame. This crashed the engine when it tried to reuse the old disposed bitmap instead of the new view because the cel type was never changed from kCelTypeMem to kCelTypeView.
2017-04-22SCI32: Disable brightness boost when black-lined video is disabledColin Snover
The boost is intended to compensate for the darkness caused by the black lines, so should not be applied when there are no black lines. This fixes too-bright videos in at least LSL7.
2017-04-22SCI32: Store handle to VMD bitmap separately from ScreenItemColin Snover
In at least RAMA, when using the pocket computer to view a mail and then pressing the "return" button, the ScreenItem containing the VMD will be destroyed before the VMD player is told to close the video, resulting in a use-after-free trying to access the bitmap ID through the deleted ScreenItem.
2017-04-22SCI32: Fix dumb typo in CelInfo32::toStringColin Snover
The typo was `if (kCelTypeColor)` instead of `if (type == kCelTypeColor)`. Changed to use a switch instead for improved clarity and code intelligence.
2017-04-22SCI32: Fix broken final step of 2.1mid+ pixel dissolveColin Snover
2017-04-22SCI32: Fix bad kPointSize implementationColin Snover
Fixes text scaling gone mad in Phant2.
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-04-22SCI: Clean up unnecessary delayed restore flagsColin Snover
_delayedRestoreGame is always set and cleared at the same time as _delayedRestoreGameId, and _delayedRestoreFromLauncher is written but never read.
2017-04-22SCI: Move ScummVM save/restore to GuestAdditions and reimplement for SCI32Colin Snover
2017-03-30SCI32: Always reinit GfxText32 statics on game startupColin Snover
Fixes bad scaling of text when switching between games with different script resolutions.
2017-03-30SCI32: Use built-in system font as default font for GfxText32Colin Snover
Fixes the non-interactive Lighthouse demo.
2017-03-30SCI32: Implement known-used portions of kPlayDuckColin Snover
2017-03-30SCI: Update formatting strings to match updated Span APIColin Snover
2017-03-27SCI: Remove old SCI32 check from SCI16 drawing codeColin Snover
2017-03-27SCI: Use containers in GfxView and remove some SCI32 codeColin Snover
2017-03-27SCI: Implement bounds-checked reads of game resourcesColin Snover
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.