Execute valid functions between glbegin and glend.
Glvertex * () // sets the vertex coordinate glcolor * () // sets the current color glindex * () // sets the current color index glnormal *() // set the coordinates of the normal vector gltexcoord * () // set the texture coordinate glmultitexcoord * ARB () // set the texture coordinate gledgeflag for multiple texture mappings *() // draw glmaterial * () for the control edge // set the glarrayelement () for the material attribute // extract the vertex array data glevalcoord * () and glevalpoint * () // generate the coordinate glcalllist (), glcalllists () // execution display list
The default value is counterclockwise (Gl_ccw) In the positive direction.GlfrontfaceTo specify the front of the element.
Sample Code:
void DrawMyObjects(void){ /* draw some points */ glBegin(GL_POINTS); glColor3f(1.0,0.0,0.0); glVertex2f(-10.0,11.0); glColor3f(1.0,1.0,0.0); glVertex2f(-9.0,10.0); glColor3f(0.0,1.0,1.0); glVertex2f(-8.0,12.0); glEnd(); /* draw some line_segments */ glBegin(GL_LINES); glColor3f(1.0,1.0,0.0); glVertex2f(-11.0,8.0); glVertex2f(-7.0,7.0); glColor3f(1.0,0.0,1.0); glVertex2f(-11.0,9.0); glVertex2f(-8.0,6.0); glEnd(); /* draw one opened_line */ glBegin(GL_LINE_STRIP); glColor3f(0.0,1.0,0.0); glVertex2f(-3.0,9.0); glVertex2f(2.0,6.0); glVertex2f(3.0,8.0); glVertex2f(-2.5,6.5); glEnd(); /* draw one closed_line */ glBegin(GL_LINE_LOOP); glColor3f(0.0,1.0,1.0); glVertex2f(7.0,7.0); glVertex2f(8.0,8.0); glVertex2f(9.0,6.5); glVertex2f(10.3,7.5); glVertex2f(11.5,6.0); glVertex2f(7.5,6.0); glEnd(); /* draw one filled_polygon */ glBegin(GL_POLYGON); glColor3f(0.5,0.3,0.7); glVertex2f(-7.0,2.0); glVertex2f(-8.0,3.0); glVertex2f(-10.3,0.5); glVertex2f(-7.5,-2.0); glVertex2f(-6.0,-1.0); glEnd(); /* draw some filled_quandrangles */ glBegin(GL_QUADS); glColor3f(0.7,0.5,0.2); glVertex2f(0.0,2.0); glVertex2f(-1.0,3.0); glVertex2f(-3.3,0.5); glVertex2f(-0.5,-1.0); glColor3f(0.5,0.7,0.2); glVertex2f(3.0,2.0); glVertex2f(2.0,3.0); glVertex2f(0.0,0.5); glVertex2f(2.5,-1.0); glEnd(); /* draw some filled_strip_quandrangles */ glBegin(GL_QUAD_STRIP); glVertex2f(6.0,-2.0); glVertex2f(5.5,1.0); glVertex2f(8.0,-1.0); glColor3f(0.8,0.0,0.0); glVertex2f(9.0,2.0); glVertex2f(11.0,-2.0); glColor3f(0.0,0.0,0.8); glVertex2f(11.0,2.0); glVertex2f(13.0,-1.0); glColor3f(0.0,0.8,0.0); glVertex2f(14.0,1.0); glEnd(); /* draw some filled_triangles */ glBegin(GL_TRIANGLES); glColor3f(0.2,0.5,0.7); glVertex2f(-10.0,-5.0); glVertex2f(-12.3,-7.5); glVertex2f(-8.5,-6.0); glColor3f(0.2,0.7,0.5); glVertex2f(-8.0,-7.0); glVertex2f(-7.0,-4.5); glVertex2f(-5.5,-9.0); glEnd(); /* draw some filled_strip_triangles */ glBegin(GL_TRIANGLE_STRIP); glVertex2f(-1.0,-8.0); glVertex2f(-2.5,-5.0); glColor3f(0.8,0.8,0.0); glVertex2f(1.0,-7.0); glColor3f(0.0,0.8,0.8); glVertex2f(2.0,-4.0); glColor3f(0.8,0.0,0.8); glVertex2f(4.0,-6.0); glEnd(); /* draw some filled_fan_triangles */ glBegin(GL_TRIANGLE_FAN); glVertex2f(8.0,-6.0); glVertex2f(10.0,-3.0); glColor3f(0.8,0.2,0.5); glVertex2f(12.5,-4.5); glColor3f(0.2,0.5,0.8); glVertex2f(13.0,-7.5); glColor3f(0.8,0.5,0.2); glVertex2f(10.5,-9.0); glEnd();}
Point Size[Square] The back point of the reverse sample is a circle
void glPointSize(GLfloat size);
Line width
void glLineWidth(GLfloat width);
Draw line Glenable(Gl_line_stipple)
void glLineStipple(GLint factor, GLushort pattern);
Polygon Mode
Line frame mode:Glpolygonmode(Gl_front_and_back, gl_line );
void glPolygonMode(GLenum face, GLenum mode);
Polygon Removal Glenable(Gl_cull_face)
Remove the opposite:Glcullface(Gl_back );
void glCullFace(GLenum mode);
Point-drawn Polygon Glenable(Gl_polygon_stipple)
void glPolygonStipple(const GLubyte *mask);
Normal Vector
Normalization (high overhead)Glenable(Gl_normalize)
Uniform scaling NormalizationGlenable(Gl_rescale_normal)