sk_picture.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /*
  2. * Copyright 2014 Google Inc.
  3. *
  4. * Use of this source code is governed by a BSD-style license that can be
  5. * found in the LICENSE file.
  6. */
  7. // EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL
  8. // DO NOT USE -- FOR INTERNAL TESTING ONLY
  9. #ifndef sk_picture_DEFINED
  10. #define sk_picture_DEFINED
  11. #include "include/c/sk_types.h"
  12. SK_C_PLUS_PLUS_BEGIN_GUARD
  13. /**
  14. Create a new sk_picture_recorder_t. Its resources should be
  15. released with a call to sk_picture_recorder_delete().
  16. */
  17. SK_API sk_picture_recorder_t* sk_picture_recorder_new(void);
  18. /**
  19. Release the memory and other resources used by this
  20. sk_picture_recorder_t.
  21. */
  22. SK_API void sk_picture_recorder_delete(sk_picture_recorder_t*);
  23. /**
  24. Returns the canvas that records the drawing commands
  25. @param sk_rect_t* the cull rect used when recording this
  26. picture. Any drawing the falls outside of this
  27. rect is undefined, and may be drawn or it may not.
  28. */
  29. SK_API sk_canvas_t* sk_picture_recorder_begin_recording(sk_picture_recorder_t*, const sk_rect_t*);
  30. /**
  31. Signal that the caller is done recording. This invalidates the
  32. canvas returned by begin_recording. Ownership of the sk_picture_t
  33. is passed to the caller, who must call sk_picture_unref() when
  34. they are done using it. The returned picture is immutable.
  35. */
  36. SK_API sk_picture_t* sk_picture_recorder_end_recording(sk_picture_recorder_t*);
  37. /**
  38. Increment the reference count on the given sk_picture_t. Must be
  39. balanced by a call to sk_picture_unref().
  40. */
  41. SK_API void sk_picture_ref(sk_picture_t*);
  42. /**
  43. Decrement the reference count. If the reference count is 1 before
  44. the decrement, then release both the memory holding the
  45. sk_picture_t and any resouces it may be managing. New
  46. sk_picture_t are created with a reference count of 1.
  47. */
  48. SK_API void sk_picture_unref(sk_picture_t*);
  49. /**
  50. Returns a non-zero value unique among all pictures.
  51. */
  52. SK_API uint32_t sk_picture_get_unique_id(sk_picture_t*);
  53. /**
  54. Return the cull rect specified when this picture was recorded.
  55. */
  56. SK_API sk_rect_t sk_picture_get_bounds(sk_picture_t*);
  57. SK_C_PLUS_PLUS_END_GUARD
  58. #endif