[ create a new paste ] login | about

Link: http://codepad.org/cq0XCtwc    [ raw code | fork ]

C++, pasted on Apr 11:
GLvoid LOADcubeGL(GLvoid){
	glGenBuffers = (PFNGLGENBUFFERSARBPROC)wglGetProcAddress("glGenBuffers");
	glBindBuffer = (PFNGLBINDBUFFERARBPROC)wglGetProcAddress("glBindBuffer");
	glBufferData = (PFNGLBUFFERDATAARBPROC)wglGetProcAddress("glBufferData");
	glBufferSubData = (PFNGLBUFFERSUBDATAARBPROC)wglGetProcAddress("glBufferSubData");
	glDeleteBuffers = (PFNGLDELETEBUFFERSARBPROC)wglGetProcAddress("glDeleteBuffers");
	
	glGenBuffers(1, &gVerts);
	glBindBuffer(GL_ARRAY_BUFFER, gVerts);
	glBufferData(GL_ARRAY_BUFFER,
		sizeof(vertices)+sizeof(normals)+sizeof(colors)+sizeof(texcoords),
		0,
		GL_STATIC_DRAW);

	glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(vertices), vertices);
	glBufferSubData(GL_ARRAY_BUFFER, sizeof(vertices), sizeof(normals), normals);
	glBufferSubData(GL_ARRAY_BUFFER, sizeof(vertices)+sizeof(normals), sizeof(colors), colors);
	glBufferSubData(GL_ARRAY_BUFFER, sizeof(vertices)+sizeof(normals)+sizeof(colors), sizeof(texcoords), texcoords);

	glGenBuffers(1, &gIndices);
	glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, gIndices);
	glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);

	glVertexPointer(3, GL_FLOAT, 0, (void*)0);
	glNormalPointer(GL_FLOAT, 0, (void*)sizeof(vertices));
	glColorPointer(4, GL_FLOAT, 0, (void*)(sizeof(vertices)+sizeof(normals)));
	glTexCoordPointer(2, GL_FLOAT, 0, (void*)(sizeof(vertices)+sizeof(normals)+sizeof(colors)));
	glEnableClientState(GL_VERTEX_ARRAY);
	glEnableClientState(GL_NORMAL_ARRAY);
	glEnableClientState(GL_COLOR_ARRAY);
	glEnableClientState(GL_TEXTURE_COORD_ARRAY);		
	delete[] vertices; 
	delete[] indices;
	};

GLvoid ACTIVATEcubeGL(GLvoid){
	glBindBuffer(GL_ARRAY_BUFFER_ARB, gVerts);
	glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, gIndices);
};

GLvoid KILLcubeGL(GLvoid){
		glDisableClientState(GL_COLOR_ARRAY);
		glDisableClientState(GL_TEXTURE_COORD_ARRAY);
		glDisableClientState(GL_NORMAL_ARRAY);
		glDisableClientState(GL_VERTEX_ARRAY);
		glBindBuffer(GL_ARRAY_BUFFER, 0);
		glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
		glDeleteBuffers(1, &gVerts);
		glDeleteBuffers(1, &gIndices);
	};

// and for draw:
GLvoid bigcubeGL(){		
	
	glPushMatrix();
		glRotatef( GLrotate_y, 0.0, 1.0, 0.0 );
		glRotatef( GLrotate_x, 1.0, 0.0, 0.0 );
		glTranslatef(multiplxGL+0.5+spaceGL/2,  multiplyGL+0.5+spaceGL/2,  multiplzGL+0.5+spaceGL/2);
		glDrawElements(GL_TRIANGLES, 36, GL_UNSIGNED_SHORT, (void*)0);
	glPopMatrix();
	glPushMatrix();
...
}


Create a new paste based on this one


Comments: