#include "TRACK.h" #include "MEDIA.h" #include "SCENE.h" class BLUR_Grabber:public INPUT_IO { public: float BlurFactor; u32 BlurSource; WORLD *pScene; int INIT (class WORLD*){return 0;}; int FRAME (void); int END (void){return 0;}; IOTYPE GetType() {return IOtype_BLUR;}; }; int BLUR_Grabber::FRAME() { #ifndef SKIMMED_NET OneBuf Output; #endif u32 OK_Continue; u32 LastTileNumb; u32 X,Y,*Ptr; if (BlurSource == -1) return 0; if (!pScene->ID_MEDIA[BlurSource]) return 0; START_RASTER(Blur); if (Image.SetSize(pScene->ID_MEDIA[BlurSource]->Image.SX, pScene->ID_MEDIA[BlurSource]->Image.SY, 1)) { if (ulAssociatedTextureIndex != -1) pScene->DI->DestroyTexture(ulAssociatedTextureIndex); ulAssociatedTextureIndex = pScene->DI->CreateTexture(&Image,ulColorMode); } /* Blur */ pScene->DI->BeginTextureTarget(ulAssociatedTextureIndex,0); pScene->DI->SetViewport(0,0,Image.SX,Image.SY); pScene->DI->SetBackGround(pScene->ID_MEDIA[BlurSource]->ulAssociatedTextureIndex); pScene->DI->AfterEffect(0,0xffffffff,BlurFactor,0,0,0,0); pScene->DI->EndTextureTarget(ulAssociatedTextureIndex,1); STOP_RASTER(Blur); return 0; } void BLUR_SETPARAMS(INPUT_IO *pBLUR,u32 BlurSource,float BlurFactor) { ((BLUR_Grabber *)pBLUR)->BlurSource = BlurSource; ((BLUR_Grabber *)pBLUR)->BlurFactor = BlurFactor; } INPUT_IO *BLUR_CREATE(class WORLD*pScene,char *Filename) { u32 SX,SY,Col; INPUT_IO *Ret; Ret = (INPUT_IO *)new(BLUR_Grabber); SX = SY = 256; ((BLUR_Grabber*)Ret)->BlurFactor = 0.0f; ((BLUR_Grabber*)Ret)->BlurSource = -1; ((BLUR_Grabber*)Ret)->pScene = pScene; strcpy((char*)Ret->MediaName,Filename); Ret->Image.SetSize(SX, SY); Ret->dTotalTime = 0; Ret->dAvgFramePerSecond = 30.0; return (INPUT_IO *)Ret; };