Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Playing CLUT8 videos (such as FLIC videos) was not working properly:
There were two separate crash:
Graphics::transBlitPixel
due to the source palette being a nullptr pointer.The
ManagedSurface
blitting code only allowed blitting from CLUT8 source to non-CLUT8 destination if the source was itself aManagedSurface
. This pull request adds the possibility to do this also if the source is aSurface
(such as aVideoDecoder
frame). This is used in the AGS engine to fix the crash mentioned above.Crash call-stack for the CLUT8 -> 16/32bit color (for stretched videos, the non-stretch one is similar but crashes in
ManagedSurface::blitFromInner
instead):Example of wrong color for CLUT8 -> CLUT8:
Before
After
I am opening this pull request to check there is no compilation error before committing (I only compiled with the AGS engine locally) and give the opportunity to those who want to review the changes to the
Graphics::ManagedSurface
code. I think it is straightforward, but I may have overlooked something.