Exemplo n.º 1
0
int main(int argc, char *argv[])
{
	QApplication app(argc, argv);

	if (!initializeLdraw())
		return -1;

	ModelViewerWidget mvw(0L);

	if (argc > 1) {
		if (std::strcmp(argv[1], "-immediate") == 0)
			mode_ = ldraw_renderer::renderer_opengl_factory::mode_immediate;
		else if (std::strcmp(argv[1], "-varray") == 0)
			mode_ = ldraw_renderer::renderer_opengl_factory::mode_varray;
		else if (std::strcmp(argv[1], "-vbo") == 0)
			mode_ = ldraw_renderer::renderer_opengl_factory::mode_vbo;
		else {
			std::cerr << "invalid option." << std::endl;
			return -3;
		}
	}

	QString fn = QFileDialog::getOpenFileName(0L, "Select a file to load", QString(), "LDraw Model Files (*.dat *.ldr *.mpd)");

	if (fn.isNull())
		return -1;
	
	if (!initializeModel(fn.toLocal8Bit().data()))
		return -1;

	mvw.show();

	return app.exec();
};
Exemplo n.º 2
0
int main(int argc, char *argv[])
{
	if (!initializeLdraw())
		return -1;
	if (!initializeVideo(argc, argv))
		return -1;
	
	if (argc < 2) {
		std::cerr << "Usage: " << argv[0] << " [filename] (-immediate | -varray | -vbo)" << std::endl;
		return -2;
	} else if (argc > 2) {
		if (std::strcmp(argv[2], "-immediate") == 0)
			mode_ = ldraw_renderer::renderer_opengl_factory::mode_immediate;
		else if (std::strcmp(argv[2], "-varray") == 0)
			mode_ = ldraw_renderer::renderer_opengl_factory::mode_varray;
		else if (std::strcmp(argv[2], "-vbo") == 0)
			mode_ = ldraw_renderer::renderer_opengl_factory::mode_vbo;
		else {
			std::cerr << "invalid option." << std::endl;
			return -3;
		}
	}

	initDisplay();
	
	if (!initializeModel(argv[1]))
		return -1;

	resize(SCREEN_WIDTH, SCREEN_HEIGHT);	
	
	glutDisplayFunc(displayFunc);
	glutIdleFunc(displayFunc);
	glutReshapeFunc(resize);
	glutMainLoop();

	return 0;
}