rendered paste body#include <math.h>#include <strings.h>#include <sys/time.h>#include <stdlib.h>#include <stdio.h>#include "zini.h"cairo_t* g_pCairoContext;struct timeval g_timeValue;static void draw_background (void){ int iX; int iY; int iToggle = 0; double afColor[3] = {0.4f, 0.4f, 0.4f}; /*cairo_set_source_rgb (g_pCairoContext, afColor[0], afColor[1], afColor[2]); cairo_rectangle (g_pCairoContext, 0.0f, 0.0f, 1.0f, 1.0f); cairo_fill (g_pCairoContext);*/ for (iX = 0; iX < 20; iX++) { iToggle = iToggle ? 0 : 1; for (iY = 0; iY < 20; iY++) { if (iToggle) { cairo_set_source_rgb (g_pCairoContext, afColor[0], afColor[1], afColor[2]); iToggle = iToggle ? 0 : 1; } else { cairo_set_source_rgb (g_pCairoContext, afColor[0] - 0.1f, afColor[1] - 0.1f, afColor[2] - 0.1f); iToggle = iToggle ? 0 : 1; } cairo_rectangle (g_pCairoContext, iX * 0.05f, iY * 0.05f, 0.05f, 0.05f); cairo_fill (g_pCairoContext); } }}void zini_render (int width, int height){ double fLength = 1.0f / 25.0f; double fY; int iElement; unsigned long ulMilliSeconds; gettimeofday (&g_timeValue, NULL); ulMilliSeconds = g_timeValue.tv_usec/1000.0f; cairo_save (g_pCairoContext); cairo_scale (g_pCairoContext, (double) width / 1.0f, (double) height / 1.0f); draw_background (); cairo_set_line_cap (g_pCairoContext, CAIRO_LINE_CAP_ROUND); for (iElement = 0; iElement < 60; iElement++) { cairo_save (g_pCairoContext); cairo_set_line_width (g_pCairoContext, fLength); cairo_translate (g_pCairoContext, 0.5f, 0.5f); cairo_rotate (g_pCairoContext, M_PI/180.0f * (ulMilliSeconds + 10.0f*iElement) * 0.36f); fY = 0.33f + 0.0825f * sin ((ulMilliSeconds + 10.0f*iElement)/1000 * 10 * M_PI); cairo_translate (g_pCairoContext, 0, fY); cairo_rotate (g_pCairoContext, M_PI/180.0f * 6.0f * iElement); cairo_set_source_rgba (g_pCairoContext, 1.0f, 0.5f, 0.0f, iElement*0.01f); cairo_move_to (g_pCairoContext, -fLength, 0); cairo_line_to (g_pCairoContext, fLength, 0); cairo_stroke (g_pCairoContext); cairo_restore (g_pCairoContext); } cairo_restore (g_pCairoContext);}void zini_setup (cairo_t* cr, int width, int height){ bzero (&g_timeValue, sizeof (g_timeValue)); g_pCairoContext = cr;}