@gtkx/cairo 1.2.2 → 1.3.0
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.
- package/LICENSE +373 -0
- package/README.md +173 -0
- package/dist/context.d.ts +1 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +5 -2
- package/dist/context.js.map +1 -1
- package/dist/pattern.d.ts +3 -1
- package/dist/pattern.d.ts.map +1 -1
- package/dist/pattern.js +24 -6
- package/dist/pattern.js.map +1 -1
- package/dist/status.d.ts +6 -0
- package/dist/status.d.ts.map +1 -0
- package/dist/status.js +17 -0
- package/dist/status.js.map +1 -0
- package/dist/surface.d.ts +2 -2
- package/dist/surface.d.ts.map +1 -1
- package/dist/surface.js +12 -8
- package/dist/surface.js.map +1 -1
- package/package.json +60 -61
- package/src/context.ts +5 -2
- package/src/pattern.ts +31 -7
- package/src/status.ts +23 -0
- package/src/surface.ts +21 -9
package/dist/context.js.map
CHANGED
|
@@ -1 +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"]}
|
|
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 { checkStatus } from \"./status.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`, throwing when it cannot be created, such as on a finished surface. */\n constructor(target: Surface) {\n const handle = cairoCreate(getHandle(target)) as ExternalObject<Handle>;\n checkStatus(cairoStatus(handle) as Status, \"context\");\n setHandle(this, 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"]}
|
package/dist/pattern.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { Surface } from "./surface.js";
|
|
2
1
|
import type { ColorStop, LinearPoints, PathData, Point, RadialCircles, RgbaColor } from "./types.js";
|
|
3
2
|
import { type Extend, type Filter, PatternType, type Status } from "./enums.js";
|
|
4
3
|
import { Matrix } from "./matrix.js";
|
|
4
|
+
import { Surface } from "./surface.js";
|
|
5
5
|
/**
|
|
6
6
|
* A cairo pattern (`cairo_pattern_t`): the source a context paints with, such as a solid color, a gradient,
|
|
7
7
|
* a mesh or another surface. Patterns come from the `create*` statics or from a context, and wrap as the
|
|
@@ -50,6 +50,8 @@ declare abstract class Pattern {
|
|
|
50
50
|
getType(): PatternType;
|
|
51
51
|
/** Returns the reference count of the pattern. */
|
|
52
52
|
getReferenceCount(): number;
|
|
53
|
+
/** Returns the surface of a surface pattern; throws for a pattern that has no surface. */
|
|
54
|
+
getSurface(): Surface;
|
|
53
55
|
}
|
|
54
56
|
/** A linear gradient pattern, created with `Pattern.createLinear`. */
|
|
55
57
|
declare class LinearPattern extends Pattern {
|
package/dist/pattern.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../src/pattern.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../src/pattern.ts"],"names":[],"mappings":"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"}
|
package/dist/pattern.js
CHANGED
|
@@ -3,6 +3,8 @@ import { PatternType } from "./enums.js";
|
|
|
3
3
|
import { bindCairo, cairoGType, MATRIX_T, PATH_T, PATTERN_FULL_T, PATTERN_T, SURFACE_T, } from "./lib.js";
|
|
4
4
|
import { allocMatrix, Matrix } from "./matrix.js";
|
|
5
5
|
import { parsePath } from "./path.js";
|
|
6
|
+
import { checkStatus } from "./status.js";
|
|
7
|
+
import { Surface } from "./surface.js";
|
|
6
8
|
const PATTERN_TYPE = cairoGType("cairo_gobject_pattern_get_type");
|
|
7
9
|
const FOUR_DOUBLES_OUT = [t.ref(t.float64), t.ref(t.float64), t.ref(t.float64), t.ref(t.float64)];
|
|
8
10
|
const POINT_ARGS = [PATTERN_T, t.float64, t.float64];
|
|
@@ -26,6 +28,7 @@ const cairoPatternSetMatrix = bindCairo("cairo_pattern_set_matrix", [PATTERN_T,
|
|
|
26
28
|
const cairoPatternGetMatrix = bindCairo("cairo_pattern_get_matrix", [PATTERN_T, MATRIX_T], t.void);
|
|
27
29
|
const cairoPatternGetType = bindCairo("cairo_pattern_get_type", [PATTERN_T], t.int32);
|
|
28
30
|
const cairoPatternGetReferenceCount = bindCairo("cairo_pattern_get_reference_count", [PATTERN_T], t.int32);
|
|
31
|
+
const cairoPatternGetSurface = bindCairo("cairo_pattern_get_surface", [PATTERN_T, t.ref(SURFACE_T)], t.int32);
|
|
29
32
|
const cairoPatternGetLinearPoints = bindCairo("cairo_pattern_get_linear_points", [PATTERN_T, ...FOUR_DOUBLES_OUT], t.int32);
|
|
30
33
|
const cairoPatternGetRadialCircles = bindCairo("cairo_pattern_get_radial_circles", [PATTERN_T, ...FOUR_DOUBLES_OUT, t.ref(t.float64), t.ref(t.float64)], t.int32);
|
|
31
34
|
const cairoMeshPatternBeginPatch = bindCairo("cairo_mesh_pattern_begin_patch", [PATTERN_T], t.void);
|
|
@@ -41,6 +44,10 @@ const cairoMeshPatternGetPath = bindCairo("cairo_mesh_pattern_get_path", [PATTER
|
|
|
41
44
|
const cairoMeshPatternGetControlPoint = bindCairo("cairo_mesh_pattern_get_control_point", [PATTERN_T, t.int32, t.int32, t.ref(t.float64), t.ref(t.float64)], t.int32);
|
|
42
45
|
const cairoMeshPatternGetCornerColorRgba = bindCairo("cairo_mesh_pattern_get_corner_color_rgba", [PATTERN_T, t.int32, t.int32, ...FOUR_DOUBLES_OUT], t.int32);
|
|
43
46
|
const wrapPattern = (handle) => wrapHandle(handle, Pattern);
|
|
47
|
+
const checkPattern = (pattern) => {
|
|
48
|
+
checkStatus(pattern.status(), "pattern");
|
|
49
|
+
return pattern;
|
|
50
|
+
};
|
|
44
51
|
const readRgba = (fill) => {
|
|
45
52
|
const red = { value: 0 };
|
|
46
53
|
const green = { value: 0 };
|
|
@@ -79,28 +86,30 @@ class Pattern {
|
|
|
79
86
|
}
|
|
80
87
|
/** Creates an opaque solid-color pattern. */
|
|
81
88
|
static createRgb(red, green, blue) {
|
|
82
|
-
return wrapPattern(cairoPatternCreateRgb(red, green, blue));
|
|
89
|
+
return checkPattern(wrapPattern(cairoPatternCreateRgb(red, green, blue)));
|
|
83
90
|
}
|
|
84
91
|
/** Creates a translucent solid-color pattern. */
|
|
85
92
|
static createRgba(red, green, blue, alpha) {
|
|
86
|
-
return wrapPattern(cairoPatternCreateRgba(red, green, blue, alpha));
|
|
93
|
+
return checkPattern(wrapPattern(cairoPatternCreateRgba(red, green, blue, alpha)));
|
|
87
94
|
}
|
|
88
95
|
/** Creates a linear gradient between `(x0, y0)` and `(x1, y1)`; add stops with `addColorStopRgba`. */
|
|
89
96
|
static createLinear(x0, y0, x1, y1) {
|
|
90
|
-
|
|
97
|
+
const handle = cairoPatternCreateLinear(x0, y0, x1, y1);
|
|
98
|
+
return checkPattern(wrapHandle(handle, LinearPattern));
|
|
91
99
|
}
|
|
92
100
|
/** Creates a radial gradient between two circles; add stops with `addColorStopRgba`. */
|
|
93
101
|
static createRadial(cx0, cy0, radius0, cx1, cy1, radius1) {
|
|
94
102
|
const handle = cairoPatternCreateRadial(cx0, cy0, radius0, cx1, cy1, radius1);
|
|
95
|
-
return wrapHandle(handle, RadialPattern);
|
|
103
|
+
return checkPattern(wrapHandle(handle, RadialPattern));
|
|
96
104
|
}
|
|
97
105
|
/** Creates an empty mesh gradient; describe its patches with the `MeshPattern` methods. */
|
|
98
106
|
static createMesh() {
|
|
99
|
-
return wrapHandle(cairoPatternCreateMesh(), MeshPattern);
|
|
107
|
+
return checkPattern(wrapHandle(cairoPatternCreateMesh(), MeshPattern));
|
|
100
108
|
}
|
|
101
109
|
/** Creates a pattern that paints with the content of `surface`. */
|
|
102
110
|
static createForSurface(surface) {
|
|
103
|
-
|
|
111
|
+
const handle = getHandle(surface);
|
|
112
|
+
return checkPattern(wrapPattern(cairoPatternCreateForSurface(handle)));
|
|
104
113
|
}
|
|
105
114
|
/** Adds an opaque color stop at `offset` (0 to 1) to a gradient pattern. */
|
|
106
115
|
addColorStopRgb(offset, red, green, blue) {
|
|
@@ -162,6 +171,15 @@ class Pattern {
|
|
|
162
171
|
getReferenceCount() {
|
|
163
172
|
return cairoPatternGetReferenceCount(getHandle(this));
|
|
164
173
|
}
|
|
174
|
+
/** Returns the surface of a surface pattern; throws for a pattern that has no surface. */
|
|
175
|
+
getSurface() {
|
|
176
|
+
const surface = { value: null };
|
|
177
|
+
checkStatus(cairoPatternGetSurface(getHandle(this), surface), "pattern");
|
|
178
|
+
if (surface.value === null) {
|
|
179
|
+
throw new Error("cairo pattern has no surface");
|
|
180
|
+
}
|
|
181
|
+
return wrapHandle(surface.value, Surface);
|
|
182
|
+
}
|
|
165
183
|
}
|
|
166
184
|
/** A linear gradient pattern, created with `Pattern.createLinear`. */
|
|
167
185
|
class LinearPattern extends Pattern {
|
package/dist/pattern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pattern.js","sourceRoot":"","sources":["../src/pattern.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type ExternalObject,\n getHandle,\n type Handle,\n registerWrapperClass,\n registerWrapperClassResolver,\n t,\n wrapHandle,\n type WrapperClassResolver,\n} from \"@gtkx/runtime\";\nimport type { Surface } from \"./surface.js\";\nimport type { ColorStop, LinearPoints, PathData, Point, RadialCircles, RgbaColor } from \"./types.js\";\nimport { type Extend, type Filter, PatternType, type Status } from \"./enums.js\";\nimport {\n bindCairo,\n type BoundFunction,\n cairoGType,\n MATRIX_T,\n PATH_T,\n PATTERN_FULL_T,\n PATTERN_T,\n SURFACE_T,\n} from \"./lib.js\";\nimport { allocMatrix, Matrix } from \"./matrix.js\";\nimport { parsePath } from \"./path.js\";\n\ntype RgbaRefs = [\n red: { value: number },\n green: { value: number },\n blue: { value: number },\n alpha: { value: number },\n];\n\nconst PATTERN_TYPE = cairoGType(\"cairo_gobject_pattern_get_type\");\nconst FOUR_DOUBLES_OUT = [t.ref(t.float64), t.ref(t.float64), t.ref(t.float64), t.ref(t.float64)];\nconst POINT_ARGS = [PATTERN_T, t.float64, t.float64];\nconst cairoPatternCreateRgb = bindCairo(\"cairo_pattern_create_rgb\", [t.float64, t.float64, t.float64], PATTERN_FULL_T);\n\nconst cairoPatternCreateRgba = bindCairo(\n \"cairo_pattern_create_rgba\",\n [t.float64, t.float64, t.float64, t.float64],\n PATTERN_FULL_T,\n);\n\nconst cairoPatternCreateLinear = bindCairo(\n \"cairo_pattern_create_linear\",\n [t.float64, t.float64, t.float64, t.float64],\n PATTERN_FULL_T,\n);\n\nconst cairoPatternCreateRadial = bindCairo(\n \"cairo_pattern_create_radial\",\n [t.float64, t.float64, t.float64, t.float64, t.float64, t.float64],\n PATTERN_FULL_T,\n);\n\nconst cairoPatternCreateMesh = bindCairo(\"cairo_pattern_create_mesh\", [], PATTERN_FULL_T);\nconst cairoPatternCreateForSurface = bindCairo(\"cairo_pattern_create_for_surface\", [SURFACE_T], PATTERN_FULL_T);\n\nconst cairoPatternAddColorStopRgb = bindCairo(\n \"cairo_pattern_add_color_stop_rgb\",\n [PATTERN_T, t.float64, t.float64, t.float64, t.float64],\n t.void,\n);\n\nconst cairoPatternAddColorStopRgba = bindCairo(\n \"cairo_pattern_add_color_stop_rgba\",\n [PATTERN_T, t.float64, t.float64, t.float64, t.float64, t.float64],\n t.void,\n);\n\nconst cairoPatternGetColorStopCount = bindCairo(\n \"cairo_pattern_get_color_stop_count\",\n [PATTERN_T, t.ref(t.int32)],\n t.int32,\n);\n\nconst cairoPatternGetColorStopRgba = bindCairo(\n \"cairo_pattern_get_color_stop_rgba\",\n [PATTERN_T, t.int32, t.ref(t.float64), ...FOUR_DOUBLES_OUT],\n t.int32,\n);\n\nconst cairoPatternGetRgba = bindCairo(\"cairo_pattern_get_rgba\", [PATTERN_T, ...FOUR_DOUBLES_OUT], t.int32);\nconst cairoPatternStatus = bindCairo(\"cairo_pattern_status\", [PATTERN_T], t.int32);\nconst cairoPatternSetExtend = bindCairo(\"cairo_pattern_set_extend\", [PATTERN_T, t.int32], t.void);\nconst cairoPatternGetExtend = bindCairo(\"cairo_pattern_get_extend\", [PATTERN_T], t.int32);\nconst cairoPatternSetFilter = bindCairo(\"cairo_pattern_set_filter\", [PATTERN_T, t.int32], t.void);\nconst cairoPatternGetFilter = bindCairo(\"cairo_pattern_get_filter\", [PATTERN_T], t.int32);\nconst cairoPatternSetMatrix = bindCairo(\"cairo_pattern_set_matrix\", [PATTERN_T, MATRIX_T], t.void);\nconst cairoPatternGetMatrix = bindCairo(\"cairo_pattern_get_matrix\", [PATTERN_T, MATRIX_T], t.void);\nconst cairoPatternGetType = bindCairo(\"cairo_pattern_get_type\", [PATTERN_T], t.int32);\nconst cairoPatternGetReferenceCount = bindCairo(\"cairo_pattern_get_reference_count\", [PATTERN_T], t.int32);\n\nconst cairoPatternGetLinearPoints = bindCairo(\n \"cairo_pattern_get_linear_points\",\n [PATTERN_T, ...FOUR_DOUBLES_OUT],\n t.int32,\n);\n\nconst cairoPatternGetRadialCircles = bindCairo(\n \"cairo_pattern_get_radial_circles\",\n [PATTERN_T, ...FOUR_DOUBLES_OUT, t.ref(t.float64), t.ref(t.float64)],\n t.int32,\n);\n\nconst cairoMeshPatternBeginPatch = bindCairo(\"cairo_mesh_pattern_begin_patch\", [PATTERN_T], t.void);\nconst cairoMeshPatternEndPatch = bindCairo(\"cairo_mesh_pattern_end_patch\", [PATTERN_T], t.void);\nconst cairoMeshPatternMoveTo = bindCairo(\"cairo_mesh_pattern_move_to\", POINT_ARGS, t.void);\nconst cairoMeshPatternLineTo = bindCairo(\"cairo_mesh_pattern_line_to\", POINT_ARGS, t.void);\n\nconst cairoMeshPatternCurveTo = bindCairo(\n \"cairo_mesh_pattern_curve_to\",\n [PATTERN_T, t.float64, t.float64, t.float64, t.float64, t.float64, t.float64],\n t.void,\n);\n\nconst cairoMeshPatternSetControlPoint = bindCairo(\n \"cairo_mesh_pattern_set_control_point\",\n [PATTERN_T, t.int32, t.float64, t.float64],\n t.void,\n);\n\nconst cairoMeshPatternSetCornerColorRgb = bindCairo(\n \"cairo_mesh_pattern_set_corner_color_rgb\",\n [PATTERN_T, t.int32, t.float64, t.float64, t.float64],\n t.void,\n);\n\nconst cairoMeshPatternSetCornerColorRgba = bindCairo(\n \"cairo_mesh_pattern_set_corner_color_rgba\",\n [PATTERN_T, t.int32, t.float64, t.float64, t.float64, t.float64],\n t.void,\n);\n\nconst cairoMeshPatternGetPatchCount = bindCairo(\n \"cairo_mesh_pattern_get_patch_count\",\n [PATTERN_T, t.ref(t.int32)],\n t.int32,\n);\n\nconst cairoMeshPatternGetPath = bindCairo(\"cairo_mesh_pattern_get_path\", [PATTERN_T, t.int32], PATH_T);\n\nconst cairoMeshPatternGetControlPoint = bindCairo(\n \"cairo_mesh_pattern_get_control_point\",\n [PATTERN_T, t.int32, t.int32, t.ref(t.float64), t.ref(t.float64)],\n t.int32,\n);\n\nconst cairoMeshPatternGetCornerColorRgba = bindCairo(\n \"cairo_mesh_pattern_get_corner_color_rgba\",\n [PATTERN_T, t.int32, t.int32, ...FOUR_DOUBLES_OUT],\n t.int32,\n);\n\nconst wrapPattern = (handle: unknown): Pattern => wrapHandle(handle as ExternalObject<Handle>, Pattern);\n\nconst readRgba = (fill: (...refs: RgbaRefs) => void): RgbaColor => {\n const red = { value: 0 };\n const green = { value: 0 };\n const blue = { value: 0 };\n const alpha = { value: 0 };\n fill(red, green, blue, alpha);\n\n return { red: red.value, green: green.value, blue: blue.value, alpha: alpha.value };\n};\n\nconst readCount = (boundFn: BoundFunction, self: object): number => {\n const count = { value: 0 };\n boundFn(getHandle(self), count);\n\n return count.value;\n};\n\nconst patternClassFor: WrapperClassResolver = (handle) => {\n const type = cairoPatternGetType(handle) as PatternType;\n\n if (type === PatternType.LINEAR) {\n return LinearPattern;\n }\n\n if (type === PatternType.RADIAL) {\n return RadialPattern;\n }\n\n if (type === PatternType.MESH) {\n return MeshPattern;\n }\n\n return Pattern;\n};\n\n/**\n * A cairo pattern (`cairo_pattern_t`): the source a context paints with, such as a solid color, a gradient,\n * a mesh or another surface. Patterns come from the `create*` statics or from a context, and wrap as the\n * concrete class their type reports (`instanceof LinearPattern` for a linear gradient).\n */\nabstract class Pattern {\n static {\n registerWrapperClass(this, PATTERN_TYPE);\n registerWrapperClassResolver(this, patternClassFor);\n }\n\n /** Creates an opaque solid-color pattern. */\n static createRgb(red: number, green: number, blue: number): Pattern {\n return wrapPattern(cairoPatternCreateRgb(red, green, blue));\n }\n\n /** Creates a translucent solid-color pattern. */\n static createRgba(red: number, green: number, blue: number, alpha: number): Pattern {\n return wrapPattern(cairoPatternCreateRgba(red, green, blue, alpha));\n }\n\n /** Creates a linear gradient between `(x0, y0)` and `(x1, y1)`; add stops with `addColorStopRgba`. */\n static createLinear(x0: number, y0: number, x1: number, y1: number): LinearPattern {\n return wrapHandle(cairoPatternCreateLinear(x0, y0, x1, y1) as ExternalObject<Handle>, LinearPattern);\n }\n\n /** Creates a radial gradient between two circles; add stops with `addColorStopRgba`. */\n static createRadial(\n cx0: number,\n cy0: number,\n radius0: number,\n cx1: number,\n cy1: number,\n radius1: number,\n ): RadialPattern {\n const handle = cairoPatternCreateRadial(cx0, cy0, radius0, cx1, cy1, radius1) as ExternalObject<Handle>;\n\n return wrapHandle(handle, RadialPattern);\n }\n\n /** Creates an empty mesh gradient; describe its patches with the `MeshPattern` methods. */\n static createMesh(): MeshPattern {\n return wrapHandle(cairoPatternCreateMesh() as ExternalObject<Handle>, MeshPattern);\n }\n\n /** Creates a pattern that paints with the content of `surface`. */\n static createForSurface(surface: Surface): Pattern {\n return wrapPattern(cairoPatternCreateForSurface(getHandle(surface)));\n }\n\n /** GType of `CairoPattern`, the boxed type this class is registered under. */\n declare __type__: bigint;\n\n /** Adds an opaque color stop at `offset` (0 to 1) to a gradient pattern. */\n addColorStopRgb(offset: number, red: number, green: number, blue: number): void {\n cairoPatternAddColorStopRgb(getHandle(this), offset, red, green, blue);\n }\n\n /** Adds a translucent color stop at `offset` (0 to 1) to a gradient pattern. */\n addColorStopRgba(offset: number, red: number, green: number, blue: number, alpha: number): void {\n cairoPatternAddColorStopRgba(getHandle(this), offset, red, green, blue, alpha);\n }\n\n /** Returns how many color stops a gradient pattern has. */\n getColorStopCount(): number {\n return readCount(cairoPatternGetColorStopCount, this);\n }\n\n /** Returns the color stop at `index` of a gradient pattern. */\n getColorStopRgba(index: number): ColorStop {\n const offset = { value: 0 };\n const color = readRgba((...refs) => cairoPatternGetColorStopRgba(getHandle(this), index, offset, ...refs));\n\n return { offset: offset.value, ...color };\n }\n\n /** Returns the color of a solid pattern. */\n getRgba(): RgbaColor {\n return readRgba((...refs) => cairoPatternGetRgba(getHandle(this), ...refs));\n }\n\n /** Returns the error status of the pattern, `Status.SUCCESS` when it is usable. */\n status(): Status {\n return cairoPatternStatus(getHandle(this)) as Status;\n }\n\n /** Sets how the pattern is extended outside its natural area. */\n setExtend(extend: Extend): void {\n cairoPatternSetExtend(getHandle(this), extend);\n }\n\n /** Returns how the pattern is extended outside its natural area. */\n getExtend(): Extend {\n return cairoPatternGetExtend(getHandle(this)) as Extend;\n }\n\n /** Sets the filter used when the pattern is resampled. */\n setFilter(filter: Filter): void {\n cairoPatternSetFilter(getHandle(this), filter);\n }\n\n /** Returns the filter used when the pattern is resampled. */\n getFilter(): Filter {\n return cairoPatternGetFilter(getHandle(this)) as Filter;\n }\n\n /** Sets the transformation from user space to pattern space. */\n setMatrix(matrix: Matrix): void {\n cairoPatternSetMatrix(getHandle(this), getHandle(matrix));\n }\n\n /** Returns the transformation from user space to pattern space. */\n getMatrix(): Matrix {\n const { handle, matrix } = allocMatrix();\n cairoPatternGetMatrix(getHandle(this), handle);\n\n return matrix;\n }\n\n /** Returns the kind of pattern this is. */\n getType(): PatternType {\n return cairoPatternGetType(getHandle(this)) as PatternType;\n }\n\n /** Returns the reference count of the pattern. */\n getReferenceCount(): number {\n return cairoPatternGetReferenceCount(getHandle(this)) as number;\n }\n}\n\n/** A linear gradient pattern, created with `Pattern.createLinear`. */\nclass LinearPattern extends Pattern {\n /** Returns the two end points of the gradient. */\n getLinearPoints(): LinearPoints {\n const x0 = { value: 0 };\n const y0 = { value: 0 };\n const x1 = { value: 0 };\n const y1 = { value: 0 };\n cairoPatternGetLinearPoints(getHandle(this), x0, y0, x1, y1);\n\n return { x0: x0.value, y0: y0.value, x1: x1.value, y1: y1.value };\n }\n}\n\n/** A radial gradient pattern, created with `Pattern.createRadial`. */\nclass RadialPattern extends Pattern {\n /** Returns the two circles of the gradient. */\n getRadialCircles(): RadialCircles {\n const x0 = { value: 0 };\n const y0 = { value: 0 };\n const r0 = { value: 0 };\n const x1 = { value: 0 };\n const y1 = { value: 0 };\n const r1 = { value: 0 };\n cairoPatternGetRadialCircles(getHandle(this), x0, y0, r0, x1, y1, r1);\n\n return { x0: x0.value, y0: y0.value, r0: r0.value, x1: x1.value, y1: y1.value, r1: r1.value };\n }\n}\n\n/**\n * A mesh gradient pattern, created with `Pattern.createMesh`: a set of Coons patches, each described between\n * `beginPatch` and `endPatch` by a path of up to four sides and the colors of its corners.\n */\nclass MeshPattern extends Pattern {\n /** Starts describing a new patch. */\n beginPatch(): void {\n cairoMeshPatternBeginPatch(getHandle(this));\n }\n\n /** Finishes the patch being described. */\n endPatch(): void {\n cairoMeshPatternEndPatch(getHandle(this));\n }\n\n /** Sets the first corner of the patch being described. */\n moveTo(x: number, y: number): void {\n cairoMeshPatternMoveTo(getHandle(this), x, y);\n }\n\n /** Adds a straight side from the previous corner to `(x, y)`. */\n lineTo(x: number, y: number): void {\n cairoMeshPatternLineTo(getHandle(this), x, y);\n }\n\n /** Adds a curved side from the previous corner through two control points to `(x3, y3)`. */\n curveTo(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): void {\n cairoMeshPatternCurveTo(getHandle(this), x1, y1, x2, y2, x3, y3);\n }\n\n /** Sets an interior control point (0 to 3) of the patch being described. */\n setControlPoint(pointNum: number, x: number, y: number): void {\n cairoMeshPatternSetControlPoint(getHandle(this), pointNum, x, y);\n }\n\n /** Sets the opaque color of a corner (0 to 3) of the patch being described. */\n setCornerColorRgb(cornerNum: number, red: number, green: number, blue: number): void {\n cairoMeshPatternSetCornerColorRgb(getHandle(this), cornerNum, red, green, blue);\n }\n\n /** Sets the translucent color of a corner (0 to 3) of the patch being described. */\n setCornerColorRgba(cornerNum: number, red: number, green: number, blue: number, alpha: number): void {\n cairoMeshPatternSetCornerColorRgba(getHandle(this), cornerNum, red, green, blue, alpha);\n }\n\n /** Returns how many patches have been finished. */\n getPatchCount(): number {\n return readCount(cairoMeshPatternGetPatchCount, this);\n }\n\n /** Returns the path around patch `patchNum`. */\n getPath(patchNum: number): PathData[] {\n return parsePath(cairoMeshPatternGetPath(getHandle(this), patchNum) as ExternalObject<Handle>);\n }\n\n /** Returns control point `pointNum` of patch `patchNum`. */\n getControlPoint(patchNum: number, pointNum: number): Point {\n const x = { value: 0 };\n const y = { value: 0 };\n cairoMeshPatternGetControlPoint(getHandle(this), patchNum, pointNum, x, y);\n\n return { x: x.value, y: y.value };\n }\n\n /** Returns the color of corner `cornerNum` of patch `patchNum`. */\n getCornerColorRgba(patchNum: number, cornerNum: number): RgbaColor {\n return readRgba((...refs) => cairoMeshPatternGetCornerColorRgba(getHandle(this), patchNum, cornerNum, ...refs));\n }\n}\n\nexport { LinearPattern, MeshPattern, Pattern, RadialPattern };\n"]}
|
|
1
|
+
{"version":3,"file":"pattern.js","sourceRoot":"","sources":["../src/pattern.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type ExternalObject,\n getHandle,\n type Handle,\n registerWrapperClass,\n registerWrapperClassResolver,\n t,\n wrapHandle,\n type WrapperClassResolver,\n} from \"@gtkx/runtime\";\nimport type { ColorStop, LinearPoints, PathData, Point, RadialCircles, RgbaColor } from \"./types.js\";\nimport { type Extend, type Filter, PatternType, type Status } from \"./enums.js\";\nimport {\n bindCairo,\n type BoundFunction,\n cairoGType,\n MATRIX_T,\n PATH_T,\n PATTERN_FULL_T,\n PATTERN_T,\n SURFACE_T,\n} from \"./lib.js\";\nimport { allocMatrix, Matrix } from \"./matrix.js\";\nimport { parsePath } from \"./path.js\";\nimport { checkStatus } from \"./status.js\";\nimport { Surface } from \"./surface.js\";\n\ntype RgbaRefs = [\n red: { value: number },\n green: { value: number },\n blue: { value: number },\n alpha: { value: number },\n];\n\nconst PATTERN_TYPE = cairoGType(\"cairo_gobject_pattern_get_type\");\nconst FOUR_DOUBLES_OUT = [t.ref(t.float64), t.ref(t.float64), t.ref(t.float64), t.ref(t.float64)];\nconst POINT_ARGS = [PATTERN_T, t.float64, t.float64];\nconst cairoPatternCreateRgb = bindCairo(\"cairo_pattern_create_rgb\", [t.float64, t.float64, t.float64], PATTERN_FULL_T);\n\nconst cairoPatternCreateRgba = bindCairo(\n \"cairo_pattern_create_rgba\",\n [t.float64, t.float64, t.float64, t.float64],\n PATTERN_FULL_T,\n);\n\nconst cairoPatternCreateLinear = bindCairo(\n \"cairo_pattern_create_linear\",\n [t.float64, t.float64, t.float64, t.float64],\n PATTERN_FULL_T,\n);\n\nconst cairoPatternCreateRadial = bindCairo(\n \"cairo_pattern_create_radial\",\n [t.float64, t.float64, t.float64, t.float64, t.float64, t.float64],\n PATTERN_FULL_T,\n);\n\nconst cairoPatternCreateMesh = bindCairo(\"cairo_pattern_create_mesh\", [], PATTERN_FULL_T);\nconst cairoPatternCreateForSurface = bindCairo(\"cairo_pattern_create_for_surface\", [SURFACE_T], PATTERN_FULL_T);\n\nconst cairoPatternAddColorStopRgb = bindCairo(\n \"cairo_pattern_add_color_stop_rgb\",\n [PATTERN_T, t.float64, t.float64, t.float64, t.float64],\n t.void,\n);\n\nconst cairoPatternAddColorStopRgba = bindCairo(\n \"cairo_pattern_add_color_stop_rgba\",\n [PATTERN_T, t.float64, t.float64, t.float64, t.float64, t.float64],\n t.void,\n);\n\nconst cairoPatternGetColorStopCount = bindCairo(\n \"cairo_pattern_get_color_stop_count\",\n [PATTERN_T, t.ref(t.int32)],\n t.int32,\n);\n\nconst cairoPatternGetColorStopRgba = bindCairo(\n \"cairo_pattern_get_color_stop_rgba\",\n [PATTERN_T, t.int32, t.ref(t.float64), ...FOUR_DOUBLES_OUT],\n t.int32,\n);\n\nconst cairoPatternGetRgba = bindCairo(\"cairo_pattern_get_rgba\", [PATTERN_T, ...FOUR_DOUBLES_OUT], t.int32);\nconst cairoPatternStatus = bindCairo(\"cairo_pattern_status\", [PATTERN_T], t.int32);\nconst cairoPatternSetExtend = bindCairo(\"cairo_pattern_set_extend\", [PATTERN_T, t.int32], t.void);\nconst cairoPatternGetExtend = bindCairo(\"cairo_pattern_get_extend\", [PATTERN_T], t.int32);\nconst cairoPatternSetFilter = bindCairo(\"cairo_pattern_set_filter\", [PATTERN_T, t.int32], t.void);\nconst cairoPatternGetFilter = bindCairo(\"cairo_pattern_get_filter\", [PATTERN_T], t.int32);\nconst cairoPatternSetMatrix = bindCairo(\"cairo_pattern_set_matrix\", [PATTERN_T, MATRIX_T], t.void);\nconst cairoPatternGetMatrix = bindCairo(\"cairo_pattern_get_matrix\", [PATTERN_T, MATRIX_T], t.void);\nconst cairoPatternGetType = bindCairo(\"cairo_pattern_get_type\", [PATTERN_T], t.int32);\nconst cairoPatternGetReferenceCount = bindCairo(\"cairo_pattern_get_reference_count\", [PATTERN_T], t.int32);\nconst cairoPatternGetSurface = bindCairo(\"cairo_pattern_get_surface\", [PATTERN_T, t.ref(SURFACE_T)], t.int32);\n\nconst cairoPatternGetLinearPoints = bindCairo(\n \"cairo_pattern_get_linear_points\",\n [PATTERN_T, ...FOUR_DOUBLES_OUT],\n t.int32,\n);\n\nconst cairoPatternGetRadialCircles = bindCairo(\n \"cairo_pattern_get_radial_circles\",\n [PATTERN_T, ...FOUR_DOUBLES_OUT, t.ref(t.float64), t.ref(t.float64)],\n t.int32,\n);\n\nconst cairoMeshPatternBeginPatch = bindCairo(\"cairo_mesh_pattern_begin_patch\", [PATTERN_T], t.void);\nconst cairoMeshPatternEndPatch = bindCairo(\"cairo_mesh_pattern_end_patch\", [PATTERN_T], t.void);\nconst cairoMeshPatternMoveTo = bindCairo(\"cairo_mesh_pattern_move_to\", POINT_ARGS, t.void);\nconst cairoMeshPatternLineTo = bindCairo(\"cairo_mesh_pattern_line_to\", POINT_ARGS, t.void);\n\nconst cairoMeshPatternCurveTo = bindCairo(\n \"cairo_mesh_pattern_curve_to\",\n [PATTERN_T, t.float64, t.float64, t.float64, t.float64, t.float64, t.float64],\n t.void,\n);\n\nconst cairoMeshPatternSetControlPoint = bindCairo(\n \"cairo_mesh_pattern_set_control_point\",\n [PATTERN_T, t.int32, t.float64, t.float64],\n t.void,\n);\n\nconst cairoMeshPatternSetCornerColorRgb = bindCairo(\n \"cairo_mesh_pattern_set_corner_color_rgb\",\n [PATTERN_T, t.int32, t.float64, t.float64, t.float64],\n t.void,\n);\n\nconst cairoMeshPatternSetCornerColorRgba = bindCairo(\n \"cairo_mesh_pattern_set_corner_color_rgba\",\n [PATTERN_T, t.int32, t.float64, t.float64, t.float64, t.float64],\n t.void,\n);\n\nconst cairoMeshPatternGetPatchCount = bindCairo(\n \"cairo_mesh_pattern_get_patch_count\",\n [PATTERN_T, t.ref(t.int32)],\n t.int32,\n);\n\nconst cairoMeshPatternGetPath = bindCairo(\"cairo_mesh_pattern_get_path\", [PATTERN_T, t.int32], PATH_T);\n\nconst cairoMeshPatternGetControlPoint = bindCairo(\n \"cairo_mesh_pattern_get_control_point\",\n [PATTERN_T, t.int32, t.int32, t.ref(t.float64), t.ref(t.float64)],\n t.int32,\n);\n\nconst cairoMeshPatternGetCornerColorRgba = bindCairo(\n \"cairo_mesh_pattern_get_corner_color_rgba\",\n [PATTERN_T, t.int32, t.int32, ...FOUR_DOUBLES_OUT],\n t.int32,\n);\n\nconst wrapPattern = (handle: unknown): Pattern => wrapHandle(handle as ExternalObject<Handle>, Pattern);\n\nconst checkPattern = <T extends Pattern>(pattern: T): T => {\n checkStatus(pattern.status(), \"pattern\");\n\n return pattern;\n};\n\nconst readRgba = (fill: (...refs: RgbaRefs) => void): RgbaColor => {\n const red = { value: 0 };\n const green = { value: 0 };\n const blue = { value: 0 };\n const alpha = { value: 0 };\n fill(red, green, blue, alpha);\n\n return { red: red.value, green: green.value, blue: blue.value, alpha: alpha.value };\n};\n\nconst readCount = (boundFn: BoundFunction, self: object): number => {\n const count = { value: 0 };\n boundFn(getHandle(self), count);\n\n return count.value;\n};\n\nconst patternClassFor: WrapperClassResolver = (handle) => {\n const type = cairoPatternGetType(handle) as PatternType;\n\n if (type === PatternType.LINEAR) {\n return LinearPattern;\n }\n\n if (type === PatternType.RADIAL) {\n return RadialPattern;\n }\n\n if (type === PatternType.MESH) {\n return MeshPattern;\n }\n\n return Pattern;\n};\n\n/**\n * A cairo pattern (`cairo_pattern_t`): the source a context paints with, such as a solid color, a gradient,\n * a mesh or another surface. Patterns come from the `create*` statics or from a context, and wrap as the\n * concrete class their type reports (`instanceof LinearPattern` for a linear gradient).\n */\nabstract class Pattern {\n static {\n registerWrapperClass(this, PATTERN_TYPE);\n registerWrapperClassResolver(this, patternClassFor);\n }\n\n /** Creates an opaque solid-color pattern. */\n static createRgb(red: number, green: number, blue: number): Pattern {\n return checkPattern(wrapPattern(cairoPatternCreateRgb(red, green, blue)));\n }\n\n /** Creates a translucent solid-color pattern. */\n static createRgba(red: number, green: number, blue: number, alpha: number): Pattern {\n return checkPattern(wrapPattern(cairoPatternCreateRgba(red, green, blue, alpha)));\n }\n\n /** Creates a linear gradient between `(x0, y0)` and `(x1, y1)`; add stops with `addColorStopRgba`. */\n static createLinear(x0: number, y0: number, x1: number, y1: number): LinearPattern {\n const handle = cairoPatternCreateLinear(x0, y0, x1, y1) as ExternalObject<Handle>;\n\n return checkPattern(wrapHandle(handle, LinearPattern));\n }\n\n /** Creates a radial gradient between two circles; add stops with `addColorStopRgba`. */\n static createRadial(\n cx0: number,\n cy0: number,\n radius0: number,\n cx1: number,\n cy1: number,\n radius1: number,\n ): RadialPattern {\n const handle = cairoPatternCreateRadial(cx0, cy0, radius0, cx1, cy1, radius1) as ExternalObject<Handle>;\n\n return checkPattern(wrapHandle(handle, RadialPattern));\n }\n\n /** Creates an empty mesh gradient; describe its patches with the `MeshPattern` methods. */\n static createMesh(): MeshPattern {\n return checkPattern(wrapHandle(cairoPatternCreateMesh() as ExternalObject<Handle>, MeshPattern));\n }\n\n /** Creates a pattern that paints with the content of `surface`. */\n static createForSurface(surface: Surface): Pattern {\n const handle = getHandle(surface);\n\n return checkPattern(wrapPattern(cairoPatternCreateForSurface(handle)));\n }\n\n /** GType of `CairoPattern`, the boxed type this class is registered under. */\n declare __type__: bigint;\n\n /** Adds an opaque color stop at `offset` (0 to 1) to a gradient pattern. */\n addColorStopRgb(offset: number, red: number, green: number, blue: number): void {\n cairoPatternAddColorStopRgb(getHandle(this), offset, red, green, blue);\n }\n\n /** Adds a translucent color stop at `offset` (0 to 1) to a gradient pattern. */\n addColorStopRgba(offset: number, red: number, green: number, blue: number, alpha: number): void {\n cairoPatternAddColorStopRgba(getHandle(this), offset, red, green, blue, alpha);\n }\n\n /** Returns how many color stops a gradient pattern has. */\n getColorStopCount(): number {\n return readCount(cairoPatternGetColorStopCount, this);\n }\n\n /** Returns the color stop at `index` of a gradient pattern. */\n getColorStopRgba(index: number): ColorStop {\n const offset = { value: 0 };\n const color = readRgba((...refs) => cairoPatternGetColorStopRgba(getHandle(this), index, offset, ...refs));\n\n return { offset: offset.value, ...color };\n }\n\n /** Returns the color of a solid pattern. */\n getRgba(): RgbaColor {\n return readRgba((...refs) => cairoPatternGetRgba(getHandle(this), ...refs));\n }\n\n /** Returns the error status of the pattern, `Status.SUCCESS` when it is usable. */\n status(): Status {\n return cairoPatternStatus(getHandle(this)) as Status;\n }\n\n /** Sets how the pattern is extended outside its natural area. */\n setExtend(extend: Extend): void {\n cairoPatternSetExtend(getHandle(this), extend);\n }\n\n /** Returns how the pattern is extended outside its natural area. */\n getExtend(): Extend {\n return cairoPatternGetExtend(getHandle(this)) as Extend;\n }\n\n /** Sets the filter used when the pattern is resampled. */\n setFilter(filter: Filter): void {\n cairoPatternSetFilter(getHandle(this), filter);\n }\n\n /** Returns the filter used when the pattern is resampled. */\n getFilter(): Filter {\n return cairoPatternGetFilter(getHandle(this)) as Filter;\n }\n\n /** Sets the transformation from user space to pattern space. */\n setMatrix(matrix: Matrix): void {\n cairoPatternSetMatrix(getHandle(this), getHandle(matrix));\n }\n\n /** Returns the transformation from user space to pattern space. */\n getMatrix(): Matrix {\n const { handle, matrix } = allocMatrix();\n cairoPatternGetMatrix(getHandle(this), handle);\n\n return matrix;\n }\n\n /** Returns the kind of pattern this is. */\n getType(): PatternType {\n return cairoPatternGetType(getHandle(this)) as PatternType;\n }\n\n /** Returns the reference count of the pattern. */\n getReferenceCount(): number {\n return cairoPatternGetReferenceCount(getHandle(this)) as number;\n }\n\n /** Returns the surface of a surface pattern; throws for a pattern that has no surface. */\n getSurface(): Surface {\n const surface: { value: ExternalObject<Handle> | null } = { value: null };\n checkStatus(cairoPatternGetSurface(getHandle(this), surface) as Status, \"pattern\");\n\n if (surface.value === null) {\n throw new Error(\"cairo pattern has no surface\");\n }\n\n return wrapHandle(surface.value, Surface);\n }\n}\n\n/** A linear gradient pattern, created with `Pattern.createLinear`. */\nclass LinearPattern extends Pattern {\n /** Returns the two end points of the gradient. */\n getLinearPoints(): LinearPoints {\n const x0 = { value: 0 };\n const y0 = { value: 0 };\n const x1 = { value: 0 };\n const y1 = { value: 0 };\n cairoPatternGetLinearPoints(getHandle(this), x0, y0, x1, y1);\n\n return { x0: x0.value, y0: y0.value, x1: x1.value, y1: y1.value };\n }\n}\n\n/** A radial gradient pattern, created with `Pattern.createRadial`. */\nclass RadialPattern extends Pattern {\n /** Returns the two circles of the gradient. */\n getRadialCircles(): RadialCircles {\n const x0 = { value: 0 };\n const y0 = { value: 0 };\n const r0 = { value: 0 };\n const x1 = { value: 0 };\n const y1 = { value: 0 };\n const r1 = { value: 0 };\n cairoPatternGetRadialCircles(getHandle(this), x0, y0, r0, x1, y1, r1);\n\n return { x0: x0.value, y0: y0.value, r0: r0.value, x1: x1.value, y1: y1.value, r1: r1.value };\n }\n}\n\n/**\n * A mesh gradient pattern, created with `Pattern.createMesh`: a set of Coons patches, each described between\n * `beginPatch` and `endPatch` by a path of up to four sides and the colors of its corners.\n */\nclass MeshPattern extends Pattern {\n /** Starts describing a new patch. */\n beginPatch(): void {\n cairoMeshPatternBeginPatch(getHandle(this));\n }\n\n /** Finishes the patch being described. */\n endPatch(): void {\n cairoMeshPatternEndPatch(getHandle(this));\n }\n\n /** Sets the first corner of the patch being described. */\n moveTo(x: number, y: number): void {\n cairoMeshPatternMoveTo(getHandle(this), x, y);\n }\n\n /** Adds a straight side from the previous corner to `(x, y)`. */\n lineTo(x: number, y: number): void {\n cairoMeshPatternLineTo(getHandle(this), x, y);\n }\n\n /** Adds a curved side from the previous corner through two control points to `(x3, y3)`. */\n curveTo(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): void {\n cairoMeshPatternCurveTo(getHandle(this), x1, y1, x2, y2, x3, y3);\n }\n\n /** Sets an interior control point (0 to 3) of the patch being described. */\n setControlPoint(pointNum: number, x: number, y: number): void {\n cairoMeshPatternSetControlPoint(getHandle(this), pointNum, x, y);\n }\n\n /** Sets the opaque color of a corner (0 to 3) of the patch being described. */\n setCornerColorRgb(cornerNum: number, red: number, green: number, blue: number): void {\n cairoMeshPatternSetCornerColorRgb(getHandle(this), cornerNum, red, green, blue);\n }\n\n /** Sets the translucent color of a corner (0 to 3) of the patch being described. */\n setCornerColorRgba(cornerNum: number, red: number, green: number, blue: number, alpha: number): void {\n cairoMeshPatternSetCornerColorRgba(getHandle(this), cornerNum, red, green, blue, alpha);\n }\n\n /** Returns how many patches have been finished. */\n getPatchCount(): number {\n return readCount(cairoMeshPatternGetPatchCount, this);\n }\n\n /** Returns the path around patch `patchNum`. */\n getPath(patchNum: number): PathData[] {\n return parsePath(cairoMeshPatternGetPath(getHandle(this), patchNum) as ExternalObject<Handle>);\n }\n\n /** Returns control point `pointNum` of patch `patchNum`. */\n getControlPoint(patchNum: number, pointNum: number): Point {\n const x = { value: 0 };\n const y = { value: 0 };\n cairoMeshPatternGetControlPoint(getHandle(this), patchNum, pointNum, x, y);\n\n return { x: x.value, y: y.value };\n }\n\n /** Returns the color of corner `cornerNum` of patch `patchNum`. */\n getCornerColorRgba(patchNum: number, cornerNum: number): RgbaColor {\n return readRgba((...refs) => cairoMeshPatternGetCornerColorRgba(getHandle(this), patchNum, cornerNum, ...refs));\n }\n}\n\nexport { LinearPattern, MeshPattern, Pattern, RadialPattern };\n"]}
|
package/dist/status.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ExternalObject, Handle } from "@gtkx/runtime";
|
|
2
|
+
import { Status } from "./enums.js";
|
|
3
|
+
declare const checkStatus: (status: Status, subject: string) => void;
|
|
4
|
+
declare const checkSurface: (handle: ExternalObject<Handle>) => ExternalObject<Handle>;
|
|
5
|
+
export { checkStatus, checkSurface };
|
|
6
|
+
//# sourceMappingURL=status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAMpC,QAAA,MAAM,WAAW,GAAI,QAAQ,MAAM,EAAE,SAAS,MAAM,KAAG,IAMtD,CAAC;AAEF,QAAA,MAAM,YAAY,GAAI,QAAQ,cAAc,CAAC,MAAM,CAAC,KAAG,cAAc,CAAC,MAAM,CAI3E,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/status.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { t } from "@gtkx/runtime";
|
|
2
|
+
import { Status } from "./enums.js";
|
|
3
|
+
import { bindCairo, SURFACE_T } from "./lib.js";
|
|
4
|
+
import { statusToString } from "./version.js";
|
|
5
|
+
const cairoSurfaceStatus = bindCairo("cairo_surface_status", [SURFACE_T], t.int32);
|
|
6
|
+
const checkStatus = (status, subject) => {
|
|
7
|
+
if (status === Status.SUCCESS) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
throw new Error(`cairo error on ${subject}: "${statusToString(status)}" (${String(status)})`);
|
|
11
|
+
};
|
|
12
|
+
const checkSurface = (handle) => {
|
|
13
|
+
checkStatus(cairoSurfaceStatus(handle), "surface");
|
|
14
|
+
return handle;
|
|
15
|
+
};
|
|
16
|
+
export { checkStatus, checkSurface };
|
|
17
|
+
//# sourceMappingURL=status.js.map
|