aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/graphics/frameout.h
AgeCommit message (Collapse)Author
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-09-29SCI32: Improved game resolution detectionColin Snover
2016-08-19SCI32: Remove unused ResourceManager from GfxFrameoutColin Snover
2016-08-19SCI32: Remove CoordAdjuster32, at least for the momentColin Snover
This may come back in the future to deduplicate some gfx code, but SCI32 had two different inlined ways of doing coordinate conversions with different rounding methods, so CoordAdjuster32 didn't get used when the graphics system was rewritten. At the moment, SCI32 code uses the mulru/mulinc methods from helper.h for scaling up/down coordinates.
2016-08-19SCI32: Implement kShakeScreen for SCI32Colin Snover
2016-08-19SCI32: Fix signature of kSetNowSeenColin Snover
2016-08-19SCI32: Implement SCI32 cursor supportColin Snover
2016-08-19SCI32: Remove GfxScreen from GfxFrameoutColin Snover
Only cursor remains to be updated to go through GfxFrameout, and then we can let GfxScreen go back to being SCI16-only.
2016-08-11SCI32: Fix GfxFrameout::_isHiRes flag to be accurate for all gamesColin Snover
2016-08-01SCI: Fix warningsEugene Sandulenko
2016-08-01SCI32: Add 6-argument signature of kAddPicAtColin Snover
This is used by Torin in room 50900.
2016-08-01SCI32: Implement plane transitions (kSetShowStyle and kSetScroll)Colin Snover
This commit implements all of the known plane transitions from SCI2 through SCI2.1mid games. Because kSetShowStyle is always called indirectly via the Styler game script, it is difficult to find all the places where transitions are used. As such, transitions that appeared to never be used have been added as stubs which will trigger a game crash with a message to report what was being done, so any missed transition types can be identified quickly and then implemented.
2016-07-10SCI32: Implement kPlayVMDColin Snover
2016-07-02SCI32: Expose graphics throttling codeColin Snover
Controls that manage their own event loops and call frameOut directly generally need to sleep in order to avoid 100% CPU, just like the main VM event loop.
2016-07-02SCI32: Document _remapOccurred flagColin Snover
2016-07-02SCI32: Improve accuracy of frameout throttlerColin Snover
2016-07-02SCI32: Add const to getCurrentBufferColin Snover
2016-06-30SCI32: Document & clean up extra rect argument for frameOutColin Snover
This extra rect seems to probably only ever be used by VMD playback in some SCI2.1 games.
2016-06-26SCI32: Fix benchmarking for QFG4Colin Snover
2016-06-21SCI32: Remove unused dependencies from GfxFrameoutColin Snover
2016-06-21SCI32: Implement line drawing (kAddLine/kUpdateLine/kRemoveLine)Colin Snover
This line drawing code lives in a remodelled GfxPaint32 class that is totally separate from GfxPaint16.
2016-06-14SCI32: Fix video performance benchmarking in most SCI32 gamesColin Snover
Most SCI32 games draw a "fred" object to the screen when the game first starts to benchmark video performance. When framerate throttling is enabled (which fixes many/most timing-related bugs and reduces system load caused by unnecessary graphics updates), the game's performance check will think that video card is slow, causing some "high-performance" game features to be disabled. To avoid this, we simply disable throttling during benchmarking by detecting the "fred" object.
2016-03-17SCI32: Temporarily remove dead SCI2.1early transitions codeColin Snover
This code sneaked in with the graphics engine rewrite, but is not ready yet to be used. It will return shortly, once it is enabled and working.
2016-03-16SCI32: Work around bad Styler script in KQ7 2.0bColin Snover
The SCI2.1mid version of the game includes scripts designed for SCI2.1early which means wrong parameters are sent to the kernel.
2016-03-16SCI32: Remove dead code related to priority map handlingFilippos Karapetis
The priority map is not used at all in SCI32 at the engine level by design, so all the relevant code that handles picture priority is pretty much dead
2016-03-15SCI32: More work on remappingFilippos Karapetis
Still not working
2016-03-10SCI32: Implement kMovePlaneItemsColin Snover
2016-03-10SCI32: Implement kSetNowSeenColin Snover
2016-03-08SCI32: Clean up kIsOnMe and fix rounding bugColin Snover
The implementation was not correctly rounding the scaled position with mulru, leading to occasionally incorrect hit detection at the boundaries of boxes.
2016-03-07SCI32: Add debugger command to view screen items in the visible plane listColin Snover
2016-03-06SCI32: Implement kEditTextColin Snover
2016-03-02SCI32: Minor consistency improvement to FrameOutColin Snover
2016-02-21SCI32: Implement syncing planes+screen items from VM for restoreMartin Kiewitz
Fixes restoring saved games, when ScummVM dialogs are patched in Removing clearing planes+screen items as well, because the scripts actually did that, but did not clear everything. Fixes "Invalid screen item" message when entering options menu, after restoring in SQ6.
2016-02-20SCI32: Splitting up GfxFrameout::kernelIsOnMe() into 2 methodsMartin Kiewitz
2016-02-20SCI32: Some work on kIsOnMeMartin Kiewitz
Plenty of hotspots seem to work now Not fully done yet
2016-02-19SCI: Use American English, like we do in other parts of ScummVMFilippos Karapetis
This replaces "colour" to "color"
2016-02-18SCI: Implement accurate renderer architecture for SCI32Colin Snover
2016-01-20SCI: Fix SCI32 hires detection making PQ4 unusably slowColin Snover
2016-01-14SCI: Minor clean-ups to comments and null pointer valuesColin Snover
2016-01-07SCI32: Add initial support for palette cycling (kPalCycle) and fading (kPalFade)Colin Snover
Graphics palette code was rewritten between SCI1 and SCI2, so SCI32 palette engine code has been moved to a separate GfxPalette32 class.
2014-02-18SCI: Make GPL headers consistent in themselves.Johannes Schickel
2013-01-13SCI: Some more work on scaling in SCI32Filippos Karapetis
2013-01-11SCI: More proper handling of scaling and global scaling in SCI32Filippos Karapetis
This fixes several scaling related problems in QFG4 and SQ6
2012-07-16SCI: Handle all negative priority values. Fixes graphics in the SQ6 demoFilippos Karapetis
2012-06-22SCI: Simplify the SCI32 coordinate adjustment codeFilippos Karapetis
2012-06-09SCI: Initial implementation of AddLine, UpdateLine, DeleteLineFilippos Karapetis
2012-06-07SCI: Initial implementation of kScrollWindow, used in some SCI21 gamesFilippos Karapetis
This is used in LSL6 hires and SQ6. This initial implementation is hackish and only works in SQ6 (nothing is shown in LSL6)
2012-05-21SCI: Added two new debug commands, plane_list and plane_itemsFilippos Karapetis
These can be used to debug drawn items in SCI32
2012-05-14SCI: Check for object visibility, if an object defines itFilippos Karapetis
Fixes the inventory in GK1
2012-01-14SCI: When deleting a plane, also delete the items in itFilippos Karapetis
This fixes a crash in GK1 day 2, after using the thermostat outside Mosely's office