int main(int argc, char **argv) { struct aiLogStream stream; initGame(); glutInitWindowSize(windowWidth, windowHeight); glutInitWindowPosition(100,100); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutInit(&argc, argv); glutCreateWindow("Progetto OpenGL - Informatica Grafica"); glutDisplayFunc(display); glutIdleFunc(display); glutKeyboardFunc(handleKeypress); glutPassiveMotionFunc(mouseMovement); //check for mouse movement glutMotionFunc(mouseMovement); glutReshapeFunc(handleResize); glutMouseFunc(handleMouseKeypress); // get a handle to the predefined STDOUT log stream and attach // it to the logging system. It will be active for all further // calls to aiImportFile(Ex) and aiApplyPostProcessing. stream = aiGetPredefinedLogStream(aiDefaultLogStream_STDOUT,NULL); aiAttachLogStream(&stream); // ... exactly the same, but this stream will now write the // log file to assimp_log.txt stream = aiGetPredefinedLogStream(aiDefaultLogStream_FILE,"assimp_log.txt"); aiAttachLogStream(&stream); if (!InitGL()) { fprintf(stderr,"Initialization failed"); return FALSE; } glutGet(GLUT_ELAPSED_TIME); glutMainLoop(); cleanUp(); // We added a log stream to the library, it's our job to disable it // again. This will definitely release the last resources allocated // by Assimp. aiDetachAllLogStreams(); return 0; }
int main(int argc, char* argv[]) { ::testing::InitGoogleTest(&argc, argv); // seed the randomizer with the current system time time_t t;time(&t); srand((unsigned int)t); // ............................................................................ // create a logger from both CPP Assimp::DefaultLogger::create("AssimpLog_Cpp.txt",Assimp::Logger::VERBOSE, aiDefaultLogStream_DEBUGGER | aiDefaultLogStream_FILE); // .. and C. They should smoothly work together aiEnableVerboseLogging(AI_TRUE); aiLogStream logstream= aiGetPredefinedLogStream(aiDefaultLogStream_FILE, "AssimpLog_C.txt"); aiAttachLogStream(&logstream); int result = RUN_ALL_TESTS(); // ............................................................................ // but shutdown must be done from C to ensure proper deallocation aiDetachAllLogStreams(); return result; }
int preRender() { // load and compiler vertex/fragment shaders. LoadShaders("resources/shaders/vs_phong.vert", "resources/shaders/fs_phong.frag", g_hPShaderProgram); LoadShaders("resources/shaders/vs_texture.vert", "resources/shaders/fs_texture.frag", g_hTXShaderProgram ); //init assImp stream stream = aiGetPredefinedLogStream(aiDefaultLogStream_STDOUT,NULL); aiAttachLogStream(&stream); //write stream to log stream = aiGetPredefinedLogStream(aiDefaultLogStream_FILE,"assimp_log.txt"); aiAttachLogStream(&stream); ilInit(); //if you use textures, do this. if (g_hPShaderProgram != 0) { projMatrixLoc= glGetUniformLocation(g_hPShaderProgram, "projMatrix"); viewMatrixLoc= glGetUniformLocation(g_hPShaderProgram, "viewMatrix"); } else { printf("phong shader program not compiled/linked\n"); return 1; } if (g_hTXShaderProgram != 0) { projMatrixLoc= glGetUniformLocation(g_hTXShaderProgram, "projMatrix"); viewMatrixLoc= glGetUniformLocation(g_hTXShaderProgram, "viewMatrix"); } else { printf("Texture shader program not compiled/linked\n"); return 1; } // Build a perspective projection matrix. PerspectiveMatrix4x4 ( matProj, 70.f, 1.3333f, 0.1f, 200.f); LoadIdentityMatrix4x4 (matModelView); TranslateMatrix4x4 (matModelView, 0, 0, -20.0f); //(0, -2, -10) RotateMatrix4x4 (matModelView, -90, X_AXIS); RotateMatrix4x4 (matModelView, -90, Y_AXIS); return 0; }
int main (int argc, char* argv[]) { // seed the randomizer with the current system time time_t t;time(&t); srand((unsigned int)t); // ............................................................................ // create a logger from both CPP Assimp::DefaultLogger::create("AssimpLog_Cpp.txt",Assimp::Logger::VERBOSE, aiDefaultLogStream_DEBUGGER | aiDefaultLogStream_FILE); // .. and C. They should smoothly work together aiEnableVerboseLogging(AI_TRUE); aiAttachLogStream(&aiGetPredefinedLogStream( aiDefaultLogStream_FILE, "AssimpLog_C.txt")); // ............................................................................ // Informiert Test-Listener ueber Testresultate CPPUNIT_NS :: TestResult testresult; // Listener zum Sammeln der Testergebnisse registrieren CPPUNIT_NS :: TestResultCollector collectedresults; testresult.addListener (&collectedresults); // Listener zur Ausgabe der Ergebnisse einzelner Tests CPPUNIT_NS :: BriefTestProgressListener progress; testresult.addListener (&progress); // Test-Suite ueber die Registry im Test-Runner einfuegen CPPUNIT_NS :: TestRunner testrunner; testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ()); testrunner.run (testresult); // Resultate im Compiler-Format ausgeben CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr); compileroutputter.write (); #if 0 // Resultate im XML-Format ausgeben std::ofstream of("output.xml"); CPPUNIT_NS :: XmlOutputter xml (&collectedresults, of); xml.write (); #endif // ............................................................................ // but shutdown must be done from C to ensure proper deallocation aiDetachAllLogStreams(); // Rueckmeldung, ob Tests erfolgreich waren return collectedresults.wasSuccessful () ? 0 : 1; }
Renderer3d::Renderer3d(const std::string & mesh_path) : renderer_(new Renderer3dImpl(mesh_path, 0, 0)), angle_(0), focal_length_x_(0), focal_length_y_(0), near_(0), far_(0), model_(new Model()), scene_list_(0) { // get a handle to the predefined STDOUT log stream and attach // it to the logging system. It remains active for all further // calls to aiImportFile(Ex) and aiApplyPostProcessing. ai_stream_ = new aiLogStream(aiGetPredefinedLogStream(aiDefaultLogStream_STDOUT, NULL)); aiAttachLogStream(ai_stream_); }
AssimpLoader::AssimpLoader() { // Log initialisation m_assimp_stream = aiGetPredefinedLogStream(aiDefaultLogStream_STDOUT, NULL); aiAttachLogStream(&m_assimp_stream); }
// Very complex stuff, impossible to explain. int main(int argc, char *argv []) { //Set the error callback glfwSetErrorCallback(onError); //Initialize GLFW if (!glfwInit()){ exit(EXIT_FAILURE); } //Set the GLFW window creation hints - these are optional //glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); //Request a specific OpenGL version //glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); //Request a specific OpenGL version //glfwWindowHint(GLFW_SAMPLES, 4); //Request 4x antialiasing //glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); //Declare a window object GLFWwindow* window; window = glfwCreateWindow(SCREEN_WIDTH, SCREEN_HEIGHT, "Screen Space Fluid Rendering", NULL /* glfwGetPrimaryMonitor() */, NULL); if (!window){ fprintf(stderr, "Failed to open GLFW window.\n"); glfwTerminate(); exit(EXIT_FAILURE); } glfwMakeContextCurrent(window); // Output some information puts(glfwGetVersionString()); printf("OpenGL version supported %s\n", glGetString(GL_VERSION)); setupCallback(window); // AssImp init // get a handle to the predefined STDOUT log stream and attach // it to the logging system. It remains active for all further // calls to aiImportFile(Ex) and aiApplyPostProcessing. aiLogStream aiStream = aiGetPredefinedLogStream(aiDefaultLogStream_STDOUT, NULL); aiAttachLogStream(&aiStream); // -------------------------------------------- // Initialize GLEW // -------------------------------------------- glewExperimental = GL_TRUE; GLenum err = glewInit(); //If GLEW hasn't initialized if (err != GLEW_OK){ fprintf(stderr, "Error: %s\n", glewGetErrorString(err)); return 1; } // -------------------------------------------- // DevIL init // -------------------------------------------- ilInit(); /* * Now that we should have a valid GL context, perform our OpenGL * initialization, before we enter our main loop. */ initialize(window); mainLoop(window); unload(window); // We added a log stream to the library, it's our job to disable it // again. This will definitely release the last resources allocated // by Assimp. aiDetachAllLogStreams(); //Close OpenGL window and terminate GLFW glfwDestroyWindow(window); //Finalize and clean up GLFW glfwTerminate(); exit(EXIT_SUCCESS); }
/* ---------------------------------------------------------------------------- */ int main(int argc, char **argv) { struct aiLogStream stream; glutInitWindowSize(900,600); glutInitWindowPosition(100,100); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutInit(&argc, argv); glutCreateWindow("Assimp - Very simple OpenGL sample"); glutDisplayFunc(display); glutReshapeFunc(reshape); /* get a handle to the predefined STDOUT log stream and attach it to the logging system. It remains active for all further calls to aiImportFile(Ex) and aiApplyPostProcessing. */ stream = aiGetPredefinedLogStream(aiDefaultLogStream_STDOUT,NULL); aiAttachLogStream(&stream); /* ... same procedure, but this stream now writes the log messages to assimp_log.txt */ stream = aiGetPredefinedLogStream(aiDefaultLogStream_FILE,"assimp_log.txt"); aiAttachLogStream(&stream); /* the model name can be specified on the command line. If none is specified, we try to locate one of the more expressive test models from the repository (/models-nonbsd may be missing in some distributions so we need a fallback from /models!). */ if( 0 != loadasset( argc >= 2 ? argv[1] : "../../test/models-nonbsd/X/dwarf.x")) { if( argc != 1 || (0 != loadasset( "../../../../test/models-nonbsd/X/dwarf.x") && 0 != loadasset( "../../test/models/X/Testwuson.X"))) { return -1; } } glClearColor(0.1f,0.1f,0.1f,1.f); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); /* Uses default lighting parameters */ glEnable(GL_DEPTH_TEST); glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE); glEnable(GL_NORMALIZE); /* XXX docs say all polygons are emitted CCW, but tests show that some aren't. */ if(getenv("MODEL_IS_BROKEN")) glFrontFace(GL_CW); glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE); glutGet(GLUT_ELAPSED_TIME); glutMainLoop(); /* cleanup - calling 'aiReleaseImport' is important, as the library keeps internal resources until the scene is freed again. Not doing so can cause severe resource leaking. */ aiReleaseImport(scene); /* We added a log stream to the library, it's our job to disable it again. This will definitely release the last resources allocated by Assimp.*/ aiDetachAllLogStreams(); return 0; }
/* ---------------------------------------------------------------------------- */ int main(int argc, char **argv) { struct aiLogStream stream; glutInitWindowSize(900,600); glutInitWindowPosition(100,100); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutInit(&argc, argv); glutCreateWindow("Michael Eller - Final Project (Preview)"); glutDisplayFunc(display); glutReshapeFunc(reshape); glutSetCursor(GLUT_CURSOR_NONE); glutKeyboardFunc(key); sky[0] = LoadTexBMP("../sky0.bmp"); sky[1] = LoadTexBMP("../sky1.bmp"); printf("FLT_MAX = %f\n",FLT_MAX); /* get a handle to the predefined STDOUT log stream and attach it to the logging system. It remains active for all further calls to aiImportFile(Ex) and aiApplyPostProcessing. */ stream = aiGetPredefinedLogStream(aiDefaultLogStream_STDOUT,NULL); aiAttachLogStream(&stream); /* ... same procedure, but this stream now writes the log messages to assimp_log.txt */ stream = aiGetPredefinedLogStream(aiDefaultLogStream_FILE,"assimp_log.txt"); aiAttachLogStream(&stream); loadasset(Xwing); glClearColor(0.1f,0.1f,0.1f,1.f); glutMouseFunc(MouseButton); glutMotionFunc(MouseMotion); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); /* Uses default lighting parameters */ glEnable(GL_LIGHT1); /* Light corresponding to star in skybox */ glEnable(GL_DEPTH_TEST); glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE); glEnable(GL_NORMALIZE); glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS); /* XXX docs say all polygons are emitted CCW, but tests show that some aren't. */ if(getenv("MODEL_IS_BROKEN")) glFrontFace(GL_CW); glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE); glutGet(GLUT_ELAPSED_TIME); glutMainLoop(); /* cleanup - calling 'aiReleaseImport' is important, as the library keeps internal resources until the scene is freed again. Not doing so can cause severe resource leaking. */ aiReleaseImport(scene); /* We added a log stream to the library, it's our job to disable it again. This will definitely release the last resources allocated by Assimp.*/ aiDetachAllLogStreams(); return 0; }
// ---------------------------------------------------------------------------- int main(int argc, char **argv) { aiLogStream stream; //glutInitWindowSize(900,600); //glutInitWindowPosition(100,100); //glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); //glutInit(&argc, argv); //glutCreateWindow("Assimp - Very simple OpenGL sample"); //glutDisplayFunc(display); //glutReshapeFunc(reshape); sf::IntRect viewport(0,0,800,600); sf::RenderWindow window(sf::VideoMode(viewport.width,viewport.height,32), "SFML Window"); reshape(viewport.width,viewport.height); // get a handle to the predefined STDOUT log stream and attach // it to the logging system. It remains active for all further // calls to aiImportFile(Ex) and aiApplyPostProcessing. stream = aiGetPredefinedLogStream(aiDefaultLogStream_STDOUT,NULL); aiAttachLogStream(&stream); // ... same procedure, but this stream now writes the // log messages to assimp_log.txt stream = aiGetPredefinedLogStream(aiDefaultLogStream_FILE,"assimp_log.txt"); aiAttachLogStream(&stream); // the model name can be specified on the command line. If none // is specified, we try to locate one of the more expressive test // models from the repository (/models-nonbsd may be missing in // some distributions so we need a fallback from /models!). std::string assimp_models = getenv("ASSIMP"); std::string dwarf, testMod; dwarf=assimp_models+"/test/models-nonbsd/MD5/Bob.md5mesh"; testMod=assimp_models+ "/test/models/X/Testwuson.X"; if( 0 != loadasset( argc >= 2 ? argv[1] : dwarf.c_str())) { if( argc != 1 || (0 != loadasset( dwarf.c_str()) && 0 != loadasset( testMod.c_str()))) { //return -1; ; } } glClearColor(0.1f,0.1f,0.1f,1.f); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); // Uses default lighting parameters glEnable(GL_DEPTH_TEST); glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE); glEnable(GL_NORMALIZE); // XXX docs say all polygons are emitted CCW, but tests show that some aren't. if(getenv("MODEL_IS_BROKEN")) glFrontFace(GL_CW); glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE); //glutGet(GLUT_ELAPSED_TIME); //glutMainLoop(); while (window.isOpen()) { // Process events sf::Event Event; while (window.pollEvent(Event)) { // Close window : exit if (Event.type == sf::Event::Closed) window.close(); // Escape key : exit if ((Event.type == sf::Event::KeyPressed) && (Event.key.code == sf::Keyboard::Escape)) window.close(); // Resize event : adjust viewport if (Event.type == sf::Event::Resized){ reshape(Event.size.width, Event.size.height); } } //draw/update display(); window.display(); } // cleanup - calling 'aiReleaseImport' is important, as the library // keeps internal resources until the scene is freed again. Not // doing so can cause severe resource leaking. aiReleaseImport(scene); // We added a log stream to the library, it's our job to disable it // again. This will definitely release the last resources allocated // by Assimp. aiDetachAllLogStreams(); return 0; }