summaryrefslogtreecommitdiff
path: root/src/fmv.c
diff options
context:
space:
mode:
authorSteven Fuller <relnev@icculus.org>2017-05-05 12:00:00 +0200
committerPatryk Obara <dreamer.tan@gmail.com>2019-08-20 03:51:51 +0200
commit5673c1665a2c6d7fdaf1a20d554bb135a20c7bc8 (patch)
treeccf08c484f14d7c5e95fa7f645db2014d61ebb78 /src/fmv.c
parent0de664d0a886bcda45a0cd05551b6896c5c46ed0 (diff)
Import icculus.org release (2017-05-05)
Diffstat (limited to 'src/fmv.c')
-rw-r--r--src/fmv.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/fmv.c b/src/fmv.c
index eea329b..5d7239f 100644
--- a/src/fmv.c
+++ b/src/fmv.c
@@ -288,7 +288,7 @@ void SetupFMVTexture(FMVTEXTURE *ftPtr)
{
if (ftPtr->PalettedBuf == NULL)
{
- ftPtr->PalettedBuf = (unsigned char*) malloc(128*128*4);
+ ftPtr->PalettedBuf = (unsigned char*) calloc(1, 128*128+128*128*4);
}
if (ftPtr->RGBBuf == NULL)
@@ -300,6 +300,10 @@ void SetupFMVTexture(FMVTEXTURE *ftPtr)
ftPtr->RGBBuf = &ftPtr->PalettedBuf[128*128];
}
+
+ pglBindTexture(GL_TEXTURE_2D, ftPtr->ImagePtr->D3DTexture->id);
+ pglTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 128, 128, GL_RGBA, GL_UNSIGNED_BYTE, &ftPtr->RGBBuf[0]);
+
}
void UpdateFMVTexture(FMVTEXTURE *ftPtr)
@@ -327,16 +331,20 @@ void UpdateFMVTexture(FMVTEXTURE *ftPtr)
unsigned char source = (*srcPtr++);
dstPtr[0] = ftPtr->SrcPalette[source].peRed;
dstPtr[1] = ftPtr->SrcPalette[source].peGreen;
- dstPtr[2] = ftPtr->SrcPalette[source].peBlue;
+ dstPtr[2] = ftPtr->SrcPalette[source].peBlue;
+ dstPtr[3] = 255;
- dstPtr += 3;
+ dstPtr += 4;
} while(--pixels);
//#warning move this into opengl.c
// update the opengl texture
pglBindTexture(GL_TEXTURE_2D, ftPtr->ImagePtr->D3DTexture->id);
- pglTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 128, 96, GL_RGB, GL_UNSIGNED_BYTE, &ftPtr->RGBBuf[0]);
+ pglTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 128, 96, GL_RGBA, GL_UNSIGNED_BYTE, &ftPtr->RGBBuf[0]);
+
+ // if using mipmaps, they will need to be updated now
+ //pglGenerateMipmap(GL_TEXTURE_2D);
}
void ReleaseFMVTexture(FMVTEXTURE *ftPtr)