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);
75 glEnable(GL_LINE_STIPPLE);
76 glLineStipple(1, 0x087F);
78 glBegin(GL_LINE_STRIP);
79 for(i = 0; i < N; i++)
80 glVertex3f(-0.75 + 1.5 * (
double)i/(
double)(N - 1), 0.75, -0.9);
82 glDisable(GL_LINE_STIPPLE);
86 glRasterPos2d(-0.9,-0.9);
88 for (i = 0; i < strlen(help); i++)
89 glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, help[i]);
94 static void keyboard(
unsigned char key,
int x,
int y)
105 fp = fopen(
"out.eps",
"wb");
106 printf(
"Writing 'out.eps'... ");
108 buffsize += 1024*1024;
111 GL_RGBA, 0, NULL, 0, 0, 0, buffsize, fp,
"out.eps");
121 int main(
int argc,
char **argv)
123 GLfloat pos[4] = {1., 1., -1., 0.};
125 glutInit(&argc, argv);
126 glutInitDisplayMode(GLUT_DEPTH);
127 glutInitWindowSize(400, 400);
128 glutInitWindowPosition(100, 100);
129 glutCreateWindow(argv[0]);
131 glEnable(GL_DEPTH_TEST);
132 glDepthFunc(GL_LESS);
133 glShadeModel(GL_SMOOTH);
135 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)
GL2PSDLL_API GLint gl2psEnable(GLint mode)