Advertisement
Guest User

Untitled

a guest
Jun 26th, 2019
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. <request name="PolyLine" opcode="65" combine-adjacent="true">
  2. <field type="BYTE" name="coordinate_mode" enum="CoordMode" />
  3. <field type="DRAWABLE" name="drawable" />
  4. <field type="GCONTEXT" name="gc" />
  5. <list type="POINT" name="points" />
  6. <doc>
  7. [snip]
  8. </doc>
  9. </request>
  10.  
  11. xcb_void_cookie_t
  12. xcb_poly_line (xcb_connection_t *c,
  13. uint8_t coordinate_mode,
  14. xcb_drawable_t drawable,
  15. xcb_gcontext_t gc,
  16. uint32_t points_len,
  17. const xcb_point_t *points)
  18. {
  19. static const xcb_protocol_request_t xcb_req = {
  20. .count = 4,
  21. .ext = 0,
  22. .opcode = XCB_POLY_LINE,
  23. .isvoid = 1
  24. };
  25.  
  26. struct iovec xcb_parts[6];
  27. xcb_void_cookie_t xcb_ret;
  28. xcb_poly_line_request_t xcb_out;
  29.  
  30. xcb_out.coordinate_mode = coordinate_mode;
  31. xcb_out.drawable = drawable;
  32. xcb_out.gc = gc;
  33.  
  34. xcb_parts[2].iov_base = (char *) &xcb_out;
  35. xcb_parts[2].iov_len = sizeof(xcb_out);
  36. xcb_parts[3].iov_base = 0;
  37. xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
  38. /* xcb_point_t points */
  39. xcb_parts[4].iov_base = (char *) points;
  40. xcb_parts[4].iov_len = points_len * sizeof(xcb_point_t);
  41. xcb_parts[5].iov_base = 0;
  42. xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
  43.  
  44. xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
  45. return xcb_ret;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement