X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fglx%2Fatlantis.h;fp=hacks%2Fglx%2Fatlantis.h;h=914e5c1039fe50c4afe447d2e532ba221ab9bcef;hb=df053bcb240bd8d82e3bebf48a9766a8728bca4b;hp=0000000000000000000000000000000000000000;hpb=6bb727f03bff0389fbb1349d7df4c9d8d7532959;p=xscreensaver diff --git a/hacks/glx/atlantis.h b/hacks/glx/atlantis.h new file mode 100644 index 00000000..914e5c10 --- /dev/null +++ b/hacks/glx/atlantis.h @@ -0,0 +1,105 @@ +/* atlantis --- Shows moving 3D sea animals */ + +/* Copyright (c) E. Lassauge, 1998. */ + +/* + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation. + * + * This file is provided AS IS with no warranties of any kind. The author + * shall have no liability with respect to the infringement of copyrights, + * trade secrets or any patents by this file or any part thereof. In no + * event will the author be liable for any lost revenue or profits or + * other special, indirect and consequential damages. + * + * The original code for this mode was written by Mark J. Kilgard + * as a demo for openGL programming. + * + * Porting it to xlock was possible by comparing the original Mesa's morph3d + * demo with it's ported version to xlock, so thanks for Marcelo F. Vianna + * (look at morph3d.c) for his indirect help. + * + * Thanks goes also to Brian Paul for making it possible and inexpensive + * to use OpenGL at home. + * + * My e-mail address is lassauge@sagem.fr + * + * Eric Lassauge (May-13-1998) + * + */ + +/** + * (c) Copyright 1993, 1994, Silicon Graphics, Inc. + * ALL RIGHTS RESERVED + * Permission to use, copy, modify, and distribute this software for + * any purpose and without fee is hereby granted, provided that the above + * copyright notice appear in all copies and that both the copyright notice + * and this permission notice appear in supporting documentation, and that + * the name of Silicon Graphics, Inc. not be used in advertising + * or publicity pertaining to distribution of the software without specific, + * written prior permission. + * + * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS" + * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR + * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT, + * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY + * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, + * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF + * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN + * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE + * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE. + * + * US Government Users Restricted Rights + * Use, duplication, or disclosure by the Government is subject to + * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph + * (c)(1)(ii) of the Rights in Technical Data and Computer Software + * clause at DFARS 252.227-7013 and/or in similar or successor + * clauses in the FAR or the DOD or NASA FAR Supplement. + * Unpublished-- rights reserved under the copyright laws of the + * United States. Contractor/manufacturer is Silicon Graphics, + * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311. + * + * OpenGL(TM) is a trademark of Silicon Graphics, Inc. + */ +#include +#include + +#define RAD 57.295 +#define RRAD 0.01745 + +#define NUM_SHARKS 4 +#define SHARKSIZE 6000 +#define SHARKSPEED 100.0 + +#define WHALESPEED 250.0 + +typedef struct _fishRec { + float x, y, z, phi, theta, psi, v; + float xt, yt, zt; + float htail, vtail; + float dtheta; + int spurt, attack; +} fishRec; + +typedef struct { + GLint WinH, WinW; + GLXContext *glx_context; + fishRec sharks[NUM_SHARKS]; + fishRec momWhale; + fishRec babyWhale; + fishRec dolph; +} atlantisstruct; + +extern void FishTransform(fishRec *); +extern void WhalePilot(fishRec *); +extern void SharkPilot(fishRec *); +extern void SharkMiss(atlantisstruct *,int); +extern void DrawWhale(fishRec *); +extern void DrawShark(fishRec *); +extern void DrawDolphin(fishRec *);