X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=hacks%2Fglx%2Fsballs.c;h=2eb2bcd92708f030877cd843df44ec741254ce45;hp=93c24c5dd4a40491fc6a660f925d795f3144fdab;hb=ffd8c0873576a9e3065696a624dce6b766b77062;hpb=9c9d475ff889ed8be02e8ce8c17da28b93278fca diff --git a/hacks/glx/sballs.c b/hacks/glx/sballs.c index 93c24c5d..2eb2bcd9 100644 --- a/hacks/glx/sballs.c +++ b/hacks/glx/sballs.c @@ -23,7 +23,7 @@ static const char sccsid[] = "@(#)sballs.c 5.02 2001/03/10 xlockmore"; * Mustata Bogdan (LoneRunner) * and can be found at http://www.cfxweb.net/lonerunner/ * - * Eric Lassauge (November-07-2000) + * Eric Lassauge (November-07-2000) * http://lassauge.free.fr/linux.html * * REVISION HISTORY: @@ -46,9 +46,9 @@ static const char sccsid[] = "@(#)sballs.c 5.02 2001/03/10 xlockmore"; #define HACK_DRAW draw_sballs #define HACK_RESHAPE reshape_sballs #define sballs_opts xlockmore_opts -#define DEFAULTS "*delay: 10000 \n" \ +#define DEFAULTS "*delay: 30000 \n" \ "*size: 0 \n" \ - "*cycles: 10 \n" \ + "*cycles: 4 \n" \ "*object: 0 \n" \ "*trackmouse: False \n" \ "*showFPS: False \n" \ @@ -98,19 +98,18 @@ static const char sccsid[] = "@(#)sballs.c 5.02 2001/03/10 xlockmore"; /* Manage option vars */ #define DEF_TEXTURE "True" #define DEF_TRACKMOUSE "False" -#define DEF_OBJECT "2" -#define DEF_OBJECT_INDX 2 +#define DEF_OBJECT "0" static Bool do_texture; static Bool do_trackmouse; static int object; static int spheres; static XrmOptionDescRec opts[] = { - {(char *) "-texture", (char *) ".sballs.texture", XrmoptionNoArg, (caddr_t) "on"}, - {(char *) "+texture", (char *) ".sballs.texture", XrmoptionNoArg, (caddr_t) "off"}, - {(char *) "-trackmouse", (char *) ".sballs.trackmouse", XrmoptionNoArg, (caddr_t) "on"}, - {(char *) "+trackmouse", (char *) ".sballs.trackmouse", XrmoptionNoArg, (caddr_t) "off"}, - {(char *) "-object", (char *) ".sballs.object", XrmoptionSepArg, (caddr_t) NULL}, + {"-texture", ".sballs.texture", XrmoptionNoArg, "on"}, + {"+texture", ".sballs.texture", XrmoptionNoArg, "off"}, + {"-trackmouse", ".sballs.trackmouse", XrmoptionNoArg, "on"}, + {"+trackmouse", ".sballs.trackmouse", XrmoptionNoArg, "off"}, + {"-object", ".sballs.object", XrmoptionSepArg, 0}, }; @@ -122,11 +121,11 @@ static argtype vars[] = { }; static OptionStruct desc[] = { - /*{(char *) "-count spheres", (char *) "set number of spheres"},*/ - /*{(char *) "-cycles speed", (char *) "set ball speed value"},*/ - {(char *) "-/+texture", (char *) "turn on/off texturing"}, - {(char *) "-/+trackmouse", (char *) "turn on/off the tracking of the mouse"}, - {(char *) "-object num", (char *) "number of the 3D object (0 means random)"}, + /*{"-count spheres", "set number of spheres"},*/ + /*{"-cycles speed", "set ball speed value"},*/ + {"-/+texture", "turn on/off texturing"}, + {"-/+trackmouse", "turn on/off the tracking of the mouse"}, + {"-object num", "number of the 3D object (0 means random)"}, }; ModeSpecOpt sballs_opts = @@ -516,8 +515,8 @@ static void drawSphere(ModeInfo * mi,int sphere_num) float x = polygons[object].v[sphere_num][0]; float y = polygons[object].v[sphere_num][1]; float z = polygons[object].v[sphere_num][2]; - int numMajor = 10; - int numMinor = 10; + int numMajor = 15; + int numMinor = 30; float radius = sb->radius[sphere_num]; double majorStep = (M_PI / numMajor); double minorStep = (2.0 * M_PI / numMinor); @@ -550,6 +549,8 @@ static void drawSphere(ModeInfo * mi,int sphere_num) glNormal3f((x * r1) / radius, (y * r1) / radius, z1 / radius); glTexCoord2f(j / (GLfloat) numMinor, (i + 1) / (GLfloat) numMajor); glVertex3f(x * r1, y * r1, z1); + + mi->polygon_count++; } glEnd(); } @@ -600,6 +601,8 @@ static void Draw(ModeInfo * mi) sballsstruct *sb = &sballs[MI_SCREEN(mi)]; int sphere; + mi->polygon_count = 0; + if (do_trackmouse && !MI_IS_ICONIC(mi)) trackmouse(mi); @@ -631,6 +634,7 @@ static void Draw(ModeInfo * mi) glNormal3f(0, 0, 1); glTexCoord2f(1,0); glVertex3f(-8, 4.1, -4); glNormal3f(0, 0, 1); glTexCoord2f(1,1); glVertex3f(-8, -4.1, -4); glEnd(); + mi->polygon_count++; /* rotate the mouse */ glRotatef(sb->rot[0], 1.0f, 0.0f, 0.0f); @@ -690,10 +694,8 @@ static void Init(ModeInfo * mi) sb->speed = MI_CYCLES(mi); /* initialise object number */ - if (object == 0) - object = NRAND(MAX_OBJ); if ((object == 0) || (object > MAX_OBJ)) - object = DEF_OBJECT_INDX; + object = NRAND(MAX_OBJ-1)+1; object--; /* initialise sphere number */ @@ -851,10 +853,8 @@ void change_sballs(ModeInfo * mi) return; /* initialise object number */ - if (object == 0) - object = NRAND(MAX_OBJ); if ((object == 0) || (object > MAX_OBJ)) - object = DEF_OBJECT_INDX; + object = NRAND(MAX_OBJ-1)+1; object--; /* correct sphere number */