aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/graphics/video32.h
AgeCommit message (Collapse)Author
2018-12-05SCI: Fix incorrect ifdef name in Video32Colin Snover
2018-10-25SCI32: Add support for upscaling VMD videosFilippos Karapetis
This feature can be used for the Windows version of KQ7, as well as PQ:SWAT
2017-10-06SCI32: Clean up Video32Colin Snover
* Rewrap comments to 80 columns * Clarify comments where appropriate
2017-09-24SCI32: Fix bad palettes in Lighthouse when HQ video is enabledColin Snover
In a couple of places, Lighthouse updates the renderer with screen items for the next room before the room transition video plays. This is normally fine when using the compositing video renderer because the videos are drawn into new planes which occlude the screen items, so the screen items are culled from the draw list and do not submit their palettes. However, when in HQ video mode, we currently force the overlay renderer, which was not blocking screen items before forcing a frameOut, so the screen items' palettes got submitted prematurely in this case and caused bad rendering after the video finished playback. Now, if we are forcing into the overlay code path, we still create a blank plane behind the overlay before the forced frameOut in order to correctly occlude screen items and keep them from participating in rendering before they normally would. Fixes Trac#10233, Trac#10235.
2017-09-03SCI32: Clip videos to the screenColin Snover
This is needed for 8.VMD in Lighthouse (room 380, the credits room), which is rendered partially off the bottom of the screen. OSystem does not accept rects that are offscreen. Technically this video probably should not have been doubled vertically by game scripts, but there is not enough space to fix the rendering with a regular script patch, and it is a very unimportant video.
2017-07-06SCI32: Refactor DuckPlayer to use common video playback codeColin Snover
This lets DuckPlayer support configurable black-lined video and configurable high-quality scaling.
2017-07-06SCI32: Refactor Video32 code to reduce code & feature duplicationColin Snover
2017-07-06SCI32: Improve playback quality of SEQ videosColin Snover
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: Improve kShowMovieWin (AVI) renderingColin Snover
1. Added a new game option for linear interpolation when scaling video in ScummVM builds with USE_RGB_COLOR; 2. 8bpp videos that put black in a palette index other than 0 (KQ7) should now always render correctly without the earlier game-specific workarounds which did not work very well; 3. Data from game scripts regarding video size and position are now ignored, since games always just try to show videos in the middle of the screen, but frequently get this a little bit wrong, causing either bad aspect ratios or off-center videos; 4. Builds without USE_RGB_COLOR support will not crash when attempting to play >8bpp AVIs, like those from KQ7 2.00b. Fixes Trac#9843, Trac#9762.
2017-07-06SCI32: Allow skipping SEQ animationsColin Snover
In SSCI, SEQ animations cannot be skipped.
2017-05-06SCI32: Disable VMD kPlayFlagBlackPalette flagColin Snover
Videos in GK2 use this flag (e.g. the chapter 6 intro). Now that GfxPalette32::updateHardware no longer calls OSystem::updateScreen (only GfxFrameout::frameOut does this now), every time a palette swap occurs during playback, there is a frame of blackness that should not exist. This is because the order of operation is: 1. Send black palette 2. Call frameOut (which updates the screen) 3. Send new, correct palette 4. No frameOut (so the screen is not updated with the correct palette) OSystem::updateScreen cannot be called multiple times for the same frame due to vsync, but also, there does not appear to be any reason to send a black palette, since it seems to be intended to avoid temporarily rendering video frames with the wrong palette on a hardware device that cannot guarantee simultaneous application of a new palette and new pixel data. ScummVM does not have such a problem, so this feature appears to be unnecessary for us. For the moment, this 'feature' remains hidden behind an ifdef, instead of being removed entirely, to avoid potential confusion when comparing VMD code from SSCI.
2017-04-23SCI32: Serialize Robots in SCI3Colin Snover
This is necessary for at least Lighthouse, which maintains the state of Robots across save games.
2017-04-23SCI32: Remove unused SegManager from DuckPlayerColin Snover
2017-04-23SCI32: Add kPlayVMD subop 27 (SetPlane)Colin Snover
Used by RAMA, when playing a video at the Hub Camp computer at the beginning of the game (room 1004).
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-03-30SCI32: Implement known-used portions of kPlayDuckColin Snover
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-17SCI32: Fix bitmap surface memory leaks in video playersColin Snover
Fixes Trac#9662.
2016-11-04SCI32: Implement kPlayVMDIgnorePalettesColin Snover
Used in Shivers room 35170 when pressing the play button.
2016-11-04SCI32: Fix VMD playback stuttering when kEventFlagToFrame is usedColin Snover
For example, Shivers room 932 when subtitles are enabled.
2016-08-19SCI32: Add kPlayVMDGetStatus kernel callColin Snover
Used by Lighthouse.
2016-08-19SCI32: Implement kRobotColin Snover
2016-08-12SCI32: Clean up Video32 includesColin Snover
2016-08-12SCI32: Additional Video32 documentationColin Snover
2016-08-12SCI32: Implement kShowMovieColin Snover
2016-08-11SCI32: Temporarily revert kShowMovie due to buildbot failuresColin Snover
Revert "SCI32: Fix KQ7 1.51 video background" This reverts commit c8affb54cca259f37522216bad739be085bf9caa. Revert "SCI32: Fix crash when kShowMovie is called but the video cannot be found" This reverts commit 93b06f4a9e08de281ee7eb9c780ceac147c3fb23. Revert "SCI32: Fix KQ7 1.51 basic video playback" This reverts commit cdab24aa07c18ad4a25a1659f7fca15cca5e358e. Revert "SCI32: Additional Video32 documentation" This reverts commit 4ff0924e57a9bc9101ee0799a967fe3373dd2574. Revert "SCI32: Implement kShowMovie" This reverts commit 13297c19298c5ad73c9e996c5c31ca91de124911.
2016-08-11SCI32: Additional Video32 documentationColin Snover
2016-08-11SCI32: Implement kShowMovieColin Snover
2016-07-24SCI32: Fix bad VMD palettes in GK2Colin Snover
2016-07-10SCI32: Clean up Video32/VMDPlayerColin Snover
2016-07-10SCI32: Add support for blacklined videoColin Snover
Ow. My eyeballs.
2016-07-10SCI32: Implement kPlayVMDColin Snover