summaryrefslogtreecommitdiff
path: root/src/gallium/state_trackers/vega/renderer.h
diff options
context:
space:
mode:
authorChia-I Wu <olv@lunarg.com>2010-11-26 22:48:10 +0800
committerChia-I Wu <olv@lunarg.com>2010-12-01 11:23:48 +0800
commit59309337e40106f734efc1e33f956f6f1f4301ac (patch)
tree2a9c454d945a5a78f9b69b97affd1d7764221d9d /src/gallium/state_trackers/vega/renderer.h
parent709e57ae4f12ea16020993e6afa88edd5bed5908 (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.h12
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 b1a9fb58be..ddcc164b46 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,