/*
* Mesa 3-D graphics library
- * Version: 7.9
*
* Copyright 2009 VMware, Inc. All Rights Reserved.
* Copyright (C) 2010 LunarG Inc.
strb->texture = pt;
- memset(&surf_tmpl, 0, sizeof(surf_tmpl));
- u_surface_default_template(&surf_tmpl, strb->texture,
- PIPE_BIND_RENDER_TARGET);
+ u_surface_default_template(&surf_tmpl, strb->texture);
strb->surface = pipe->create_surface(pipe, strb->texture, &surf_tmpl);
if (!strb->surface) {
switch (stfb->strb_att) {
case ST_ATTACHMENT_FRONT_LEFT:
case ST_ATTACHMENT_FRONT_RIGHT:
- stfb->iface->flush_front(stfb->iface, stfb->strb_att);
+ stfb->iface->flush_front(&ctx->iface, stfb->iface, stfb->strb_att);
break;
default:
break;
struct pipe_fence_handle **fence)
{
struct vg_context *ctx = (struct vg_context *) stctxi;
- ctx->pipe->flush(ctx->pipe, fence);
+ unsigned pipe_flags = 0;
+
+ if (flags & ST_FLUSH_END_OF_FRAME) {
+ pipe_flags |= PIPE_FLUSH_END_OF_FRAME;
+ }
+
+ ctx->pipe->flush(ctx->pipe, fence, pipe_flags);
if (flags & ST_FLUSH_FRONT)
vg_manager_flush_frontbuffer(ctx);
}
static struct st_context_iface *
vg_api_create_context(struct st_api *stapi, struct st_manager *smapi,
const struct st_context_attribs *attribs,
+ enum st_context_error *error,
struct st_context_iface *shared_stctxi)
{
struct vg_context *shared_ctx = (struct vg_context *) shared_stctxi;
struct vg_context *ctx;
struct pipe_context *pipe;
- if (!(stapi->profile_mask & (1 << attribs->profile)))
+ if (!(stapi->profile_mask & (1 << attribs->profile))) {
+ *error = ST_CONTEXT_ERROR_BAD_API;
return NULL;
+ }
/* only 1.0 is supported */
- if (attribs->major > 1 || (attribs->major == 1 && attribs->minor > 0))
+ if (attribs->major > 1 || (attribs->major == 1 && attribs->minor > 0)) {
+ *error = ST_CONTEXT_ERROR_BAD_VERSION;
return NULL;
+ }
/* for VGHandle / pointer lookups */
init_handles();
pipe = smapi->screen->context_create(smapi->screen, NULL);
- if (!pipe)
+ if (!pipe) {
+ *error = ST_CONTEXT_ERROR_NO_MEMORY;
return NULL;
+ }
ctx = vg_create_context(pipe, NULL, shared_ctx);
if (!ctx) {
pipe->destroy(pipe);
+ *error = ST_CONTEXT_ERROR_NO_MEMORY;
return NULL;
}
}
static const struct st_api vg_api = {
- "Vega " VEGA_VERSION_STRING,
+ "Vega " PACKAGE_VERSION,
ST_API_OPENVG,
ST_PROFILE_DEFAULT_MASK,
+ 0,
vg_api_destroy,
vg_api_get_proc_address,
vg_api_create_context,