SimpleOpenGL3App::SimpleOpenGL3App( const char* title, int width,int height) { gApp = this; m_data = new SimpleInternalData; m_window = new b3gDefaultOpenGLWindow(); b3gWindowConstructionInfo ci; ci.m_title = title; ci.m_width = width; ci.m_height = height; m_window->createWindow(ci); m_window->setWindowTitle(title); glClearColor(1,1,1,1); m_window->startRendering(); #ifndef __APPLE__ glewInit(); #endif m_primRenderer = new GLPrimitiveRenderer(width,height); m_instancingRenderer = new GLInstancingRenderer(128*1024,4*1024*1024); m_instancingRenderer->init(); m_instancingRenderer->resize(width,height); m_instancingRenderer->InitShaders(); m_window->setMouseMoveCallback(b3DefaultMouseMoveCallback); m_window->setMouseButtonCallback(b3DefaultMouseButtonCallback); m_window->setKeyboardCallback(b3DefaultKeyboardCallback); m_window->setWheelCallback(b3DefaultWheelCallback); m_window->setResizeCallback(SimpleResizeCallback); TwGenerateDefaultFonts(); m_data->m_fontTextureId = BindFont(g_DefaultNormalFont); }
SimpleOpenGL3App::SimpleOpenGL3App( const char* title, int width,int height) { gApp = this; m_data = new SimpleInternalData; m_window = new b3gDefaultOpenGLWindow(); b3gWindowConstructionInfo ci; ci.m_title = title; ci.m_width = width; ci.m_height = height; m_window->createWindow(ci); m_window->setWindowTitle(title); glClearColor(1,1,1,1); m_window->startRendering(); #ifndef __APPLE__ glewInit(); #endif m_primRenderer = new GLPrimitiveRenderer(width,height); m_instancingRenderer = new GLInstancingRenderer(128*1024,4*1024*1024); m_instancingRenderer->init(); m_instancingRenderer->resize(width,height); m_instancingRenderer->InitShaders(); m_window->setMouseMoveCallback(b3DefaultMouseMoveCallback); m_window->setMouseButtonCallback(b3DefaultMouseButtonCallback); m_window->setKeyboardCallback(b3DefaultKeyboardCallback); m_window->setWheelCallback(b3DefaultWheelCallback); m_window->setResizeCallback(SimpleResizeCallback); TwGenerateDefaultFonts(); m_data->m_fontTextureId = BindFont(g_DefaultNormalFont); { GLint err; int datasize; float sx,sy,dx,dy,lh; GLuint texture; m_data->m_renderCallbacks = new OpenGL2RenderCallbacks(m_primRenderer); m_data->m_fontStash = sth_create(512,512,m_data->m_renderCallbacks);//256,256);//,1024);//512,512); err = glGetError(); assert(err==GL_NO_ERROR); if (!m_data->m_fontStash) { b3Warning("Could not create stash"); //fprintf(stderr, "Could not create stash.\n"); } int droidRegular=0; char* data2 = OpenSansData; unsigned char* data = (unsigned char*) data2; if (!(m_data->m_droidRegular = sth_add_font_from_memory(m_data->m_fontStash, data))) { b3Warning("error!\n"); } err = glGetError(); assert(err==GL_NO_ERROR); } }
SimpleOpenGL3App::SimpleOpenGL3App( const char* title, int width,int height) { gApp = this; m_data = new SimpleInternalData; m_data->m_frameDumpPngFileName = 0; m_data->m_renderTexture = 0; m_data->m_ffmpegFile = 0; m_data->m_userPointer = 0; m_window = new b3gDefaultOpenGLWindow(); b3gWindowConstructionInfo ci; ci.m_title = title; ci.m_width = width; ci.m_height = height; m_window->createWindow(ci); m_window->setWindowTitle(title); b3Assert(glGetError() ==GL_NO_ERROR); glClearColor(0.9,0.9,1,1); m_window->startRendering(); b3Assert(glGetError() ==GL_NO_ERROR); #ifndef __APPLE__ #ifndef _WIN32 //some Linux implementations need the 'glewExperimental' to be true glewExperimental = GL_TRUE; #endif if (glewInit() != GLEW_OK) exit(1); // or handle the error in a nicer way if (!GLEW_VERSION_2_1) // check that the machine supports the 2.1 API. exit(1); // or handle the error in a nicer way #endif glGetError();//don't remove this call, it is needed for Ubuntu b3Assert(glGetError() ==GL_NO_ERROR); m_primRenderer = new GLPrimitiveRenderer(width,height); m_parameterInterface = 0; b3Assert(glGetError() ==GL_NO_ERROR); m_instancingRenderer = new GLInstancingRenderer(128*1024,4*1024*1024); m_instancingRenderer->init(); m_instancingRenderer->resize(width,height); b3Assert(glGetError() ==GL_NO_ERROR); m_instancingRenderer->InitShaders(); m_window->setMouseMoveCallback(b3DefaultMouseMoveCallback); m_window->setMouseButtonCallback(b3DefaultMouseButtonCallback); m_window->setKeyboardCallback(b3DefaultKeyboardCallback); m_window->setWheelCallback(b3DefaultWheelCallback); m_window->setResizeCallback(SimpleResizeCallback); TwGenerateDefaultFonts(); m_data->m_fontTextureId = BindFont(g_DefaultNormalFont); { m_data->m_renderCallbacks = new OpenGL2RenderCallbacks(m_primRenderer); m_data->m_fontStash = sth_create(512,512,m_data->m_renderCallbacks);//256,256);//,1024);//512,512); b3Assert(glGetError() ==GL_NO_ERROR); if (!m_data->m_fontStash) { b3Warning("Could not create stash"); //fprintf(stderr, "Could not create stash.\n"); } char* data2 = OpenSansData; unsigned char* data = (unsigned char*) data2; if (!(m_data->m_droidRegular = sth_add_font_from_memory(m_data->m_fontStash, data))) { b3Warning("error!\n"); } b3Assert(glGetError() ==GL_NO_ERROR); } }
SimpleOpenGL2App::SimpleOpenGL2App(const char* title, int width, int height) { gApp2 = this; m_data = new SimpleOpenGL2AppInternalData; m_window = new b3gDefaultOpenGLWindow(); b3gWindowConstructionInfo ci; ci.m_title = title; ci.m_openglVersion = 2; ci.m_width = width; ci.m_height = height; m_window->createWindow(ci); m_window->setWindowTitle(title); #ifndef NO_GLEW #ifndef __APPLE__ #ifndef _WIN32 //some Linux implementations need the 'glewExperimental' to be true glewExperimental = GL_TRUE; #endif //_WIN32 if (glewInit() != GLEW_OK) { b3Error("glewInit failed"); exit(1); } if (!GLEW_VERSION_2_1) // check that the machine supports the 2.1 API. { b3Error("GLEW_VERSION_2_1 needs to support 2_1"); exit(1); // or handle the error in a nicer way } #endif //__APPLE__ #endif //NO_GLEW TwGenerateDefaultFonts(); m_data->m_fontTextureId = BindFont2(g_DefaultNormalFont); m_data->m_largeFontTextureId = BindFont2(g_DefaultLargeFont); glGetError();//don't remove this call, it is needed for Ubuntu glClearColor( m_backgroundColorRGB[0], m_backgroundColorRGB[1], m_backgroundColorRGB[2], 1.f); b3Assert(glGetError() ==GL_NO_ERROR); //m_primRenderer = new GLPrimitiveRenderer(width,height); m_parameterInterface = 0; b3Assert(glGetError() ==GL_NO_ERROR); //m_renderer = new GLInstancingRenderer(128*1024,32*1024*1024); //m_renderer->init(); //m_renderer->resize(width,height); b3Assert(glGetError() ==GL_NO_ERROR); //m_renderer->InitShaders(); m_window->setMouseMoveCallback(Simple2MouseMoveCallback); m_window->setMouseButtonCallback(Simple2MouseButtonCallback); m_window->setKeyboardCallback(Simple2KeyboardCallback); m_window->setWheelCallback(Simple2WheelCallback); m_window->setResizeCallback(Simple2ResizeCallback); }