Beispiel #1
0
/**
 * Add the given _EGLScreen to the display's list of screens.
 */
void
_eglAddScreen(_EGLDisplay *display, _EGLScreen *screen)
{
   EGLint n;

   assert(display);
   assert(screen);

   screen->Handle = _eglAllocScreenHandle();
   n = display->NumScreens;
   display->Screens = realloc(display->Screens, (n+1) * sizeof(_EGLScreen *));
   display->Screens[n] = screen;
   display->NumScreens++;
}
/**
 * Add the given _EGLScreen to the display's list of screens.
 */
void
_eglAddScreen(_EGLDisplay *display, _EGLScreen *screen)
{
   assert(display);
   assert(screen);

   if (!display->Screens) {
      display->Screens = _eglCreateArray("Screen", 4);
      if (!display->Screens)
         return;
   }
   screen->Handle = _eglAllocScreenHandle();
   _eglAppendArray(display->Screens, (void *) screen);
}
Beispiel #3
0
/**
 * Link a screen to its display and return the handle of the link.
 * The handle can be passed to client directly.
 */
EGLScreenMESA
_eglLinkScreen(_EGLScreen *screen)
{
   _EGLDisplay *display;
   EGLint i;

   assert(screen && screen->Display);
   display = screen->Display;

   if (!display->Screens) {
      display->Screens = _eglCreateArray("Screen", 4);
      if (!display->Screens)
         return (EGLScreenMESA) 0;
   }

   screen->Handle = _eglAllocScreenHandle();
   for (i = 0; i < screen->NumModes; i++)
      screen->Modes[i].Handle = screen->Handle + i;

   _eglAppendArray(display->Screens, (void *) screen);

   return screen->Handle;
}