Example #1
0
Image *Image::ReadPixels(GLCanvas *canvas,
									unsigned int w, unsigned int h)
{
	//canvas->Refresh();
	canvas->flush();

	GLenum texnum;
	glGenTextures(1, &texnum);
	Image *img = new Image(texnum);
	img->EnableTexturing();
	glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, w, h, 0);
	img->m_hasTexture = true;

	GLenum err = glGetError();
	switch (err) {
	case GL_INVALID_ENUM: std::cerr << "Invalid enum" << std::endl; break;
	case GL_INVALID_VALUE: std::cerr << "Invalid value" << std::endl; break;
	case GL_INVALID_OPERATION: std::cerr << "Invalid operation" << std::endl; break;
	}

	return img;
}