# HG changeset patch # User Matti Hamalainen # Date 1432247944 -10800 # Node ID 37b33851cfbb23e7fc41b2cd6bc0d45427b9b3ab # Parent 496b9ab9238cad8832a8c536d8ccdba0e2ed2366 Joo. diff -r 496b9ab9238c -r 37b33851cfbb Makefile --- a/Makefile Thu May 21 23:30:51 2015 +0300 +++ b/Makefile Fri May 22 01:39:04 2015 +0300 @@ -12,12 +12,14 @@ mingw-win32: $(MAKE) -f $(DMLIB)Makefile.cross-mingw \ OBJPATH=./obj/win32/ \ + BINPATH=./bin/ \ MINGW_PREFIX=i686-w64-mingw32- \ MINGW_PATH=/usr/i686-w64-mingw32 mingw-win64: $(MAKE) -f $(DMLIB)Makefile.cross-mingw \ OBJPATH=./obj/win64/ \ + BINPATH=./bin/ \ MINGW_PREFIX=x86_64-w64-mingw32- \ MINGW_PATH=/usr/x86_64-w64-mingw32 diff -r 496b9ab9238c -r 37b33851cfbb assets/graffat.svg --- a/assets/graffat.svg Thu May 21 23:30:51 2015 +0300 +++ b/assets/graffat.svg Fri May 22 01:39:04 2015 +0300 @@ -241,8 +241,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.7" - inkscape:cx="252.01978" - inkscape:cy="220.30674" + inkscape:cx="232.16163" + inkscape:cy="278.77908" inkscape:document-units="px" inkscape:current-layer="layer5" showgrid="false" @@ -261,7 +261,7 @@ image/svg+xml - + @@ -427,6 +427,59 @@ + + + + + + + + JOROINEN + img, - dmCX(engine, item->xc - q), - dmCY(engine, item->yc - q), - - dmQX(engine, item->img, 1.0f + q * 2.0f), - dmQY(engine, item->img, 1.0f + q * 2.0f), - - engine->screen, - - 100 + 80 * fftPow); - } - } - - return DMERR_OK; -} - static int demoRender(DMEngineData *engine) { float t = engineGetTimeDT(engine); - static DMScaledBlitFunc cblit = NULL; + + // // Do FFT + // DMFFTType fftPow = 0; BOOL fftOK = FALSE; static DMFFTType fftAmp[FFT_SIZE / 2]; @@ -277,29 +199,188 @@ dmConvertFFTtoPowerAndSum(&fft, fftData, fftAmp, 1.0, &fftPow, 0.00004f); } - // Demokoodi - if (t < 5) + + // + // Taustaskrolli + // { - // Alkufeidi sisään - int dt = engineGetTime(engine, 0); + static SDL_Surface *tausta = NULL, + *aurinko = NULL, + *puu1 = NULL, + *puu2 = NULL, + *bussi = NULL, + *rengas = NULL; + + static DMScaledBlitFunc cblit = NULL, ablit = NULL; + static BOOL nollattu = FALSE; + static DMLerpContext fadeLerp, fadeLerp2, fadeLerp3; + + if (!nollattu) + { + dmLerpInit(&fadeLerp, 0, 255, 3000); + dmLerpInit(&fadeLerp2, 0, 255, 4000); + dmLerpInit(&fadeLerp3, 0, 1.2, 3000); + engineGetResImage(engine, tausta, "tausta_pv.png"); + engineGetResImage(engine, aurinko, "aurinko.png"); + engineGetResImage(engine, puu1, "puu_pv_1.png"); + engineGetResImage(engine, puu2, "puu_pv_2.png"); + engineGetResImage(engine, bussi, "auto.png"); + engineGetResImage(engine, rengas, "rengas.png"); + cblit = dmGetScaledBlitFunc(tausta->format, engine->screen->format, DMD_NONE); + ablit = dmGetScaledBlitFunc(bussi->format, engine->screen->format, DMD_TRANSPARENT); + } + + int x1 = - ((int)dmQX(engine, tausta, t * 0.2) % tausta->w), + x2 = x1 + tausta->w; + + int fadeVal; + if (t < 3 || t > 64) + { + if (t < 3) + fadeVal = dmLerpSCurveClamp(&fadeLerp, engineGetTime(engine, 0)); + else + fadeVal = dmLerpSCurveClamp(&fadeLerp2, engineGetTime(engine, 64)); + + dmClearSurface(engine->screen, dmMapRGB(engine->screen, 0,0,0)); + dmScaledBlitSurface32to32TransparentGA(tausta, x1, 0, tausta->w, tausta->h, engine->screen, fadeVal); + dmScaledBlitSurface32to32TransparentGA(tausta, x2, 0, tausta->w, tausta->h, engine->screen, fadeVal); + } + else + { + fadeVal = 255; + cblit(tausta, x1, 0, tausta->w, tausta->h, engine->screen); + cblit(tausta, x2, 0, tausta->w, tausta->h, engine->screen); + } + + float qm = sin(t * 0.1 + fftPow * 5) * 15, qm2 = qm*2; + dmScaledBlitSurface32to32TransparentGA(aurinko, + dmCX(engine, 0.8 - dmLerpSCurveClamp(&fadeLerp3, engineGetTime(engine, 0) * 0.01) * 0.3 ) - qm, + dmCY(engine, 0.05) - qm, + aurinko->w + qm2, aurinko->h + qm2, + engine->screen, fadeVal); + + + // Bussi ajaa sisään + if (t > 4) + { + float + dt = engineGetTime(engine, 4), + ajelu = dmLerpSCurveClamp(&fadeLerp3, dt), + xc = dmCX(engine, -1 + ajelu), + yc = dmCY(engine, 0.35 + sin(t * 10) * 0.005), + yc2 = yc + dmQY(engine, bussi, 0.7) + dmCY(engine, sin(t * 20) * 0.001); + + ablit(rengas, xc + dmQX(engine, bussi, 0.07), yc2, dmQX(engine, rengas, 1), dmQY(engine, rengas, 1), engine->screen); + ablit(rengas, xc + dmQX(engine, bussi, 0.80), yc2, dmQX(engine, rengas, 1), dmQY(engine, rengas, 1), engine->screen); + ablit(bussi, xc, yc, dmQX(engine, bussi, 1), dmQY(engine, bussi, 1), engine->screen); + } + } + + // + // AP logo + // + if (t > 4 && t < 8) + { + int dt = engineGetTime(engine, 4); static DMLerpContext fadeLerp; - static SDL_Surface *tausta = NULL; + static SDL_Surface *logo = NULL; static BOOL nollattu = FALSE; if (!nollattu) { - engineGetResImage(engine, tausta, "tausta_pv.png"); - cblit = dmGetScaledBlitFunc(tausta->format, engine->screen->format, DMD_NONE); + dmLerpInit(&fadeLerp, 0, 255, 1000); + engineGetResImage(engine, logo, "ap.png"); + nollattu = TRUE; + } + + int fadeVal; + if (dt < 1000) + fadeVal = dmLerpSCurveClamp(&fadeLerp, dt); + else + if (dt > 3000) + fadeVal = 255 - dmLerpSCurveClamp(&fadeLerp, dt - 3000); + else + fadeVal = 255; - dmLerpInit(&fadeLerp, 0, 255, 5000); + dmScaledBlitSurface32to32TransparentGA(logo, + dmQX(engine, logo, 0.2), + dmQY(engine, logo, 0.3), + dmQX(engine, logo, 1), + dmQY(engine, logo, 1), + engine->screen, fadeVal); + } + + // + // BUSSI logo + // + if (t > 10 && t < 14) + { + int dt = engineGetTime(engine, 10); + static DMLerpContext fadeLerp; + static SDL_Surface *logo = NULL, *logo2 = NULL; + static BOOL nollattu = FALSE; + if (!nollattu) + { + dmLerpInit(&fadeLerp, 0, 255, 1000); + engineGetResImage(engine, logo, "bussi_logo.png"); + engineGetResImage(engine, logo2, "dosa.png"); nollattu = TRUE; } - dmClearSurface(engine->screen, dmMapRGB(engine->screen, 0,0,0)); + int fadeVal, fadeVal2; + if (dt < 1000) + fadeVal = dmLerpSCurveClamp(&fadeLerp, dt); + else + if (dt > 3000) + fadeVal = 255 - dmLerpSCurveClamp(&fadeLerp, dt - 3000); + else + fadeVal = 255; + + if (dt > 1000) + { + if (dt < 2000) + fadeVal2 = dmLerpSCurveClamp(&fadeLerp, dt - 1000); + else + if (dt > 3000) + fadeVal2 = 255 - dmLerpSCurveClamp(&fadeLerp, dt - 3000); + else + fadeVal2 = 255; + } + else + fadeVal2 = 0; - dmScaledBlitSurface32to32TransparentGA(tausta, - 0, - 0, + dmScaledBlitSurface32to32TransparentGA(logo, + dmCX(engine, 0.10), + dmCY(engine, 0.2), + dmQX(engine, logo, 1), + dmQY(engine, logo, 1), + engine->screen, fadeVal); + + dmScaledBlitSurface32to32TransparentGA(logo2, + dmCX(engine, 0.6), + dmCY(engine, 0.6), + dmQX(engine, logo2, 1), + dmQY(engine, logo2, 1), + engine->screen, fadeVal2); + } + + { + static DMScaledBlitFunc cblit = NULL; + static SDL_Surface *maski = NULL; + static BOOL nollattu = FALSE; + + if (!nollattu) + { + engineGetResImage(engine, maski, "maze.png"); + cblit = dmGetScaledBlitFunc(maski->format, engine->screen->format, DMD_TRANSPARENT); + } + + cblit(maski, + 0, 0, + dmQX(engine, maski, 1), + dmQY(engine, maski, 1), + engine->screen); + } return DMERR_OK; }