Module: wine Branch: master Commit: 7a1f9c84f19d9b6c928f44aefcedd71efe847ba9 URL: http://source.winehq.org/git/wine.git/?a=commit;h=7a1f9c84f19d9b6c928f44aefc...
Author: Stefan Dösinger stefan@codeweavers.com Date: Thu May 7 18:18:34 2009 +0200
wined3d: Get rid of the strcat in shader_arb_add_dst_param and make it shader_arb_get_dst_param.
---
dlls/wined3d/arb_program_shader.c | 19 ++++++++++--------- 1 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c index 44ee5f8..67987ba 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c @@ -567,18 +567,16 @@ static void shader_arb_get_register_name(IWineD3DBaseShader *iface, WINED3DSHADE } }
-static void shader_arb_add_dst_param(const struct wined3d_shader_instruction *ins, +static void shader_arb_get_dst_param(const struct wined3d_shader_instruction *ins, const struct wined3d_shader_dst_param *wined3d_dst, char *str) { char register_name[255]; char write_mask[6]; BOOL is_color;
- strcat(str, " "); - shader_arb_get_register_name(ins->ctx->shader, wined3d_dst->reg.type, wined3d_dst->reg.idx, !!wined3d_dst->reg.rel_addr, register_name, &is_color); - strcat(str, register_name); + strcpy(str, register_name);
shader_arb_get_write_mask(ins, wined3d_dst, write_mask); strcat(str, write_mask); @@ -1011,15 +1009,15 @@ static void shader_hw_map2gl(const struct wined3d_shader_instruction *ins) } shader_addline(buffer, "%s%s %s;\n", instruction, modifier, arguments); } else { - /* Note that shader_arb_add_dst_param() adds spaces. */ - arguments[0] = '\0'; if (ins->dst_count) { - shader_arb_add_dst_param(ins, &ins->dst[0], arguments); + char operand[100]; + shader_arb_get_dst_param(ins, &ins->dst[0], operand); + strcat(arguments, " "); + strcat(arguments, operand); for (i = 0; i < ins->src_count; ++i) { - char operand[100]; strcat(arguments, ", "); shader_arb_get_src_param(ins, &ins->src[i], i, operand); strcat(arguments, operand); @@ -1616,6 +1614,7 @@ static void vshader_hw_rsq_rcp(const struct wined3d_shader_instruction *ins) const char *instruction;
char tmpLine[256]; + char dst[50]; char src[50];
switch(ins->handler_idx) @@ -1628,7 +1627,9 @@ static void vshader_hw_rsq_rcp(const struct wined3d_shader_instruction *ins) }
strcpy(tmpLine, instruction); - shader_arb_add_dst_param(ins, &ins->dst[0], tmpLine); /* Destination */ + shader_arb_get_dst_param(ins, &ins->dst[0], dst); /* Destination */ + strcat(tmpLine, " "); + strcat(tmpLine, dst); strcat(tmpLine, ", "); shader_arb_get_src_param(ins, &ins->src[0], 0, src); strcat(tmpLine, src);