コード例 #1
0
ファイル: cg-winsys-egl.c プロジェクト: rig-project/cglib
static bool
_cg_winsys_set_gles2_context(cg_gles2_context_t *gles2_ctx,
                             cg_error_t **error)
{
    cg_device_t *dev = gles2_ctx->dev;
    cg_display_egl_t *egl_display = dev->display->winsys;
    bool status;

    if (gles2_ctx->write_buffer && cg_is_onscreen(gles2_ctx->write_buffer))
        status = bind_onscreen_with_context(
            CG_ONSCREEN(gles2_ctx->write_buffer), gles2_ctx->winsys);
    else
        status = _cg_winsys_egl_make_current(dev->display,
                                             egl_display->dummy_surface,
                                             egl_display->dummy_surface,
                                             gles2_ctx->winsys);

    if (!status) {
        _cg_set_error(error,
                      CG_WINSYS_ERROR,
                      CG_WINSYS_ERROR_MAKE_CURRENT,
                      "Failed to make gles2 context current");
        return false;
    }

    return true;
}
コード例 #2
0
ファイル: cogl-winsys-egl.c プロジェクト: gcampax/cogl
static CoglBool
_cogl_winsys_set_gles2_context (CoglGLES2Context *gles2_ctx, CoglError **error)
{
  CoglContext *ctx = gles2_ctx->context;
  CoglDisplayEGL *egl_display = ctx->display->winsys;
  CoglBool status;

  if (gles2_ctx->write_buffer &&
      cogl_is_onscreen (gles2_ctx->write_buffer))
    status =
      bind_onscreen_with_context (COGL_ONSCREEN (gles2_ctx->write_buffer),
                                  gles2_ctx->winsys);
  else
    status = _cogl_winsys_egl_make_current (ctx->display,
                                            egl_display->dummy_surface,
                                            egl_display->dummy_surface,
                                            gles2_ctx->winsys);

  if (!status)
    {
      _cogl_set_error (error,
                   COGL_WINSYS_ERROR,
                   COGL_WINSYS_ERROR_MAKE_CURRENT,
                   "Failed to make gles2 context current");
      return FALSE;
    }

  return TRUE;
}
コード例 #3
0
ファイル: cg-winsys-egl.c プロジェクト: rig-project/cglib
static bool
bind_onscreen(cg_onscreen_t *onscreen)
{
    cg_framebuffer_t *fb = CG_FRAMEBUFFER(onscreen);
    cg_device_t *dev = fb->dev;
    cg_display_egl_t *egl_display = dev->display->winsys;

    return bind_onscreen_with_context(onscreen, egl_display->egl_context);
}
コード例 #4
0
ファイル: cogl-winsys-egl.c プロジェクト: gcampax/cogl
static CoglBool
bind_onscreen (CoglOnscreen *onscreen)
{
  CoglFramebuffer *fb = COGL_FRAMEBUFFER (onscreen);
  CoglContext *context = fb->context;
  CoglDisplayEGL *egl_display = context->display->winsys;

  return bind_onscreen_with_context (onscreen, egl_display->egl_context);
}