static void Init() { float lightRadius = 1.0f; int i; canvas = NewPixBuf(PIXBUF_CLUT, WIDTH, HEIGHT); PixBufClear(canvas); uvmap = NewUVMap(WIDTH, HEIGHT, UV_FAST, 256, 256); UVMapGenerateTunnel(uvmap, 32.0f, 3, 4.0 / 3.0, 0.5, 0.5, NULL); UVMapSetTexture(uvmap, texture); flare = NewPixBuf(PIXBUF_GRAY, 64, 64); GeneratePixels(flare, (GenPixelFuncT)LightLinearFalloff, &lightRadius); for (i = 0; i < flare->width * flare->height; i++) flare->data[i] /= 4; origU = NewPixBuf(PIXBUF_GRAY, WIDTH, HEIGHT); PixBufBlit(origU, 0, 0, NewPixBufWrapper(WIDTH, HEIGHT, uvmap->map.fast.u), NULL); origV = NewPixBuf(PIXBUF_GRAY, WIDTH, HEIGHT); PixBufBlit(origV, 0, 0, NewPixBufWrapper(WIDTH, HEIGHT, uvmap->map.fast.v), NULL); InitDisplay(WIDTH, HEIGHT, DEPTH); LoadPalette(texturePal); }
static void Render(int frameNumber) { PixBufT *umap; int du = frameNumber; int dv = 2 * frameNumber; int i; umap = NewPixBufWrapper(WIDTH, HEIGHT, uvmap->map.fast.u); UVMapSetOffset(uvmap, du, dv); PixBufBlit(umap, 0, 0, origU, NULL); for (i = 0; i < 8; i++) { PixBufSetBlitMode(flare, BLIT_ADDITIVE); PixBufBlit(umap, (int)(128.0f + sin(-frameNumber * M_PI / 45.0f + M_PI * i / 4) * 80.0f), (int)(96.0f + cos(-frameNumber * M_PI / 45.0f + M_PI * i / 4) * 48.0f), flare, NULL); } UVMapRender(uvmap, canvas); c2p1x1_8_c5_bm(canvas->data, GetCurrentBitMap(), WIDTH, HEIGHT, 0, 0); MemUnref(umap); }
/* * Set up effect function. */ void SetupEffect() { UVMapT *uvmap = R_("Map"); PixBufT *shades = R_("Shades"); LoadPalette(R_("TexturePal")); UVMapGenerate4(uvmap); UVMapSetTexture(uvmap, R_("Texture")); uvmap->lightMap = shades; PixBufSetColorMap(shades, R_("ColorMap")); ResAdd("Component", NewPixBufWrapper(WIDTH, HEIGHT, uvmap->map.fast.u)); StartProfiling(); }
static void Render(int frameNumber) { PixBufT *umap; int du = 2 * frameNumber; int dv = 4 * frameNumber; { MatrixStack3D *ms = GetObjectTranslation(scene, "Object"); StackReset(ms); PushScaling3D(ms, 1.25f, 1.25f, 1.25f); PushRotation3D(ms, 0, (float)(-frameNumber * 2), frameNumber); PushTranslation3D(ms, 0.0f, 0.0f, -2.0f); } if (effectNum == 0) { umap = NewPixBufWrapper(WIDTH, HEIGHT, uvmap->map.fast.u); PROFILE(PixBufClear) PixBufClear(shades); PROFILE(RenderScene) RenderScene(scene, shades); PixBufSetBlitMode(shades, BLIT_ADDITIVE); PixBufBlit(umap, 0, 0, orig, NULL); PixBufBlit(umap, 0, 0, shades, NULL); UVMapSetOffset(uvmap, du, dv); UVMapRender(uvmap, canvas); MemUnref(umap); } else { UVMapSetOffset(uvmap, du, dv); UVMapRender(uvmap, canvas); PROFILE(PixBufClear) PixBufClear(shades); PROFILE(RenderScene) RenderScene(scene, shades); PixBufSetColorMap(shades, colorMap); PixBufSetBlitMode(shades, BLIT_COLOR_MAP); PixBufBlit(canvas, 0, 0, shades, NULL); } c2p1x1_8_c5_bm(canvas->data, GetCurrentBitMap(), WIDTH, HEIGHT, 0, 0); }
static void Init() { canvas = NewPixBuf(PIXBUF_CLUT, WIDTH, HEIGHT); shades = NewPixBuf(PIXBUF_GRAY, WIDTH, HEIGHT); PixBufSetColorMap(shades, colorMap); uvmap = NewUVMap(WIDTH, HEIGHT, UV_FAST, 256, 256); uvmap->lightMap = shades; UVMapGenerate4(uvmap); UVMapSetTexture(uvmap, texture); component = NewPixBufWrapper(WIDTH, HEIGHT, uvmap->map.fast.u); colorFunc = NewTable(uint8_t, 256); InitDisplay(WIDTH, HEIGHT, DEPTH); LoadPalette(texturePal); }
static void Init() { canvas = NewPixBuf(PIXBUF_CLUT, WIDTH, HEIGHT); uvmap = NewUVMap(WIDTH, HEIGHT, UV_FAST, 256, 256); UVMapGenerate2(uvmap); UVMapSetTexture(uvmap, texture); orig = NewPixBuf(PIXBUF_GRAY, WIDTH, HEIGHT); PixBufBlit(orig, 0, 0, NewPixBufWrapper(WIDTH, HEIGHT, uvmap->map.fast.u), NULL); scene = NewScene(); SceneAddObject(scene, NewSceneObject("Object", mesh)); shades = NewPixBuf(PIXBUF_GRAY, WIDTH, HEIGHT); InitDisplay(WIDTH, HEIGHT, DEPTH); LoadPalette(texturePal); }