//] //[eglplus_example_hello_world_2 int main(void) { if(eglplus::__LibEGL::HasClientExtensions()) { std::cout << "Client extensions:" << std::endl; for(auto r=eglplus::__LibEGL::ClientExtensions(); !r.Empty(); r.Next()) std::cout << '\t' << r.Front() << std::endl; } else std::cout << "No client extensions." << std::endl; eglplus::__Display display; eglplus::__LibEGL egl(display); std::cout << "Vendor: " << egl.Vendor() << std::endl; std::cout << "Version: " << egl.Version() << std::endl; std::cout << "Client APIs:" << std::endl; for(auto r=egl.ClientAPIs(); !r.Empty(); r.Next()) std::cout << '\t' << r.Front() << std::endl; std::cout << "Extensions:" << std::endl; for(auto r=egl.Extensions(); !r.Empty(); r.Next()) std::cout << '\t' << r.Front() << std::endl; return 0; }//]
// static std::unique_ptr<EGLDRMGlue> EGLDRMGlue::Create( std::unique_ptr<DRMModesetter> drm, const SwapBuffersCallback& callback) { std::unique_ptr<EGLDRMGlue> egl(new EGLDRMGlue()); if (egl->Initialize(std::move(drm), callback)) return egl; return nullptr; }
TEST(test_windowx11, initialization) { WindowX11 w(200, 300); w.show(); EGLWrapper egl(w.getDisplay(), w.getWindow()); int i = 120; while (i-- && w.processEvents()) { glClearColor(0.0f, 0.2f, 0.4f, 1.0f); glClear(GL_COLOR_BUFFER_BIT); egl.swap(); } }
int egl_example_main(int argc, char ** argv) { oglplus::ExampleOptions opts; opts.screenshot_path = nullptr; opts.framedump_prefix = nullptr; opts.width = 800; opts.height = 600; opts.samples = 0; int a=1; while(a<argc) { short parsed = 0; if((std::strcmp(argv[a], "--screenshot")) == 0 && (a+1<argc)) { opts.screenshot_path = argv[a+1]; parsed = 2; } else if((std::strcmp(argv[a], "--frame-dump")) == 0 && (a+1<argc)) { opts.framedump_prefix = argv[a+1]; parsed = 2; } else if((std::strcmp(argv[a], "--width")) == 0 && (a+1<argc)) { opts.width = GLuint(std::atoi(argv[a+1])); parsed = 2; } else if((std::strcmp(argv[a], "--height")) == 0 && (a+1<argc)) { opts.height = GLuint(std::atoi(argv[a+1])); parsed = 2; } else if((std::strcmp(argv[a], "--samples")) == 0 && (a+1<argc)) { opts.samples = GLint(std::atoi(argv[a+1])); parsed = 2; } if(parsed == 2) { for(int b=a+1; b<argc; ++b) { argv[b-2] = argv[b]; } argc -= 2; } else if(parsed == 0) { ++a; } } if(!(opts.screenshot_path || opts.framedump_prefix)) { std::cout << "--screenshot or --framedump option " "must be specified" << std::endl; return 1; } eglplus::Display display; eglplus::LibEGL egl(display); // run the main loop oglplus::run_example(display, opts, argc, argv); return 0; }
int egl_example_main(int argc, char ** argv) { const char* screenshot_path = nullptr; const char* framedump_prefix = nullptr; if((argc >= 3) && (std::strcmp(argv[1], "--screenshot") == 0)) screenshot_path = argv[2]; if((argc >= 3) && (std::strcmp(argv[1], "--frame-dump") == 0)) framedump_prefix = argv[2]; GLuint width = 0, height = 0; if(screenshot_path || framedump_prefix) { for(int a=3; a<argc; ++a) argv[a-2] = argv[a]; argc -= 2; int a=1; while(a<argc) { if(std::strcmp(argv[a], "--width") == 0 && (a+1<argc)) { width = std::atoi(argv[a+1]); for(int b=a+1; b<argc; ++b) argv[b-2] = argv[b]; argc -= 2; } else if(std::strcmp(argv[a], "--height") == 0 && (a+1<argc)) { height = std::atoi(argv[a+1]); for(int b=a+1; b<argc; ++b) argv[b-2] = argv[b]; argc -= 2; } else ++a; } } else { std::cout << "--screenshot or --framedump option " "must be specified" << std::endl; return 1; } if(!width) width = 800; if(!height) height = 600; // eglplus::Display display; eglplus::LibEGL egl(display); // run the main loop oglplus::run_example( display, screenshot_path, framedump_prefix, width, height, argc, argv ); return 0; }
int main() { // open the default display eglplus::Display display; // initialize the library eglplus::LibEGL egl(display); // get the list of all available configurations eglplus::Configs configs(display); // int w = 20; for(auto cr = configs.All(); !cr.Empty(); cr.Next()) { auto cfg = cr.Front(); std::cout << "Config ID = " << cfg.ConfigId() << std::endl; std::cout << "\tRed size: " << std::setw(w) << cfg.RedSize() << std::endl; std::cout << "\tGreen size: " << std::setw(w) << cfg.GreenSize() << std::endl; std::cout << "\tBlue size: " << std::setw(w) << cfg.BlueSize() << std::endl; std::cout << "\tAlpha size: " << std::setw(w) << cfg.AlphaSize() << std::endl; std::cout << "\tDepth size: " << std::setw(w) << cfg.DepthSize() << std::endl; std::cout << "\tStencil size: " << std::setw(w) << cfg.StencilSize() << std::endl; std::cout << "\tMax Pbuffer width: " << std::setw(w) << cfg.MaxPbufferWidth() << std::endl; std::cout << "\tMax Pbuffer height:" << std::setw(w) << cfg.MaxPbufferHeight() << std::endl; std::cout << "\tMax Pbuffer pixels:" << std::setw(w) << cfg.MaxPbufferPixels() << std::endl; std::cout << "\tConfig caveat: " << std::setw(w) << eglplus::EnumValueName(cfg.ConfigCaveat()).c_str() << std::endl; std::cout << "\tColor buffer type: " << std::setw(w) << eglplus::EnumValueName(cfg.ColorBufferType()).c_str() << std::endl; std::cout << "\tTransparent type: " << std::setw(w) << eglplus::EnumValueName(cfg.TransparentType()).c_str() << std::endl; std::cout << "\tRenderable types: " << std::setw(w); auto rtr = eglplus::EnumValueRange<eglplus::RenderableTypeBit>(); while(!rtr.Empty()) { if(cfg.HasRenderableType(rtr.Front())) { std::cout << eglplus::EnumValueName(rtr.Front()).c_str(); std::cout << '|'; } rtr.Next(); } std::cout << std::endl; std::cout << "\tSurface types: " << std::setw(w); auto str = eglplus::EnumValueRange<eglplus::SurfaceTypeBit>(); while(!str.Empty()) { if(cfg.HasSurfaceType(str.Front())) { std::cout << eglplus::EnumValueName(str.Front()).c_str(); std::cout << '|'; } str.Next(); } std::cout << std::endl; std::cout << "\tConformant to: " << std::setw(w); auto ctr = eglplus::EnumValueRange<eglplus::RenderableTypeBit>(); while(!ctr.Empty()) { if(cfg.IsConformantTo(ctr.Front())) { std::cout << eglplus::EnumValueName(ctr.Front()).c_str(); std::cout << '|'; } ctr.Next(); } std::cout << std::endl; std::cout << "-----------------------------------------------" << std::endl; } // return 0; }
int main(int argc, char **argv) { std::string native_display_name; typedef std::auto_ptr < eglinfo::writer > writer_ptr; writer_ptr writer; int opt; std::string writer_type = "text"; bool json_raw_print = false; while ((opt = getopt(argc, argv, "w:d:rh")) != -1) { switch (opt) { case 'w': { if (optarg == 0) { print_usage(argv[0]); return -1; } writer_type = optarg; break; } case 'd': { if (optarg == 0) { print_usage(argv[0]); return -1; } native_display_name = optarg; break; } case 'r': json_raw_print = true; break; case 'h': print_usage(argv[0]); return 0; default: print_usage(argv[0]); return -1; } } if (writer_type == "json") writer = writer_ptr(new eglinfo::json_writer(std::cout, json_raw_print)); else if (writer_type == "text") writer = writer_ptr(new eglinfo::text_writer(std::cout)); else { std::cerr << "unknown writer '" << writer_type << "'\n"; std::cerr << "\n"; print_usage(argv[0]); return -1; } eglinfo::native_display d(native_display_name.empty() ? reinterpret_cast < char const* > (0) : native_display_name.c_str()); if (!d.is_ok()) { std::cerr << "could not initialize with native display " << native_display_name << "\n"; return -1; } eglinfo::egl_scope egl(d); if (egl) write_info(*writer, egl); return 0; }