void RenderMesh(int frameNumber_) { PixBufT *canvas = R_("Canvas"); SceneT *scene = R_("Scene"); float frameNumber = frameNumber_; float s = sin(frameNumber * 3.14159265f / 90.0f) + 1.0f; { MatrixStack3D *ms = GetObjectTranslation(scene, "Object"); StackReset(ms); PushScaling3D(ms, 0.75f + 0.5f * s, 0.75f + 0.5f * s, 0.75f + 0.5f * s); PushRotation3D(ms, 0, (float)(-frameNumber * 2), frameNumber); PushTranslation3D(ms, 0.0f, 0.0f, -2.0f); } PixBufClear(canvas); #if 0 RenderFlatShading = true; PixBufSetColorMap(canvas, R_("ColorMap"), -32); #endif PROFILE(RenderScene) RenderScene(scene, canvas); c2p1x1_8_c5_bm(canvas->data, GetCurrentBitMap(), WIDTH, HEIGHT, 0, 0); }
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); }