-#ifdef linux
- if ( getenv("DISPLAY") == 0 ) {
- mlt_log_error(service, "The qglsl consumer requires a X11 environment.\nPlease either run melt from an X session or use a fake X server like xvfb:\nxvfb-run -a melt (...)\n" );
- } else
-#endif
- if (!app) {
- int argc = 1;
- char* argv[1];
- argv[0] = (char*) "MLT qglsl consumer";
- app = new QApplication(argc, argv);
- const char *localename = mlt_properties_get_lcnumeric(properties);
- QLocale::setDefault(QLocale(localename));
- }
- QGLWidget* renderContext = new QGLWidget;
- renderContext->resize(0, 0);
- renderContext->show();
- mlt_events_fire(filter_properties, "init glsl", NULL);
- if (!mlt_properties_get_int(filter_properties, "glsl_supported")) {
- mlt_log_fatal(service,
- "OpenGL Shading Language rendering is not supported on this machine.\n" );
- mlt_events_fire(properties, "consumer-fatal-error", NULL);
- }
- else {
- mlt_properties_set_data(properties, "qglslRenderContext", renderContext, 0, NULL, NULL);
+ GLWidget *widget = (GLWidget*) mlt_properties_get_data(properties, "GLWidget", NULL);
+ if (widget->createRenderContext()) {
+ mlt_events_fire(filter_properties, "init glsl", NULL);
+ if (!mlt_properties_get_int(filter_properties, "glsl_supported")) {
+ mlt_log_fatal(service,
+ "OpenGL Shading Language rendering is not supported on this machine.\n" );
+ mlt_events_fire(properties, "consumer-fatal-error", NULL);
+ }