summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChia-I Wu <[email protected]>2010-11-28 03:39:18 +0800
committerChia-I Wu <[email protected]>2010-12-01 11:23:50 +0800
commitace4539e88f6ef90d8e9fd2f1543eca0ae854b82 (patch)
tree3249281987fcb8fa69f77ae44c60098b57cb3f05
parent635fe3e1927f812a69a68ec3e03d9ab7a2c3a5d9 (diff)
st/vega: Clean up vg_context fields and functions.
-rw-r--r--src/gallium/state_trackers/vega/asm_util.h51
-rw-r--r--src/gallium/state_trackers/vega/renderer.c10
-rw-r--r--src/gallium/state_trackers/vega/vg_context.c84
-rw-r--r--src/gallium/state_trackers/vega/vg_context.h27
4 files changed, 9 insertions, 163 deletions
diff --git a/src/gallium/state_trackers/vega/asm_util.h b/src/gallium/state_trackers/vega/asm_util.h
index 903bfc88a4d..ae1842a62cd 100644
--- a/src/gallium/state_trackers/vega/asm_util.h
+++ b/src/gallium/state_trackers/vega/asm_util.h
@@ -27,16 +27,6 @@
#ifndef ASM_UTIL_H
#define ASM_UTIL_H
-
-static const char pass_through_depth_asm[] =
- "FRAG\n"
- "DCL IN[0], POSITION, LINEAR\n"
- "DCL OUT[0].z, POSITION, CONSTANT\n"
- "0: MOV OUT[0].z, IN[0].zzzz\n"
- "1: END\n";
-
-
-
/* μnew = μmask */
static const char set_mask_asm[] =
"FRAG\n"
@@ -92,45 +82,4 @@ static const char subtract_mask_asm[] =
"3: MUL OUT[0], TEMP[2].wwww, TEMP[0].wwww\n"
"4: END\n";
-
-static const char vs_plain_asm[] =
- "VERT\n"
- "DCL IN[0]\n"
- "DCL OUT[0], POSITION\n"
- "DCL TEMP[0]\n"
- "DCL CONST[0..1]\n"
- "0: MUL TEMP[0], IN[0], CONST[0]\n"
- "1: ADD TEMP[0], TEMP[0], CONST[1]\n"
- "2: MOV OUT[0], TEMP[0]\n"
- "3: END\n";
-
-static const char vs_clear_asm[] =
- "VERT\n"
- "DCL IN[0]\n"
- "DCL IN[1]\n"
- "DCL OUT[0], POSITION\n"
- "DCL OUT[1], COLOR\n"
- "DCL TEMP[0]\n"
- "DCL CONST[0..1]\n"
- "0: MUL TEMP[0], IN[0], CONST[0]\n"
- "1: ADD TEMP[0], TEMP[0], CONST[1]\n"
- "2: MOV OUT[0], TEMP[0]\n"
- "3: MOV OUT[1], IN[1]\n"
- "4: END\n";
-
-
-static const char vs_texture_asm[] =
- "VERT\n"
- "DCL IN[0]\n"
- "DCL IN[1]\n"
- "DCL OUT[0], POSITION\n"
- "DCL OUT[1], GENERIC\n"
- "DCL TEMP[0]\n"
- "DCL CONST[0..1]\n"
- "0: MUL TEMP[0], IN[0], CONST[0]\n"
- "1: ADD TEMP[0], TEMP[0], CONST[1]\n"
- "2: MOV OUT[0], TEMP[0]\n"
- "3: MOV OUT[1], IN[1]\n"
- "4: END\n";
-
#endif
diff --git a/src/gallium/state_trackers/vega/renderer.c b/src/gallium/state_trackers/vega/renderer.c
index 2c5b5df8800..c0d69ee2ba7 100644
--- a/src/gallium/state_trackers/vega/renderer.c
+++ b/src/gallium/state_trackers/vega/renderer.c
@@ -89,6 +89,7 @@ struct renderer {
struct pipe_resource *vs_const_buffer;
+ struct pipe_vertex_element velems[2];
VGfloat vertices[4][2][4];
void *cached_vs[NUM_RENDERER_VS];
@@ -489,7 +490,7 @@ static void renderer_quad_draw(struct renderer *r)
sizeof(r->vertices),
PIPE_BIND_VERTEX_BUFFER);
if (buf) {
- cso_set_vertex_elements(r->cso, 2, r->owner->velems);
+ cso_set_vertex_elements(r->cso, 2, r->velems);
util_draw_vertex_buffer(r->pipe, buf, 0,
PIPE_PRIM_TRIANGLE_FAN,
Elements(r->vertices), /* verts */
@@ -1091,6 +1092,13 @@ struct renderer * renderer_create(struct vg_context *owner)
for (i = 0; i < 4; i++)
renderer->vertices[i][0][3] = 1.0f; /* w */
+ for (i = 0; i < 2; i++) {
+ renderer->velems[i].src_offset = i * 4 * sizeof(float);
+ renderer->velems[i].instance_divisor = 0;
+ renderer->velems[i].vertex_buffer_index = 0;
+ renderer->velems[i].src_format = PIPE_FORMAT_R32G32B32A32_FLOAT;
+ }
+
renderer->state = RENDERER_STATE_INIT;
return renderer;
diff --git a/src/gallium/state_trackers/vega/vg_context.c b/src/gallium/state_trackers/vega/vg_context.c
index e76a65604be..f2966fc72e9 100644
--- a/src/gallium/state_trackers/vega/vg_context.c
+++ b/src/gallium/state_trackers/vega/vg_context.c
@@ -54,19 +54,6 @@ struct vg_context * vg_current_context(void)
return _vg_context;
}
-static void init_clear(struct vg_context *st)
-{
- struct pipe_context *pipe = st->pipe;
-
- /* rasterizer state: bypass clipping */
- memset(&st->clear.raster, 0, sizeof(st->clear.raster));
- st->clear.raster.gl_rasterization_rules = 1;
-
- /* fragment shader state: color pass-through program */
- st->clear.fs =
- util_make_fragment_passthrough_shader(pipe);
-}
-
/**
* A depth/stencil rb will be needed regardless of what the visual says.
*/
@@ -103,7 +90,6 @@ struct vg_context * vg_create_context(struct pipe_context *pipe,
struct vg_context *share)
{
struct vg_context *ctx;
- unsigned i;
ctx = CALLOC_STRUCT(vg_context);
@@ -120,8 +106,6 @@ struct vg_context * vg_create_context(struct pipe_context *pipe,
ctx->cso_context = cso_create_context(pipe);
- init_clear(ctx);
-
ctx->default_paint = paint_create(ctx);
ctx->state.vg.stroke_paint = ctx->default_paint;
ctx->state.vg.fill_paint = ctx->default_paint;
@@ -143,13 +127,6 @@ struct vg_context * vg_create_context(struct pipe_context *pipe,
ctx->blend_sampler.mag_img_filter = PIPE_TEX_FILTER_NEAREST;
ctx->blend_sampler.normalized_coords = 0;
- for (i = 0; i < 2; i++) {
- ctx->velems[i].src_offset = i * 4 * sizeof(float);
- ctx->velems[i].instance_divisor = 0;
- ctx->velems[i].vertex_buffer_index = 0;
- ctx->velems[i].src_format = PIPE_FORMAT_R32G32B32A32_FLOAT;
- }
-
vg_set_error(ctx, VG_NO_ERROR);
ctx->owned_objects[VG_OBJECT_PAINT] = cso_hash_create();
@@ -170,7 +147,6 @@ struct vg_context * vg_create_context(struct pipe_context *pipe,
void vg_destroy_context(struct vg_context *ctx)
{
struct pipe_resource **cbuf = &ctx->mask.cbuf;
- struct pipe_resource **vsbuf = &ctx->vs_const_buffer;
util_destroy_blit(ctx->blit);
renderer_destroy(ctx->renderer);
@@ -181,29 +157,6 @@ void vg_destroy_context(struct vg_context *ctx)
if (*cbuf)
pipe_resource_reference(cbuf, NULL);
- if (*vsbuf)
- pipe_resource_reference(vsbuf, NULL);
-
- if (ctx->clear.fs) {
- cso_delete_fragment_shader(ctx->cso_context, ctx->clear.fs);
- ctx->clear.fs = NULL;
- }
-
- if (ctx->plain_vs) {
- vg_shader_destroy(ctx, ctx->plain_vs);
- ctx->plain_vs = NULL;
- }
- if (ctx->clear_vs) {
- vg_shader_destroy(ctx, ctx->clear_vs);
- ctx->clear_vs = NULL;
- }
- if (ctx->texture_vs) {
- vg_shader_destroy(ctx, ctx->texture_vs);
- ctx->texture_vs = NULL;
- }
-
- if (ctx->pass_through_depth_fs)
- vg_shader_destroy(ctx, ctx->pass_through_depth_fs);
if (ctx->mask.union_fs)
vg_shader_destroy(ctx, ctx->mask.union_fs);
if (ctx->mask.intersect_fs)
@@ -556,40 +509,3 @@ void vg_prepare_blend_surface_from_mask(struct vg_context *ctx)
if (dest_surface)
pipe_surface_reference(&dest_surface, NULL);
}
-
-void * vg_plain_vs(struct vg_context *ctx)
-{
- if (!ctx->plain_vs) {
- ctx->plain_vs = shader_create_from_text(ctx->pipe,
- vs_plain_asm,
- 200,
- PIPE_SHADER_VERTEX);
- }
-
- return ctx->plain_vs->driver;
-}
-
-
-void * vg_clear_vs(struct vg_context *ctx)
-{
- if (!ctx->clear_vs) {
- ctx->clear_vs = shader_create_from_text(ctx->pipe,
- vs_clear_asm,
- 200,
- PIPE_SHADER_VERTEX);
- }
-
- return ctx->clear_vs->driver;
-}
-
-void * vg_texture_vs(struct vg_context *ctx)
-{
- if (!ctx->texture_vs) {
- ctx->texture_vs = shader_create_from_text(ctx->pipe,
- vs_texture_asm,
- 200,
- PIPE_SHADER_VERTEX);
- }
-
- return ctx->texture_vs->driver;
-}
diff --git a/src/gallium/state_trackers/vega/vg_context.h b/src/gallium/state_trackers/vega/vg_context.h
index b3263cdef5e..07f3ca76beb 100644
--- a/src/gallium/state_trackers/vega/vg_context.h
+++ b/src/gallium/state_trackers/vega/vg_context.h
@@ -109,14 +109,6 @@ struct vg_context
struct cso_hash *owned_objects[VG_OBJECT_LAST];
struct {
- struct pipe_shader_state vert_shader;
- struct pipe_shader_state frag_shader;
- struct pipe_rasterizer_state raster;
- void *fs;
- float vertices[4][2][4]; /**< vertex pos + color */
- } clear;
-
- struct {
struct pipe_resource *cbuf;
struct pipe_sampler_state sampler;
@@ -126,31 +118,16 @@ struct vg_context
struct vg_shader *set_fs;
} mask;
- struct vg_shader *pass_through_depth_fs;
-
struct cso_context *cso_context;
- struct pipe_resource *stencil_quad;
- VGfloat stencil_vertices[4][2][4];
-
struct renderer *renderer;
struct shaders_cache *sc;
struct shader *shader;
struct pipe_sampler_state blend_sampler;
- struct {
- struct pipe_resource *buffer;
- void *color_matrix_fs;
- } filter;
struct vg_paint *default_paint;
struct blit_state *blit;
-
- struct vg_shader *plain_vs;
- struct vg_shader *clear_vs;
- struct vg_shader *texture_vs;
- struct pipe_resource *vs_const_buffer;
- struct pipe_vertex_element velems[2];
};
struct vg_object {
@@ -285,8 +262,4 @@ static INLINE void vg_bound_rect(VGfloat coords[4],
}
}
-void *vg_plain_vs(struct vg_context *ctx);
-void *vg_clear_vs(struct vg_context *ctx);
-void *vg_texture_vs(struct vg_context *ctx);
-
#endif