mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-12 06:00:48 +00:00
WINTERMUTE: Write alpha properly on big-endian platforms.
This commit is contained in:
parent
c96ccaa1c3
commit
fb566386c7
@ -344,10 +344,18 @@ void VideoTheoraPlayer::writeAlpha() { // TODO: Endian-fix.
|
|||||||
assert(_alphaImage->getSurface()->format.bytesPerPixel == 4);
|
assert(_alphaImage->getSurface()->format.bytesPerPixel == 4);
|
||||||
assert(_surface.format.bytesPerPixel == 4);
|
assert(_surface.format.bytesPerPixel == 4);
|
||||||
const byte *alphaData = (byte *)_alphaImage->getSurface()->getBasePtr(0, 0);
|
const byte *alphaData = (byte *)_alphaImage->getSurface()->getBasePtr(0, 0);
|
||||||
|
#ifdef SCUMM_LITTLE_ENDIAN
|
||||||
int alphaPlace = (_alphaImage->getSurface()->format.aShift / 8);
|
int alphaPlace = (_alphaImage->getSurface()->format.aShift / 8);
|
||||||
|
#else
|
||||||
|
int alphaPlace = 3 - (_alphaImage->getSurface()->format.aShift / 8);
|
||||||
|
#endif
|
||||||
alphaData += alphaPlace;
|
alphaData += alphaPlace;
|
||||||
byte *imgData = (byte *)_surface.getBasePtr(0, 0);
|
byte *imgData = (byte *)_surface.getBasePtr(0, 0);
|
||||||
|
#ifdef SCUMM_LITTLE_ENDIAN
|
||||||
imgData += (_surface.format.aShift / 8);
|
imgData += (_surface.format.aShift / 8);
|
||||||
|
#else
|
||||||
|
imgData += 3 - (_surface.format.aShift / 8);
|
||||||
|
#endif
|
||||||
for (int i = 0; i < _surface.w * _surface.h; i++) {
|
for (int i = 0; i < _surface.w * _surface.h; i++) {
|
||||||
*imgData = *alphaData;
|
*imgData = *alphaData;
|
||||||
alphaData += 4;
|
alphaData += 4;
|
||||||
@ -381,8 +389,6 @@ bool VideoTheoraPlayer::display(uint32 alpha) {
|
|||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
bool VideoTheoraPlayer::setAlphaImage(const Common::String &filename) {
|
bool VideoTheoraPlayer::setAlphaImage(const Common::String &filename) {
|
||||||
warning("VideoTheoraPlayer::SetAlphaImage(%s) - Not implemented", filename.c_str());
|
|
||||||
|
|
||||||
delete _alphaImage;
|
delete _alphaImage;
|
||||||
_alphaImage = new BaseImage();
|
_alphaImage = new BaseImage();
|
||||||
if (!_alphaImage || DID_FAIL(_alphaImage->loadFile(filename))) {
|
if (!_alphaImage || DID_FAIL(_alphaImage->loadFile(filename))) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user