• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ eglGetConfigs函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中eglGetConfigs函数的典型用法代码示例。如果您正苦于以下问题:C++ eglGetConfigs函数的具体用法?C++ eglGetConfigs怎么用?C++ eglGetConfigs使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了eglGetConfigs函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: eglGetCurrentDisplay

QString QGLInfo::reportEGLConfigInfo() const
{
#if !defined(QT_NO_EGL)
    QString d;
    QEglProperties props;
    EGLint count = 0;
    EGLDisplay dpy = eglGetCurrentDisplay();
    EGLContext ctx = eglGetCurrentContext();
    EGLint cfgnum = 0;
    if (eglQueryContext(dpy, ctx, EGL_CONFIG_ID, &cfgnum)) {
        d += QString("Window configuration in use: ") + QString::number(cfgnum) +
             QLatin1String("\n\n");
    }
    if (!eglGetConfigs(dpy, 0, 0, &count) || count < 1)
        return d;
    EGLConfig *configs = new EGLConfig [count];
    eglGetConfigs(dpy, configs, count, &count);
    for (EGLint index = 0; index < count; ++index) {
        props = QEglProperties(configs[index]);
        d += props.toString() + QLatin1String("\n\n");
    }
    delete [] configs;
    return d;
#else
    return QString();
#endif
}
开发者ID:slavablind91,项目名称:code,代码行数:27,代码来源:qglinfo.cpp


示例2: eglGetConfigs

// Find an EGLConfig that is an exact match for the specified attributes. EGL_FALSE is returned if
// the EGLConfig is found.  This indicates that the EGLConfig is not supported.
EGLBoolean EGLWindow::FindEGLConfig(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *config)
{
    EGLint numConfigs = 0;
    eglGetConfigs(dpy, nullptr, 0, &numConfigs);
    std::vector<EGLConfig> allConfigs(numConfigs);
    eglGetConfigs(dpy, allConfigs.data(), allConfigs.size(), &numConfigs);

    for (size_t i = 0; i < allConfigs.size(); i++)
    {
        bool matchFound = true;
        for (const EGLint *curAttrib = attrib_list; curAttrib[0] != EGL_NONE; curAttrib += 2)
        {
            EGLint actualValue = EGL_DONT_CARE;
            eglGetConfigAttrib(dpy, allConfigs[i], curAttrib[0], &actualValue);
            if (curAttrib[1] != actualValue)
            {
                matchFound = false;
                break;
            }
        }

        if (matchFound)
        {
            *config = allConfigs[i];
            return EGL_TRUE;
        }
    }

    return EGL_FALSE;
}
开发者ID:mariospr,项目名称:chromium-browser,代码行数:32,代码来源:EGLWindow.cpp


示例3: OGRE_EXCEPT

    EGLConfig* EGLSupport::getConfigs(GLint *nElements)
    {
        EGLConfig *configs;

        if (eglGetConfigs(mGLDisplay, NULL, 0, nElements) == EGL_FALSE)
        {
            OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR,
                        "Failed to choose config",
                        __FUNCTION__);

            *nElements = 0;
            return 0;
        }
        EGL_CHECK_ERROR
        configs = (EGLConfig*) malloc(*nElements * sizeof(EGLConfig));
        if (eglGetConfigs(mGLDisplay, configs, *nElements, nElements) == EGL_FALSE)
        {
            OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR,
                        "Failed to choose config",
                        __FUNCTION__);

            *nElements = 0;
            free(configs);
            return 0;
        }
        EGL_CHECK_ERROR
        return configs;
    }
开发者ID:LiberatorUSA,项目名称:GUCEF,代码行数:28,代码来源:OgreEGLSupport.cpp


示例4: PrintConfigs

/**
 * Print table of all available configurations.
 */
static 
EGLConfig* PrintConfigs(EGLDisplay d)
{
   EGLConfig *configs;
   EGLint numConfigs, i;

   if (eglGetConfigs(d, NULL, 0, &numConfigs) != EGL_TRUE)
   {
      printf ("eglGetConfigs -> %x\n", eglGetError());
      exit (EXIT_FAILURE); 
   }

   configs = malloc(sizeof(EGLConfig) *numConfigs);

   eglGetConfigs(d, configs, numConfigs, &numConfigs); 

   printf("Configurations:\n");
   printf("     bf lv d st colorbuffer dp st   supported \n");
   printf("  id sz  l b ro  r  g  b  a th cl   surfaces  \n");
   printf("----------------------------------------------\n");
   for (i = 0; i < numConfigs; i++) {
      EGLint id, size, level;
      EGLint red, green, blue, alpha;
      EGLint depth, stencil;
      EGLint surfaces;
      EGLint doubleBuf = 1, stereo = 0;
      char surfString[100] = "";

      eglGetConfigAttrib(d, configs[i], EGL_CONFIG_ID, &id);
      eglGetConfigAttrib(d, configs[i], EGL_BUFFER_SIZE, &size);
      eglGetConfigAttrib(d, configs[i], EGL_LEVEL, &level);

      eglGetConfigAttrib(d, configs[i], EGL_RED_SIZE, &red);
      eglGetConfigAttrib(d, configs[i], EGL_GREEN_SIZE, &green);
      eglGetConfigAttrib(d, configs[i], EGL_BLUE_SIZE, &blue);
      eglGetConfigAttrib(d, configs[i], EGL_ALPHA_SIZE, &alpha);
      eglGetConfigAttrib(d, configs[i], EGL_DEPTH_SIZE, &depth);
      eglGetConfigAttrib(d, configs[i], EGL_STENCIL_SIZE, &stencil);
      eglGetConfigAttrib(d, configs[i], EGL_SURFACE_TYPE, &surfaces);

      if (surfaces & EGL_WINDOW_BIT)
         strcat(surfString, "win,");
      if (surfaces & EGL_PBUFFER_BIT)
         strcat(surfString, "pb,");
      if (surfaces & EGL_PIXMAP_BIT)
         strcat(surfString, "pix,");
      if (strlen(surfString) > 0)
         surfString[strlen(surfString) - 1] = 0;

      printf("0x%02x %2d %2d %c  %c %2d %2d %2d %2d %2d %2d   %-12s\n",
             id, size, level,
             doubleBuf ? 'y' : '.',
             stereo ? 'y' : '.',
             red, green, blue, alpha,
             depth, stencil, surfString);
   }
//   free(configs);
return configs;
}
开发者ID:Rebox-Rob,项目名称:Reboxrepository,代码行数:62,代码来源:demo_1.c


示例5: _cairo_boilerplate_egl_create_surface

static cairo_surface_t *
_cairo_boilerplate_egl_create_surface (const char		 *name,
				       cairo_content_t		  content,
				       double			  width,
				       double			  height,
				       double			  max_width,
				       double			  max_height,
				       cairo_boilerplate_mode_t   mode,
				       int			  id,
				       void			**closure)
{
    egl_target_closure_t *gltc;
    cairo_surface_t *surface;
    int major, minor;
    EGLConfig *configs;
    EGLint numConfigs;

    gltc = xcalloc (1, sizeof (egl_target_closure_t));
    *closure = gltc;

    gltc->dpy = eglGetDisplay (EGL_DEFAULT_DISPLAY);

    if (! eglInitialize (gltc->dpy, &major, &minor)) {
	free (gltc);
	return NULL;
    }

    eglGetConfigs (gltc->dpy, NULL, 0, &numConfigs);
    if (numConfigs == 0) {
	free (gltc);
	return NULL;
    }
    configs = xmalloc(sizeof(*configs) *numConfigs);
    eglGetConfigs (gltc->dpy, configs, numConfigs, &numConfigs);

    eglBindAPI (EGL_OPENGL_API);

    gltc->ctx = eglCreateContext (gltc->dpy, configs[0], EGL_NO_CONTEXT, NULL);
    if (gltc->ctx == EGL_NO_CONTEXT) {
	eglTerminate (gltc->dpy);
	free (gltc);
	return NULL;
    }

    gltc->device = cairo_egl_device_create (gltc->dpy, gltc->ctx);

    gltc->surface = surface = cairo_gl_surface_create (gltc->device,
						       content,
						       ceil (width),
						       ceil (height));
    if (cairo_surface_status (surface))
	_cairo_boilerplate_egl_cleanup (gltc);

    return surface;
}
开发者ID:499940913,项目名称:moon,代码行数:55,代码来源:cairo-boilerplate-egl.c


示例6: eglGetConfigs

void QEglProperties::dumpAllConfigs()
{
    EGLint count = 0;
    eglGetConfigs(QEglContext::defaultDisplay(0), 0, 0, &count);
    if (count < 1)
        return;

    EGLConfig *configs = new EGLConfig [count];
    eglGetConfigs(QEglContext::defaultDisplay(0), configs, count, &count);
    for (EGLint index = 0; index < count; ++index)
        qWarning() << QEglProperties(configs[index]).toString();
    delete [] configs;
}
开发者ID:Nacto1,项目名称:qt-everywhere-opensource-src-4.6.2,代码行数:13,代码来源:qeglproperties.cpp


示例7: eglGetConfigs

// Dump all of the EGL configurations supported by the system.
void QEgl::dumpAllConfigs()
{
    QEglProperties props;
    EGLint count = 0;
    if (!eglGetConfigs(display(), 0, 0, &count) || count < 1)
        return;
    EGLConfig *configs = new EGLConfig [count];
    eglGetConfigs(display(), configs, count, &count);
    for (EGLint index = 0; index < count; ++index) {
        props = QEglProperties(configs[index]);
        qWarning() << props.toString();
    }
    delete [] configs;
}
开发者ID:husninazer,项目名称:qt,代码行数:15,代码来源:qegl.cpp


示例8: eglGetConfigs

EGLConfig EGLConfigSelector::findMatchingConfigWithVisualId(NativeVisualId id)
{
    if (m_sharedDisplay == EGL_NO_DISPLAY)
        return 0;

    EGLint numConfigs;
    EGLint i;
    EGLint visualId;
    EGLConfig config = 0;

    eglGetConfigs(m_sharedDisplay, 0, 0, &numConfigs);

    if (!numConfigs) {
        LOG_ERROR("Failed to retrieve any EGL configs.");
        return 0;
    }

    EGLConfig configs[numConfigs];
    eglGetConfigs(m_sharedDisplay, configs, numConfigs, &numConfigs);

    if (!numConfigs) {
        LOG_ERROR("Failed to retrieve any EGL configs.");
        return 0;
    }

    int alphaChannelRequired = m_attributes & GLPlatformSurface::SupportAlpha ? 8 : 0;
    for (i = 0; i < numConfigs; i++) {
        EGLint alpha, surfaces;
        EGLConfig tempConfig = configs[i];
        eglGetConfigAttrib(m_sharedDisplay, tempConfig, EGL_NATIVE_VISUAL_ID, &visualId);

        if (static_cast<NativeVisualId>(visualId) != id)
            continue;

        eglGetConfigAttrib(m_sharedDisplay, tempConfig, EGL_ALPHA_SIZE, &alpha);

        if (alphaChannelRequired != alpha)
            continue;

        eglGetConfigAttrib(m_sharedDisplay, tempConfig, EGL_SURFACE_TYPE, &surfaces);

        if (surfaces & EGL_PIXMAP_BIT) {
            config = tempConfig;
            break;
        }
    }

    return config;
}
开发者ID:SchleunigerAG,项目名称:WinEC7_Qt5.3.1_Fixes,代码行数:49,代码来源:EGLConfigSelector.cpp


示例9: jni_eglGetConfigs

static jboolean jni_eglGetConfigs(JNIEnv *_env, jobject _this, jobject display,
        jobjectArray configs, jint config_size, jintArray num_config) {
    if (display == NULL || (configs != NULL && _env->GetArrayLength(configs) < config_size)
        || (num_config != NULL && _env->GetArrayLength(num_config) < 1)) {
        jniThrowException(_env, "java/lang/IllegalArgumentException", NULL);
        return JNI_FALSE;
    }
    EGLDisplay dpy = getDisplay(_env, display);
    jboolean success = JNI_FALSE;
    if (configs == NULL) {
        config_size = 0;
    }
    EGLConfig nativeConfigs[config_size];
    int num;
    success = eglGetConfigs(dpy, configs ? nativeConfigs : 0, config_size, &num);
    if (num_config != NULL) {
        _env->SetIntArrayRegion(num_config, 0, 1, (jint*) &num);
    }
    if (success && configs) {
        for (int i=0 ; i<num ; i++) {
            jobject obj = _env->NewObject(gConfig_class, gConfig_ctorID, (jint)nativeConfigs[i]);
            _env->SetObjectArrayElement(configs, i, obj);
        }
    }
    return success;
}
开发者ID:10x-Amin,项目名称:frameworks_base,代码行数:26,代码来源:com_google_android_gles_jni_EGLImpl.cpp


示例10: EglConfigForConfigID

EGLConfig EglConfigForConfigID( const EGLDisplay display, const GLint configID )
{
	static const int MAX_CONFIGS = 1024;
	EGLConfig 	configs[MAX_CONFIGS];
	EGLint  	numConfigs = 0;

	if ( EGL_FALSE == eglGetConfigs( display,
			configs, MAX_CONFIGS, &numConfigs ) )
	{
		WARN( "eglGetConfigs() failed" );
		return NULL;
	}

	for ( int i = 0; i < numConfigs; i++ )
	{
		EGLint	value = 0;

		eglGetConfigAttrib( display, configs[i], EGL_CONFIG_ID, &value );
		if ( value == configID )
		{
			return configs[i];
		}
	}

	return NULL;
}
开发者ID:amyvmiwei,项目名称:UnrealEngine4,代码行数:26,代码来源:GlUtils.cpp


示例11: make_dummy_surface

static gboolean
make_dummy_surface (ClutterBackendWayland *backend_wayland)
{
  static const EGLint attrs[] = {
    EGL_WIDTH, 1,
    EGL_HEIGHT, 1,
    EGL_RENDERABLE_TYPE, _COGL_RENDERABLE_BIT,
    EGL_NONE };
  EGLint num_configs;

  eglGetConfigs(backend_wayland->edpy,
                &backend_wayland->egl_config, 1, &num_configs);
  if (num_configs < 1)
    return FALSE;

  backend_wayland->egl_surface =
    eglCreatePbufferSurface(backend_wayland->edpy,
                            backend_wayland->egl_config,
                            attrs);

  if (backend_wayland->egl_surface == EGL_NO_SURFACE)
    return FALSE;

  return TRUE;
}
开发者ID:nobled,项目名称:clutter,代码行数:25,代码来源:clutter-backend-wayland.c


示例12: initEglOnly

void	initEglOnly()
{
  const EGLint config_attr[] =
    {
      EGL_RED_SIZE,	5,
      EGL_GREEN_SIZE, 	6,
      EGL_BLUE_SIZE,	5,
      EGL_ALPHA_SIZE, 	EGL_DONT_CARE,
      EGL_NONE
    };
 
  EGLint configs, major, minor;

  EGLNativeDisplayType native_disp = fbGetDisplayByIndex(0);                              /* i.MX6 specific */
  fbGetDisplayGeometry(native_disp, &m_width, &m_height);                                 /* i.MX6 specific */
  EGLNativeWindowType native_win  = fbCreateWindow(native_disp, 0, 0, m_width, m_height); /* i.MX6 specific */
  
  eglBindAPI(EGL_OPENGL_ES_API);

  m_egldisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);
  eglInitialize(m_egldisplay, &major, &minor);
  
  eglGetConfigs(m_egldisplay, NULL, 0, &configs);
  
  eglChooseConfig(m_egldisplay, config_attr, &m_eglconfig, 1, &configs);
  m_eglsurface = eglCreateWindowSurface(m_egldisplay, m_eglconfig, native_win, NULL);
}
开发者ID:ValXp,项目名称:particles,代码行数:27,代码来源:Egl.cpp


示例13: Java_org_lwjgl_opengles_EGL_neglGetConfigs

JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengles_EGL_neglGetConfigs(JNIEnv *env, jclass clazz, jlong dpy_ptr, jlong configs, jint config_size, jlong num_config) {
    EGLDisplay dpy = (EGLDisplay)(intptr_t)dpy_ptr;
    EGLConfig *configs_address = (EGLConfig *)(intptr_t)configs;
    EGLint *num_config_address = (EGLint *)(intptr_t)num_config;

	return eglGetConfigs(dpy, configs_address, config_size, num_config_address);
}
开发者ID:einspunktnull,项目名称:lwjgl,代码行数:7,代码来源:org_lwjgl_opengles_EGL.c


示例14: EGLInit

     EGLInit( IDirectFB_C        *dfb,
              IDirectFBSurface_C *dfb_surface )
     {
          EGLint width, height;
          EGLint major, minor, nconfigs;
          EGLint attribs[] = {
               EGL_BUFFER_SIZE,    EGL_DONT_CARE,
               EGL_DEPTH_SIZE,          16,
               EGL_RED_SIZE,       5,
               EGL_GREEN_SIZE,          6,
               EGL_RED_SIZE,       5,
               EGL_RENDERABLE_TYPE,     EGL_OPENGL_ES2_BIT,
               EGL_NONE
          };
          EGLint context_attrs[] = {
               EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE, EGL_NONE
          };
          EGLint surface_attrs[] = {
               EGL_RENDER_BUFFER, EGL_BACK_BUFFER, EGL_NONE
          };

          EGLint render_buffer = 0;

          sleep(4);
          // get display
          EGL_CHECK((display = eglGetDisplay((EGLNativeDisplayType) dfb)) == EGL_NO_DISPLAY)

          // init
          EGL_CHECK(!eglInitialize(display, &major, &minor))

          // get configs
          EGL_CHECK(!eglGetConfigs(display, configs, 2, &nconfigs))

          // choose config
          EGL_CHECK(!eglChooseConfig(display, attribs, configs, 2, &nconfigs))


          // create a surface
          EGL_CHECK((surface = eglCreateWindowSurface(display, configs[0], (EGLNativeWindowType) dfb_surface, surface_attrs)) == EGL_NO_SURFACE)

          EGL_CHECK(eglBindAPI(EGL_OPENGL_ES_API) != EGL_TRUE)

          // create context
          EGL_CHECK((context = eglCreateContext(display, configs[0], EGL_NO_CONTEXT, context_attrs)) == EGL_NO_CONTEXT)

          EGL_CHECK(eglMakeCurrent(display, surface, surface, context) != EGL_TRUE)

          eglQuerySurface(display, surface, EGL_WIDTH, &width);
          eglQuerySurface(display, surface, EGL_HEIGHT, &height);

          EGL_CHECK(!eglQuerySurface(display, surface, EGL_RENDER_BUFFER, &render_buffer));
     //     fprintf(stderr,"RENDER_BUFFER = 0x%04x\n", render_buffer );



          eglSwapInterval( display, 1 );
quit:
          return;
     }
开发者ID:aHaeseokMaeng,项目名称:directfb,代码行数:59,代码来源:dfbtest_eglimage.cpp


示例15: CreateEGLContext

EGLBoolean CreateEGLContext(EGLNativeWindowType hWnd, EGLDisplay* eglDisplay,
							EGLContext* eglContext, EGLSurface* eglSurface,
							EGLint* configAttribList, EGLint* surfaceAttribList)
{
	EGLint numConfigs;
	EGLint majorVersion;
	EGLint minorVersion;
	EGLDisplay display;
	EGLContext context;
	EGLSurface surface;
	EGLConfig config;
	EGLint contextAttribs[] =
	{
		EGL_CONTEXT_CLIENT_VERSION, 2,
		EGL_NONE, EGL_NONE
	};

	// Get display
	display = eglGetDisplay(GetDC(hWnd)); // EGL_DEFAULT_DISPLAY
	if (display == EGL_NO_DISPLAY)
		return EGL_FALSE;

	// Initialize EGL
	if (!eglInitialize(display, &majorVersion, &minorVersion))
		return EGL_FALSE;

	// Get configs
	if (!eglGetConfigs(display, NULL, 0, &numConfigs))
		return EGL_FALSE;

	// Choose config
	if (!eglChooseConfig(display, configAttribList, &config, 1, &numConfigs))
		return EGL_FALSE;

	// Create a surface
	surface = eglCreateWindowSurface(display, config, (EGLNativeWindowType)hWnd, surfaceAttribList);
	if (surface == EGL_NO_SURFACE)
		return EGL_FALSE;

	// Bind the API
	eglBindAPI(EGL_OPENGL_ES_API);

	// Create a GL context
	context = eglCreateContext(display, config, EGL_NO_CONTEXT, contextAttribs);
	if (context == EGL_NO_CONTEXT)
		return EGL_FALSE;

	// Make the context current
	if (!eglMakeCurrent(display, surface, surface, context))
		return EGL_FALSE;

	*eglDisplay = display;
	*eglSurface = surface;
	*eglContext = context;
	return EGL_TRUE;
}
开发者ID:gauravalgo,项目名称:Tiny2D,代码行数:56,代码来源:Tiny2D_OpenGLES.cpp


示例16: main

int
main (int argc, char *argv[])
{
		EGLint config_cc;
			EGLint cc;
				EGLConfig config[100];
					EGLDisplay edpy = EGL_NO_DISPLAY;

						griCtlErrorCommit (GRI_ERROR_CRIT_ATTR);
							/*
							 * 	 * Запрос устройства по-умолчанию
							 * 	 	 */
							edpy = eglGetDisplay (EGL_DEFAULT_DISPLAY);
								if (edpy == EGL_NO_DISPLAY)
											griError ("EGL_GET_DISPLAY_FAIL");
									/*
									 * 	 * Инициализация устройства
									 * 	 	 */
									if (eglInitialize (edpy, NULL, NULL) == EGL_FALSE)
											{
														griError ("EGL_INIT_FAIL");
															}
										/*
										 * 	 * Распечатка версии EGL, поставщика и доступных API
										 * 	 	 */
										printf ("EGL Version: %s\n", eglQueryString (edpy, EGL_VERSION));
											printf ("EGL Vendor: %s\n", eglQueryString (edpy, EGL_VENDOR));
												printf ("EGL APIs: %s\n", eglQueryString (edpy, EGL_CLIENT_APIS));

													/*
													 * 	 * Запрос подходящей конфигурации, подходящей под атрибуты egl_attribs
													 * 	 	 * EGLDisplay dpy		: указатель на интересующее устройство
													 * 	 	 	 * EGLConfig *config	: указатель на массив возвращаемых конфигов
													 * 	 	 	 	 * EGLint config_size	: максимальное количество возможных элементов
													 * 	 	 	 	 	 * 		в *config
													 * 	 	 	 	 	 	 * EGLint *num_config	: количество возвращённых (в *config) конфигураций
													 * 	 	 	 	 	 	 	 */
													if (eglGetConfigs (edpy, config, 100, &config_cc)
																		== EGL_FALSE)
																griError ("EGL_CHOOSE_CONFIG_FAIL");

														if (!config_cc)
																	griError ("EGL_NO_CONFIG_AVAILABLE");

															cc = config_cc;
																printf ("# count: %d\n", config_cc);
																	while (cc--)
																			{
																						printf ("# EGLConfig: %d/%d\n", cc, config_cc);
																								print_eglConfig (edpy, config[cc]);
																									}

																		printf ("@ END\n");
																			return 0;
}
开发者ID:noktoborus,项目名称:nor,代码行数:55,代码来源:printeglconfig.c


示例17: log_error

/// Query the system for all supported configs
int
EGLDevice::queryEGLConfig(EGLDisplay display)
{
     GNASH_REPORT_FUNCTION;
     EGLConfig *configs = 0;
     EGLint max_num_config = 0;

     // Get the number of supported configurations
     if ( EGL_FALSE == eglGetConfigs(display, 0, 0, &max_num_config) ) {
         log_error("eglGetConfigs() failed to retrive the number of configs (error %s)",
                   getErrorString(eglGetError()));
         return 0;
     }
     if(max_num_config <= 0) {
         printf( "No EGLconfigs found\n" );
         return 0;
     }
     log_debug("Max number of EGL Configs is %d", max_num_config);     
     
     configs = new EGLConfig[max_num_config];
     if (0 == configs) {
         log_error( "Out of memory\n" );
         return 0;
     }

     if ( EGL_FALSE == eglGetConfigs(display, configs, max_num_config, &max_num_config)) {
         log_error("eglGetConfigs() failed to retrive the configs (error %s)",
                   getErrorString(eglGetError()));
         return 0;
     }
     
#if 0
     // This prints out all the configurations, so it can be quite large
     for (int i=0; i<max_num_config; i++ ) {
         std::cerr << "Config[" << i << "] is:" << std::endl;
         printEGLConfig(configs[i]);
     }
#endif
     
     return max_num_config;
}
开发者ID:jlopez,项目名称:gnash,代码行数:42,代码来源:eglDevice.cpp


示例18: initGL

int initGL(int width, int height)
{
 //emscripten_set_canvas_size(width,height);
#ifndef EGL
 if (glfwInit() != GL_TRUE) {
  printf("glfwInit() failed\n");
  return GL_FALSE;
 }
                      
 if (glfwOpenWindow(width, height, 8, 8, 8, 0, 16, 8, GLFW_WINDOW) != GL_TRUE) {
    printf("glfwOpenWindow() failed\n");
    return GL_FALSE;
 }
 
/* float ratio=1.0;//emscripten_get_device_pixel_ratio();
 EM_ASM_({
   var canvas = Module['canvas'];
   canvas.width=$0;
   canvas.height=$1;
   },width*ratio,height*ratio);    */ 
#else
 EGLDisplay display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
 EGLint major = 0, minor = 0;
 EGLBoolean ret = eglInitialize(display, &major, &minor);
 EGLint numConfigs;
 ret = eglGetConfigs(display, NULL, 0, &numConfigs);
       
  EGLint attribs[] = {
     EGL_RED_SIZE, 8,
     EGL_GREEN_SIZE, 8,
     EGL_BLUE_SIZE, 8,
     EGL_STENCIL_SIZE, 8,
     EGL_DEPTH_SIZE, 16,
     EGL_NONE
 };
 EGLConfig config;
 ret = eglChooseConfig(display, attribs, &config, 1, &numConfigs);

 EGLNativeWindowType dummyWindow;
 EGLSurface surface = eglCreateWindowSurface(display, config, dummyWindow, NULL);
                                                                                                                    
 // WebGL maps to GLES2. GLES1 is not supported.
 // The correct attributes, should create a good EGL context
 EGLint contextAttribs[] =
 {
  EGL_CONTEXT_CLIENT_VERSION, 2,
  EGL_NONE
 };
 EGLContext context = eglCreateContext(display, config, NULL, contextAttribs);
 ret = eglMakeCurrent(display, surface, surface, context);*/
#endif
 return 0;
}
开发者ID:lsouchet,项目名称:gideros,代码行数:53,代码来源:main.cpp


示例19: eglGetDisplay

	bool EglData::create()
	{
		if (this->display == NULL)
		{
			this->display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
			if (this->display == EGL_NO_DISPLAY)
			{
				hlog::error(logTag, "Can't get EGL Display!");
				this->destroy();
				return false;
			}
			EGLint majorVersion;
			EGLint minorVersion;
			if (!eglInitialize(this->display, &majorVersion, &minorVersion))
			{
				hlog::error(logTag, "Can't initialize EGL!");
				this->destroy();
				return false;
			}
			EGLint configs = 0;
			EGLBoolean result = eglGetConfigs(this->display, NULL, 0, &configs);
			if (!result || configs == 0)
			{
				hlog::error(logTag, "There are no EGL configs!");
				this->destroy();
				return false;
			}
			result = eglChooseConfig(this->display, this->pi32ConfigAttribs, &this->config, 1, &configs);
			if (!result || configs == 0)
			{
				hlog::error(logTag, "Can't choose EGL config!");
				this->destroy();
				return false;
			}
		}
		if (this->surface == NULL)
		{
			this->surface = eglCreateWindowSurface(this->display, this->config, this->hWnd, NULL);
		}
		if (this->context == NULL)
		{
			this->context = eglCreateContext(this->display, this->config, NULL, NULL);
			if (!eglMakeCurrent(this->display, this->surface, this->surface, this->context))
			{
				hlog::error(logTag, "Can't set current EGL context!");
				this->destroy();
				return false;
			}
			eglSwapInterval(this->display, 1);
		}
		return true;
	}
开发者ID:grimtraveller,项目名称:libapril,代码行数:52,代码来源:egl.cpp


示例20: EGLClass

  // constructor
  EGLClass(EGLNativeDisplayType id = EGL_DEFAULT_DISPLAY):
    display(0), surface(0), context(0) {
    display = eglGetDisplay(id);
    if (display == EGL_NO_DISPLAY) {
      LOGE("eglGetDisplay");
    }
    
    if (!eglInitialize(display, &major, &minor)) {
      LOGE("eglInitialize: %p", display);
    }
    LOGI("EGL: display=%p, major=%d, minor=%d", display, major, minor);

    // First get number of configurations
    eglGetConfigs(display, NULL, 0, &config_size);

    // Allocate configs array
    configs = new EGLConfig[config_size];
    // Get EGL configs
    if (!eglGetConfigs(display, configs, config_size, &num_config)) {
      LOGE("eglGetConfigs");
    }
  }
开发者ID:ddlee,项目名称:AndroidLuaActivity,代码行数:23,代码来源:luaegl.cpp



注:本文中的eglGetConfigs函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ eglGetCurrentContext函数代码示例发布时间:2022-05-30
下一篇:
C++ eglGetConfigAttrib函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap