summaryrefslogtreecommitdiff
path: root/progs/windml/uglline.c
diff options
context:
space:
mode:
Diffstat (limited to 'progs/windml/uglline.c')
-rw-r--r--progs/windml/uglline.c274
1 files changed, 0 insertions, 274 deletions
diff --git a/progs/windml/uglline.c b/progs/windml/uglline.c
deleted file mode 100644
index e58f071ea4..0000000000
--- a/progs/windml/uglline.c
+++ /dev/null
@@ -1,274 +0,0 @@
-
-/* uglline.c - WindML/Mesa example program */
-
-/*
- * Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and
- * its documentation for any purpose is hereby granted without fee, provided
- * that (i) the above copyright notices and this permission notice appear in
- * all copies of the software and related documentation, and (ii) the name of
- * Silicon Graphics may not be used in any advertising or
- * publicity relating to the software without the specific, prior written
- * permission of Silicon Graphics.
- *
- * THE SOFTWARE IS PROVIDED "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 BE LIABLE FOR
- * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
- * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
- * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THIS SOFTWARE.
- */
-
-/*
-modification history
---------------------
-01a,jun01,sra Ported to UGL/Mesa and modifications
-*/
-
-/*
-DESCRIPTION
-Draw circular lines
-*/
-
-#include <stdio.h>
-#include <math.h>
-
-#include <ugl/ugl.h>
-#include <ugl/uglucode.h>
-#include <ugl/uglevent.h>
-#include <ugl/uglinput.h>
-
-#include <GL/uglmesa.h>
-#include <GL/glu.h>
-
-#define BLACK (0)
-#define YELLOW (1)
-#define GREEN (2)
-#define BLUE (3)
-#define CI_OFFSET 4
-
-UGL_LOCAL GLuint rgb;
-UGL_LOCAL UGL_EVENT_SERVICE_ID eventServiceId;
-UGL_LOCAL UGL_EVENT_Q_ID qId;
-UGL_LOCAL volatile UGL_BOOL stopWex;
-UGL_LOCAL UGL_MESA_CONTEXT umc;
-
-UGL_LOCAL GLboolean mode1, mode2;
-UGL_LOCAL GLint size;
-
-UGL_LOCAL GLfloat pntA[3] = {
- -10.0, 0.0, 0.0
-};
-UGL_LOCAL GLfloat pntB[3] = {
- -5.0, 0.0, 0.0
-};
-
-UGL_LOCAL GLint angleA;
-
-UGL_LOCAL void initGL (void)
- {
- GLint i;
-
- uglMesaSetColor(BLACK, 0.0, 0.0, 0.0);
- uglMesaSetColor(YELLOW, 1.0, 1.0, 0.0);
- uglMesaSetColor(GREEN, 0.0, 1.0, 0.0);
- uglMesaSetColor(BLUE, 0.0, 0.0, 1.0);
-
- for (i = 0; i < 16; i++)
- {
- uglMesaSetColor(CI_OFFSET+i, i/15.0, i/15.0, 0.0);
- }
-
- glClearColor(0.0, 0.0, 0.0, 0.0);
- glClearIndex(BLACK);
-
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(-10, 10, -10, 10, -10.0, 10.0);
-
- glMatrixMode(GL_MODELVIEW);
-
- glLineStipple(1, 0xF0E0);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE);
-
- mode1 = GL_FALSE;
- mode2 = GL_FALSE;
- size = 1;
- }
-
-UGL_LOCAL void drawGL (void)
- {
-
- GLint ci, i;
-
- glClear(GL_COLOR_BUFFER_BIT);
-
- glLineWidth(size);
-
- if (mode1) {
- glEnable(GL_LINE_STIPPLE);
- } else {
- glDisable(GL_LINE_STIPPLE);
- }
-
- if (mode2) {
- ci = CI_OFFSET;
- glEnable(GL_LINE_SMOOTH);
- glEnable(GL_BLEND);
- } else {
- ci = YELLOW;
- glDisable(GL_LINE_SMOOTH);
- glDisable(GL_BLEND);
- }
-
- glPushMatrix();
-
- glRotatef(angleA, 1, 0, 1);
- angleA = angleA++ % 360;
-
- for (i = 0; i < 360; i += 5) {
- glRotatef(5.0, 0, 0, 1);
-
- glColor3f(1.0, 1.0, 0.0);
- glBegin(GL_LINE_STRIP);
- glVertex3fv(pntA);
- glVertex3fv(pntB);
- glEnd();
-
- glPointSize(1);
-
- glColor3f(0.0, 1.0, 0.0);
- glBegin(GL_POINTS);
- glVertex3fv(pntA);
- glVertex3fv(pntB);
- glEnd();
- }
-
- glPopMatrix();
-
- glFlush();
-
- uglMesaSwapBuffers();
-
- }
-
-UGL_LOCAL void echoUse(void)
- {
- printf("tLine keys:\n");
- printf(" b Blending/antialiasing\n");
- printf(" n Line stipple\n");
- printf(" Up/Down Pixel size\n");
- printf(" ESC Exit\n");
- }
-
-UGL_LOCAL void readKey (UGL_WCHAR key)
- {
- switch(key)
- {
- case 'n':
- mode1 = (mode1) ? GL_FALSE: GL_TRUE;
- break;
- case 'b':
- mode2 = (mode2) ? GL_FALSE: GL_TRUE;
- break;
- case UGL_UNI_DOWN_ARROW:
- if(size>0)
- size--;
- break;
- case UGL_UNI_UP_ARROW:
- size++;
- break;
- case UGL_UNI_ESCAPE:
- stopWex = UGL_TRUE;
- break;
- }
- }
-
-UGL_LOCAL void loopEvent(void)
- {
- UGL_EVENT event;
- UGL_INPUT_EVENT * pInputEvent;
-
- UGL_FOREVER
- {
- if (uglEventGet (qId, &event, sizeof (event), UGL_NO_WAIT)
- != UGL_STATUS_Q_EMPTY)
- {
- pInputEvent = (UGL_INPUT_EVENT *)&event;
-
- if (pInputEvent->header.type == UGL_EVENT_TYPE_KEYBOARD &&
- pInputEvent->modifiers & UGL_KEYBOARD_KEYDOWN)
- readKey(pInputEvent->type.keyboard.key);
- }
-
- drawGL();
- if (stopWex)
- break;
- }
- }
-
-void windMLLine (UGL_BOOL windMLMode);
-
-void uglline (void)
- {
- taskSpawn("tLine", 210, VX_FP_TASK, 100000, (FUNCPTR)windMLLine,
- UGL_FALSE,1,2,3,4,5,6,7,8,9);
- }
-
-
-void windMLLine(UGL_BOOL windMLMode)
- {
-
- UGL_INPUT_DEVICE_ID keyboardDevId;
-
- angleA = 0;
-
- uglInitialize();
-
- uglDriverFind (UGL_KEYBOARD_TYPE, 0, (UGL_UINT32 *)&keyboardDevId);
-
- uglDriverFind (UGL_EVENT_SERVICE_TYPE, 0, (UGL_UINT32 *)&eventServiceId);
-
- qId = uglEventQCreate (eventServiceId, 100);
-
- /* Double buffer */
-
- if (windMLMode)
- umc = uglMesaCreateNewContext(UGL_MESA_DOUBLE
- | UGL_MESA_WINDML_EXCLUSIVE, NULL);
- else
- umc = uglMesaCreateNewContext(UGL_MESA_DOUBLE, NULL);
-
- if (umc == NULL)
- {
- uglDeinitialize();
- return;
- }
-
- /* Fullscreen */
-
- uglMesaMakeCurrentContext(umc, 0, 0, UGL_MESA_FULLSCREEN_WIDTH,
- UGL_MESA_FULLSCREEN_HEIGHT);
-
- uglMesaGetIntegerv(UGL_MESA_RGB, &rgb);
-
- initGL();
-
- echoUse();
-
- stopWex = UGL_FALSE;
- loopEvent();
-
- uglEventQDestroy(eventServiceId, qId);
-
- uglMesaDestroyContext();
- uglDeinitialize();
-
- return;
- }