diff options
author | Chia-I Wu <[email protected]> | 2010-11-26 22:48:10 +0800 |
---|---|---|
committer | Chia-I Wu <[email protected]> | 2010-12-01 11:23:48 +0800 |
commit | 59309337e40106f734efc1e33f956f6f1f4301ac (patch) | |
tree | 2a9c454d945a5a78f9b69b97affd1d7764221d9d /src/gallium/state_trackers/vega/renderer.h | |
parent | 709e57ae4f12ea16020993e6afa88edd5bed5908 (diff) |
st/vega: Overhaul renderer with renderer states.
Renderer states are high-level states to perform specific tasks. The
renderer is initially in INIT state. In that state, the renderer is
used for OpenVG pipeline.
This commit adds a new COPY state to the renderer. The state is used
for copying between two pipe resources using textured drawing. It can
be used for vgCopyImage, for example.
Rather than modifying every user of the renderer, this commit instead
modifies renderer_copy_texture to use the COPY state internally.
Diffstat (limited to 'src/gallium/state_trackers/vega/renderer.h')
-rw-r--r-- | src/gallium/state_trackers/vega/renderer.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/vega/renderer.h b/src/gallium/state_trackers/vega/renderer.h index b1a9fb58be6..ddcc164b46c 100644 --- a/src/gallium/state_trackers/vega/renderer.h +++ b/src/gallium/state_trackers/vega/renderer.h @@ -1,6 +1,7 @@ /************************************************************************** * * Copyright 2009 VMware, Inc. All Rights Reserved. + * Copyright 2010 LunarG, Inc. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the @@ -39,6 +40,17 @@ struct pipe_surface; struct renderer *renderer_create(struct vg_context *owner); void renderer_destroy(struct renderer *); +VGboolean renderer_copy_begin(struct renderer *renderer, + struct pipe_surface *dst, + VGboolean y0_top, + struct pipe_sampler_view *src); + +void renderer_copy(struct renderer *renderer, + VGint x, VGint y, VGint w, VGint h, + VGint sx, VGint sy, VGint sw, VGint sh); + +void renderer_copy_end(struct renderer *renderer); + void renderer_draw_quad(struct renderer *, VGfloat x1, VGfloat y1, VGfloat x2, VGfloat y2, |