45 # include <GLUT/glut.h> 57 const char *help =
"Press 's' to save image or 'q' to quit";
59 glClearColor(0.3, 0.5, 0.8, 0.);
60 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
64 glRotatef(-60., 2., 0., 1.);
65 glEnable(GL_LIGHTING);
66 glutSolidTorus(0.3, 0.6, 30, 30);
67 glDisable(GL_LIGHTING);
74 glEnable(GL_POLYGON_OFFSET_FILL);
75 glPolygonOffset(1.0, 1.0);
78 glBegin(GL_TRIANGLES);
79 glVertex3f(0.6, 0.8, 0);
80 glVertex3f(0.8, 0.8, 0);
81 glVertex3f(0.7, 0.92, 0);
84 glPolygonOffset(2.0, 2.0);
87 glBegin(GL_TRIANGLES);
88 glVertex3f(0.7, 0.8, 0);
89 glVertex3f(0.9, 0.8, 0);
90 glVertex3f(0.8, 0.92, 0);
93 glPolygonOffset(1.5, 1.5);
95 glColor3f(0.5,0.5,0.5);
96 glBegin(GL_TRIANGLES);
97 glVertex3f(0.65, 0.86, 0);
98 glVertex3f(0.85, 0.86, 0);
99 glVertex3f(0.75, 0.98, 0);
102 glDisable(GL_POLYGON_OFFSET_FILL);
105 glColor3f(0.1,0.1,0.1);
110 glEnable(GL_LINE_STIPPLE);
111 glLineStipple(1, 0x087F);
113 glBegin(GL_LINE_STRIP);
114 for(i = 0; i < N; i++)
115 glVertex3f(-0.75 + 1.5 * (
double)i/(
double)(N - 1), 0.75, -0.9);
117 glDisable(GL_LINE_STIPPLE);
121 glRasterPos2d(-0.9,-0.9);
123 for (i = 0; i < strlen(help); i++)
124 glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, help[i]);
129 static void keyboard(
unsigned char key,
int x,
int y)
140 fp = fopen(
"out.eps",
"wb");
141 printf(
"Writing 'out.eps'... ");
143 buffsize += 1024*1024;
146 GL_RGBA, 0, NULL, 0, 0, 0, buffsize, fp,
"out.eps");
156 int main(
int argc,
char **argv)
158 GLfloat pos[4] = {1., 1., -1., 0.};
160 glutInit(&argc, argv);
161 glutInitDisplayMode(GLUT_DEPTH);
162 glutInitWindowSize(400, 400);
163 glutInitWindowPosition(100, 100);
164 glutCreateWindow(argv[0]);
166 glEnable(GL_DEPTH_TEST);
167 glDepthFunc(GL_LESS);
168 glShadeModel(GL_SMOOTH);
170 glLightfv(GL_LIGHT0, GL_POSITION, pos);
GL2PSDLL_API GLint gl2psBeginPage(const char *title, const char *producer, GLint viewport[4], GLint format, GLint sort, GLint options, GLint colormode, GLint colorsize, GL2PSrgba *colormap, GLint nr, GLint ng, GLint nb, GLint buffersize, FILE *stream, const char *filename)
#define GL2PS_DRAW_BACKGROUND
GL2PSDLL_API GLint gl2psText(const char *str, const char *fontname, GLshort fontsize)
static void display(void)
#define GL2PS_LINE_STIPPLE
static void keyboard(unsigned char key, int x, int y)
#define GL2PS_USE_CURRENT_VIEWPORT
GL2PSDLL_API GLint gl2psEndPage(void)
int main(int argc, char **argv)
#define GL2PS_SIMPLE_SORT
GL2PSDLL_API GLint gl2psDisable(GLint mode)
#define GL2PS_POLYGON_OFFSET_FILL
GL2PSDLL_API GLint gl2psEnable(GLint mode)