void RenderVector(int frameNumber) { CanvasT *canvas = R_("Canvas"); PointT *toDraw = R_("TriangleToDraw"); MatrixStack2D *ms = R_("ms2d"); float s = sin(frameNumber * 3.14159265f / 22.5f); float c = cos(frameNumber * 3.14159265f / 45.0f); StackReset(ms); PushTranslation2D(ms, -1.5f, -1.5f); PushScaling2D(ms, 20.0f + 10.0f * s, 20.0f + 10.0f * s); PushRotation2D(ms, (float)(frameNumber * -3)); PushTranslation2D(ms, (float)(WIDTH/2) + c * (WIDTH/4), (float)(HEIGHT/2)); Transform2D(R_("CrossToDraw"), R_("Cross"), 12, GetMatrix2D(ms, 0)); if (effect == 0) { CanvasFill(canvas, 0); DrawPolyLine(canvas, R_("CrossToDraw"), 12, TRUE); } StackReset(ms); PushTranslation2D(ms, 5.0f, 10.0f); PushScaling2D(ms, 2.5f, 2.5f); PushRotation2D(ms, (float)(frameNumber*5*c)); PushTranslation2D(ms, WIDTH/2 + c * 50, HEIGHT/2 + s * 20); Transform2D(R_("TriangleToDraw"), R_("Triangle"), 3, GetMatrix2D(ms, 0)); frameNumber &= 255; if (frameNumber < 128) canvas->fg_col = frameNumber * 2; else canvas->fg_col = (255 - frameNumber) * 2; if (effect == 1) { DrawTriangle(canvas, toDraw[0].x, toDraw[0].y, toDraw[1].x, toDraw[1].y, toDraw[2].x, toDraw[2].y); } if (effect == 2) { DrawEllipse(canvas, toDraw[1].x, toDraw[1].y, 30 + c * 15, 30 + s * 15); } }
static void Render(int frameNumber) { PointT *toDraw = triangleToDraw; float s = sin(frameNumber * 3.14159265f / 22.5f); float c = cos(frameNumber * 3.14159265f / 45.0f); StackReset(ms); PushTranslation2D(ms, -1.5f, -1.5f); PushScaling2D(ms, 20.0f + 10.0f * s, 20.0f + 10.0f * s); PushRotation2D(ms, (float)(frameNumber * -3)); PushTranslation2D(ms, (float)(WIDTH/2) + c * (WIDTH/4), (float)(HEIGHT/2)); Transform2D(crossToDraw, cross, 12, GetMatrix2D(ms, 0)); if (effect == 0) { PixBufClear(canvas); DrawPolyLine(canvas, crossToDraw, 12, TRUE); } StackReset(ms); PushTranslation2D(ms, 5.0f, 10.0f); PushScaling2D(ms, 2.5f, 2.5f); PushRotation2D(ms, (float)(frameNumber*5*c)); PushTranslation2D(ms, WIDTH/2 + c * 50, HEIGHT/2 + s * 20); Transform2D(triangleToDraw, triangle, 3, GetMatrix2D(ms, 0)); frameNumber &= 255; if (frameNumber < 128) canvas->fgColor = frameNumber * 2; else canvas->fgColor = (255 - frameNumber) * 2; if (effect == 1) { TriPoint p1 = { toDraw[0].x, toDraw[0].y }; TriPoint p2 = { toDraw[1].x, toDraw[1].y }; TriPoint p3 = { toDraw[2].x, toDraw[2].y }; DrawTriangle(canvas, &p1, &p2, &p3); } if (effect == 2) { DrawEllipse(canvas, toDraw[1].x, toDraw[1].y, 30 + c * 15, 30 + s * 15); } c2p1x1_8_c5_bm(canvas->data, GetCurrentBitMap(), WIDTH, HEIGHT, 0, 0); }
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); }
void StackTerm( void ) { StackReset(); free( mem_stm ); }