From b2a16b8e1ad187aaa6889a0c8c6435f43a30ba19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnther=20Brammer?= Date: Thu, 28 May 2009 01:31:31 +0200 Subject: [PATCH] Remove old liquid animation --- engine/inc/C4GraphicsResource.h | 1 - engine/inc/C4Landscape.h | 1 - engine/src/C4GraphicsResource.cpp | 3 -- engine/src/C4Landscape.cpp | 26 ++-------------- standard/inc/StdDDraw2.h | 2 +- standard/inc/StdGL.h | 4 +-- standard/src/StdDDraw2.cpp | 4 +-- standard/src/StdGL.cpp | 50 ++++++------------------------- 8 files changed, 17 insertions(+), 74 deletions(-) diff --git a/engine/inc/C4GraphicsResource.h b/engine/inc/C4GraphicsResource.h index 595c67b99..79482ccdd 100644 --- a/engine/inc/C4GraphicsResource.h +++ b/engine/inc/C4GraphicsResource.h @@ -54,7 +54,6 @@ class C4GraphicsResource int32_t iNumRanks; C4FacetID fctFire; C4FacetID fctBackground; - C4Surface sfcLiquidAnimation; int32_t idSfcLiquidAnimation; C4FacetID fctCaptain; C4FacetID fctMouseCursor; bool fOldStyleCursor; // if set, offsets need to be applied to some cursor facets diff --git a/engine/inc/C4Landscape.h b/engine/inc/C4Landscape.h index e42757600..2e61b8bb7 100644 --- a/engine/inc/C4Landscape.h +++ b/engine/inc/C4Landscape.h @@ -68,7 +68,6 @@ class C4Landscape BYTE *pInitial; // Initial landscape after creation - used for diff protected: CSurface * Surface32; - CSurface * AnimationSurface; CSurface8 * Surface8; int32_t Pix2Mat[256], Pix2Dens[256], Pix2Place[256]; int32_t PixCntPitch; diff --git a/engine/src/C4GraphicsResource.cpp b/engine/src/C4GraphicsResource.cpp index 0465ad41a..e9802df09 100644 --- a/engine/src/C4GraphicsResource.cpp +++ b/engine/src/C4GraphicsResource.cpp @@ -54,7 +54,6 @@ void C4GraphicsResource::Default() fctRank.Default(); fctFire.Default(); fctBackground.Default(); - sfcLiquidAnimation.Default(); idSfcLiquidAnimation = 0; fctCaptain.Default(); fctMouseCursor.Default(); fctSelectMark.Default(); @@ -115,7 +114,6 @@ void C4GraphicsResource::Clear() fctRank.Clear(); fctFire.Clear(); fctBackground.Clear(); - sfcLiquidAnimation.Clear(); fctCaptain.Clear(); fctMouseCursor.Clear(); fctSelectMark.Clear(); @@ -229,7 +227,6 @@ BOOL C4GraphicsResource::Init(bool fInitGUI) if (!LoadFile(fctGamepad, "Gamepad", Files, 80)) return FALSE; if (!LoadFile(fctBuild, "Build", Files)) return FALSE; if (!LoadFile(fctEnergyBars, "EnergyBars", Files)) return FALSE; - if (!LoadFile(sfcLiquidAnimation, "Liquid", Files, idSfcLiquidAnimation)) return FALSE; // life bar facets if (fctEnergyBars.Surface) { diff --git a/engine/src/C4Landscape.cpp b/engine/src/C4Landscape.cpp index f98b67b9e..e01ecb2b6 100644 --- a/engine/src/C4Landscape.cpp +++ b/engine/src/C4Landscape.cpp @@ -273,7 +273,6 @@ void C4Landscape::Clear(bool fClearMapCreator, bool fClearSky) if (fClearSky) Sky.Clear(); // clear surfaces, if assigned delete Surface32; Surface32=NULL; - delete AnimationSurface; AnimationSurface=0; delete Surface8; Surface8=NULL; delete Map; Map=NULL; // clear initial landscape @@ -299,7 +298,7 @@ void C4Landscape::Draw(C4TargetFacet &cgo, int32_t iPlayer) const CSurface * Surfaces[C4M_MaxTexIndex]; for (int i = 0; i < C4M_MaxTexIndex; ++i) Surfaces[i] = Game.TextureMap.GetEntry(i)->getPattern().getSurface(); - Application.DDraw->BlitLandscape(Surface32, AnimationSurface, &Game.GraphicsResource.sfcLiquidAnimation, cgo.TargetX, cgo.TargetY, cgo.Surface, cgo.X,cgo.Y,cgo.Wdt,cgo.Hgt,Surfaces); + Application.DDraw->BlitLandscape(Surface32, cgo.TargetX, cgo.TargetY, cgo.Surface, cgo.X,cgo.Y,cgo.Wdt,cgo.Hgt, DDrawCfg.Shader ? Surfaces : 0); } if (Modulation) Application.DDraw->DeactivateBlitModulation(); } @@ -381,7 +380,6 @@ void C4Landscape::ChunkOZoom(CSurface8 * sfcMap, int32_t iMapX, int32_t iMapY, i // get chunk size iChunkWidth=MapZoom; iChunkHeight=MapZoom; Surface32->Lock(); - if (AnimationSurface) AnimationSurface->Lock(); // Scan map lines for (iY=iMapY; iYUnlock(); - if (AnimationSurface) AnimationSurface->Unlock(); } BOOL C4Landscape::GetTexUsage(CSurface8 * sfcMap, int32_t iMapX, int32_t iMapY, int32_t iMapWdt, int32_t iMapHgt, DWORD *dwpTextureUsage) @@ -488,7 +485,6 @@ BOOL C4Landscape::MapToSurface(CSurface8 * sfcMap, int32_t iMapX, int32_t iMapY, // assign clipper Surface8->Clip(iToX,iToY,iToX+iToWdt-1,iToY+iToHgt-1); Surface32->Clip(iToX,iToY,iToX+iToWdt-1,iToY+iToHgt-1); - if (AnimationSurface) AnimationSurface->Clip(iToX,iToY,iToX+iToWdt-1,iToY+iToHgt-1); Application.DDraw->NoPrimaryClipper(); // Enlarge map segment for chunky rim @@ -503,7 +499,6 @@ BOOL C4Landscape::MapToSurface(CSurface8 * sfcMap, int32_t iMapX, int32_t iMapY, // remove clipper Surface8->NoClip(); Surface32->NoClip(); - if (AnimationSurface) AnimationSurface->NoClip(); // success return TRUE; @@ -531,12 +526,10 @@ BOOL C4Landscape::MapToLandscape(CSurface8 * sfcMap, int32_t iMapX, int32_t iMap To.Hgt = iMapHgt*MapZoom; Surface32->Lock(); - if (AnimationSurface) AnimationSurface->Lock(); PrepareChange(To); MapToSurface(sfcMap, iMapX, iMapY, iMapWdt, iMapHgt, To.x, To.y, To.Wdt, To.Hgt, iOffsX, iOffsY); FinishChange(To); Surface32->Unlock(); - if (AnimationSurface) AnimationSurface->Unlock(); return TRUE; } @@ -720,15 +713,12 @@ BOOL C4Landscape::Init(C4Group &hGroup, bool fOverloadCurrent, bool fLoadSky, bo // Create landscape surface Surface32 = new CSurface(); Surface8 = new CSurface8(); - if (Config.Graphics.ColorAnimation && DDrawCfg.Shader) - AnimationSurface = new CSurface(Width, Height); if (!Surface32->Create(Width, Height, true, false, lpDDraw->IsShaderific() ? 0 : 64) || !Surface8->Create(Width, Height, true) - || (AnimationSurface && !AnimationSurface->Create(Width, Height)) || !Mat2Pal()) { - delete Surface8; delete Surface32; delete AnimationSurface; - Surface8 = 0; Surface32 = 0; AnimationSurface = 0; + delete Surface8; delete Surface32; + Surface8 = 0; Surface32 = 0; return FALSE; } @@ -1552,8 +1542,6 @@ BOOL C4Landscape::Load(C4Group &hGroup, bool fLoadSky, bool fSavegame) Surface8->GetSurfaceSize(iWidth,iHeight); Width = iWidth; Height = iHeight; Surface32 = new CSurface(Width, Height); - if (Config.Graphics.ColorAnimation && DDrawCfg.Shader) - AnimationSurface = new CSurface(Width, Height); // adjust pal if (!Mat2Pal()) return FALSE; // load the 32bit-surface, too @@ -1651,7 +1639,6 @@ void C4Landscape::Default() Mode=C4LSC_Undefined; Surface8=NULL; Surface32=NULL; - AnimationSurface=0; Map=NULL; Width=Height=0; MapWidth=MapHeight=MapZoom=0; @@ -2490,11 +2477,6 @@ bool C4Landscape::ApplyLighting(C4Rect To) if (To.Wdt<=0 || To.Hgt<=0) return true; if (!Surface32->Lock()) return false; Surface32->ClearBoxDw(To.x, To.y, To.Wdt, To.Hgt); - if (AnimationSurface) - { - AnimationSurface->Lock(); - AnimationSurface->ClearBoxDw(To.x, To.y, To.Wdt, To.Hgt); - } // do lightning for (int32_t iX=To.x; iXSetPixDw(iX, iY, dwBackClr); - if (AnimationSurface) AnimationSurface->SetPixDw(iX, iY, DensityLiquid(Pix2Dens[pix]) ? 255 << 24 : 0); } } Surface32->Unlock(); - if (AnimationSurface) AnimationSurface->Unlock(); // done return true; } diff --git a/standard/inc/StdDDraw2.h b/standard/inc/StdDDraw2.h index ff5e802b5..e61ecb9d5 100644 --- a/standard/inc/StdDDraw2.h +++ b/standard/inc/StdDDraw2.h @@ -286,7 +286,7 @@ class CStdDDraw void PrimaryUnlocked() { PrimaryLocked=false; } virtual bool PrepareRendering(SURFACE sfcToSurface) = 0; // check if/make rendering possible to given surface // Blit - virtual void BlitLandscape(SURFACE sfcSource, SURFACE sfcSource2, SURFACE sfcLiquidAnimation, float fx, float fy, + virtual void BlitLandscape(SURFACE sfcSource, float fx, float fy, SURFACE sfcTarget, float tx, float ty, float wdt, float hgt, const SURFACE textures[]); void Blit8Fast(CSurface8 * sfcSource, int fx, int fy, SURFACE sfcTarget, int tx, int ty, int wdt, int hgt); diff --git a/standard/inc/StdGL.h b/standard/inc/StdGL.h index 0170003b0..01710c133 100644 --- a/standard/inc/StdGL.h +++ b/standard/inc/StdGL.h @@ -116,8 +116,8 @@ class CStdGL : public CStdDDraw #endif // Blit void PerformBlt(CBltData &rBltData, CTexRef *pTex, DWORD dwModClr, bool fMod2, bool fExact); - virtual void BlitLandscape(SURFACE sfcSource, SURFACE sfcSource2, SURFACE sfcLiquidAnimation, float fx, float fy, - SURFACE sfcTarget, float tx, float ty, float wdt, float hgt, const SURFACE textures[]); + virtual void BlitLandscape(SURFACE sfcSource, float fx, float fy, + SURFACE sfcTarget, float tx, float ty, float wdt, float hgt, const SURFACE textures[]); void FillBG(DWORD dwClr=0); // Drawing void DrawQuadDw(SURFACE sfcTarget, float *ipVtx, DWORD dwClr1, DWORD dwClr2, DWORD dwClr3, DWORD dwClr4); diff --git a/standard/src/StdDDraw2.cpp b/standard/src/StdDDraw2.cpp index 0bd3be714..07a221714 100644 --- a/standard/src/StdDDraw2.cpp +++ b/standard/src/StdDDraw2.cpp @@ -828,8 +828,8 @@ bool CStdDDraw::ClipPoly(CBltData &rBltData) return true; } -void CStdDDraw::BlitLandscape(SURFACE sfcSource, SURFACE sfcSource2, SURFACE sfcSource3, float fx, float fy, - SURFACE sfcTarget, float tx, float ty, float wdt, float hgt, const SURFACE textures[]) +void CStdDDraw::BlitLandscape(SURFACE sfcSource, float fx, float fy, + SURFACE sfcTarget, float tx, float ty, float wdt, float hgt, const SURFACE textures[]) { Blit(sfcSource, fx, fy, wdt, hgt, sfcTarget, tx, ty, wdt, hgt, FALSE); } diff --git a/standard/src/StdGL.cpp b/standard/src/StdGL.cpp index 1eded608a..d86f80a82 100644 --- a/standard/src/StdGL.cpp +++ b/standard/src/StdGL.cpp @@ -302,8 +302,8 @@ void CStdGL::PerformBlt(CBltData &rBltData, CTexRef *pTex, DWORD dwModClr, bool } } -void CStdGL::BlitLandscape(SURFACE sfcSource, SURFACE sfcSource2, SURFACE sfcLiquidAnimation, float fx, float fy, - SURFACE sfcTarget, float tx, float ty, float wdt, float hgt, const SURFACE mattextures[]) +void CStdGL::BlitLandscape(SURFACE sfcSource, float fx, float fy, + SURFACE sfcTarget, float tx, float ty, float wdt, float hgt, const SURFACE mattextures[]) { //Blit(sfcSource, fx, fy, wdt, hgt, sfcTarget, tx, ty, wdt, hgt);return; // safety @@ -373,20 +373,17 @@ void CStdGL::BlitLandscape(SURFACE sfcSource, SURFACE sfcSource2, SURFACE sfcLiq int iTexY2=Min((int)(fy+hgt-1)/iTexSize +1, sfcSource->iTexY); // blit from all these textures SetTexture(); - if (sfcSource2) + if (mattextures) { glActiveTexture(GL_TEXTURE1); glEnable(GL_TEXTURE_2D); - glActiveTexture(GL_TEXTURE2); - glEnable(GL_TEXTURE_2D); - glBindTexture(GL_TEXTURE_2D, (*sfcLiquidAnimation->ppTex)->texName); glActiveTexture(GL_TEXTURE0); } DWORD dwModMask = 0; if (shaders[0]) { glEnable(GL_FRAGMENT_PROGRAM_ARB); - GLuint s = sfcSource2 ? 2 : 0; + GLuint s = mattextures ? 2 : 0; if (Saturation < 255) { s += 3; @@ -408,19 +405,6 @@ void CStdGL::BlitLandscape(SURFACE sfcSource, SURFACE sfcSource2, SURFACE sfcLiq GLfloat bla[4] = { Saturation / 255.0f, Saturation / 255.0f, Saturation / 255.0f, 1.0f }; glProgramLocalParameter4fvARB(GL_FRAGMENT_PROGRAM_ARB, 0, bla); } - if (sfcSource2) - { - static GLfloat bla[4] = { -0.6f/3, 0.0f, 0.6f/3, 0.0f }; - bla[0] += 0.05f; bla[1] += 0.05f; bla[2] += 0.05f; - GLfloat mod[4]; - for (int i = 0; i < 3; ++i) - { - if (bla[i] > 0.9f) bla[i] = -0.3f; - mod[i] = (bla[i] > 0.3f ? 0.6f - bla[i] : bla[i]) / 3.0f; - } - mod[3] = 0; - glProgramLocalParameter4fvARB(GL_FRAGMENT_PROGRAM_ARB, 1, mod); - } dwModMask = 0; } // texture environment @@ -462,26 +446,12 @@ void CStdGL::BlitLandscape(SURFACE sfcSource, SURFACE sfcSource2, SURFACE sfcLiq // blit DWORD dwModClr = BlitModulated ? BlitModulateClr : 0xffffff; - if (sfcSource2) + if (mattextures) glActiveTexture(GL_TEXTURE0); CTexRef *pTex = *(sfcSource->ppTex + iY * sfcSource->iTexX + iX); glBindTexture(GL_TEXTURE_2D, pTex->texName); - if (Zoom != 1.0);// && !DDrawCfg.PointFiltering) - { - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - } - if (sfcSource2) - { - CTexRef *pTex = *(sfcSource2->ppTex + iY * sfcSource2->iTexX + iX); - glActiveTexture(GL_TEXTURE1); - glBindTexture(GL_TEXTURE_2D, pTex->texName); - if (Zoom != 1.0 && !DDrawCfg.PointFiltering) - { - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - } - } + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); // get current blitting offset in texture (beforing any last-tex-size-changes) int iBlitX=iTexSize*iX; @@ -541,7 +511,7 @@ void CStdGL::BlitLandscape(SURFACE sfcSource, SURFACE sfcSource2, SURFACE sfcLiq Vtx[i].fty += DDrawCfg.fBlitOff; Vtx[i].ftz = 0; } - if(DDrawCfg.Shader) + if(mattextures) { GLfloat shaderparam[4]; for (int cnt=1;cnt<127;cnt++) @@ -579,12 +549,10 @@ void CStdGL::BlitLandscape(SURFACE sfcSource, SURFACE sfcSource2, SURFACE sfcLiq { glDisable(GL_FRAGMENT_PROGRAM_ARB); } - if (sfcSource2) + if (mattextures) { glActiveTexture(GL_TEXTURE1); glDisable(GL_TEXTURE_2D); - glActiveTexture(GL_TEXTURE2); - glDisable(GL_TEXTURE_2D); glActiveTexture(GL_TEXTURE0); } // reset texture