codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#define GLEW_STATIC #include <GL/glew.h> #pragma comment(lib,"glew32s.lib") #include <GL/glut.h> #include <stdio.h> GLuint m_vertexBufferID; GLuint m_indexBufferID; void init(void) { glewInit(); glClearColor(0.0, 0.0, 1.0, 1.0); glGenBuffers(1,&m_vertexBufferID); glGenBuffers(1,&m_indexBufferID); } void resize(int w, int h) { glViewport(0, 0, w, h); glLoadIdentity(); glOrtho(-w, w, -h, h, -1.0, 1.0); } void display(void) { glClear(GL_COLOR_BUFFER_BIT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); //glRotated(180,1,0,0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glDisable(GL_DEPTH_TEST); glDisable(GL_LIGHTING); //line { glBegin(GL_LINES); glColor4d(1.0, 1.0, 1.0,1.0); glVertex3d(0,0,0); glVertex3d(1,1,0); glEnd(); } //cube by draw element glEnable(GL_LIGHTING); { GLfloat geom[] = { -.5f,-.5f,-.5f, -1.0f,0.0f,0.0f,//0 -.5f,-.5f,-.5f, 0.0f,-1.0f,0.0f,//1 -.5f,-.5f,-.5f, 0.0f,0.0f,-1.0f,//2 .5f,-.5f,-.5f, 1.0f,0.0f,0.0f,//3 .5f,-.5f,-.5f, 0.0f,-1.0f,0.0f,//4 .5f,-.5f,-.5f, 0.0f,0.0f,-1.0f,//5 -.5f,.5f,-.5f, -1.0f,0.0f,0.0f,//6 -.5f,.5f,-.5f, 0.0f,1.0f,0.0f,//7 -.5f,.5f,-.5f, 0.0f,0.0f,-1.0f,//8 .5f,.5f,-.5f, 1.0f,0.0f,0.0f,//9 .5f,.5f,-.5f, 0.0f,1.0f,0.0f,//10 .5f,.5f,-.5f, 0.0f,0.0f,-1.0f,//11 -.5f,-.5f,.5f, -1.0f,0.0f,0.0f,//12 -.5f,-.5f,.5f, 0.0f,-1.0f,0.0f,//13 -.5f,-.5f,.5f, 0.0f,0.0f,1.0f,//14 .5f,-.5f,.5f, 1.0f,0.0f,0.0f,//15 .5f,-.5f,.5f, 0.0f,-1.0f,0.0f,//16 .5f,-.5f,.5f, 0.0f,0.0f,1.0f,//17 -.5f,.5f,.5f, -1.0f,0.0f,0.0f,//18 -.5f,.5f,.5f, 0.0f,1.0f,0.0f,//19 -.5f,.5f,.5f, 0.0f,0.0f,1.0f,//20 .5f,.5f,.5f, 1.0f,0.0f,0.0f,//21 .5f,.5f,.5f, 0.0f,1.0f,0.0f,//22 .5f,.5f,.5f, 0.0f,0.0f,1.0f,//23 }; glBindBuffer(GL_ARRAY_BUFFER,m_vertexBufferID); int sizeof_geom = sizeof(geom); glBufferData(GL_ARRAY_BUFFER,sizeof(geom),geom,GL_STATIC_DRAW); glBindBuffer(GL_ARRAY_BUFFER,0); GLubyte indicies[] = { 0,6,18,12, 1,4,16,13, 2,5,11,8, 3,9,21,15, 7,10,22,19, 14,17,23,20, }; glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,m_indexBufferID); glBufferData(GL_ELEMENT_ARRAY_BUFFER,sizeof(indicies),indicies,GL_STATIC_DRAW); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,0); glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_NORMAL_ARRAY); glEnableClientState(GL_INDEX_ARRAY); glBindBuffer(GL_ARRAY_BUFFER,m_vertexBufferID); const unsigned int sizeof_GLfloat = sizeof(GLfloat); glVertexPointer(3,GL_FLOAT,sizeof_GLfloat*6,0); glNormalPointer(GL_FLOAT,sizeof_GLfloat*6,(const GLvoid*)(sizeof_GLfloat*3)); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,m_indexBufferID); glColor4f(1.0,0.0,0.0,1.0); glDrawElements(GL_QUADS,24,GL_UNSIGNED_BYTE,0); glBindBuffer(GL_ARRAY_BUFFER,0); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,0); glDisableClientState(GL_INDEX_ARRAY); glDisableClientState(GL_NORMAL_ARRAY); glDisableClientState(GL_VERTEX_ARRAY); } glFlush(); } int main(int argc, char *argv[]) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_RGBA); glutCreateWindow(argv[0]); glutDisplayFunc(display); glutReshapeFunc(resize); init(); glutMainLoop(); return 0; }
Private
[
?
]
Run code
Submit