@gtkx/cairo 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/context.d.ts +229 -0
  2. package/dist/context.d.ts.map +1 -0
  3. package/dist/context.js +646 -0
  4. package/dist/context.js.map +1 -0
  5. package/dist/device.d.ts +21 -0
  6. package/dist/device.d.ts.map +1 -0
  7. package/dist/device.js +39 -0
  8. package/dist/device.js.map +1 -0
  9. package/dist/enums.d.ts +526 -0
  10. package/dist/enums.d.ts.map +1 -0
  11. package/dist/enums.js +482 -0
  12. package/dist/enums.js.map +1 -0
  13. package/dist/font-face.d.ts +55 -0
  14. package/dist/font-face.d.ts.map +1 -0
  15. package/dist/font-face.js +103 -0
  16. package/dist/font-face.js.map +1 -0
  17. package/dist/font-options.d.ts +43 -0
  18. package/dist/font-options.d.ts.map +1 -0
  19. package/dist/font-options.js +95 -0
  20. package/dist/font-options.js.map +1 -0
  21. package/dist/index.d.ts +29 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +27 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/lib.d.ts +36 -0
  26. package/dist/lib.d.ts.map +1 -0
  27. package/dist/lib.js +120 -0
  28. package/dist/lib.js.map +1 -0
  29. package/dist/matrix.d.ts +40 -0
  30. package/dist/matrix.d.ts.map +1 -0
  31. package/dist/matrix.js +93 -0
  32. package/dist/matrix.js.map +1 -0
  33. package/dist/path.d.ts +14 -0
  34. package/dist/path.d.ts.map +1 -0
  35. package/dist/path.js +67 -0
  36. package/dist/path.js.map +1 -0
  37. package/dist/pattern.d.ts +95 -0
  38. package/dist/pattern.d.ts.map +1 -0
  39. package/dist/pattern.js +250 -0
  40. package/dist/pattern.js.map +1 -0
  41. package/dist/region.d.ts +59 -0
  42. package/dist/region.d.ts.map +1 -0
  43. package/dist/region.js +154 -0
  44. package/dist/region.js.map +1 -0
  45. package/dist/scaled-font.d.ts +43 -0
  46. package/dist/scaled-font.d.ts.map +1 -0
  47. package/dist/scaled-font.js +156 -0
  48. package/dist/scaled-font.js.map +1 -0
  49. package/dist/structs.d.ts +120 -0
  50. package/dist/structs.d.ts.map +1 -0
  51. package/dist/structs.js +185 -0
  52. package/dist/structs.js.map +1 -0
  53. package/dist/surface.d.ts +98 -0
  54. package/dist/surface.d.ts.map +1 -0
  55. package/dist/surface.js +274 -0
  56. package/dist/surface.js.map +1 -0
  57. package/dist/text.d.ts +10 -0
  58. package/dist/text.d.ts.map +1 -0
  59. package/dist/text.js +45 -0
  60. package/dist/text.js.map +1 -0
  61. package/dist/types.d.ts +245 -0
  62. package/dist/types.d.ts.map +1 -0
  63. package/dist/types.js +2 -0
  64. package/dist/types.js.map +1 -0
  65. package/dist/version.d.ts +9 -0
  66. package/dist/version.d.ts.map +1 -0
  67. package/dist/version.js +13 -0
  68. package/dist/version.js.map +1 -0
  69. package/package.json +64 -0
  70. package/src/context.ts +899 -0
  71. package/src/device.ts +50 -0
  72. package/src/enums.ts +571 -0
  73. package/src/font-face.ts +157 -0
  74. package/src/font-options.ts +142 -0
  75. package/src/index.ts +28 -0
  76. package/src/lib.ts +186 -0
  77. package/src/matrix.ts +135 -0
  78. package/src/path.ts +87 -0
  79. package/src/pattern.ts +423 -0
  80. package/src/region.ts +216 -0
  81. package/src/scaled-font.ts +268 -0
  82. package/src/structs.ts +306 -0
  83. package/src/surface.ts +411 -0
  84. package/src/text.ts +56 -0
  85. package/src/types.ts +290 -0
  86. package/src/version.ts +16 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n alloc,\n type ExternalObject,\n getHandle,\n type Handle,\n read,\n registerWrapperClass,\n setHandle,\n t,\n wrapHandle,\n write,\n} from \"@gtkx/runtime\";\nimport type {\n Antialias,\n Content,\n FillRule,\n FontSlant,\n FontWeight,\n LineCap,\n LineJoin,\n Operator,\n Status,\n TextClusterFlags,\n} from \"./enums.js\";\nimport type {\n CairoGlyph,\n CairoTextCluster,\n DashPattern,\n Distance,\n Extents,\n FontExtents,\n PathData,\n Point,\n RectangleData,\n TextExtents,\n} from \"./types.js\";\nimport { FontFace } from \"./font-face.js\";\nimport { FontOptions } from \"./font-options.js\";\nimport {\n bindCairo,\n type BoundFunction,\n cairoGType,\n CONTEXT_FULL_T,\n CONTEXT_T,\n DOUBLE_BUFFER_T,\n FONT_EXTENTS_T,\n FONT_FACE_T,\n FONT_OPTIONS_T,\n GLYPH_T,\n MATRIX_T,\n PATH_T,\n PATTERN_FULL_T,\n PATTERN_T,\n RECTANGLE_LIST_T,\n SCALED_FONT_T,\n SURFACE_T,\n TEXT_CLUSTER_T,\n TEXT_EXTENTS_T,\n} from \"./lib.js\";\nimport { allocMatrix, Matrix } from \"./matrix.js\";\nimport { parsePath } from \"./path.js\";\nimport { Pattern } from \"./pattern.js\";\nimport { ScaledFont } from \"./scaled-font.js\";\nimport { Surface } from \"./surface.js\";\nimport {\n allocClusterBuffer,\n allocFontExtents,\n allocGlyphBuffer,\n allocTextExtents,\n readFontExtents,\n readTextExtents,\n} from \"./text.js\";\n\nconst CONTEXT_TYPE = cairoGType(\"cairo_gobject_context_get_type\");\nconst RECTANGLE_SIZE = 32;\nconst RECTANGLE_LIST_COUNT_OFFSET = 16;\nconst RECTANGLE_LIST_DATA_OFFSET = 8;\nconst POINT_ARGS = [CONTEXT_T, t.float64, t.float64];\nconst EXTENTS_ARGS = [CONTEXT_T, t.ref(t.float64), t.ref(t.float64), t.ref(t.float64), t.ref(t.float64)];\nconst COORD_ARGS = [CONTEXT_T, t.ref(t.float64), t.ref(t.float64)];\nconst CURVE_ARGS = [CONTEXT_T, t.float64, t.float64, t.float64, t.float64, t.float64, t.float64];\nconst ARC_ARGS = [CONTEXT_T, t.float64, t.float64, t.float64, t.float64, t.float64];\nconst cairoCreate = bindCairo(\"cairo_create\", [SURFACE_T], CONTEXT_FULL_T);\nconst cairoMoveTo = bindCairo(\"cairo_move_to\", POINT_ARGS, t.void);\nconst cairoLineTo = bindCairo(\"cairo_line_to\", POINT_ARGS, t.void);\nconst cairoRelMoveTo = bindCairo(\"cairo_rel_move_to\", POINT_ARGS, t.void);\nconst cairoRelLineTo = bindCairo(\"cairo_rel_line_to\", POINT_ARGS, t.void);\nconst cairoRelCurveTo = bindCairo(\"cairo_rel_curve_to\", CURVE_ARGS, t.void);\nconst cairoCurveTo = bindCairo(\"cairo_curve_to\", CURVE_ARGS, t.void);\nconst cairoArc = bindCairo(\"cairo_arc\", ARC_ARGS, t.void);\nconst cairoArcNegative = bindCairo(\"cairo_arc_negative\", ARC_ARGS, t.void);\nconst cairoRectangle = bindCairo(\"cairo_rectangle\", [CONTEXT_T, t.float64, t.float64, t.float64, t.float64], t.void);\nconst cairoClosePath = bindCairo(\"cairo_close_path\", [CONTEXT_T], t.void);\nconst cairoNewPath = bindCairo(\"cairo_new_path\", [CONTEXT_T], t.void);\nconst cairoNewSubPath = bindCairo(\"cairo_new_sub_path\", [CONTEXT_T], t.void);\nconst cairoStroke = bindCairo(\"cairo_stroke\", [CONTEXT_T], t.void);\nconst cairoStrokePreserve = bindCairo(\"cairo_stroke_preserve\", [CONTEXT_T], t.void);\nconst cairoFill = bindCairo(\"cairo_fill\", [CONTEXT_T], t.void);\nconst cairoFillPreserve = bindCairo(\"cairo_fill_preserve\", [CONTEXT_T], t.void);\nconst cairoPaint = bindCairo(\"cairo_paint\", [CONTEXT_T], t.void);\nconst cairoPaintWithAlpha = bindCairo(\"cairo_paint_with_alpha\", [CONTEXT_T, t.float64], t.void);\nconst cairoClip = bindCairo(\"cairo_clip\", [CONTEXT_T], t.void);\nconst cairoClipPreserve = bindCairo(\"cairo_clip_preserve\", [CONTEXT_T], t.void);\nconst cairoResetClip = bindCairo(\"cairo_reset_clip\", [CONTEXT_T], t.void);\nconst cairoSetSourceRgb = bindCairo(\"cairo_set_source_rgb\", [CONTEXT_T, t.float64, t.float64, t.float64], t.void);\n\nconst cairoSetSourceRgba = bindCairo(\n \"cairo_set_source_rgba\",\n [CONTEXT_T, t.float64, t.float64, t.float64, t.float64],\n t.void,\n);\n\nconst cairoSetSource = bindCairo(\"cairo_set_source\", [CONTEXT_T, PATTERN_T], t.void);\nconst cairoSetLineWidth = bindCairo(\"cairo_set_line_width\", [CONTEXT_T, t.float64], t.void);\nconst cairoGetLineWidth = bindCairo(\"cairo_get_line_width\", [CONTEXT_T], t.float64);\nconst cairoSetLineCap = bindCairo(\"cairo_set_line_cap\", [CONTEXT_T, t.int32], t.void);\nconst cairoGetLineCap = bindCairo(\"cairo_get_line_cap\", [CONTEXT_T], t.int32);\nconst cairoSetLineJoin = bindCairo(\"cairo_set_line_join\", [CONTEXT_T, t.int32], t.void);\nconst cairoGetLineJoin = bindCairo(\"cairo_get_line_join\", [CONTEXT_T], t.int32);\nconst cairoSetDash = bindCairo(\"cairo_set_dash\", [CONTEXT_T, DOUBLE_BUFFER_T, t.int32, t.float64], t.void);\nconst cairoGetDashCount = bindCairo(\"cairo_get_dash_count\", [CONTEXT_T], t.int32);\nconst cairoGetDash = bindCairo(\"cairo_get_dash\", [CONTEXT_T, DOUBLE_BUFFER_T, t.ref(t.float64)], t.void);\nconst cairoSetMiterLimit = bindCairo(\"cairo_set_miter_limit\", [CONTEXT_T, t.float64], t.void);\nconst cairoGetMiterLimit = bindCairo(\"cairo_get_miter_limit\", [CONTEXT_T], t.float64);\nconst cairoSetTolerance = bindCairo(\"cairo_set_tolerance\", [CONTEXT_T, t.float64], t.void);\nconst cairoGetTolerance = bindCairo(\"cairo_get_tolerance\", [CONTEXT_T], t.float64);\nconst cairoSetFillRule = bindCairo(\"cairo_set_fill_rule\", [CONTEXT_T, t.int32], t.void);\nconst cairoGetFillRule = bindCairo(\"cairo_get_fill_rule\", [CONTEXT_T], t.int32);\nconst cairoSave = bindCairo(\"cairo_save\", [CONTEXT_T], t.void);\nconst cairoRestore = bindCairo(\"cairo_restore\", [CONTEXT_T], t.void);\nconst cairoTranslate = bindCairo(\"cairo_translate\", POINT_ARGS, t.void);\nconst cairoScale = bindCairo(\"cairo_scale\", POINT_ARGS, t.void);\nconst cairoRotate = bindCairo(\"cairo_rotate\", [CONTEXT_T, t.float64], t.void);\nconst cairoSetOperator = bindCairo(\"cairo_set_operator\", [CONTEXT_T, t.int32], t.void);\nconst cairoGetOperator = bindCairo(\"cairo_get_operator\", [CONTEXT_T], t.int32);\n\nconst cairoSelectFontFace = bindCairo(\n \"cairo_select_font_face\",\n [CONTEXT_T, t.string(\"full\"), t.int32, t.int32],\n t.void,\n);\n\nconst cairoSetFontSize = bindCairo(\"cairo_set_font_size\", [CONTEXT_T, t.float64], t.void);\nconst cairoShowText = bindCairo(\"cairo_show_text\", [CONTEXT_T, t.string(\"full\")], t.void);\nconst cairoTextPath = bindCairo(\"cairo_text_path\", [CONTEXT_T, t.string(\"full\")], t.void);\nconst cairoTextExtents = bindCairo(\"cairo_text_extents\", [CONTEXT_T, t.string(\"full\"), TEXT_EXTENTS_T], t.void);\nconst cairoFontExtents = bindCairo(\"cairo_font_extents\", [CONTEXT_T, FONT_EXTENTS_T], t.void);\nconst cairoSetFontOptions = bindCairo(\"cairo_set_font_options\", [CONTEXT_T, FONT_OPTIONS_T], t.void);\nconst cairoGetFontOptions = bindCairo(\"cairo_get_font_options\", [CONTEXT_T, FONT_OPTIONS_T], t.void);\nconst cairoSetAntialias = bindCairo(\"cairo_set_antialias\", [CONTEXT_T, t.int32], t.void);\nconst cairoGetAntialias = bindCairo(\"cairo_get_antialias\", [CONTEXT_T], t.int32);\nconst cairoShowPage = bindCairo(\"cairo_show_page\", [CONTEXT_T], t.void);\nconst cairoCopyPage = bindCairo(\"cairo_copy_page\", [CONTEXT_T], t.void);\nconst cairoGetTarget = bindCairo(\"cairo_get_target\", [CONTEXT_T], SURFACE_T);\n\nconst cairoSetSourceSurface = bindCairo(\n \"cairo_set_source_surface\",\n [CONTEXT_T, SURFACE_T, t.float64, t.float64],\n t.void,\n);\n\nconst cairoHasCurrentPoint = bindCairo(\"cairo_has_current_point\", [CONTEXT_T], t.boolean);\nconst cairoGetCurrentPoint = bindCairo(\"cairo_get_current_point\", COORD_ARGS, t.void);\nconst cairoGetSource = bindCairo(\"cairo_get_source\", [CONTEXT_T], PATTERN_T);\nconst cairoStrokeExtents = bindCairo(\"cairo_stroke_extents\", EXTENTS_ARGS, t.void);\nconst cairoFillExtents = bindCairo(\"cairo_fill_extents\", EXTENTS_ARGS, t.void);\nconst cairoClipExtents = bindCairo(\"cairo_clip_extents\", EXTENTS_ARGS, t.void);\nconst cairoPathExtents = bindCairo(\"cairo_path_extents\", EXTENTS_ARGS, t.void);\nconst cairoInStroke = bindCairo(\"cairo_in_stroke\", POINT_ARGS, t.boolean);\nconst cairoInFill = bindCairo(\"cairo_in_fill\", POINT_ARGS, t.boolean);\nconst cairoInClip = bindCairo(\"cairo_in_clip\", POINT_ARGS, t.boolean);\nconst cairoCopyClipRectangleList = bindCairo(\"cairo_copy_clip_rectangle_list\", [CONTEXT_T], RECTANGLE_LIST_T);\nconst cairoRectangleListDestroy = bindCairo(\"cairo_rectangle_list_destroy\", [RECTANGLE_LIST_T], t.void);\nconst cairoMask = bindCairo(\"cairo_mask\", [CONTEXT_T, PATTERN_T], t.void);\nconst cairoMaskSurface = bindCairo(\"cairo_mask_surface\", [CONTEXT_T, SURFACE_T, t.float64, t.float64], t.void);\nconst cairoSetMatrix = bindCairo(\"cairo_set_matrix\", [CONTEXT_T, MATRIX_T], t.void);\nconst cairoGetMatrix = bindCairo(\"cairo_get_matrix\", [CONTEXT_T, MATRIX_T], t.void);\nconst cairoTransform = bindCairo(\"cairo_transform\", [CONTEXT_T, MATRIX_T], t.void);\nconst cairoIdentityMatrix = bindCairo(\"cairo_identity_matrix\", [CONTEXT_T], t.void);\nconst cairoUserToDevice = bindCairo(\"cairo_user_to_device\", COORD_ARGS, t.void);\nconst cairoUserToDeviceDistance = bindCairo(\"cairo_user_to_device_distance\", COORD_ARGS, t.void);\nconst cairoDeviceToUser = bindCairo(\"cairo_device_to_user\", COORD_ARGS, t.void);\nconst cairoDeviceToUserDistance = bindCairo(\"cairo_device_to_user_distance\", COORD_ARGS, t.void);\nconst cairoStatus = bindCairo(\"cairo_status\", [CONTEXT_T], t.int32);\nconst cairoGetReferenceCount = bindCairo(\"cairo_get_reference_count\", [CONTEXT_T], t.int32);\nconst cairoPushGroup = bindCairo(\"cairo_push_group\", [CONTEXT_T], t.void);\nconst cairoPushGroupWithContent = bindCairo(\"cairo_push_group_with_content\", [CONTEXT_T, t.int32], t.void);\nconst cairoPopGroup = bindCairo(\"cairo_pop_group\", [CONTEXT_T], PATTERN_FULL_T);\nconst cairoPopGroupToSource = bindCairo(\"cairo_pop_group_to_source\", [CONTEXT_T], t.void);\nconst cairoGetGroupTarget = bindCairo(\"cairo_get_group_target\", [CONTEXT_T], SURFACE_T);\nconst cairoSetFontFace = bindCairo(\"cairo_set_font_face\", [CONTEXT_T, FONT_FACE_T], t.void);\nconst cairoGetFontFace = bindCairo(\"cairo_get_font_face\", [CONTEXT_T], FONT_FACE_T);\nconst cairoSetFontMatrix = bindCairo(\"cairo_set_font_matrix\", [CONTEXT_T, MATRIX_T], t.void);\nconst cairoGetFontMatrix = bindCairo(\"cairo_get_font_matrix\", [CONTEXT_T, MATRIX_T], t.void);\nconst cairoSetScaledFont = bindCairo(\"cairo_set_scaled_font\", [CONTEXT_T, SCALED_FONT_T], t.void);\nconst cairoGetScaledFont = bindCairo(\"cairo_get_scaled_font\", [CONTEXT_T], SCALED_FONT_T);\nconst cairoShowGlyphs = bindCairo(\"cairo_show_glyphs\", [CONTEXT_T, GLYPH_T, t.int32], t.void);\nconst cairoGlyphPath = bindCairo(\"cairo_glyph_path\", [CONTEXT_T, GLYPH_T, t.int32], t.void);\nconst cairoGlyphExtents = bindCairo(\"cairo_glyph_extents\", [CONTEXT_T, GLYPH_T, t.int32, TEXT_EXTENTS_T], t.void);\nconst cairoCopyPath = bindCairo(\"cairo_copy_path\", [CONTEXT_T], PATH_T);\nconst cairoCopyPathFlat = bindCairo(\"cairo_copy_path_flat\", [CONTEXT_T], PATH_T);\nconst cairoTagBegin = bindCairo(\"cairo_tag_begin\", [CONTEXT_T, t.string(\"full\"), t.string(\"full\")], t.void);\nconst cairoTagEnd = bindCairo(\"cairo_tag_end\", [CONTEXT_T, t.string(\"full\")], t.void);\n\nconst cairoShowTextGlyphs = bindCairo(\n \"cairo_show_text_glyphs\",\n [CONTEXT_T, t.string(\"full\"), t.int32, GLYPH_T, t.int32, TEXT_CLUSTER_T, t.int32, t.int32],\n t.void,\n);\n\nconst readExtents = (handle: ExternalObject<Handle>, boundFn: BoundFunction): Extents => {\n const x1Ref = { value: 0 };\n const y1Ref = { value: 0 };\n const x2Ref = { value: 0 };\n const y2Ref = { value: 0 };\n boundFn(handle, x1Ref, y1Ref, x2Ref, y2Ref);\n\n return { x1: x1Ref.value, y1: y1Ref.value, x2: x2Ref.value, y2: y2Ref.value };\n};\n\nconst transformCoords = (\n handle: ExternalObject<Handle>,\n boundFn: BoundFunction,\n a: number,\n b: number,\n): [number, number] => {\n const aRef = { value: a };\n const bRef = { value: b };\n boundFn(handle, aRef, bRef);\n\n return [aRef.value, bRef.value];\n};\n\nconst allocDashBuffer = (dashes: number[]): ExternalObject<Handle> => {\n const buffer = alloc(dashes.length * 8);\n\n for (const [index, dash] of dashes.entries()) {\n write(buffer, t.float64, index * 8, dash);\n }\n\n return buffer;\n};\n\nconst readDashes = (buffer: ExternalObject<Handle>, count: number): number[] =>\n Array.from({ length: count }, (_, index) => read(buffer, t.float64, index * 8) as number);\n\nconst readRectangle = (rects: ExternalObject<Handle>, base: number): RectangleData => ({\n x: read(rects, t.float64, base) as number,\n y: read(rects, t.float64, base + 8) as number,\n width: read(rects, t.float64, base + 16) as number,\n height: read(rects, t.float64, base + 24) as number,\n});\n\nconst readRectangleList = (listHandle: ExternalObject<Handle>): RectangleData[] => {\n const count = read(listHandle, t.int32, RECTANGLE_LIST_COUNT_OFFSET) as number;\n\n if (count === 0) {\n return [];\n }\n\n const rects = read(\n listHandle,\n t.struct(\"borrowed\", { size: count * RECTANGLE_SIZE }),\n RECTANGLE_LIST_DATA_OFFSET,\n ) as ExternalObject<Handle>;\n\n return Array.from({ length: count }, (_, index) => readRectangle(rects, index * RECTANGLE_SIZE));\n};\n\nconst appendSegment = (ctx: Context, segment: PathData): void => {\n switch (segment.type) {\n case \"moveTo\": {\n ctx.moveTo(segment.x, segment.y);\n\n return;\n }\n case \"lineTo\": {\n ctx.lineTo(segment.x, segment.y);\n\n return;\n }\n case \"curveTo\": {\n ctx.curveTo(segment.x1, segment.y1, segment.x2, segment.y2, segment.x3, segment.y3);\n\n return;\n }\n case \"closePath\": {\n ctx.closePath();\n }\n }\n};\n\n/**\n * A cairo drawing context (`cairo_t`): the object every drawing operation goes through, holding the current\n * path, source, transformation, clip and font state for one target surface. GTK hands one to draw callbacks\n * and snapshots, and `new Context(surface)` creates one for offscreen drawing.\n */\nclass Context {\n static {\n registerWrapperClass(this, CONTEXT_TYPE);\n }\n\n /** Creates a context drawing onto `target`, the same as `new Context(target)`. */\n static create(target: Surface): Context {\n return new Context(target);\n }\n\n /** GType of `CairoContext`, the boxed type this class is registered under. */\n declare __type__: bigint;\n\n /** Creates a context drawing onto `target`. */\n constructor(target: Surface) {\n setHandle(this, cairoCreate(getHandle(target)) as ExternalObject<Handle>);\n }\n\n /** Begins a new sub-path at `(x, y)`, which becomes the current point. */\n moveTo(x: number, y: number): void {\n cairoMoveTo(getHandle(this), x, y);\n }\n\n /** Adds a straight line from the current point to `(x, y)`. */\n lineTo(x: number, y: number): void {\n cairoLineTo(getHandle(this), x, y);\n }\n\n /** Begins a new sub-path offset from the current point by `(dx, dy)`. */\n relMoveTo(dx: number, dy: number): void {\n cairoRelMoveTo(getHandle(this), dx, dy);\n }\n\n /** Adds a straight line from the current point to the point offset by `(dx, dy)`. */\n relLineTo(dx: number, dy: number): void {\n cairoRelLineTo(getHandle(this), dx, dy);\n }\n\n /** Adds a cubic Bézier curve whose control points and end point are offsets from the current point. */\n relCurveTo(dx1: number, dy1: number, dx2: number, dy2: number, dx3: number, dy3: number): void {\n cairoRelCurveTo(getHandle(this), dx1, dy1, dx2, dy2, dx3, dy3);\n }\n\n /** Adds a cubic Bézier curve from the current point through two control points to `(x3, y3)`. */\n curveTo(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): void {\n cairoCurveTo(getHandle(this), x1, y1, x2, y2, x3, y3);\n }\n\n /** Adds a circular arc centred on `(xc, yc)`, drawn clockwise from `angle1` to `angle2`. */\n arc(xc: number, yc: number, radius: number, angle1: number, angle2: number): void {\n cairoArc(getHandle(this), xc, yc, radius, angle1, angle2);\n }\n\n /** Adds a circular arc centred on `(xc, yc)`, drawn counter-clockwise from `angle1` to `angle2`. */\n arcNegative(xc: number, yc: number, radius: number, angle1: number, angle2: number): void {\n cairoArcNegative(getHandle(this), xc, yc, radius, angle1, angle2);\n }\n\n /** Adds a closed rectangular sub-path. */\n rectangle(x: number, y: number, width: number, height: number): void {\n cairoRectangle(getHandle(this), x, y, width, height);\n }\n\n /** Closes the current sub-path with a line back to its start. */\n closePath(): void {\n cairoClosePath(getHandle(this));\n }\n\n /** Clears the current path. */\n newPath(): void {\n cairoNewPath(getHandle(this));\n }\n\n /** Begins a new sub-path without a current point, so the next `arc` needs no leading `moveTo`. */\n newSubPath(): void {\n cairoNewSubPath(getHandle(this));\n }\n\n /** Strokes the current path with the current line settings and clears it. */\n stroke(): void {\n cairoStroke(getHandle(this));\n }\n\n /** Strokes the current path and keeps it. */\n strokePreserve(): void {\n cairoStrokePreserve(getHandle(this));\n }\n\n /** Fills the current path with the current fill rule and clears it. */\n fill(): void {\n cairoFill(getHandle(this));\n }\n\n /** Fills the current path and keeps it. */\n fillPreserve(): void {\n cairoFillPreserve(getHandle(this));\n }\n\n /** Paints the current source everywhere inside the clip. */\n paint(): void {\n cairoPaint(getHandle(this));\n }\n\n /** Paints the current source everywhere inside the clip, faded by `alpha`. */\n paintWithAlpha(alpha: number): void {\n cairoPaintWithAlpha(getHandle(this), alpha);\n }\n\n /** Intersects the clip with the current path and clears the path. */\n clip(): void {\n cairoClip(getHandle(this));\n }\n\n /** Intersects the clip with the current path and keeps the path. */\n clipPreserve(): void {\n cairoClipPreserve(getHandle(this));\n }\n\n /** Removes the clip, so drawing reaches the whole surface again. */\n resetClip(): void {\n cairoResetClip(getHandle(this));\n }\n\n /** Sets the source to an opaque color with components in the 0 to 1 range. */\n setSourceRgb(red: number, green: number, blue: number): void {\n cairoSetSourceRgb(getHandle(this), red, green, blue);\n }\n\n /** Sets the source to a translucent color with components in the 0 to 1 range. */\n setSourceRgba(red: number, green: number, blue: number, alpha: number): void {\n cairoSetSourceRgba(getHandle(this), red, green, blue, alpha);\n }\n\n /** Sets the source pattern drawing operations paint with. */\n setSource(pattern: Pattern): void {\n cairoSetSource(getHandle(this), getHandle(pattern));\n }\n\n /** Sets the width of stroked lines in user space. */\n setLineWidth(width: number): void {\n cairoSetLineWidth(getHandle(this), width);\n }\n\n /** Returns the width of stroked lines. */\n getLineWidth(): number {\n return cairoGetLineWidth(getHandle(this)) as number;\n }\n\n /** Sets how the ends of stroked lines are drawn. */\n setLineCap(lineCap: LineCap): void {\n cairoSetLineCap(getHandle(this), lineCap);\n }\n\n /** Returns how the ends of stroked lines are drawn. */\n getLineCap(): LineCap {\n return cairoGetLineCap(getHandle(this)) as LineCap;\n }\n\n /** Sets how the corners of stroked lines are joined. */\n setLineJoin(lineJoin: LineJoin): void {\n cairoSetLineJoin(getHandle(this), lineJoin);\n }\n\n /** Returns how the corners of stroked lines are joined. */\n getLineJoin(): LineJoin {\n return cairoGetLineJoin(getHandle(this)) as LineJoin;\n }\n\n /** Sets the dash pattern of strokes as alternating on and off lengths; an empty list draws solid lines. */\n setDash(dashes: number[], offset: number): void {\n cairoSetDash(getHandle(this), allocDashBuffer(dashes), dashes.length, offset);\n }\n\n /** Returns how many lengths the dash pattern has, zero for a solid line. */\n getDashCount(): number {\n return cairoGetDashCount(getHandle(this)) as number;\n }\n\n /** Returns the dash pattern and its offset. */\n getDash(): DashPattern {\n const count = this.getDashCount();\n\n if (count === 0) {\n return { dashes: [], offset: 0 };\n }\n\n const buffer = alloc(count * 8);\n const offsetRef = { value: 0 };\n cairoGetDash(getHandle(this), buffer, offsetRef);\n\n return { dashes: readDashes(buffer, count), offset: offsetRef.value };\n }\n\n /** Sets the miter limit above which a mitered join is drawn beveled. */\n setMiterLimit(limit: number): void {\n cairoSetMiterLimit(getHandle(this), limit);\n }\n\n /** Returns the miter limit. */\n getMiterLimit(): number {\n return cairoGetMiterLimit(getHandle(this)) as number;\n }\n\n /** Sets the tolerance used when curves are flattened into line segments. */\n setTolerance(tolerance: number): void {\n cairoSetTolerance(getHandle(this), tolerance);\n }\n\n /** Returns the tolerance used when curves are flattened. */\n getTolerance(): number {\n return cairoGetTolerance(getHandle(this)) as number;\n }\n\n /** Sets the rule deciding which areas a self-intersecting path fills. */\n setFillRule(fillRule: FillRule): void {\n cairoSetFillRule(getHandle(this), fillRule);\n }\n\n /** Returns the fill rule. */\n getFillRule(): FillRule {\n return cairoGetFillRule(getHandle(this)) as FillRule;\n }\n\n /** Pushes the current drawing state (source, transformation, clip, line and font settings) onto a stack. */\n save(): void {\n cairoSave(getHandle(this));\n }\n\n /** Restores the drawing state saved by the matching `save`. */\n restore(): void {\n cairoRestore(getHandle(this));\n }\n\n /** Moves the user-space origin by `(tx, ty)`. */\n translate(tx: number, ty: number): void {\n cairoTranslate(getHandle(this), tx, ty);\n }\n\n /** Scales user space by `sx` and `sy`. */\n scale(sx: number, sy: number): void {\n cairoScale(getHandle(this), sx, sy);\n }\n\n /** Rotates user space by `angle` radians. */\n rotate(angle: number): void {\n cairoRotate(getHandle(this), angle);\n }\n\n /** Sets the compositing operator used by drawing operations. */\n setOperator(op: Operator): void {\n cairoSetOperator(getHandle(this), op);\n }\n\n /** Returns the compositing operator. */\n getOperator(): Operator {\n return cairoGetOperator(getHandle(this)) as Operator;\n }\n\n /** Selects a toy font face by family name, slant and weight. */\n selectFontFace(family: string, slant: FontSlant, weight: FontWeight): void {\n cairoSelectFontFace(getHandle(this), family, slant, weight);\n }\n\n /** Sets the font size in user space, replacing the font matrix with a uniform scale. */\n setFontSize(size: number): void {\n cairoSetFontSize(getHandle(this), size);\n }\n\n /** Draws `text` with the current font at the current point. */\n showText(text: string): void {\n cairoShowText(getHandle(this), text);\n }\n\n /** Adds the outlines of `text` to the current path. */\n textPath(text: string): void {\n cairoTextPath(getHandle(this), text);\n }\n\n /** Measures `text` with the current font. */\n textExtents(text: string): TextExtents {\n const extents = allocTextExtents();\n cairoTextExtents(getHandle(this), text, extents);\n\n return readTextExtents(extents);\n }\n\n /** Returns the metrics of the current font. */\n fontExtents(): FontExtents {\n const extents = allocFontExtents();\n cairoFontExtents(getHandle(this), extents);\n\n return readFontExtents(extents);\n }\n\n /** Sets the font rendering options merged over the surface's defaults. */\n setFontOptions(options: FontOptions): void {\n cairoSetFontOptions(getHandle(this), getHandle(options));\n }\n\n /** Returns a copy of the font rendering options set on the context. */\n getFontOptions(): FontOptions {\n const options = FontOptions.create();\n cairoGetFontOptions(getHandle(this), getHandle(options));\n\n return options;\n }\n\n /** Sets the antialiasing mode of the rasterizer. */\n setAntialias(antialias: Antialias): void {\n cairoSetAntialias(getHandle(this), antialias);\n }\n\n /** Returns the antialiasing mode. */\n getAntialias(): Antialias {\n return cairoGetAntialias(getHandle(this)) as Antialias;\n }\n\n /** Emits the current page and clears it, on surfaces that support pages. */\n showPage(): void {\n cairoShowPage(getHandle(this));\n }\n\n /** Emits the current page without clearing it, on surfaces that support pages. */\n copyPage(): void {\n cairoCopyPage(getHandle(this));\n }\n\n /** Returns the surface the context was created for, wrapped as its concrete class. */\n getTarget(): Surface {\n return wrapHandle(cairoGetTarget(getHandle(this)) as ExternalObject<Handle>, Surface);\n }\n\n /** Sets the source to `surface` placed with its origin at `(x, y)` in user space. */\n setSourceSurface(surface: Surface, x: number, y: number): void {\n cairoSetSourceSurface(getHandle(this), getHandle(surface), x, y);\n }\n\n /** Returns whether the path has a current point. */\n hasCurrentPoint(): boolean {\n return cairoHasCurrentPoint(getHandle(this)) as boolean;\n }\n\n /** Returns the current point of the path, or null when there is none. */\n getCurrentPoint(): Point | null {\n if (!this.hasCurrentPoint()) {\n return null;\n }\n\n const xRef = { value: 0 };\n const yRef = { value: 0 };\n cairoGetCurrentPoint(getHandle(this), xRef, yRef);\n\n return { x: xRef.value, y: yRef.value };\n }\n\n /** Returns the current source pattern, wrapped as its concrete class. */\n getSource(): Pattern {\n return wrapHandle(cairoGetSource(getHandle(this)) as ExternalObject<Handle>, Pattern);\n }\n\n /** Returns the bounding box a `stroke` of the current path would cover. */\n strokeExtents(): Extents {\n return readExtents(getHandle(this), cairoStrokeExtents);\n }\n\n /** Returns the bounding box a `fill` of the current path would cover. */\n fillExtents(): Extents {\n return readExtents(getHandle(this), cairoFillExtents);\n }\n\n /** Returns the bounding box of the current clip. */\n clipExtents(): Extents {\n return readExtents(getHandle(this), cairoClipExtents);\n }\n\n /** Returns the bounding box of the current path. */\n pathExtents(): Extents {\n return readExtents(getHandle(this), cairoPathExtents);\n }\n\n /** Returns whether `(x, y)` lies inside the area a `stroke` of the current path would cover. */\n inStroke(x: number, y: number): boolean {\n return cairoInStroke(getHandle(this), x, y) as boolean;\n }\n\n /** Returns whether `(x, y)` lies inside the area a `fill` of the current path would cover. */\n inFill(x: number, y: number): boolean {\n return cairoInFill(getHandle(this), x, y) as boolean;\n }\n\n /** Returns whether `(x, y)` lies inside the current clip. */\n inClip(x: number, y: number): boolean {\n return cairoInClip(getHandle(this), x, y) as boolean;\n }\n\n /** Returns the current clip as a list of rectangles in user space. */\n copyClipRectangleList(): RectangleData[] {\n const listHandle = cairoCopyClipRectangleList(getHandle(this)) as ExternalObject<Handle>;\n const rects = readRectangleList(listHandle);\n cairoRectangleListDestroy(listHandle);\n\n return rects;\n }\n\n /** Paints the current source using the alpha channel of `pattern` as a mask. */\n mask(pattern: Pattern): void {\n cairoMask(getHandle(this), getHandle(pattern));\n }\n\n /** Paints the current source using the alpha channel of `surface`, placed at `(x, y)`, as a mask. */\n maskSurface(surface: Surface, x: number, y: number): void {\n cairoMaskSurface(getHandle(this), getHandle(surface), x, y);\n }\n\n /** Replaces the transformation from user space to device space. */\n setMatrix(matrix: Matrix): void {\n cairoSetMatrix(getHandle(this), getHandle(matrix));\n }\n\n /** Returns the transformation from user space to device space. */\n getMatrix(): Matrix {\n const { handle, matrix } = allocMatrix();\n cairoGetMatrix(getHandle(this), handle);\n\n return matrix;\n }\n\n /** Applies `matrix` before the existing transformation. */\n transform(matrix: Matrix): void {\n cairoTransform(getHandle(this), getHandle(matrix));\n }\n\n /** Resets the transformation to the identity. */\n identityMatrix(): void {\n cairoIdentityMatrix(getHandle(this));\n }\n\n /** Maps a point from user space to device space. */\n userToDevice(x: number, y: number): Point {\n const [px, py] = transformCoords(getHandle(this), cairoUserToDevice, x, y);\n\n return { x: px, y: py };\n }\n\n /** Maps a distance from user space to device space, ignoring translation. */\n userToDeviceDistance(dx: number, dy: number): Distance {\n const [ddx, ddy] = transformCoords(getHandle(this), cairoUserToDeviceDistance, dx, dy);\n\n return { dx: ddx, dy: ddy };\n }\n\n /** Maps a point from device space to user space. */\n deviceToUser(x: number, y: number): Point {\n const [px, py] = transformCoords(getHandle(this), cairoDeviceToUser, x, y);\n\n return { x: px, y: py };\n }\n\n /** Maps a distance from device space to user space, ignoring translation. */\n deviceToUserDistance(dx: number, dy: number): Distance {\n const [ddx, ddy] = transformCoords(getHandle(this), cairoDeviceToUserDistance, dx, dy);\n\n return { dx: ddx, dy: ddy };\n }\n\n /** Returns the error status of the context, `Status.SUCCESS` while every operation so far succeeded. */\n status(): Status {\n return cairoStatus(getHandle(this)) as Status;\n }\n\n /** Returns the reference count of the underlying `cairo_t`. */\n getReferenceCount(): number {\n return cairoGetReferenceCount(getHandle(this)) as number;\n }\n\n /** Redirects drawing to an intermediate surface until `popGroup` or `popGroupToSource`. */\n pushGroup(): void {\n cairoPushGroup(getHandle(this));\n }\n\n /** Redirects drawing to an intermediate surface of the given content. */\n pushGroupWithContent(content: Content): void {\n cairoPushGroupWithContent(getHandle(this), content);\n }\n\n /** Ends the current group and returns what was drawn into it as a pattern. */\n popGroup(): Pattern {\n return wrapHandle(cairoPopGroup(getHandle(this)) as ExternalObject<Handle>, Pattern);\n }\n\n /** Ends the current group and installs what was drawn into it as the source. */\n popGroupToSource(): void {\n cairoPopGroupToSource(getHandle(this));\n }\n\n /** Returns the surface drawing currently goes to: the group surface inside a group, else the target. */\n getGroupTarget(): Surface {\n return wrapHandle(cairoGetGroupTarget(getHandle(this)) as ExternalObject<Handle>, Surface);\n }\n\n /** Sets the font face used by text operations. */\n setFontFace(fontFace: FontFace): void {\n cairoSetFontFace(getHandle(this), getHandle(fontFace));\n }\n\n /** Returns the current font face, wrapped as its concrete class. */\n getFontFace(): FontFace {\n return wrapHandle(cairoGetFontFace(getHandle(this)) as ExternalObject<Handle>, FontFace);\n }\n\n /** Sets the matrix mapping font space to user space, which sizes and shapes the glyphs. */\n setFontMatrix(matrix: Matrix): void {\n cairoSetFontMatrix(getHandle(this), getHandle(matrix));\n }\n\n /** Returns the matrix mapping font space to user space. */\n getFontMatrix(): Matrix {\n const { handle, matrix } = allocMatrix();\n cairoGetFontMatrix(getHandle(this), handle);\n\n return matrix;\n }\n\n /** Replaces the font face, font matrix and font options with those of `scaledFont`. */\n setScaledFont(scaledFont: ScaledFont): void {\n cairoSetScaledFont(getHandle(this), getHandle(scaledFont));\n }\n\n /** Returns the scaled font text operations currently use. */\n getScaledFont(): ScaledFont {\n return wrapHandle(cairoGetScaledFont(getHandle(this)) as ExternalObject<Handle>, ScaledFont);\n }\n\n /** Draws positioned glyphs with the current font. */\n showGlyphs(glyphs: CairoGlyph[]): void {\n cairoShowGlyphs(getHandle(this), allocGlyphBuffer(glyphs), glyphs.length);\n }\n\n /** Adds the outlines of positioned glyphs to the current path. */\n glyphPath(glyphs: CairoGlyph[]): void {\n cairoGlyphPath(getHandle(this), allocGlyphBuffer(glyphs), glyphs.length);\n }\n\n /** Measures positioned glyphs with the current font. */\n glyphExtents(glyphs: CairoGlyph[]): TextExtents {\n const extents = allocTextExtents();\n cairoGlyphExtents(getHandle(this), allocGlyphBuffer(glyphs), glyphs.length, extents);\n\n return readTextExtents(extents);\n }\n\n /** Returns a copy of the current path as segments. */\n copyPath(): PathData[] {\n return parsePath(cairoCopyPath(getHandle(this)) as ExternalObject<Handle>);\n }\n\n /** Returns a copy of the current path with curves flattened into line segments. */\n copyPathFlat(): PathData[] {\n return parsePath(cairoCopyPathFlat(getHandle(this)) as ExternalObject<Handle>);\n }\n\n /** Appends segments, as returned by `copyPath`, to the current path. */\n appendPath(data: PathData[]): void {\n for (const segment of data) {\n appendSegment(this, segment);\n }\n }\n\n /** Opens a tagged structure, such as a link or a destination, on surfaces that record tags. */\n tagBegin(tagName: string, attributes: string): void {\n cairoTagBegin(getHandle(this), tagName, attributes);\n }\n\n /** Closes the tagged structure opened by the matching `tagBegin`. */\n tagEnd(tagName: string): void {\n cairoTagEnd(getHandle(this), tagName);\n }\n\n /** Draws glyphs together with the text and clusters they came from, so the backend can keep the text. */\n showTextGlyphs(\n text: string,\n glyphs: CairoGlyph[],\n clusters: CairoTextCluster[],\n clusterFlags: TextClusterFlags,\n ): void {\n const glyphBuffer = allocGlyphBuffer(glyphs);\n const clusterBuffer = allocClusterBuffer(clusters);\n\n cairoShowTextGlyphs(\n getHandle(this),\n text,\n -1,\n glyphBuffer,\n glyphs.length,\n clusterBuffer,\n clusters.length,\n clusterFlags,\n );\n }\n}\n\nexport { Context };\n"]}
@@ -0,0 +1,21 @@
1
+ import type { DeviceType, Status } from "./enums.js";
2
+ /**
3
+ * A cairo device (`cairo_device_t`): the backend-specific object behind a surface, such as a GL context or an
4
+ * output stream. Instances come from bindings that hand one back.
5
+ */
6
+ declare abstract class Device {
7
+ /** GType of `CairoDevice`, the boxed type this class is registered under. */
8
+ __type__: bigint;
9
+ /** Returns the error status of the device, `Status.SUCCESS` when it is usable. */
10
+ status(): Status;
11
+ /** Returns the backend the device belongs to. */
12
+ getType(): DeviceType;
13
+ /** Finishes the device, dropping its resources; further drawing through it fails. */
14
+ finish(): void;
15
+ /** Flushes any pending operations on the device. */
16
+ flush(): void;
17
+ /** Returns the reference count of the device. */
18
+ getReferenceCount(): number;
19
+ }
20
+ export { Device };
21
+ //# sourceMappingURL=device.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAUrD;;;GAGG;AACH,uBAAe,MAAM;IAKjB,6EAA6E;IACrE,QAAQ,EAAE,MAAM,CAAC;IAEzB,kFAAkF;IAClF,MAAM,IAAI,MAAM;IAIhB,iDAAiD;IACjD,OAAO,IAAI,UAAU;IAIrB,qFAAqF;IACrF,MAAM,IAAI,IAAI;IAId,oDAAoD;IACpD,KAAK,IAAI,IAAI;IAIb,iDAAiD;IACjD,iBAAiB,IAAI,MAAM;CAG9B;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
package/dist/device.js ADDED
@@ -0,0 +1,39 @@
1
+ import { getHandle, registerWrapperClass, t } from "@gtkx/runtime";
2
+ import { bindCairo, cairoGType, DEVICE_T } from "./lib.js";
3
+ const DEVICE_TYPE = cairoGType("cairo_gobject_device_get_type");
4
+ const cairoDeviceStatus = bindCairo("cairo_device_status", [DEVICE_T], t.int32);
5
+ const cairoDeviceGetType = bindCairo("cairo_device_get_type", [DEVICE_T], t.int32);
6
+ const cairoDeviceFinish = bindCairo("cairo_device_finish", [DEVICE_T], t.void);
7
+ const cairoDeviceFlush = bindCairo("cairo_device_flush", [DEVICE_T], t.void);
8
+ const cairoDeviceGetReferenceCount = bindCairo("cairo_device_get_reference_count", [DEVICE_T], t.int32);
9
+ /**
10
+ * A cairo device (`cairo_device_t`): the backend-specific object behind a surface, such as a GL context or an
11
+ * output stream. Instances come from bindings that hand one back.
12
+ */
13
+ class Device {
14
+ static {
15
+ registerWrapperClass(this, DEVICE_TYPE);
16
+ }
17
+ /** Returns the error status of the device, `Status.SUCCESS` when it is usable. */
18
+ status() {
19
+ return cairoDeviceStatus(getHandle(this));
20
+ }
21
+ /** Returns the backend the device belongs to. */
22
+ getType() {
23
+ return cairoDeviceGetType(getHandle(this));
24
+ }
25
+ /** Finishes the device, dropping its resources; further drawing through it fails. */
26
+ finish() {
27
+ cairoDeviceFinish(getHandle(this));
28
+ }
29
+ /** Flushes any pending operations on the device. */
30
+ flush() {
31
+ cairoDeviceFlush(getHandle(this));
32
+ }
33
+ /** Returns the reference count of the device. */
34
+ getReferenceCount() {
35
+ return cairoDeviceGetReferenceCount(getHandle(this));
36
+ }
37
+ }
38
+ export { Device };
39
+ //# sourceMappingURL=device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE3D,MAAM,WAAW,GAAG,UAAU,CAAC,+BAA+B,CAAC,CAAC;AAChE,MAAM,iBAAiB,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAChF,MAAM,kBAAkB,GAAG,SAAS,CAAC,uBAAuB,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AACnF,MAAM,iBAAiB,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/E,MAAM,gBAAgB,GAAG,SAAS,CAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7E,MAAM,4BAA4B,GAAG,SAAS,CAAC,kCAAkC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAExG;;;GAGG;AACH,MAAe,MAAM;IACjB;QACI,oBAAoB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC5C,CAAC;IAKD,kFAAkF;IAClF,MAAM;QACF,OAAO,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAW,CAAC;IACxD,CAAC;IAED,iDAAiD;IACjD,OAAO;QACH,OAAO,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAe,CAAC;IAC7D,CAAC;IAED,qFAAqF;IACrF,MAAM;QACF,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,oDAAoD;IACpD,KAAK;QACD,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,iDAAiD;IACjD,iBAAiB;QACb,OAAO,4BAA4B,CAAC,SAAS,CAAC,IAAI,CAAC,CAAW,CAAC;IACnE,CAAC;CACJ;AAED,OAAO,EAAE,MAAM,EAAE,CAAC","sourcesContent":["import { getHandle, registerWrapperClass, t } from \"@gtkx/runtime\";\nimport type { DeviceType, Status } from \"./enums.js\";\nimport { bindCairo, cairoGType, DEVICE_T } from \"./lib.js\";\n\nconst DEVICE_TYPE = cairoGType(\"cairo_gobject_device_get_type\");\nconst cairoDeviceStatus = bindCairo(\"cairo_device_status\", [DEVICE_T], t.int32);\nconst cairoDeviceGetType = bindCairo(\"cairo_device_get_type\", [DEVICE_T], t.int32);\nconst cairoDeviceFinish = bindCairo(\"cairo_device_finish\", [DEVICE_T], t.void);\nconst cairoDeviceFlush = bindCairo(\"cairo_device_flush\", [DEVICE_T], t.void);\nconst cairoDeviceGetReferenceCount = bindCairo(\"cairo_device_get_reference_count\", [DEVICE_T], t.int32);\n\n/**\n * A cairo device (`cairo_device_t`): the backend-specific object behind a surface, such as a GL context or an\n * output stream. Instances come from bindings that hand one back.\n */\nabstract class Device {\n static {\n registerWrapperClass(this, DEVICE_TYPE);\n }\n\n /** GType of `CairoDevice`, the boxed type this class is registered under. */\n declare __type__: bigint;\n\n /** Returns the error status of the device, `Status.SUCCESS` when it is usable. */\n status(): Status {\n return cairoDeviceStatus(getHandle(this)) as Status;\n }\n\n /** Returns the backend the device belongs to. */\n getType(): DeviceType {\n return cairoDeviceGetType(getHandle(this)) as DeviceType;\n }\n\n /** Finishes the device, dropping its resources; further drawing through it fails. */\n finish(): void {\n cairoDeviceFinish(getHandle(this));\n }\n\n /** Flushes any pending operations on the device. */\n flush(): void {\n cairoDeviceFlush(getHandle(this));\n }\n\n /** Returns the reference count of the device. */\n getReferenceCount(): number {\n return cairoDeviceGetReferenceCount(getHandle(this)) as number;\n }\n}\n\nexport { Device };\n"]}