diff options
Diffstat (limited to 'progs/samples')
-rw-r--r-- | progs/samples/Makefile | 6 | ||||
-rw-r--r-- | progs/samples/Makefile.mgw | 78 | ||||
-rw-r--r-- | progs/samples/blendeq.c | 97 |
3 files changed, 127 insertions, 54 deletions
diff --git a/progs/samples/Makefile b/progs/samples/Makefile index 063008dccf..6509a559a5 100644 --- a/progs/samples/Makefile +++ b/progs/samples/Makefile @@ -7,6 +7,8 @@ INCDIR = $(TOP)/include LIB_DEP = $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) $(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME) $(TOP)/$(LIB_DIR)/$(GLUT_LIB_NAME) +LIBS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) $(APP_LIB_DEPS) + PROGS = accum bitmap1 bitmap2 blendeq blendxor copy cursor depth eval fog \ font line logo nurb olympic overlay point prim quad select \ shape sphere star stencil stretch texture tri wave @@ -18,7 +20,7 @@ PROGS = accum bitmap1 bitmap2 blendeq blendxor copy cursor depth eval fog \ .SUFFIXES: .c .c: $(LIB_DEP) - $(CC) -I$(INCDIR) $(CFLAGS) $< $(APP_LIB_DEPS) -o $@ + $(CC) -I$(INCDIR) $(CFLAGS) $(LDFLAGS) $< $(LIBS) -o $@ ##### TARGETS ##### @@ -27,7 +29,7 @@ default: $(PROGS) sphere: sphere.o readtex.o - $(CC) -I$(INCDIR) $(CFLAGS) sphere.o readtex.o $(APP_LIB_DEPS) -o $@ + $(CC) -I$(INCDIR) $(CFLAGS) $(LDFLAGS) sphere.o readtex.o $(LIBS) -o $@ sphere.o: sphere.c readtex.h $(CC) -c -I$(INCDIR) $(CFLAGS) sphere.c diff --git a/progs/samples/Makefile.mgw b/progs/samples/Makefile.mgw new file mode 100644 index 0000000000..8bb975be9d --- /dev/null +++ b/progs/samples/Makefile.mgw @@ -0,0 +1,78 @@ +# Mesa 3-D graphics library +# Version: 4.0 +# +# Copyright (C) 1999 Brian Paul All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# MinGW samples makefile v1.2 for Mesa +# +# Copyright (C) 2002 - Daniel Borca +# Email : dborca@users.sourceforge.net +# Web : http://www.geocities.com/dborca + +# MinGW samples makefile updated for Mesa 7.0 +# +# Updated : by Heromyth, on 2007-7-21 +# Email : zxpmyth@yahoo.com.cn +# Bugs : 1) All the default settings work fine. But the setting X86=1 can't work. +# The others havn't been tested yet. +# 2) The generated DLLs are *not* compatible with the ones built +# with the other compilers like VC8, especially for GLUT. +# 3) Although more tests are needed, it can be used individually! + +# +# Available options: +# +# Environment variables: +# +# Targets: +# <file.exe> build a specific file +# + + + +.PHONY: all +.SUFFIXES: .c .o .exe +.SECONDARY: ../util/readtex.o ../util/showbuffer.o + +TOP = ../.. + +CC = mingw32-gcc +CFLAGS = -Wall -pedantic +CFLAGS += -O2 -ffast-math -D_DLL +CFLAGS += -I$(TOP)/include -I../util +ifeq ($(FX),1) + CFLAGS += -DFX +endif + +CFLAGS += -DGLUT_DISABLE_ATEXIT_HACK + +LD = mingw32-g++ +LDFLAGS = -s -L$(TOP)/lib + +LDLIBS = -lglut32 -lglu32 -lopengl32 + +.c.o: + $(CC) -o $@ $(CFLAGS) -c $< +%.exe: ../util/readtex.o ../util/showbuffer.o %.o + $(LD) -o $@ $(LDFLAGS) $(LDLIBS) $^ + + +all: + $(error Must specify <filename.exe> to build) diff --git a/progs/samples/blendeq.c b/progs/samples/blendeq.c index f78afd3038..d5143ecdf5 100644 --- a/progs/samples/blendeq.c +++ b/progs/samples/blendeq.c @@ -25,6 +25,27 @@ static int doPrint = 1; static int deltaY; GLint windW, windH; +static const struct { + GLenum mode; + const char *name; +} LogicOpModes[] = { + { GL_SET, "GL_SET" }, + { GL_COPY, "GL_COPY" }, + { GL_NOOP, "GL_NOOP" }, + { GL_AND, "GL_AND" }, + { GL_INVERT, "GL_INVERT" }, + { GL_OR, "GL_OR" }, + { GL_XOR, "GL_XOR" }, + { GL_NOR, "GL_NOR" }, + { GL_NAND, "GL_NAND" }, + { GL_OR_REVERSE, "GL_OR_REVERSE" }, + { GL_OR_INVERTED, "GL_OR_INVERTED" }, + { GL_AND_INVERTED, "GL_AND_INVERTED" }, + { 0, NULL } +}; + + + static void DrawString(const char *string) { int i; @@ -47,7 +68,7 @@ static void Reshape(int width, int height) windH = (GLint)height; glViewport(0, 0, (GLint)width, (GLint)height); - deltaY = windH /16; + deltaY = windH /20; glMatrixMode(GL_PROJECTION); glLoadIdentity(); @@ -105,7 +126,7 @@ static void Draw(void) { int stringOffset = 5, stringx = 8; int x1, x2, xleft, xright; - int i; + int i, k; (dithering) ? glEnable(GL_DITHER) : glDisable(GL_DITHER); glDisable(GL_BLEND); @@ -122,6 +143,7 @@ static void Draw(void) /* Draw labels */ glColor3f(0.8, 0.8, 0.0); i = windH - deltaY + stringOffset; + glRasterPos2f(stringx, i); i -= deltaY; DrawString("SOURCE"); glRasterPos2f(stringx, i); i -= deltaY; @@ -136,21 +158,12 @@ static void Draw(void) DrawString("reverse_subtract"); glRasterPos2f(stringx, i); i -= deltaY; DrawString("clear"); - glRasterPos2f(stringx, i); i -= deltaY; - DrawString("set"); - glRasterPos2f(stringx, i); i -= deltaY; - DrawString("copy"); - glRasterPos2f(stringx, i); i -= deltaY; - DrawString("noop"); - glRasterPos2f(stringx, i); i -= deltaY; - DrawString("and"); - glRasterPos2f(stringx, i); i -= deltaY; - DrawString("invert"); - glRasterPos2f(stringx, i); i -= deltaY; - DrawString("or"); - glRasterPos2f(stringx, i); i -= deltaY; - DrawString("xor"); + for (k = 0; LogicOpModes[k].name; k++) { + glRasterPos2f(stringx, i); + i -= deltaY; + DrawString(LogicOpModes[k].name); + } i = windH - deltaY; x1 = windW/4; @@ -193,43 +206,23 @@ static void Draw(void) glLogicOp(GL_CLEAR); glRectf(x1, i, x2, i+deltaY); - i -= deltaY; - glLogicOp(GL_SET); - glRectf(x1, i, x2, i+deltaY); - - i -= deltaY; - glLogicOp(GL_COPY); - glRectf(x1, i, x2, i+deltaY); - - i -= deltaY; - glLogicOp(GL_NOOP); - glRectf(x1, i, x2, i+deltaY); - - i -= deltaY; - glLogicOp(GL_AND); - glRectf(x1, i, x2, i+deltaY); - - i -= deltaY; - glLogicOp(GL_INVERT); - glRectf(x1, i, x2, i+deltaY); - - i -= deltaY; - glLogicOp(GL_OR); - glRectf(x1, i, x2, i+deltaY); - - i -= deltaY; - glLogicOp(GL_XOR); - glRectf(x1, i, x2, i+deltaY); - glRectf(x1, i+10, x2, i+5); + for (k = 0; LogicOpModes[k].name; k++) { + i -= deltaY; + glLogicOp(LogicOpModes[k].mode); + glRectf(x1, i, x2, i+deltaY); + if (LogicOpModes[k].mode == GL_XOR) { + glRectf(x1, i+10, x2, i+5); + } + } - if (doPrint) { - glDisable(GL_BLEND); - if (supportlogops & 2) + if (doPrint) { + glDisable(GL_BLEND); + if (supportlogops & 2) glDisable(GL_COLOR_LOGIC_OP); - glColor3f(1.0, 1.0, 1.0); - PrintColorStrings(); - } - glFlush(); + glColor3f(1.0, 1.0, 1.0); + PrintColorStrings(); + } + glFlush(); if (doubleBuffer) { glutSwapBuffers(); @@ -271,7 +264,7 @@ int main(int argc, char **argv) exit(1); } - glutInitWindowPosition(0, 0); glutInitWindowSize( 800, 400); + glutInitWindowPosition(0, 0); glutInitWindowSize( 800, 520); type = GLUT_RGB; type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; |