Advertisement
Guest User

Untitled

a guest
Apr 27th, 2015
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. for (y = 0; y < renderer->base.frame_h; y++)
  2. {
  3. for (x = 0; x < renderer->base.frame_w; x++)
  4. {
  5. if (renderer->head_pointer_buffer[x + y * renderer->base.frame_h] != -1)
  6. {
  7. j = renderer->head_pointer_buffer[x + y * renderer->base.frame_h];
  8. while (j != -1)
  9. {
  10. S_Frag *fragment = fragvecGetPtr(renderer->node_buffer, j);
  11. col[index] = fragment->color;
  12. dep[index] = fragment->depth;
  13. index++;
  14. j = fragment->next;
  15. }
  16. for (j = 1; j < index; j++)
  17. {
  18. i = j;
  19. while (i > 0 && dep[i - 1] > dep[i])
  20. {
  21. tmp1 = dep[i];
  22. tmp2 = col[i];
  23. dep[i] = dep[i - 1];
  24. col[i] = col[i - 1];
  25. dep[i - 1] = tmp1;
  26. col[i - 1] = tmp2;
  27. i--;
  28. }
  29. }
  30. for (j = 0; j < index; j++)
  31. {
  32. a_src = col[j].alpha / 255.0;
  33. c_dst_red = a_dst * ( col[j].red) + c_dst_red;
  34. c_dst_green = a_dst * ( col[j].green) + c_dst_green;
  35. c_dst_blue = a_dst * ( col[j].blue) + c_dst_blue;
  36. a_dst = (1.0 - a_src) * a_dst;
  37. }
  38. c_dst_red = a_dst * PIXEL(pRenderer, x, y).red + c_dst_red;
  39. c_dst_green = a_dst * PIXEL(pRenderer, x, y).green + c_dst_green;
  40. c_dst_blue = a_dst * PIXEL(pRenderer, x, y).blue + c_dst_blue;
  41. a_dst = 1.0;
  42. PIXEL(pRenderer, x, y).red = ROUND2BYTE(c_dst_red);
  43. PIXEL(pRenderer, x, y).green = ROUND2BYTE(c_dst_green);
  44. PIXEL(pRenderer, x, y).blue = ROUND2BYTE(c_dst_blue);
  45. PIXEL(pRenderer, x, y).alpha = ROUND2BYTE(a_dst);
  46. }
  47. index = 0;
  48. c_dst_red = 0.0;
  49. c_dst_green = 0.0;
  50. c_dst_blue = 0.0;
  51. a_dst = 1.0;
  52. }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement