All pastes #36028 Raw Edit

mirco

public text v1 · immutable
#36028 ·published 2006-01-06 19:56 UTC
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;}