void GLWidget::LoadPath(std::string filename) { _paths = _pathIO->LoadPath(filename); InitializePaths(); this->repaint(); std::cout << this->_img_width << " " << this->_img_height << "\n"; }
void GLWidget::initializeGL() { /* OpenGL format */ QGLFormat glFormat = QGLWidget::format(); if (!glFormat.sampleBuffers()) { //std::cerr << "Could not enable sample buffers." << std::endl; textEdit->append("Could not enable sample buffers."); return; } /* Stuff I forget what their purposes are */ glShadeModel(GL_SMOOTH); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glClearColor( 1.0, 1.0, 1.0, 1.0 ); glEnable(GL_DEPTH_TEST); /* Shaders */ _shaderProgram = new QOpenGLShaderProgram(); if (!_shaderProgram->addShaderFromSourceFile(QOpenGLShader::Vertex, SystemParams::v_shader_file.c_str())) { //std::cerr << "Cannot load vertex shader." << std::endl; textEdit->append("Cannot load vertex shader."); return; } if (!_shaderProgram->addShaderFromSourceFile(QOpenGLShader::Fragment, SystemParams::f_shader_file.c_str())) { //std::cerr << "Cannot load fragment shader." << std::endl; textEdit->append("Cannot load fragment shader."); return; } if ( !_shaderProgram->link() ) { //std::cerr << "Cannot link shaders." << std::endl; textEdit->append("Cannot link shaders."); return; } _shaderProgram->bind(); _mvpMatrixLocation = _shaderProgram->uniformLocation("mvpMatrix"); _colorLocation = _shaderProgram->attributeLocation("vertexColor"); _vertexLocation = _shaderProgram->attributeLocation("vert"); _use_color_location = _shaderProgram->uniformLocation("use_color"); /* for VBO and VAO */ _vDataHelper = new VertexDataHelper(_shaderProgram); _pathIO = new PathIO(); // comment these //CreateCurve(); //BuildCurveVertexData(); // You want image or the actual path ? //SetImage(QString::fromStdString(SystemParams::temp_png_location)); if (!_pathsVao.isCreated() && _paths.size() > 0) { InitializePaths(); } // a box _boxes.push_back(ABox(AVector(0, 0), AVector(0, this->_img_height), AVector(this->_img_width, 0), AVector(this->_img_width, this->_img_height))); _vDataHelper->BuildQuadsVertexData(_boxes, &_boxVbo, &_boxVao); // an example how to render a triangle //_triangles.push_back(ATriangle(AVector(1, 1), AVector(25, 25), AVector(1, 50))); //_vDataHelper->BuildTrianglesVertexData(_triangles, &_triangleVbo, &_triangleVao, QVector3D(1.0, 0.25, 0.25)); // don't remove this textEdit->append("OpenGL is initialized"); _isGLInitialized = true; }
int usdxMain(int argc, char ** argv) { try { const char * windowTitle = USDXVersionStr(); if (Platform::TerminateIfAlreadyRunning(windowTitle)) return 1; // fix the locale for string-to-float parsing in C-libs Common::SetDefaultNumericLocale(); // initialize SDL // without SDL_INIT_TIMER SDL_GetTicks() might return strange values if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER) == -1) return 1; // initialize SDL_mixer if (Mix_OpenAudio(MIX_DEFAULT_FREQUENCY, MIX_DEFAULT_FORMAT, MIX_DEFAULT_CHANNELS, 4096) == -1) return 1; SDL_StartTextInput(); // create LuaCore first so other classes can register their events new LuaCore(); // load the command-line arguments Params.Load(argc, argv); // Setup the logger/benchmarker new Log(); sLog.BenchmarkStart(0); // Setup the texture manager new TextureMgr(); // Language sLog.BenchmarkStart(1); sLog.Status("Initialize Paths", "Initialization"); InitializePaths(); sLog.Status("Load Language", "Initialization"); new Language(); // Add const values sLanguage.AddConst("US_VERSION", USDXVersionStr()); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading Language"); // Skins sLog.BenchmarkStart(1); sLog.Status("Loading Skin List", "Initialization"); new Skins(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading Skin List"); // Themes sLog.BenchmarkStart(1); sLog.Status("Loading Theme List", "Initialization"); new Themes(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading Theme List"); // INI file sLog.BenchmarkStart(1); sLog.Status("Loading INI", "Initialization"); new Ini(); sIni.Load(); // Set the language. // NOTE: Command-line takes precedence. if (!Params.LanguageName.empty()) sLanguage.ChangeLanguage(Params.LanguageName); else sLanguage.ChangeLanguage(sIni.LanguageName); // It is possible that this is the first run, so create an .ini file if necessary. sLog.Status("Writing INI", "Initialization"); sIni.Save(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading INI"); // Sound sLog.BenchmarkStart(1); sLog.Status("Initialize Sound", "Initialization"); new SoundLibrary(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Initializing Sound"); // Lyrics engine with media reference timer // new LyricsState(); // Theme sLog.BenchmarkStart(1); sLog.Status("Load Theme", "Initialization"); sThemes.LoadTheme(sIni.Theme, sIni.ThemeColor); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading Theme"); // Covers cache sLog.BenchmarkStart(1); sLog.Status("Creating Covers cache", "Initialization"); // new Covers(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading Covers cache"); // Category covers sLog.BenchmarkStart(1); sLog.Status("Creating Category Covers array", "Initialization"); // new CatCovers(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading Category Covers array"); // Songs sLog.BenchmarkStart(1); sLog.Status("Creating song array", "Initialization"); // new Songs(); sLog.Status("Creating 2nd song array", "Initialization"); // new CatSongs(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading songs"); // Graphics sLog.BenchmarkStart(1); sLog.Status("Initialize 3D", "Initialization"); Initialize3D(windowTitle); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Initializing 3D"); // Score saving sLog.BenchmarkStart(1); sLog.Status("Loading database", "Initialization"); new Database(); if (ScoreFile.empty()) { Platform::GetGameUserPath(&ScoreFile); ScoreFile /= "Ultrastar.db"; } sDatabase.Init(ScoreFile); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading database"); // Playlist manager sLog.BenchmarkStart(1); sLog.Status("Playlist manager", "Initialization"); // new PlaylistManager(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading playlist manager"); // Effect manager (for the twinkling golden stars and such) sLog.BenchmarkStart(1); sLog.Status("Effect manager", "Initialization"); // new EffectManager(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading effect manager"); // Joypad if (sIni.Joypad || Params.Joypad) { sLog.BenchmarkStart(1); sLog.Status("Joystick", "Initialization"); // new Joystick(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading joystick"); } // Party manager sLog.BenchmarkStart(1); sLog.Status("Party manager", "Initialization"); // new PartyGame(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading party manager"); // Lua sLog.BenchmarkStart(1); // sLuaCore.RegisterModule("Log", LuaLog_Lib_f); // sLuaCore.RegisterModule("Gl", LuaGl_Lib_f); // sLuaCore.RegisterModule("TextGl", LuaTextGl_Lib_f); // sLuaCore.RegisterModule("Party", LuaParty_Lib_f); // sLuaCore.RegisterModule("ScreenSing", LuaScreenSing_Lib_f); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Initializing LuaCore"); // Lua plugins sLog.BenchmarkStart(1); sLuaCore.LoadPlugins(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading Lua plugins"); sLuaCore.DumpPlugins(); sLog.BenchmarkEnd(0); sLog.Benchmark(0, "Loading time"); // Prepare software cursor sDisplay.SetCursor(); // Start background music sSoundLib.StartBgMusic(); // Check microphone settings, go to record options if they are incorrect /* int badPlayer = AudioInputProcessor::ValidateSettings(); if (badPlayer >= 0) { ScreenPopupError::ShowPopup("ERROR_PLAYER_DEVICE_ASSIGNMENT", BadPlayer + 1); sDisplay.CurrentScreen->FadeTo(&ScreenOptionsRecord); } */ // Start main loop sLog.Status("Main loop", "Initialization"); usdxMainLoop(); } catch (const CriticalException& e) { printf("Critical exception occurred: %s\n", e.what()); } catch (const std::exception& e) { printf("Unhandled exception occurred: %s\n", e.what()); } catch (...) { printf("Unhandled exception occurred.\n"); } FreeGfxResources(); // delete PartyGame::getSingletonPtr(); // delete Joystick::getSingletonPtr(); // delete EffectManager::getSingletonPtr(); // delete PlaylistManager::getSingletonPtr(); delete Database::getSingletonPtr(); // delete CatSongs::getSingletonPtr(); // delete Songs::getSingletonPtr(); // delete CatCovers::getSingletonPtr(); // delete Covers::getSingletonPtr(); // delete LyricsState::getSingletonPtr(); delete Ini::getSingletonPtr(); delete Themes::getSingletonPtr(); delete Skins::getSingletonPtr(); delete Language::getSingletonPtr(); delete TextureMgr::getSingletonPtr(); delete Log::getSingletonPtr(); delete LuaCore::getSingletonPtr(); delete SoundLibrary::getSingletonPtr(); SDL_StopTextInput(); Mix_CloseAudio(); SDL_Quit(); return 0; }