@gtkx/cairo 1.3.0 → 1.4.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/dist/lib.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,CAAC,EAAE,MAAM,eAAe,CAAC;AAE/C,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/C,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;AAKlD,QAAA,MAAM,SAAS,EAAE,eAIf,CAAC;AAEH,QAAA,MAAM,cAAc,EAAE,eAIpB,CAAC;AAEH,QAAA,MAAM,SAAS,EAAE,eAIf,CAAC;AAEH,QAAA,MAAM,cAAc,EAAE,eAIpB,CAAC;AAEH,QAAA,MAAM,QAAQ,EAAE,eAId,CAAC;AAEH,QAAA,MAAM,SAAS,EAAE,eAIf,CAAC;AAEH,QAAA,MAAM,cAAc,EAAE,eAIpB,CAAC;AAEH,QAAA,MAAM,QAAQ,EAAE,eAId,CAAC;AAEH,QAAA,MAAM,aAAa,EAAE,eAInB,CAAC;AAEH,QAAA,MAAM,cAAc,EAAE,eAIpB,CAAC;AAEH,QAAA,MAAM,mBAAmB,EAAE,eAIzB,CAAC;AAEH,QAAA,MAAM,WAAW,EAAE,eAIjB,CAAC;AAEH,QAAA,MAAM,gBAAgB,EAAE,eAItB,CAAC;AAEH,QAAA,MAAM,aAAa,EAAE,eAInB,CAAC;AAEH,QAAA,MAAM,kBAAkB,EAAE,eAIxB,CAAC;AAEH,QAAA,MAAM,YAAY,EAAE,eAA+F,CAAC;AACpH,QAAA,MAAM,SAAS,EAAE,eAA6F,CAAC;AAC/G,QAAA,MAAM,QAAQ,EAAE,eAAoG,CAAC;AAErH,QAAA,MAAM,WAAW,EAAE,eAGjB,CAAC;AAEH,QAAA,MAAM,eAAe,EAAE,eAGrB,CAAC;AAEH,QAAA,MAAM,qBAAqB,EAAE,eAG3B,CAAC;AAEH,QAAA,MAAM,gBAAgB,EAAE,eAGtB,CAAC;AAEH,QAAA,MAAM,OAAO,EAAE,eAAmG,CAAC;AAEnH,QAAA,MAAM,cAAc,EAAE,eAGpB,CAAC;AAEH,QAAA,MAAM,cAAc,EAAE,eAGpB,CAAC;AAEH,QAAA,MAAM,cAAc,EAAE,eAGpB,CAAC;AAEH,QAAA,MAAM,MAAM,EAAE,eAIZ,CAAC;AAEH,QAAA,MAAM,eAAe,EAAE,eAA8F,CAAC;AAEtH,QAAA,MAAM,SAAS,GAAI,QAAQ,MAAM,EAAE,MAAM,UAAU,EAAE,EAAE,SAAS,UAAU,KAAG,aAC7B,CAAC;AAEjD,QAAA,MAAM,UAAU,GAAI,YAAY,MAAM,KAAG,MAAwD,CAAC;AAElG,OAAO,EACH,SAAS,EACT,KAAK,aAAa,EAClB,UAAU,EACV,cAAc,EACd,SAAS,EACT,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,SAAS,EACT,OAAO,EACP,QAAQ,EACR,MAAM,EACN,cAAc,EACd,SAAS,EACT,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,SAAS,EACT,cAAc,EACd,cAAc,GACjB,CAAC"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,CAAC,EAAE,MAAM,eAAe,CAAC;AAE/C,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/C,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;AAKlD,QAAA,MAAM,SAAS,EAAE,eAIf,CAAC;AAEH,QAAA,MAAM,cAAc,EAAE,eAIpB,CAAC;AAEH,QAAA,MAAM,SAAS,EAAE,eAIf,CAAC;AAEH,QAAA,MAAM,cAAc,EAAE,eAIpB,CAAC;AAEH,QAAA,MAAM,QAAQ,EAAE,eAId,CAAC;AAEH,QAAA,MAAM,SAAS,EAAE,eAIf,CAAC;AAEH,QAAA,MAAM,cAAc,EAAE,eAIpB,CAAC;AAEH,QAAA,MAAM,QAAQ,EAAE,eAId,CAAC;AAEH,QAAA,MAAM,aAAa,EAAE,eAInB,CAAC;AAEH,QAAA,MAAM,cAAc,EAAE,eAIpB,CAAC;AAEH,QAAA,MAAM,mBAAmB,EAAE,eAIzB,CAAC;AAEH,QAAA,MAAM,WAAW,EAAE,eAIjB,CAAC;AAEH,QAAA,MAAM,gBAAgB,EAAE,eAItB,CAAC;AAEH,QAAA,MAAM,aAAa,EAAE,eAInB,CAAC;AAEH,QAAA,MAAM,kBAAkB,EAAE,eAIxB,CAAC;AAEH,QAAA,MAAM,QAAQ,EAAE,eAAoG,CAAC;AAErH,QAAA,MAAM,WAAW,EAAE,eAGjB,CAAC;AAEH,QAAA,MAAM,eAAe,EAAE,eAGrB,CAAC;AAEH,QAAA,MAAM,qBAAqB,EAAE,eAG3B,CAAC;AAEH,QAAA,MAAM,gBAAgB,EAAE,eAItB,CAAC;AAEH,QAAA,MAAM,OAAO,EAAE,eAAmG,CAAC;AAEnH,QAAA,MAAM,cAAc,EAAE,eAGpB,CAAC;AAEH,QAAA,MAAM,cAAc,EAAE,eAGpB,CAAC;AAEH,QAAA,MAAM,cAAc,EAAE,eAGpB,CAAC;AAEH,QAAA,MAAM,MAAM,EAAE,eAIZ,CAAC;AAEH,QAAA,MAAM,eAAe,EAAE,eAA8F,CAAC;AAEtH,QAAA,MAAM,SAAS,GAAI,QAAQ,MAAM,EAAE,MAAM,UAAU,EAAE,EAAE,SAAS,UAAU,KAAG,aAC7B,CAAC;AAEjD,QAAA,MAAM,UAAU,GAAI,YAAY,MAAM,KAAG,MAAwD,CAAC;AAElG,OAAO,EACH,SAAS,EACT,KAAK,aAAa,EAClB,UAAU,EACV,cAAc,EACd,SAAS,EACT,QAAQ,EACR,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,OAAO,EACP,QAAQ,EACR,MAAM,EACN,cAAc,EACd,SAAS,EACT,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,SAAS,EACT,cAAc,EACd,cAAc,GACjB,CAAC"}
package/dist/lib.js CHANGED
@@ -76,8 +76,6 @@ const SCALED_FONT_FULL_T = t.boxed("CairoScaledFont", {
76
76
  sharedLibrary: CAIRO_GOBJECT_LIBRARY,
77
77
  getTypeFnName: "cairo_gobject_scaled_font_get_type",
78
78
  });
79
- const FC_PATTERN_T = t.boxed("FcPattern", { ownership: "borrowed", sharedLibrary: CAIRO_LIBRARY });
80
- const FT_FACE_T = t.boxed("FT_Face", { ownership: "borrowed", sharedLibrary: CAIRO_LIBRARY });
81
79
  const MATRIX_T = t.boxed("cairo_matrix_t", { ownership: "borrowed", sharedLibrary: CAIRO_LIBRARY });
82
80
  const RECTANGLE_T = t.boxed("cairo_rectangle_t", {
83
81
  ownership: "borrowed",
@@ -92,8 +90,9 @@ const RECTANGLE_INT_ARRAY_T = t.boxed("cairo_rectangle_int_t[]", {
92
90
  sharedLibrary: CAIRO_LIBRARY,
93
91
  });
94
92
  const RECTANGLE_LIST_T = t.boxed("cairo_rectangle_list_t", {
95
- ownership: "borrowed",
93
+ ownership: "full",
96
94
  sharedLibrary: CAIRO_LIBRARY,
95
+ freeFnName: "cairo_rectangle_list_destroy",
97
96
  });
98
97
  const GLYPH_T = t.boxed("cairo_glyph_t", { ownership: "borrowed", sharedLibrary: CAIRO_LIBRARY });
99
98
  const TEXT_CLUSTER_T = t.boxed("cairo_text_cluster_t", {
@@ -116,5 +115,5 @@ const PATH_T = t.boxed("cairo_path_t", {
116
115
  const DOUBLE_BUFFER_T = t.boxed("double[]", { ownership: "borrowed", sharedLibrary: CAIRO_LIBRARY });
117
116
  const bindCairo = (symbol, args, returns) => t.bind(CAIRO_LIBRARY, symbol, args, returns);
118
117
  const cairoGType = (typeSymbol) => resolveType(CAIRO_GOBJECT_LIBRARY, typeSymbol);
119
- export { bindCairo, cairoGType, CONTEXT_FULL_T, CONTEXT_T, DEVICE_T, DOUBLE_BUFFER_T, FC_PATTERN_T, FONT_EXTENTS_T, FONT_FACE_FULL_T, FONT_FACE_T, FONT_OPTIONS_FULL_T, FONT_OPTIONS_T, FT_FACE_T, GLYPH_T, MATRIX_T, PATH_T, PATTERN_FULL_T, PATTERN_T, RECTANGLE_INT_ARRAY_T, RECTANGLE_INT_T, RECTANGLE_LIST_T, RECTANGLE_T, REGION_FULL_T, REGION_T, SCALED_FONT_FULL_T, SCALED_FONT_T, SURFACE_FULL_T, SURFACE_T, TEXT_CLUSTER_T, TEXT_EXTENTS_T, };
118
+ export { bindCairo, cairoGType, CONTEXT_FULL_T, CONTEXT_T, DEVICE_T, DOUBLE_BUFFER_T, FONT_EXTENTS_T, FONT_FACE_FULL_T, FONT_FACE_T, FONT_OPTIONS_FULL_T, FONT_OPTIONS_T, GLYPH_T, MATRIX_T, PATH_T, PATTERN_FULL_T, PATTERN_T, RECTANGLE_INT_ARRAY_T, RECTANGLE_INT_T, RECTANGLE_LIST_T, RECTANGLE_T, REGION_FULL_T, REGION_T, SCALED_FONT_FULL_T, SCALED_FONT_T, SURFACE_FULL_T, SURFACE_T, TEXT_CLUSTER_T, TEXT_EXTENTS_T, };
120
119
  //# sourceMappingURL=lib.js.map
package/dist/lib.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolveType, t } from \"@gtkx/runtime\";\n\ntype Descriptor = Parameters<typeof t.bind>[3];\ntype BoundFunction = ReturnType<typeof t.bind>;\ntype BoxedDescriptor = ReturnType<typeof t.boxed>;\n\nconst CAIRO_LIBRARY = \"libcairo.so.2\";\nconst CAIRO_GOBJECT_LIBRARY = \"libcairo-gobject.so.2\";\n\nconst CONTEXT_T: BoxedDescriptor = t.boxed(\"CairoContext\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_context_get_type\",\n});\n\nconst CONTEXT_FULL_T: BoxedDescriptor = t.boxed(\"CairoContext\", {\n ownership: \"full\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_context_get_type\",\n});\n\nconst SURFACE_T: BoxedDescriptor = t.boxed(\"CairoSurface\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_surface_get_type\",\n});\n\nconst SURFACE_FULL_T: BoxedDescriptor = t.boxed(\"CairoSurface\", {\n ownership: \"full\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_surface_get_type\",\n});\n\nconst DEVICE_T: BoxedDescriptor = t.boxed(\"CairoDevice\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_device_get_type\",\n});\n\nconst PATTERN_T: BoxedDescriptor = t.boxed(\"CairoPattern\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_pattern_get_type\",\n});\n\nconst PATTERN_FULL_T: BoxedDescriptor = t.boxed(\"CairoPattern\", {\n ownership: \"full\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_pattern_get_type\",\n});\n\nconst REGION_T: BoxedDescriptor = t.boxed(\"CairoRegion\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_region_get_type\",\n});\n\nconst REGION_FULL_T: BoxedDescriptor = t.boxed(\"CairoRegion\", {\n ownership: \"full\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_region_get_type\",\n});\n\nconst FONT_OPTIONS_T: BoxedDescriptor = t.boxed(\"CairoFontOptions\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_font_options_get_type\",\n});\n\nconst FONT_OPTIONS_FULL_T: BoxedDescriptor = t.boxed(\"CairoFontOptions\", {\n ownership: \"full\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_font_options_get_type\",\n});\n\nconst FONT_FACE_T: BoxedDescriptor = t.boxed(\"CairoFontFace\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_font_face_get_type\",\n});\n\nconst FONT_FACE_FULL_T: BoxedDescriptor = t.boxed(\"CairoFontFace\", {\n ownership: \"full\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_font_face_get_type\",\n});\n\nconst SCALED_FONT_T: BoxedDescriptor = t.boxed(\"CairoScaledFont\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_scaled_font_get_type\",\n});\n\nconst SCALED_FONT_FULL_T: BoxedDescriptor = t.boxed(\"CairoScaledFont\", {\n ownership: \"full\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_scaled_font_get_type\",\n});\n\nconst FC_PATTERN_T: BoxedDescriptor = t.boxed(\"FcPattern\", { ownership: \"borrowed\", sharedLibrary: CAIRO_LIBRARY });\nconst FT_FACE_T: BoxedDescriptor = t.boxed(\"FT_Face\", { ownership: \"borrowed\", sharedLibrary: CAIRO_LIBRARY });\nconst MATRIX_T: BoxedDescriptor = t.boxed(\"cairo_matrix_t\", { ownership: \"borrowed\", sharedLibrary: CAIRO_LIBRARY });\n\nconst RECTANGLE_T: BoxedDescriptor = t.boxed(\"cairo_rectangle_t\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_LIBRARY,\n});\n\nconst RECTANGLE_INT_T: BoxedDescriptor = t.boxed(\"cairo_rectangle_int_t\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_LIBRARY,\n});\n\nconst RECTANGLE_INT_ARRAY_T: BoxedDescriptor = t.boxed(\"cairo_rectangle_int_t[]\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_LIBRARY,\n});\n\nconst RECTANGLE_LIST_T: BoxedDescriptor = t.boxed(\"cairo_rectangle_list_t\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_LIBRARY,\n});\n\nconst GLYPH_T: BoxedDescriptor = t.boxed(\"cairo_glyph_t\", { ownership: \"borrowed\", sharedLibrary: CAIRO_LIBRARY });\n\nconst TEXT_CLUSTER_T: BoxedDescriptor = t.boxed(\"cairo_text_cluster_t\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_LIBRARY,\n});\n\nconst TEXT_EXTENTS_T: BoxedDescriptor = t.boxed(\"cairo_text_extents_t\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_LIBRARY,\n});\n\nconst FONT_EXTENTS_T: BoxedDescriptor = t.boxed(\"cairo_font_extents_t\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_LIBRARY,\n});\n\nconst PATH_T: BoxedDescriptor = t.boxed(\"cairo_path_t\", {\n ownership: \"full\",\n sharedLibrary: CAIRO_LIBRARY,\n freeFnName: \"cairo_path_destroy\",\n});\n\nconst DOUBLE_BUFFER_T: BoxedDescriptor = t.boxed(\"double[]\", { ownership: \"borrowed\", sharedLibrary: CAIRO_LIBRARY });\n\nconst bindCairo = (symbol: string, args: Descriptor[], returns: Descriptor): BoundFunction =>\n t.bind(CAIRO_LIBRARY, symbol, args, returns);\n\nconst cairoGType = (typeSymbol: string): bigint => resolveType(CAIRO_GOBJECT_LIBRARY, typeSymbol);\n\nexport {\n bindCairo,\n type BoundFunction,\n cairoGType,\n CONTEXT_FULL_T,\n CONTEXT_T,\n DEVICE_T,\n DOUBLE_BUFFER_T,\n FC_PATTERN_T,\n FONT_EXTENTS_T,\n FONT_FACE_FULL_T,\n FONT_FACE_T,\n FONT_OPTIONS_FULL_T,\n FONT_OPTIONS_T,\n FT_FACE_T,\n GLYPH_T,\n MATRIX_T,\n PATH_T,\n PATTERN_FULL_T,\n PATTERN_T,\n RECTANGLE_INT_ARRAY_T,\n RECTANGLE_INT_T,\n RECTANGLE_LIST_T,\n RECTANGLE_T,\n REGION_FULL_T,\n REGION_T,\n SCALED_FONT_FULL_T,\n SCALED_FONT_T,\n SURFACE_FULL_T,\n SURFACE_T,\n TEXT_CLUSTER_T,\n TEXT_EXTENTS_T,\n};\n"]}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolveType, t } from \"@gtkx/runtime\";\n\ntype Descriptor = Parameters<typeof t.bind>[3];\ntype BoundFunction = ReturnType<typeof t.bind>;\ntype BoxedDescriptor = ReturnType<typeof t.boxed>;\n\nconst CAIRO_LIBRARY = \"libcairo.so.2\";\nconst CAIRO_GOBJECT_LIBRARY = \"libcairo-gobject.so.2\";\n\nconst CONTEXT_T: BoxedDescriptor = t.boxed(\"CairoContext\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_context_get_type\",\n});\n\nconst CONTEXT_FULL_T: BoxedDescriptor = t.boxed(\"CairoContext\", {\n ownership: \"full\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_context_get_type\",\n});\n\nconst SURFACE_T: BoxedDescriptor = t.boxed(\"CairoSurface\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_surface_get_type\",\n});\n\nconst SURFACE_FULL_T: BoxedDescriptor = t.boxed(\"CairoSurface\", {\n ownership: \"full\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_surface_get_type\",\n});\n\nconst DEVICE_T: BoxedDescriptor = t.boxed(\"CairoDevice\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_device_get_type\",\n});\n\nconst PATTERN_T: BoxedDescriptor = t.boxed(\"CairoPattern\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_pattern_get_type\",\n});\n\nconst PATTERN_FULL_T: BoxedDescriptor = t.boxed(\"CairoPattern\", {\n ownership: \"full\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_pattern_get_type\",\n});\n\nconst REGION_T: BoxedDescriptor = t.boxed(\"CairoRegion\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_region_get_type\",\n});\n\nconst REGION_FULL_T: BoxedDescriptor = t.boxed(\"CairoRegion\", {\n ownership: \"full\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_region_get_type\",\n});\n\nconst FONT_OPTIONS_T: BoxedDescriptor = t.boxed(\"CairoFontOptions\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_font_options_get_type\",\n});\n\nconst FONT_OPTIONS_FULL_T: BoxedDescriptor = t.boxed(\"CairoFontOptions\", {\n ownership: \"full\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_font_options_get_type\",\n});\n\nconst FONT_FACE_T: BoxedDescriptor = t.boxed(\"CairoFontFace\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_font_face_get_type\",\n});\n\nconst FONT_FACE_FULL_T: BoxedDescriptor = t.boxed(\"CairoFontFace\", {\n ownership: \"full\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_font_face_get_type\",\n});\n\nconst SCALED_FONT_T: BoxedDescriptor = t.boxed(\"CairoScaledFont\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_scaled_font_get_type\",\n});\n\nconst SCALED_FONT_FULL_T: BoxedDescriptor = t.boxed(\"CairoScaledFont\", {\n ownership: \"full\",\n sharedLibrary: CAIRO_GOBJECT_LIBRARY,\n getTypeFnName: \"cairo_gobject_scaled_font_get_type\",\n});\n\nconst MATRIX_T: BoxedDescriptor = t.boxed(\"cairo_matrix_t\", { ownership: \"borrowed\", sharedLibrary: CAIRO_LIBRARY });\n\nconst RECTANGLE_T: BoxedDescriptor = t.boxed(\"cairo_rectangle_t\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_LIBRARY,\n});\n\nconst RECTANGLE_INT_T: BoxedDescriptor = t.boxed(\"cairo_rectangle_int_t\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_LIBRARY,\n});\n\nconst RECTANGLE_INT_ARRAY_T: BoxedDescriptor = t.boxed(\"cairo_rectangle_int_t[]\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_LIBRARY,\n});\n\nconst RECTANGLE_LIST_T: BoxedDescriptor = t.boxed(\"cairo_rectangle_list_t\", {\n ownership: \"full\",\n sharedLibrary: CAIRO_LIBRARY,\n freeFnName: \"cairo_rectangle_list_destroy\",\n});\n\nconst GLYPH_T: BoxedDescriptor = t.boxed(\"cairo_glyph_t\", { ownership: \"borrowed\", sharedLibrary: CAIRO_LIBRARY });\n\nconst TEXT_CLUSTER_T: BoxedDescriptor = t.boxed(\"cairo_text_cluster_t\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_LIBRARY,\n});\n\nconst TEXT_EXTENTS_T: BoxedDescriptor = t.boxed(\"cairo_text_extents_t\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_LIBRARY,\n});\n\nconst FONT_EXTENTS_T: BoxedDescriptor = t.boxed(\"cairo_font_extents_t\", {\n ownership: \"borrowed\",\n sharedLibrary: CAIRO_LIBRARY,\n});\n\nconst PATH_T: BoxedDescriptor = t.boxed(\"cairo_path_t\", {\n ownership: \"full\",\n sharedLibrary: CAIRO_LIBRARY,\n freeFnName: \"cairo_path_destroy\",\n});\n\nconst DOUBLE_BUFFER_T: BoxedDescriptor = t.boxed(\"double[]\", { ownership: \"borrowed\", sharedLibrary: CAIRO_LIBRARY });\n\nconst bindCairo = (symbol: string, args: Descriptor[], returns: Descriptor): BoundFunction =>\n t.bind(CAIRO_LIBRARY, symbol, args, returns);\n\nconst cairoGType = (typeSymbol: string): bigint => resolveType(CAIRO_GOBJECT_LIBRARY, typeSymbol);\n\nexport {\n bindCairo,\n type BoundFunction,\n cairoGType,\n CONTEXT_FULL_T,\n CONTEXT_T,\n DEVICE_T,\n DOUBLE_BUFFER_T,\n FONT_EXTENTS_T,\n FONT_FACE_FULL_T,\n FONT_FACE_T,\n FONT_OPTIONS_FULL_T,\n FONT_OPTIONS_T,\n GLYPH_T,\n MATRIX_T,\n PATH_T,\n PATTERN_FULL_T,\n PATTERN_T,\n RECTANGLE_INT_ARRAY_T,\n RECTANGLE_INT_T,\n RECTANGLE_LIST_T,\n RECTANGLE_T,\n REGION_FULL_T,\n REGION_T,\n SCALED_FONT_FULL_T,\n SCALED_FONT_T,\n SURFACE_FULL_T,\n SURFACE_T,\n TEXT_CLUSTER_T,\n TEXT_EXTENTS_T,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../src/path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAa,KAAK,MAAM,EAAW,MAAM,eAAe,CAAC;AACrF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,KAAK,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AA8CzC,QAAA,MAAM,SAAS,GAAI,YAAY,UAAU,KAAG,QAAQ,EAuBnD,CAAC;AAEF;;;GAGG;AACH,uBAAe,IAAI;IACf,uDAAuD;IACvD,MAAM,IAAI,QAAQ,EAAE;CAGvB;AAED,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../src/path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAa,KAAK,MAAM,EAAW,MAAM,eAAe,CAAC;AACrF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,KAAK,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AAiDzC,QAAA,MAAM,SAAS,GAAI,YAAY,UAAU,KAAG,QAAQ,EAuBnD,CAAC;AAEF;;;GAGG;AACH,uBAAe,IAAI;IACf,uDAAuD;IACvD,MAAM,IAAI,QAAQ,EAAE;CAGvB;AAED,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC"}
package/dist/path.js CHANGED
@@ -3,9 +3,12 @@ import { PathDataType } from "./enums.js";
3
3
  const ELEMENT_SIZE = 16;
4
4
  const DATA_OFFSET = 8;
5
5
  const NUM_DATA_OFFSET = 16;
6
+ const DOUBLE = t.fieldAt(t.float64);
7
+ const INT = t.fieldAt(t.int32);
8
+ const NUM_DATA = t.field(t.int32, NUM_DATA_OFFSET);
6
9
  const readPoint = (data, base) => ({
7
- x: read(data, t.float64, base),
8
- y: read(data, t.float64, base + 8),
10
+ x: DOUBLE.read(data, base),
11
+ y: DOUBLE.read(data, base + 8),
9
12
  });
10
13
  const readMoveTo = (data, base) => ({ type: "moveTo", ...readPoint(data, base + ELEMENT_SIZE) });
11
14
  const readLineTo = (data, base) => ({ type: "lineTo", ...readPoint(data, base + ELEMENT_SIZE) });
@@ -36,7 +39,7 @@ const segmentReaderFor = (headerType) => {
36
39
  }
37
40
  };
38
41
  const parsePath = (pathHandle) => {
39
- const numData = read(pathHandle, t.int32, NUM_DATA_OFFSET);
42
+ const numData = NUM_DATA.read(pathHandle);
40
43
  if (numData === 0) {
41
44
  return [];
42
45
  }
@@ -45,11 +48,11 @@ const parsePath = (pathHandle) => {
45
48
  let index = 0;
46
49
  while (index < numData) {
47
50
  const base = index * ELEMENT_SIZE;
48
- const reader = segmentReaderFor(read(data, t.int32, base));
51
+ const reader = segmentReaderFor(INT.read(data, base));
49
52
  if (reader !== null) {
50
53
  segments.push(reader(data, base));
51
54
  }
52
- index += read(data, t.int32, base + 4);
55
+ index += INT.read(data, base + 4);
53
56
  }
54
57
  return segments;
55
58
  };
package/dist/path.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"path.js","sourceRoot":"","sources":["../src/path.ts"],"names":[],"mappings":"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","sourcesContent":["import { type ExternalObject, getHandle, type Handle, read, t } from \"@gtkx/runtime\";\nimport type { PathData } from \"./types.js\";\nimport { PathDataType } from \"./enums.js\";\n\ntype PathBuffer = ExternalObject<Handle>;\ntype Point = { x: number; y: number };\ntype SegmentReader = (data: PathBuffer, base: number) => PathData;\n\nconst ELEMENT_SIZE = 16;\nconst DATA_OFFSET = 8;\nconst NUM_DATA_OFFSET = 16;\n\nconst readPoint = (data: PathBuffer, base: number): Point => ({\n x: read(data, t.float64, base) as number,\n y: read(data, t.float64, base + 8) as number,\n});\n\nconst readMoveTo: SegmentReader = (data, base) => ({ type: \"moveTo\", ...readPoint(data, base + ELEMENT_SIZE) });\nconst readLineTo: SegmentReader = (data, base) => ({ type: \"lineTo\", ...readPoint(data, base + ELEMENT_SIZE) });\n\nconst readCurveTo: SegmentReader = (data, base) => {\n const first = readPoint(data, base + ELEMENT_SIZE);\n const second = readPoint(data, base + ELEMENT_SIZE * 2);\n const third = readPoint(data, base + ELEMENT_SIZE * 3);\n\n return { type: \"curveTo\", x1: first.x, y1: first.y, x2: second.x, y2: second.y, x3: third.x, y3: third.y };\n};\n\nconst readClosePath: SegmentReader = () => ({ type: \"closePath\" });\n\nconst segmentReaderFor = (headerType: PathDataType): SegmentReader | null => {\n switch (headerType) {\n case PathDataType.MOVE_TO: {\n return readMoveTo;\n }\n case PathDataType.LINE_TO: {\n return readLineTo;\n }\n case PathDataType.CURVE_TO: {\n return readCurveTo;\n }\n case PathDataType.CLOSE_PATH: {\n return readClosePath;\n }\n default: {\n return null;\n }\n }\n};\n\nconst parsePath = (pathHandle: PathBuffer): PathData[] => {\n const numData = read(pathHandle, t.int32, NUM_DATA_OFFSET) as number;\n\n if (numData === 0) {\n return [];\n }\n\n const data = read(pathHandle, t.struct(\"borrowed\", { size: numData * ELEMENT_SIZE }), DATA_OFFSET) as PathBuffer;\n const segments: PathData[] = [];\n let index = 0;\n\n while (index < numData) {\n const base = index * ELEMENT_SIZE;\n const reader = segmentReaderFor(read(data, t.int32, base) as PathDataType);\n\n if (reader !== null) {\n segments.push(reader(data, base));\n }\n\n index += read(data, t.int32, base + 4) as number;\n }\n\n return segments;\n};\n\n/**\n * A cairo path (`cairo_path_t`). Instances come from the bindings that hand one back, and the bindings that take\n * one, such as `Gsk.PathBuilder.addCairoPath`, accept it as is.\n */\nabstract class Path {\n /** Reads the segments of the path in drawing order. */\n toData(): PathData[] {\n return parsePath(getHandle(this));\n }\n}\n\nexport { parsePath, Path };\n"]}
1
+ {"version":3,"file":"path.js","sourceRoot":"","sources":["../src/path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,SAAS,EAAe,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAErF,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM1C,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACpC,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC/B,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;AAEnD,MAAM,SAAS,GAAG,CAAC,IAAgB,EAAE,IAAY,EAAS,EAAE,CAAC,CAAC;IAC1D,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAW;IACpC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAW;CAC3C,CAAC,CAAC;AAEH,MAAM,UAAU,GAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;AAChH,MAAM,UAAU,GAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;AAEhH,MAAM,WAAW,GAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;IAC9C,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;IAEvD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;AAC/G,CAAC,CAAC;AAEF,MAAM,aAAa,GAAkB,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAEnE,MAAM,gBAAgB,GAAG,CAAC,UAAwB,EAAwB,EAAE;IACxE,QAAQ,UAAU,EAAE,CAAC;QACjB,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YACxB,OAAO,UAAU,CAAC;QACtB,CAAC;QACD,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YACxB,OAAO,UAAU,CAAC;QACtB,CAAC;QACD,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzB,OAAO,WAAW,CAAC;QACvB,CAAC;QACD,KAAK,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;YAC3B,OAAO,aAAa,CAAC;QACzB,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACN,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,UAAsB,EAAc,EAAE;IACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAW,CAAC;IAEpD,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,YAAY,EAAE,CAAC,EAAE,WAAW,CAAe,CAAC;IACjH,MAAM,QAAQ,GAAe,EAAE,CAAC;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,KAAK,GAAG,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,KAAK,GAAG,YAAY,CAAC;QAClC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAiB,CAAC,CAAC;QAEtE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACtC,CAAC;QAED,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAW,CAAC;IAChD,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAe,IAAI;IACf,uDAAuD;IACvD,MAAM;QACF,OAAO,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;CACJ;AAED,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC","sourcesContent":["import { type ExternalObject, getHandle, type Handle, read, t } from \"@gtkx/runtime\";\nimport type { PathData } from \"./types.js\";\nimport { PathDataType } from \"./enums.js\";\n\ntype PathBuffer = ExternalObject<Handle>;\ntype Point = { x: number; y: number };\ntype SegmentReader = (data: PathBuffer, base: number) => PathData;\n\nconst ELEMENT_SIZE = 16;\nconst DATA_OFFSET = 8;\nconst NUM_DATA_OFFSET = 16;\nconst DOUBLE = t.fieldAt(t.float64);\nconst INT = t.fieldAt(t.int32);\nconst NUM_DATA = t.field(t.int32, NUM_DATA_OFFSET);\n\nconst readPoint = (data: PathBuffer, base: number): Point => ({\n x: DOUBLE.read(data, base) as number,\n y: DOUBLE.read(data, base + 8) as number,\n});\n\nconst readMoveTo: SegmentReader = (data, base) => ({ type: \"moveTo\", ...readPoint(data, base + ELEMENT_SIZE) });\nconst readLineTo: SegmentReader = (data, base) => ({ type: \"lineTo\", ...readPoint(data, base + ELEMENT_SIZE) });\n\nconst readCurveTo: SegmentReader = (data, base) => {\n const first = readPoint(data, base + ELEMENT_SIZE);\n const second = readPoint(data, base + ELEMENT_SIZE * 2);\n const third = readPoint(data, base + ELEMENT_SIZE * 3);\n\n return { type: \"curveTo\", x1: first.x, y1: first.y, x2: second.x, y2: second.y, x3: third.x, y3: third.y };\n};\n\nconst readClosePath: SegmentReader = () => ({ type: \"closePath\" });\n\nconst segmentReaderFor = (headerType: PathDataType): SegmentReader | null => {\n switch (headerType) {\n case PathDataType.MOVE_TO: {\n return readMoveTo;\n }\n case PathDataType.LINE_TO: {\n return readLineTo;\n }\n case PathDataType.CURVE_TO: {\n return readCurveTo;\n }\n case PathDataType.CLOSE_PATH: {\n return readClosePath;\n }\n default: {\n return null;\n }\n }\n};\n\nconst parsePath = (pathHandle: PathBuffer): PathData[] => {\n const numData = NUM_DATA.read(pathHandle) as number;\n\n if (numData === 0) {\n return [];\n }\n\n const data = read(pathHandle, t.struct(\"borrowed\", { size: numData * ELEMENT_SIZE }), DATA_OFFSET) as PathBuffer;\n const segments: PathData[] = [];\n let index = 0;\n\n while (index < numData) {\n const base = index * ELEMENT_SIZE;\n const reader = segmentReaderFor(INT.read(data, base) as PathDataType);\n\n if (reader !== null) {\n segments.push(reader(data, base));\n }\n\n index += INT.read(data, base + 4) as number;\n }\n\n return segments;\n};\n\n/**\n * A cairo path (`cairo_path_t`). Instances come from the bindings that hand one back, and the bindings that take\n * one, such as `Gsk.PathBuilder.addCairoPath`, accept it as is.\n */\nabstract class Path {\n /** Reads the segments of the path in drawing order. */\n toData(): PathData[] {\n return parsePath(getHandle(this));\n }\n}\n\nexport { parsePath, Path };\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"region.d.ts","sourceRoot":"","sources":["../src/region.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAUhD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAqD5C;;;GAGG;AACH,cAAM,MAAM;IAKR,+BAA+B;IAC/B,MAAM,CAAC,KAAK,IAAI,MAAM;IAItB,+DAA+D;IAC/D,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIrC,wCAAwC;IACxC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM;IAI/C,4FAA4F;IAC5F,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM;IAUvD,6EAA6E;IACrE,QAAQ,EAAE,MAAM,CAAC;IAEzB,wCAAwC;gBAC5B,IAAI,EAAE,YAAY;IAI9B,6DAA6D;IAC7D,IAAI,IAAI,MAAM;IAId,kFAAkF;IAClF,MAAM,IAAI,MAAM;IAIhB,oDAAoD;IACpD,UAAU,IAAI,YAAY;IAO1B,sDAAsD;IACtD,aAAa,IAAI,MAAM;IAIvB,qEAAqE;IACrE,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY;IAOvC,iDAAiD;IACjD,OAAO,IAAI,OAAO;IAIlB,iEAAiE;IACjE,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAI5C,+EAA+E;IAC/E,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa;IAIpD,kEAAkE;IAClE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI7B,yCAAyC;IACzC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAIvC,0DAA0D;IAC1D,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI9B,yDAAyD;IACzD,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAI5C,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B,kDAAkD;IAClD,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAI3C,8CAA8C;IAC9C,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI1B,6CAA6C;IAC7C,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAIxC,uEAAuE;IACvE,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIxB,sEAAsE;IACtE,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;CAGzC;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"region.d.ts","sourceRoot":"","sources":["../src/region.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAUhD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAsD5C;;;GAGG;AACH,cAAM,MAAM;IAKR,+BAA+B;IAC/B,MAAM,CAAC,KAAK,IAAI,MAAM;IAItB,+DAA+D;IAC/D,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIrC,wCAAwC;IACxC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM;IAI/C,4FAA4F;IAC5F,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM;IAUvD,6EAA6E;IACrE,QAAQ,EAAE,MAAM,CAAC;IAEzB,wCAAwC;gBAC5B,IAAI,EAAE,YAAY;IAI9B,6DAA6D;IAC7D,IAAI,IAAI,MAAM;IAId,kFAAkF;IAClF,MAAM,IAAI,MAAM;IAIhB,oDAAoD;IACpD,UAAU,IAAI,YAAY;IAO1B,sDAAsD;IACtD,aAAa,IAAI,MAAM;IAIvB,qEAAqE;IACrE,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY;IAOvC,iDAAiD;IACjD,OAAO,IAAI,OAAO;IAIlB,iEAAiE;IACjE,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAI5C,+EAA+E;IAC/E,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa;IAIpD,kEAAkE;IAClE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI7B,yCAAyC;IACzC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAIvC,0DAA0D;IAC1D,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI9B,yDAAyD;IACzD,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAI5C,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B,kDAAkD;IAClD,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAI3C,8CAA8C;IAC9C,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI1B,6CAA6C;IAC7C,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAIxC,uEAAuE;IACvE,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIxB,sEAAsE;IACtE,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;CAGzC;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
package/dist/region.js CHANGED
@@ -1,4 +1,4 @@
1
- import { alloc, getHandle, registerWrapperClass, setHandle, t, wrapHandle, write, } from "@gtkx/runtime";
1
+ import { alloc, getHandle, registerWrapperClass, setHandle, t, wrapHandle, } from "@gtkx/runtime";
2
2
  import { bindCairo, cairoGType, RECTANGLE_INT_ARRAY_T, RECTANGLE_INT_T, REGION_FULL_T, REGION_T, } from "./lib.js";
3
3
  import { RectangleInt } from "./structs.js";
4
4
  const REGION_TYPE = cairoGType("cairo_gobject_region_get_type");
@@ -26,14 +26,15 @@ const cairoRegionIntersectRectangle = bindCairo("cairo_region_intersect_rectangl
26
26
  const cairoRegionSubtractRectangle = bindCairo("cairo_region_subtract_rectangle", RECTANGLE_OP_ARGS, t.int32);
27
27
  const cairoRegionUnionRectangle = bindCairo("cairo_region_union_rectangle", RECTANGLE_OP_ARGS, t.int32);
28
28
  const cairoRegionXorRectangle = bindCairo("cairo_region_xor_rectangle", RECTANGLE_OP_ARGS, t.int32);
29
+ const INT = t.fieldAt(t.int32);
29
30
  const allocRectangleBuffer = (rects) => {
30
31
  const buffer = alloc(rects.length * RECTANGLE_INT_SIZE);
31
32
  let offset = 0;
32
33
  for (const rect of rects) {
33
- write(buffer, t.int32, offset, rect.x);
34
- write(buffer, t.int32, offset + 4, rect.y);
35
- write(buffer, t.int32, offset + 8, rect.width);
36
- write(buffer, t.int32, offset + 12, rect.height);
34
+ INT.write(buffer, offset, rect.x);
35
+ INT.write(buffer, offset + 4, rect.y);
36
+ INT.write(buffer, offset + 8, rect.width);
37
+ INT.write(buffer, offset + 12, rect.height);
37
38
  offset += RECTANGLE_INT_SIZE;
38
39
  }
39
40
  return buffer;
@@ -1 +1 @@
1
- {"version":3,"file":"region.js","sourceRoot":"","sources":["../src/region.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,EAEL,SAAS,EAET,oBAAoB,EACpB,SAAS,EACT,CAAC,EACD,UAAU,EACV,KAAK,GACR,MAAM,eAAe,CAAC;AAGvB,OAAO,EACH,SAAS,EAET,UAAU,EACV,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,QAAQ,GACX,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,WAAW,GAAG,UAAU,CAAC,+BAA+B,CAAC,CAAC;AAChE,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC5C,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;AACtD,MAAM,iBAAiB,GAAG,SAAS,CAAC,qBAAqB,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC;AAC9E,MAAM,0BAA0B,GAAG,SAAS,CAAC,+BAA+B,EAAE,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC,CAAC;AAEhH,MAAM,2BAA2B,GAAG,SAAS,CACzC,gCAAgC,EAChC,CAAC,qBAAqB,EAAE,CAAC,CAAC,KAAK,CAAC,EAChC,aAAa,CAChB,CAAC;AAEF,MAAM,eAAe,GAAG,SAAS,CAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC;AAClF,MAAM,iBAAiB,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAChF,MAAM,qBAAqB,GAAG,SAAS,CAAC,0BAA0B,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACzG,MAAM,wBAAwB,GAAG,SAAS,CAAC,6BAA6B,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAC/F,MAAM,uBAAuB,GAAG,SAAS,CAAC,4BAA4B,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACtH,MAAM,kBAAkB,GAAG,SAAS,CAAC,uBAAuB,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AACrF,MAAM,wBAAwB,GAAG,SAAS,CAAC,6BAA6B,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AACnH,MAAM,4BAA4B,GAAG,SAAS,CAAC,iCAAiC,EAAE,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAC9G,MAAM,gBAAgB,GAAG,SAAS,CAAC,oBAAoB,EAAE,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AACpF,MAAM,oBAAoB,GAAG,SAAS,CAAC,wBAAwB,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACvG,MAAM,oBAAoB,GAAG,SAAS,CAAC,wBAAwB,EAAE,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1F,MAAM,mBAAmB,GAAG,SAAS,CAAC,uBAAuB,EAAE,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AACxF,MAAM,gBAAgB,GAAG,SAAS,CAAC,oBAAoB,EAAE,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAClF,MAAM,cAAc,GAAG,SAAS,CAAC,kBAAkB,EAAE,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAC9E,MAAM,6BAA6B,GAAG,SAAS,CAAC,kCAAkC,EAAE,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAChH,MAAM,4BAA4B,GAAG,SAAS,CAAC,iCAAiC,EAAE,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAC9G,MAAM,yBAAyB,GAAG,SAAS,CAAC,8BAA8B,EAAE,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AACxG,MAAM,uBAAuB,GAAG,SAAS,CAAC,4BAA4B,EAAE,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAEpG,MAAM,oBAAoB,GAAG,CAAC,KAAsB,EAA0B,EAAE;IAC5E,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,kBAAkB,CAAC,CAAC;IACxD,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/C,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,IAAI,kBAAkB,CAAC;IACjC,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,OAAsB,EAAE,GAAW,EAAQ,EAAE;IAC9E,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM;IACR;QACI,oBAAoB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC5C,CAAC;IAED,+BAA+B;IAC/B,MAAM,CAAC,KAAK;QACR,OAAO,UAAU,CAAC,iBAAiB,EAA4B,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;IAED,+DAA+D;IAC/D,MAAM,CAAC,IAAI,CAAC,QAAgB;QACxB,OAAO,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,CAA2B,EAAE,IAAI,CAAC,CAAC;IAC5F,CAAC;IAED,wCAAwC;IACxC,MAAM,CAAC,YAAY,CAAC,IAAkB;QAClC,OAAO,UAAU,CAAC,0BAA0B,CAAC,SAAS,CAAC,IAAI,CAAC,CAA2B,EAAE,IAAI,CAAC,CAAC;IACnG,CAAC;IAED,4FAA4F;IAC5F,MAAM,CAAC,gBAAgB,CAAC,KAAsB;QAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;QAED,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAE3C,OAAO,UAAU,CAAC,2BAA2B,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAA2B,EAAE,IAAI,CAAC,CAAC;IACzG,CAAC;IAKD,wCAAwC;IACxC,YAAY,IAAkB;QAC1B,SAAS,CAAC,IAAI,EAAE,0BAA0B,CAAC,SAAS,CAAC,IAAI,CAAC,CAA2B,CAAC,CAAC;IAC3F,CAAC;IAED,6DAA6D;IAC7D,IAAI;QACA,OAAO,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAA2B,EAAE,MAAM,CAAC,CAAC;IAC1F,CAAC;IAED,kFAAkF;IAClF,MAAM;QACF,OAAO,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAW,CAAC;IACxD,CAAC;IAED,oDAAoD;IACpD,UAAU;QACN,MAAM,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;QAChC,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAExD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,sDAAsD;IACtD,aAAa;QACT,OAAO,wBAAwB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAW,CAAC;IAC/D,CAAC;IAED,qEAAqE;IACrE,YAAY,CAAC,GAAW;QACpB,MAAM,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;QAChC,uBAAuB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAE/D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,iDAAiD;IACjD,OAAO;QACH,OAAO,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAY,CAAC;IAC1D,CAAC;IAED,iEAAiE;IACjE,aAAa,CAAC,CAAS,EAAE,CAAS;QAC9B,OAAO,wBAAwB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAY,CAAC;IACtE,CAAC;IAED,+EAA+E;IAC/E,iBAAiB,CAAC,IAAkB;QAChC,OAAO,4BAA4B,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAkB,CAAC;IAC3F,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,KAAa;QACf,OAAO,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAY,CAAC;IAC1E,CAAC;IAED,yCAAyC;IACzC,SAAS,CAAC,EAAU,EAAE,EAAU;QAC5B,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,0DAA0D;IAC1D,SAAS,CAAC,KAAa;QACnB,aAAa,CAAC,IAAI,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,yDAAyD;IACzD,kBAAkB,CAAC,IAAkB;QACjC,aAAa,CAAC,IAAI,EAAE,6BAA6B,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,mDAAmD;IACnD,QAAQ,CAAC,KAAa;QAClB,aAAa,CAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,kDAAkD;IAClD,iBAAiB,CAAC,IAAkB;QAChC,aAAa,CAAC,IAAI,EAAE,4BAA4B,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,KAAa;QACf,aAAa,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,6CAA6C;IAC7C,cAAc,CAAC,IAAkB;QAC7B,aAAa,CAAC,IAAI,EAAE,yBAAyB,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,uEAAuE;IACvE,GAAG,CAAC,KAAa;QACb,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,sEAAsE;IACtE,YAAY,CAAC,IAAkB;QAC3B,aAAa,CAAC,IAAI,EAAE,uBAAuB,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;CACJ;AAED,OAAO,EAAE,MAAM,EAAE,CAAC","sourcesContent":["import {\n alloc,\n type ExternalObject,\n getHandle,\n type Handle,\n registerWrapperClass,\n setHandle,\n t,\n wrapHandle,\n write,\n} from \"@gtkx/runtime\";\nimport type { RegionOverlap, Status } from \"./enums.js\";\nimport type { RectangleData } from \"./types.js\";\nimport {\n bindCairo,\n type BoundFunction,\n cairoGType,\n RECTANGLE_INT_ARRAY_T,\n RECTANGLE_INT_T,\n REGION_FULL_T,\n REGION_T,\n} from \"./lib.js\";\nimport { RectangleInt } from \"./structs.js\";\n\nconst REGION_TYPE = cairoGType(\"cairo_gobject_region_get_type\");\nconst RECTANGLE_INT_SIZE = 16;\nconst BINARY_OP_ARGS = [REGION_T, REGION_T];\nconst RECTANGLE_OP_ARGS = [REGION_T, RECTANGLE_INT_T];\nconst cairoRegionCreate = bindCairo(\"cairo_region_create\", [], REGION_FULL_T);\nconst cairoRegionCreateRectangle = bindCairo(\"cairo_region_create_rectangle\", [RECTANGLE_INT_T], REGION_FULL_T);\n\nconst cairoRegionCreateRectangles = bindCairo(\n \"cairo_region_create_rectangles\",\n [RECTANGLE_INT_ARRAY_T, t.int32],\n REGION_FULL_T,\n);\n\nconst cairoRegionCopy = bindCairo(\"cairo_region_copy\", [REGION_T], REGION_FULL_T);\nconst cairoRegionStatus = bindCairo(\"cairo_region_status\", [REGION_T], t.int32);\nconst cairoRegionGetExtents = bindCairo(\"cairo_region_get_extents\", [REGION_T, RECTANGLE_INT_T], t.void);\nconst cairoRegionNumRectangles = bindCairo(\"cairo_region_num_rectangles\", [REGION_T], t.int32);\nconst cairoRegionGetRectangle = bindCairo(\"cairo_region_get_rectangle\", [REGION_T, t.int32, RECTANGLE_INT_T], t.void);\nconst cairoRegionIsEmpty = bindCairo(\"cairo_region_is_empty\", [REGION_T], t.boolean);\nconst cairoRegionContainsPoint = bindCairo(\"cairo_region_contains_point\", [REGION_T, t.int32, t.int32], t.boolean);\nconst cairoRegionContainsRectangle = bindCairo(\"cairo_region_contains_rectangle\", RECTANGLE_OP_ARGS, t.int32);\nconst cairoRegionEqual = bindCairo(\"cairo_region_equal\", BINARY_OP_ARGS, t.boolean);\nconst cairoRegionTranslate = bindCairo(\"cairo_region_translate\", [REGION_T, t.int32, t.int32], t.void);\nconst cairoRegionIntersect = bindCairo(\"cairo_region_intersect\", BINARY_OP_ARGS, t.int32);\nconst cairoRegionSubtract = bindCairo(\"cairo_region_subtract\", BINARY_OP_ARGS, t.int32);\nconst cairoRegionUnion = bindCairo(\"cairo_region_union\", BINARY_OP_ARGS, t.int32);\nconst cairoRegionXor = bindCairo(\"cairo_region_xor\", BINARY_OP_ARGS, t.int32);\nconst cairoRegionIntersectRectangle = bindCairo(\"cairo_region_intersect_rectangle\", RECTANGLE_OP_ARGS, t.int32);\nconst cairoRegionSubtractRectangle = bindCairo(\"cairo_region_subtract_rectangle\", RECTANGLE_OP_ARGS, t.int32);\nconst cairoRegionUnionRectangle = bindCairo(\"cairo_region_union_rectangle\", RECTANGLE_OP_ARGS, t.int32);\nconst cairoRegionXorRectangle = bindCairo(\"cairo_region_xor_rectangle\", RECTANGLE_OP_ARGS, t.int32);\n\nconst allocRectangleBuffer = (rects: RectangleData[]): ExternalObject<Handle> => {\n const buffer = alloc(rects.length * RECTANGLE_INT_SIZE);\n let offset = 0;\n\n for (const rect of rects) {\n write(buffer, t.int32, offset, rect.x);\n write(buffer, t.int32, offset + 4, rect.y);\n write(buffer, t.int32, offset + 8, rect.width);\n write(buffer, t.int32, offset + 12, rect.height);\n offset += RECTANGLE_INT_SIZE;\n }\n\n return buffer;\n};\n\nconst applyRegionOp = (self: object, boundFn: BoundFunction, arg: object): void => {\n boundFn(getHandle(self), getHandle(arg));\n};\n\n/**\n * A cairo region (`cairo_region_t`): a set of integer rectangles, as GTK uses for clip and damage areas.\n * Set operations modify the region in place.\n */\nclass Region {\n static {\n registerWrapperClass(this, REGION_TYPE);\n }\n\n /** Creates an empty region. */\n static empty(): Region {\n return wrapHandle(cairoRegionCreate() as ExternalObject<Handle>, this);\n }\n\n /** Creates a region with the same rectangles as `original`. */\n static copy(original: Region): Region {\n return wrapHandle(cairoRegionCopy(getHandle(original)) as ExternalObject<Handle>, this);\n }\n\n /** Creates a region covering `rect`. */\n static forRectangle(rect: RectangleInt): Region {\n return wrapHandle(cairoRegionCreateRectangle(getHandle(rect)) as ExternalObject<Handle>, this);\n }\n\n /** Creates a region covering the union of `rects`; an empty list yields an empty region. */\n static createRectangles(rects: RectangleData[]): Region {\n if (rects.length === 0) {\n return this.empty();\n }\n\n const buffer = allocRectangleBuffer(rects);\n\n return wrapHandle(cairoRegionCreateRectangles(buffer, rects.length) as ExternalObject<Handle>, this);\n }\n\n /** GType of `CairoRegion`, the boxed type this class is registered under. */\n declare __type__: bigint;\n\n /** Creates a region covering `rect`. */\n constructor(rect: RectangleInt) {\n setHandle(this, cairoRegionCreateRectangle(getHandle(rect)) as ExternalObject<Handle>);\n }\n\n /** Returns a region with the same rectangles as this one. */\n copy(): Region {\n return wrapHandle(cairoRegionCopy(getHandle(this)) as ExternalObject<Handle>, Region);\n }\n\n /** Returns the error status of the region, `Status.SUCCESS` when it is usable. */\n status(): Status {\n return cairoRegionStatus(getHandle(this)) as Status;\n }\n\n /** Returns the bounding rectangle of the region. */\n getExtents(): RectangleInt {\n const rect = new RectangleInt();\n cairoRegionGetExtents(getHandle(this), getHandle(rect));\n\n return rect;\n }\n\n /** Returns how many rectangles make up the region. */\n numRectangles(): number {\n return cairoRegionNumRectangles(getHandle(this)) as number;\n }\n\n /** Returns the `nth` rectangle of the region, counting from zero. */\n getRectangle(nth: number): RectangleInt {\n const rect = new RectangleInt();\n cairoRegionGetRectangle(getHandle(this), nth, getHandle(rect));\n\n return rect;\n }\n\n /** Returns whether the region covers no area. */\n isEmpty(): boolean {\n return cairoRegionIsEmpty(getHandle(this)) as boolean;\n }\n\n /** Returns whether the point `(x, y)` lies inside the region. */\n containsPoint(x: number, y: number): boolean {\n return cairoRegionContainsPoint(getHandle(this), x, y) as boolean;\n }\n\n /** Returns whether `rect` lies inside, outside or partly inside the region. */\n containsRectangle(rect: RectangleInt): RegionOverlap {\n return cairoRegionContainsRectangle(getHandle(this), getHandle(rect)) as RegionOverlap;\n }\n\n /** Returns whether the region covers the same area as `other`. */\n equal(other: Region): boolean {\n return cairoRegionEqual(getHandle(this), getHandle(other)) as boolean;\n }\n\n /** Moves the region by `dx` and `dy`. */\n translate(dx: number, dy: number): void {\n cairoRegionTranslate(getHandle(this), dx, dy);\n }\n\n /** Keeps only the area the region shares with `other`. */\n intersect(other: Region): void {\n applyRegionOp(this, cairoRegionIntersect, other);\n }\n\n /** Keeps only the area the region shares with `rect`. */\n intersectRectangle(rect: RectangleInt): void {\n applyRegionOp(this, cairoRegionIntersectRectangle, rect);\n }\n\n /** Removes the area of `other` from the region. */\n subtract(other: Region): void {\n applyRegionOp(this, cairoRegionSubtract, other);\n }\n\n /** Removes the area of `rect` from the region. */\n subtractRectangle(rect: RectangleInt): void {\n applyRegionOp(this, cairoRegionSubtractRectangle, rect);\n }\n\n /** Adds the area of `other` to the region. */\n union(other: Region): void {\n applyRegionOp(this, cairoRegionUnion, other);\n }\n\n /** Adds the area of `rect` to the region. */\n unionRectangle(rect: RectangleInt): void {\n applyRegionOp(this, cairoRegionUnionRectangle, rect);\n }\n\n /** Keeps the area covered by exactly one of the region and `other`. */\n xor(other: Region): void {\n applyRegionOp(this, cairoRegionXor, other);\n }\n\n /** Keeps the area covered by exactly one of the region and `rect`. */\n xorRectangle(rect: RectangleInt): void {\n applyRegionOp(this, cairoRegionXorRectangle, rect);\n }\n}\n\nexport { Region };\n"]}
1
+ {"version":3,"file":"region.js","sourceRoot":"","sources":["../src/region.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n alloc,\n type ExternalObject,\n getHandle,\n type Handle,\n registerWrapperClass,\n setHandle,\n t,\n wrapHandle,\n} from \"@gtkx/runtime\";\nimport type { RegionOverlap, Status } from \"./enums.js\";\nimport type { RectangleData } from \"./types.js\";\nimport {\n bindCairo,\n type BoundFunction,\n cairoGType,\n RECTANGLE_INT_ARRAY_T,\n RECTANGLE_INT_T,\n REGION_FULL_T,\n REGION_T,\n} from \"./lib.js\";\nimport { RectangleInt } from \"./structs.js\";\n\nconst REGION_TYPE = cairoGType(\"cairo_gobject_region_get_type\");\nconst RECTANGLE_INT_SIZE = 16;\nconst BINARY_OP_ARGS = [REGION_T, REGION_T];\nconst RECTANGLE_OP_ARGS = [REGION_T, RECTANGLE_INT_T];\nconst cairoRegionCreate = bindCairo(\"cairo_region_create\", [], REGION_FULL_T);\nconst cairoRegionCreateRectangle = bindCairo(\"cairo_region_create_rectangle\", [RECTANGLE_INT_T], REGION_FULL_T);\n\nconst cairoRegionCreateRectangles = bindCairo(\n \"cairo_region_create_rectangles\",\n [RECTANGLE_INT_ARRAY_T, t.int32],\n REGION_FULL_T,\n);\n\nconst cairoRegionCopy = bindCairo(\"cairo_region_copy\", [REGION_T], REGION_FULL_T);\nconst cairoRegionStatus = bindCairo(\"cairo_region_status\", [REGION_T], t.int32);\nconst cairoRegionGetExtents = bindCairo(\"cairo_region_get_extents\", [REGION_T, RECTANGLE_INT_T], t.void);\nconst cairoRegionNumRectangles = bindCairo(\"cairo_region_num_rectangles\", [REGION_T], t.int32);\nconst cairoRegionGetRectangle = bindCairo(\"cairo_region_get_rectangle\", [REGION_T, t.int32, RECTANGLE_INT_T], t.void);\nconst cairoRegionIsEmpty = bindCairo(\"cairo_region_is_empty\", [REGION_T], t.boolean);\nconst cairoRegionContainsPoint = bindCairo(\"cairo_region_contains_point\", [REGION_T, t.int32, t.int32], t.boolean);\nconst cairoRegionContainsRectangle = bindCairo(\"cairo_region_contains_rectangle\", RECTANGLE_OP_ARGS, t.int32);\nconst cairoRegionEqual = bindCairo(\"cairo_region_equal\", BINARY_OP_ARGS, t.boolean);\nconst cairoRegionTranslate = bindCairo(\"cairo_region_translate\", [REGION_T, t.int32, t.int32], t.void);\nconst cairoRegionIntersect = bindCairo(\"cairo_region_intersect\", BINARY_OP_ARGS, t.int32);\nconst cairoRegionSubtract = bindCairo(\"cairo_region_subtract\", BINARY_OP_ARGS, t.int32);\nconst cairoRegionUnion = bindCairo(\"cairo_region_union\", BINARY_OP_ARGS, t.int32);\nconst cairoRegionXor = bindCairo(\"cairo_region_xor\", BINARY_OP_ARGS, t.int32);\nconst cairoRegionIntersectRectangle = bindCairo(\"cairo_region_intersect_rectangle\", RECTANGLE_OP_ARGS, t.int32);\nconst cairoRegionSubtractRectangle = bindCairo(\"cairo_region_subtract_rectangle\", RECTANGLE_OP_ARGS, t.int32);\nconst cairoRegionUnionRectangle = bindCairo(\"cairo_region_union_rectangle\", RECTANGLE_OP_ARGS, t.int32);\nconst cairoRegionXorRectangle = bindCairo(\"cairo_region_xor_rectangle\", RECTANGLE_OP_ARGS, t.int32);\nconst INT = t.fieldAt(t.int32);\n\nconst allocRectangleBuffer = (rects: RectangleData[]): ExternalObject<Handle> => {\n const buffer = alloc(rects.length * RECTANGLE_INT_SIZE);\n let offset = 0;\n\n for (const rect of rects) {\n INT.write(buffer, offset, rect.x);\n INT.write(buffer, offset + 4, rect.y);\n INT.write(buffer, offset + 8, rect.width);\n INT.write(buffer, offset + 12, rect.height);\n offset += RECTANGLE_INT_SIZE;\n }\n\n return buffer;\n};\n\nconst applyRegionOp = (self: object, boundFn: BoundFunction, arg: object): void => {\n boundFn(getHandle(self), getHandle(arg));\n};\n\n/**\n * A cairo region (`cairo_region_t`): a set of integer rectangles, as GTK uses for clip and damage areas.\n * Set operations modify the region in place.\n */\nclass Region {\n static {\n registerWrapperClass(this, REGION_TYPE);\n }\n\n /** Creates an empty region. */\n static empty(): Region {\n return wrapHandle(cairoRegionCreate() as ExternalObject<Handle>, this);\n }\n\n /** Creates a region with the same rectangles as `original`. */\n static copy(original: Region): Region {\n return wrapHandle(cairoRegionCopy(getHandle(original)) as ExternalObject<Handle>, this);\n }\n\n /** Creates a region covering `rect`. */\n static forRectangle(rect: RectangleInt): Region {\n return wrapHandle(cairoRegionCreateRectangle(getHandle(rect)) as ExternalObject<Handle>, this);\n }\n\n /** Creates a region covering the union of `rects`; an empty list yields an empty region. */\n static createRectangles(rects: RectangleData[]): Region {\n if (rects.length === 0) {\n return this.empty();\n }\n\n const buffer = allocRectangleBuffer(rects);\n\n return wrapHandle(cairoRegionCreateRectangles(buffer, rects.length) as ExternalObject<Handle>, this);\n }\n\n /** GType of `CairoRegion`, the boxed type this class is registered under. */\n declare __type__: bigint;\n\n /** Creates a region covering `rect`. */\n constructor(rect: RectangleInt) {\n setHandle(this, cairoRegionCreateRectangle(getHandle(rect)) as ExternalObject<Handle>);\n }\n\n /** Returns a region with the same rectangles as this one. */\n copy(): Region {\n return wrapHandle(cairoRegionCopy(getHandle(this)) as ExternalObject<Handle>, Region);\n }\n\n /** Returns the error status of the region, `Status.SUCCESS` when it is usable. */\n status(): Status {\n return cairoRegionStatus(getHandle(this)) as Status;\n }\n\n /** Returns the bounding rectangle of the region. */\n getExtents(): RectangleInt {\n const rect = new RectangleInt();\n cairoRegionGetExtents(getHandle(this), getHandle(rect));\n\n return rect;\n }\n\n /** Returns how many rectangles make up the region. */\n numRectangles(): number {\n return cairoRegionNumRectangles(getHandle(this)) as number;\n }\n\n /** Returns the `nth` rectangle of the region, counting from zero. */\n getRectangle(nth: number): RectangleInt {\n const rect = new RectangleInt();\n cairoRegionGetRectangle(getHandle(this), nth, getHandle(rect));\n\n return rect;\n }\n\n /** Returns whether the region covers no area. */\n isEmpty(): boolean {\n return cairoRegionIsEmpty(getHandle(this)) as boolean;\n }\n\n /** Returns whether the point `(x, y)` lies inside the region. */\n containsPoint(x: number, y: number): boolean {\n return cairoRegionContainsPoint(getHandle(this), x, y) as boolean;\n }\n\n /** Returns whether `rect` lies inside, outside or partly inside the region. */\n containsRectangle(rect: RectangleInt): RegionOverlap {\n return cairoRegionContainsRectangle(getHandle(this), getHandle(rect)) as RegionOverlap;\n }\n\n /** Returns whether the region covers the same area as `other`. */\n equal(other: Region): boolean {\n return cairoRegionEqual(getHandle(this), getHandle(other)) as boolean;\n }\n\n /** Moves the region by `dx` and `dy`. */\n translate(dx: number, dy: number): void {\n cairoRegionTranslate(getHandle(this), dx, dy);\n }\n\n /** Keeps only the area the region shares with `other`. */\n intersect(other: Region): void {\n applyRegionOp(this, cairoRegionIntersect, other);\n }\n\n /** Keeps only the area the region shares with `rect`. */\n intersectRectangle(rect: RectangleInt): void {\n applyRegionOp(this, cairoRegionIntersectRectangle, rect);\n }\n\n /** Removes the area of `other` from the region. */\n subtract(other: Region): void {\n applyRegionOp(this, cairoRegionSubtract, other);\n }\n\n /** Removes the area of `rect` from the region. */\n subtractRectangle(rect: RectangleInt): void {\n applyRegionOp(this, cairoRegionSubtractRectangle, rect);\n }\n\n /** Adds the area of `other` to the region. */\n union(other: Region): void {\n applyRegionOp(this, cairoRegionUnion, other);\n }\n\n /** Adds the area of `rect` to the region. */\n unionRectangle(rect: RectangleInt): void {\n applyRegionOp(this, cairoRegionUnionRectangle, rect);\n }\n\n /** Keeps the area covered by exactly one of the region and `other`. */\n xor(other: Region): void {\n applyRegionOp(this, cairoRegionXor, other);\n }\n\n /** Keeps the area covered by exactly one of the region and `rect`. */\n xorRectangle(rect: RectangleInt): void {\n applyRegionOp(this, cairoRegionXorRectangle, rect);\n }\n}\n\nexport { Region };\n"]}
@@ -1,11 +1,11 @@
1
- import type { FontType, Status, TextClusterFlags } from "./enums.js";
2
- import type { CairoGlyph, CairoTextCluster, FontExtents, TextExtents } from "./types.js";
1
+ import type { FontType, Status } from "./enums.js";
2
+ import type { CairoGlyph, FontExtents, TextExtents } from "./types.js";
3
3
  import { FontFace } from "./font-face.js";
4
4
  import { FontOptions } from "./font-options.js";
5
5
  import { Matrix } from "./matrix.js";
6
6
  /**
7
7
  * A cairo scaled font (`cairo_scaled_font_t`): a font face frozen at a given font matrix, transformation and
8
- * set of font options, ready to measure and shape text.
8
+ * set of font options, ready to measure text and positioned glyphs.
9
9
  */
10
10
  declare class ScaledFont {
11
11
  /** Creates a scaled font, the same as `new ScaledFont(fontFace, fontMatrix, ctm, options)`. */
@@ -36,8 +36,6 @@ declare class ScaledFont {
36
36
  getType(): FontType;
37
37
  /** Returns the reference count of the scaled font. */
38
38
  getReferenceCount(): number;
39
- /** Shapes `text` starting at `(x, y)` into glyphs, clusters and the flags describing their order. */
40
- textToGlyphs(x: number, y: number, text: string): [CairoGlyph[], CairoTextCluster[], TextClusterFlags];
41
39
  }
42
40
  export { ScaledFont };
43
41
  //# sourceMappingURL=scaled-font.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scaled-font.d.ts","sourceRoot":"","sources":["../src/scaled-font.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAehD,OAAO,EAAe,MAAM,EAAE,MAAM,aAAa,CAAC;AA0GlD;;;GAGG;AACH,cAAM,UAAU;IAKZ,+FAA+F;IAC/F,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,UAAU;IAIpG,iFAAiF;IACzE,QAAQ,EAAE,MAAM,CAAC;IAEzB,+GAA+G;gBACnG,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW;IAWrF,uFAAuF;IACvF,MAAM,IAAI,MAAM;IAIhB,uCAAuC;IACvC,OAAO,IAAI,WAAW;IAOtB,qCAAqC;IACrC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAOtC,gDAAgD;IAChD,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW;IAQ/C,6FAA6F;IAC7F,WAAW,IAAI,QAAQ;IAIvB,2EAA2E;IAC3E,cAAc,IAAI,WAAW;IAO7B,gEAAgE;IAChE,aAAa,IAAI,MAAM;IAIvB,kFAAkF;IAClF,MAAM,IAAI,MAAM;IAIhB,uGAAuG;IACvG,cAAc,IAAI,MAAM;IAIxB,sDAAsD;IACtD,OAAO,IAAI,QAAQ;IAInB,sDAAsD;IACtD,iBAAiB,IAAI,MAAM;IAI3B,qGAAqG;IACrG,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,UAAU,EAAE,EAAE,gBAAgB,EAAE,EAAE,gBAAgB,CAAC;CAiCzG;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"scaled-font.d.ts","sourceRoot":"","sources":["../src/scaled-font.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAchD,OAAO,EAAe,MAAM,EAAE,MAAM,aAAa,CAAC;AAsDlD;;;GAGG;AACH,cAAM,UAAU;IAKZ,+FAA+F;IAC/F,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,UAAU;IAIpG,iFAAiF;IACzE,QAAQ,EAAE,MAAM,CAAC;IAEzB,+GAA+G;gBACnG,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW;IAWrF,uFAAuF;IACvF,MAAM,IAAI,MAAM;IAIhB,uCAAuC;IACvC,OAAO,IAAI,WAAW;IAOtB,qCAAqC;IACrC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAOtC,gDAAgD;IAChD,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW;IAQ/C,6FAA6F;IAC7F,WAAW,IAAI,QAAQ;IAIvB,2EAA2E;IAC3E,cAAc,IAAI,WAAW;IAO7B,gEAAgE;IAChE,aAAa,IAAI,MAAM;IAIvB,kFAAkF;IAClF,MAAM,IAAI,MAAM;IAIhB,uGAAuG;IACvG,cAAc,IAAI,MAAM;IAIxB,sDAAsD;IACtD,OAAO,IAAI,QAAQ;IAInB,sDAAsD;IACtD,iBAAiB,IAAI,MAAM;CAG9B;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -1,71 +1,30 @@
1
- import { getHandle, read, registerWrapperClass, setHandle, t, wrapHandle, } from "@gtkx/runtime";
1
+ import { getHandle, registerWrapperClass, setHandle, t, wrapHandle, } from "@gtkx/runtime";
2
2
  import { FontFace } from "./font-face.js";
3
3
  import { FontOptions } from "./font-options.js";
4
- import { bindCairo, cairoGType, FONT_EXTENTS_T, FONT_FACE_T, FONT_OPTIONS_T, GLYPH_T, MATRIX_T, SCALED_FONT_FULL_T, SCALED_FONT_T, TEXT_CLUSTER_T, TEXT_EXTENTS_T, } from "./lib.js";
4
+ import { bindCairo, cairoGType, FONT_EXTENTS_T, FONT_FACE_T, FONT_OPTIONS_T, GLYPH_T, MATRIX_T, SCALED_FONT_FULL_T, SCALED_FONT_T, TEXT_EXTENTS_T, } from "./lib.js";
5
5
  import { allocMatrix, Matrix } from "./matrix.js";
6
6
  import { allocFontExtents, allocGlyphBuffer, allocTextExtents, readFontExtents, readTextExtents } from "./text.js";
7
7
  const SCALED_FONT_TYPE = cairoGType("cairo_gobject_scaled_font_get_type");
8
- const GLYPH_SIZE = 24;
9
- const CLUSTER_SIZE = 8;
10
8
  const cairoScaledFontStatus = bindCairo("cairo_scaled_font_status", [SCALED_FONT_T], t.int32);
11
9
  const cairoScaledFontExtents = bindCairo("cairo_scaled_font_extents", [SCALED_FONT_T, FONT_EXTENTS_T], t.void);
12
10
  const cairoScaledFontGetFontFace = bindCairo("cairo_scaled_font_get_font_face", [SCALED_FONT_T], FONT_FACE_T);
13
11
  const cairoScaledFontGetFontMatrix = bindCairo("cairo_scaled_font_get_font_matrix", [SCALED_FONT_T, MATRIX_T], t.void);
14
12
  const cairoScaledFontGetCtm = bindCairo("cairo_scaled_font_get_ctm", [SCALED_FONT_T, MATRIX_T], t.void);
15
13
  const cairoScaledFontGetType = bindCairo("cairo_scaled_font_get_type", [SCALED_FONT_T], t.int32);
16
- const cairoGlyphFree = bindCairo("cairo_glyph_free", [GLYPH_T], t.void);
17
- const cairoTextClusterFree = bindCairo("cairo_text_cluster_free", [TEXT_CLUSTER_T], t.void);
18
14
  const cairoScaledFontCreate = bindCairo("cairo_scaled_font_create", [FONT_FACE_T, MATRIX_T, MATRIX_T, FONT_OPTIONS_T], SCALED_FONT_FULL_T);
19
15
  const cairoScaledFontTextExtents = bindCairo("cairo_scaled_font_text_extents", [SCALED_FONT_T, t.string("full"), TEXT_EXTENTS_T], t.void);
20
16
  const cairoScaledFontGlyphExtents = bindCairo("cairo_scaled_font_glyph_extents", [SCALED_FONT_T, GLYPH_T, t.int32, TEXT_EXTENTS_T], t.void);
21
17
  const cairoScaledFontGetFontOptions = bindCairo("cairo_scaled_font_get_font_options", [SCALED_FONT_T, FONT_OPTIONS_T], t.void);
22
18
  const cairoScaledFontGetScaleMatrix = bindCairo("cairo_scaled_font_get_scale_matrix", [SCALED_FONT_T, MATRIX_T], t.void);
23
19
  const cairoScaledFontGetReferenceCount = bindCairo("cairo_scaled_font_get_reference_count", [SCALED_FONT_T], t.int32);
24
- const cairoScaledFontTextToGlyphs = bindCairo("cairo_scaled_font_text_to_glyphs", [
25
- SCALED_FONT_T,
26
- t.float64,
27
- t.float64,
28
- t.string("full"),
29
- t.int32,
30
- t.ref(t.struct("borrowed")),
31
- t.ref(t.int32),
32
- t.ref(t.struct("borrowed")),
33
- t.ref(t.int32),
34
- t.ref(t.int32),
35
- ], t.int32);
36
20
  const readMatrixVia = (self, boundFn) => {
37
21
  const { handle, matrix } = allocMatrix();
38
22
  boundFn(getHandle(self), handle);
39
23
  return matrix;
40
24
  };
41
- const readGlyphs = (buffer, count) => {
42
- if (buffer === null) {
43
- return [];
44
- }
45
- return Array.from({ length: count }, (_, index) => {
46
- const offset = index * GLYPH_SIZE;
47
- return {
48
- index: read(buffer, t.uint64, offset),
49
- x: read(buffer, t.float64, offset + 8),
50
- y: read(buffer, t.float64, offset + 16),
51
- };
52
- });
53
- };
54
- const readClusters = (buffer, count) => {
55
- if (buffer === null) {
56
- return [];
57
- }
58
- return Array.from({ length: count }, (_, index) => {
59
- const offset = index * CLUSTER_SIZE;
60
- return {
61
- numBytes: read(buffer, t.int32, offset),
62
- numGlyphs: read(buffer, t.int32, offset + 4),
63
- };
64
- });
65
- };
66
25
  /**
67
26
  * A cairo scaled font (`cairo_scaled_font_t`): a font face frozen at a given font matrix, transformation and
68
- * set of font options, ready to measure and shape text.
27
+ * set of font options, ready to measure text and positioned glyphs.
69
28
  */
70
29
  class ScaledFont {
71
30
  static {
@@ -133,24 +92,6 @@ class ScaledFont {
133
92
  getReferenceCount() {
134
93
  return cairoScaledFontGetReferenceCount(getHandle(this));
135
94
  }
136
- /** Shapes `text` starting at `(x, y)` into glyphs, clusters and the flags describing their order. */
137
- textToGlyphs(x, y, text) {
138
- const glyphsRef = { value: null };
139
- const numGlyphsRef = { value: 0 };
140
- const clustersRef = { value: null };
141
- const numClustersRef = { value: 0 };
142
- const clusterFlagsRef = { value: 0 };
143
- cairoScaledFontTextToGlyphs(getHandle(this), x, y, text, -1, glyphsRef, numGlyphsRef, clustersRef, numClustersRef, clusterFlagsRef);
144
- const glyphs = readGlyphs(glyphsRef.value, numGlyphsRef.value);
145
- const clusters = readClusters(clustersRef.value, numClustersRef.value);
146
- if (glyphsRef.value !== null) {
147
- cairoGlyphFree(glyphsRef.value);
148
- }
149
- if (clustersRef.value !== null) {
150
- cairoTextClusterFree(clustersRef.value);
151
- }
152
- return [glyphs, clusters, clusterFlagsRef.value];
153
- }
154
95
  }
155
96
  export { ScaledFont };
156
97
  //# sourceMappingURL=scaled-font.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scaled-font.js","sourceRoot":"","sources":["../src/scaled-font.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type ExternalObject,\n getHandle,\n type Handle,\n read,\n registerWrapperClass,\n setHandle,\n t,\n wrapHandle,\n} from \"@gtkx/runtime\";\nimport type { FontType, Status, TextClusterFlags } from \"./enums.js\";\nimport type { CairoGlyph, CairoTextCluster, FontExtents, TextExtents } from \"./types.js\";\nimport { FontFace } from \"./font-face.js\";\nimport { FontOptions } from \"./font-options.js\";\nimport {\n bindCairo,\n type BoundFunction,\n cairoGType,\n FONT_EXTENTS_T,\n FONT_FACE_T,\n FONT_OPTIONS_T,\n GLYPH_T,\n MATRIX_T,\n SCALED_FONT_FULL_T,\n SCALED_FONT_T,\n TEXT_CLUSTER_T,\n TEXT_EXTENTS_T,\n} from \"./lib.js\";\nimport { allocMatrix, Matrix } from \"./matrix.js\";\nimport { allocFontExtents, allocGlyphBuffer, allocTextExtents, readFontExtents, readTextExtents } from \"./text.js\";\n\nconst SCALED_FONT_TYPE = cairoGType(\"cairo_gobject_scaled_font_get_type\");\nconst GLYPH_SIZE = 24;\nconst CLUSTER_SIZE = 8;\nconst cairoScaledFontStatus = bindCairo(\"cairo_scaled_font_status\", [SCALED_FONT_T], t.int32);\nconst cairoScaledFontExtents = bindCairo(\"cairo_scaled_font_extents\", [SCALED_FONT_T, FONT_EXTENTS_T], t.void);\nconst cairoScaledFontGetFontFace = bindCairo(\"cairo_scaled_font_get_font_face\", [SCALED_FONT_T], FONT_FACE_T);\nconst cairoScaledFontGetFontMatrix = bindCairo(\"cairo_scaled_font_get_font_matrix\", [SCALED_FONT_T, MATRIX_T], t.void);\nconst cairoScaledFontGetCtm = bindCairo(\"cairo_scaled_font_get_ctm\", [SCALED_FONT_T, MATRIX_T], t.void);\nconst cairoScaledFontGetType = bindCairo(\"cairo_scaled_font_get_type\", [SCALED_FONT_T], t.int32);\nconst cairoGlyphFree = bindCairo(\"cairo_glyph_free\", [GLYPH_T], t.void);\nconst cairoTextClusterFree = bindCairo(\"cairo_text_cluster_free\", [TEXT_CLUSTER_T], t.void);\n\nconst cairoScaledFontCreate = bindCairo(\n \"cairo_scaled_font_create\",\n [FONT_FACE_T, MATRIX_T, MATRIX_T, FONT_OPTIONS_T],\n SCALED_FONT_FULL_T,\n);\n\nconst cairoScaledFontTextExtents = bindCairo(\n \"cairo_scaled_font_text_extents\",\n [SCALED_FONT_T, t.string(\"full\"), TEXT_EXTENTS_T],\n t.void,\n);\n\nconst cairoScaledFontGlyphExtents = bindCairo(\n \"cairo_scaled_font_glyph_extents\",\n [SCALED_FONT_T, GLYPH_T, t.int32, TEXT_EXTENTS_T],\n t.void,\n);\n\nconst cairoScaledFontGetFontOptions = bindCairo(\n \"cairo_scaled_font_get_font_options\",\n [SCALED_FONT_T, FONT_OPTIONS_T],\n t.void,\n);\n\nconst cairoScaledFontGetScaleMatrix = bindCairo(\n \"cairo_scaled_font_get_scale_matrix\",\n [SCALED_FONT_T, MATRIX_T],\n t.void,\n);\n\nconst cairoScaledFontGetReferenceCount = bindCairo(\n \"cairo_scaled_font_get_reference_count\",\n [SCALED_FONT_T],\n t.int32,\n);\n\nconst cairoScaledFontTextToGlyphs = bindCairo(\n \"cairo_scaled_font_text_to_glyphs\",\n [\n SCALED_FONT_T,\n t.float64,\n t.float64,\n t.string(\"full\"),\n t.int32,\n t.ref(t.struct(\"borrowed\")),\n t.ref(t.int32),\n t.ref(t.struct(\"borrowed\")),\n t.ref(t.int32),\n t.ref(t.int32),\n ],\n t.int32,\n);\n\nconst readMatrixVia = (self: ScaledFont, boundFn: BoundFunction): Matrix => {\n const { handle, matrix } = allocMatrix();\n boundFn(getHandle(self), handle);\n\n return matrix;\n};\n\nconst readGlyphs = (buffer: ExternalObject<Handle> | null, count: number): CairoGlyph[] => {\n if (buffer === null) {\n return [];\n }\n\n return Array.from({ length: count }, (_, index) => {\n const offset = index * GLYPH_SIZE;\n\n return {\n index: read(buffer, t.uint64, offset) as number,\n x: read(buffer, t.float64, offset + 8) as number,\n y: read(buffer, t.float64, offset + 16) as number,\n };\n });\n};\n\nconst readClusters = (buffer: ExternalObject<Handle> | null, count: number): CairoTextCluster[] => {\n if (buffer === null) {\n return [];\n }\n\n return Array.from({ length: count }, (_, index) => {\n const offset = index * CLUSTER_SIZE;\n\n return {\n numBytes: read(buffer, t.int32, offset) as number,\n numGlyphs: read(buffer, t.int32, offset + 4) as number,\n };\n });\n};\n\n/**\n * A cairo scaled font (`cairo_scaled_font_t`): a font face frozen at a given font matrix, transformation and\n * set of font options, ready to measure and shape text.\n */\nclass ScaledFont {\n static {\n registerWrapperClass(this, SCALED_FONT_TYPE);\n }\n\n /** Creates a scaled font, the same as `new ScaledFont(fontFace, fontMatrix, ctm, options)`. */\n static create(fontFace: FontFace, fontMatrix: Matrix, ctm: Matrix, options: FontOptions): ScaledFont {\n return new ScaledFont(fontFace, fontMatrix, ctm, options);\n }\n\n /** GType of `CairoScaledFont`, the boxed type this class is registered under. */\n declare __type__: bigint;\n\n /** Creates a scaled font from a font face, a font matrix, a user-to-device transformation and font options. */\n constructor(fontFace: FontFace, fontMatrix: Matrix, ctm: Matrix, options: FontOptions) {\n const handle = cairoScaledFontCreate(\n getHandle(fontFace),\n getHandle(fontMatrix),\n getHandle(ctm),\n getHandle(options),\n ) as ExternalObject<Handle>;\n\n setHandle(this, handle);\n }\n\n /** Returns the error status of the scaled font, `Status.SUCCESS` when it is usable. */\n status(): Status {\n return cairoScaledFontStatus(getHandle(this)) as Status;\n }\n\n /** Returns the metrics of the font. */\n extents(): FontExtents {\n const ext = allocFontExtents();\n cairoScaledFontExtents(getHandle(this), ext);\n\n return readFontExtents(ext);\n }\n\n /** Measures `text` with the font. */\n textExtents(text: string): TextExtents {\n const ext = allocTextExtents();\n cairoScaledFontTextExtents(getHandle(this), text, ext);\n\n return readTextExtents(ext);\n }\n\n /** Measures positioned glyphs with the font. */\n glyphExtents(glyphs: CairoGlyph[]): TextExtents {\n const buf = allocGlyphBuffer(glyphs);\n const ext = allocTextExtents();\n cairoScaledFontGlyphExtents(getHandle(this), buf, glyphs.length, ext);\n\n return readTextExtents(ext);\n }\n\n /** Returns the font face the scaled font was created from, wrapped as its concrete class. */\n getFontFace(): FontFace {\n return wrapHandle(cairoScaledFontGetFontFace(getHandle(this)) as ExternalObject<Handle>, FontFace);\n }\n\n /** Returns a copy of the font options the scaled font was created with. */\n getFontOptions(): FontOptions {\n const options = FontOptions.create();\n cairoScaledFontGetFontOptions(getHandle(this), getHandle(options));\n\n return options;\n }\n\n /** Returns the font matrix the scaled font was created with. */\n getFontMatrix(): Matrix {\n return readMatrixVia(this, cairoScaledFontGetFontMatrix);\n }\n\n /** Returns the user-to-device transformation the scaled font was created with. */\n getCtm(): Matrix {\n return readMatrixVia(this, cairoScaledFontGetCtm);\n }\n\n /** Returns the scale matrix: the font matrix multiplied by the transformation, without translation. */\n getScaleMatrix(): Matrix {\n return readMatrixVia(this, cairoScaledFontGetScaleMatrix);\n }\n\n /** Returns the backend the scaled font belongs to. */\n getType(): FontType {\n return cairoScaledFontGetType(getHandle(this)) as FontType;\n }\n\n /** Returns the reference count of the scaled font. */\n getReferenceCount(): number {\n return cairoScaledFontGetReferenceCount(getHandle(this)) as number;\n }\n\n /** Shapes `text` starting at `(x, y)` into glyphs, clusters and the flags describing their order. */\n textToGlyphs(x: number, y: number, text: string): [CairoGlyph[], CairoTextCluster[], TextClusterFlags] {\n const glyphsRef: { value: ExternalObject<Handle> | null } = { value: null };\n const numGlyphsRef = { value: 0 };\n const clustersRef: { value: ExternalObject<Handle> | null } = { value: null };\n const numClustersRef = { value: 0 };\n const clusterFlagsRef = { value: 0 };\n\n cairoScaledFontTextToGlyphs(\n getHandle(this),\n x,\n y,\n text,\n -1,\n glyphsRef,\n numGlyphsRef,\n clustersRef,\n numClustersRef,\n clusterFlagsRef,\n );\n\n const glyphs = readGlyphs(glyphsRef.value, numGlyphsRef.value);\n const clusters = readClusters(clustersRef.value, numClustersRef.value);\n\n if (glyphsRef.value !== null) {\n cairoGlyphFree(glyphsRef.value);\n }\n\n if (clustersRef.value !== null) {\n cairoTextClusterFree(clustersRef.value);\n }\n\n return [glyphs, clusters, clusterFlagsRef.value as TextClusterFlags];\n }\n}\n\nexport { ScaledFont };\n"]}
1
+ {"version":3,"file":"scaled-font.js","sourceRoot":"","sources":["../src/scaled-font.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type ExternalObject,\n getHandle,\n type Handle,\n registerWrapperClass,\n setHandle,\n t,\n wrapHandle,\n} from \"@gtkx/runtime\";\nimport type { FontType, Status } from \"./enums.js\";\nimport type { CairoGlyph, FontExtents, TextExtents } from \"./types.js\";\nimport { FontFace } from \"./font-face.js\";\nimport { FontOptions } from \"./font-options.js\";\nimport {\n bindCairo,\n type BoundFunction,\n cairoGType,\n FONT_EXTENTS_T,\n FONT_FACE_T,\n FONT_OPTIONS_T,\n GLYPH_T,\n MATRIX_T,\n SCALED_FONT_FULL_T,\n SCALED_FONT_T,\n TEXT_EXTENTS_T,\n} from \"./lib.js\";\nimport { allocMatrix, Matrix } from \"./matrix.js\";\nimport { allocFontExtents, allocGlyphBuffer, allocTextExtents, readFontExtents, readTextExtents } from \"./text.js\";\n\nconst SCALED_FONT_TYPE = cairoGType(\"cairo_gobject_scaled_font_get_type\");\nconst cairoScaledFontStatus = bindCairo(\"cairo_scaled_font_status\", [SCALED_FONT_T], t.int32);\nconst cairoScaledFontExtents = bindCairo(\"cairo_scaled_font_extents\", [SCALED_FONT_T, FONT_EXTENTS_T], t.void);\nconst cairoScaledFontGetFontFace = bindCairo(\"cairo_scaled_font_get_font_face\", [SCALED_FONT_T], FONT_FACE_T);\nconst cairoScaledFontGetFontMatrix = bindCairo(\"cairo_scaled_font_get_font_matrix\", [SCALED_FONT_T, MATRIX_T], t.void);\nconst cairoScaledFontGetCtm = bindCairo(\"cairo_scaled_font_get_ctm\", [SCALED_FONT_T, MATRIX_T], t.void);\nconst cairoScaledFontGetType = bindCairo(\"cairo_scaled_font_get_type\", [SCALED_FONT_T], t.int32);\n\nconst cairoScaledFontCreate = bindCairo(\n \"cairo_scaled_font_create\",\n [FONT_FACE_T, MATRIX_T, MATRIX_T, FONT_OPTIONS_T],\n SCALED_FONT_FULL_T,\n);\n\nconst cairoScaledFontTextExtents = bindCairo(\n \"cairo_scaled_font_text_extents\",\n [SCALED_FONT_T, t.string(\"full\"), TEXT_EXTENTS_T],\n t.void,\n);\n\nconst cairoScaledFontGlyphExtents = bindCairo(\n \"cairo_scaled_font_glyph_extents\",\n [SCALED_FONT_T, GLYPH_T, t.int32, TEXT_EXTENTS_T],\n t.void,\n);\n\nconst cairoScaledFontGetFontOptions = bindCairo(\n \"cairo_scaled_font_get_font_options\",\n [SCALED_FONT_T, FONT_OPTIONS_T],\n t.void,\n);\n\nconst cairoScaledFontGetScaleMatrix = bindCairo(\n \"cairo_scaled_font_get_scale_matrix\",\n [SCALED_FONT_T, MATRIX_T],\n t.void,\n);\n\nconst cairoScaledFontGetReferenceCount = bindCairo(\n \"cairo_scaled_font_get_reference_count\",\n [SCALED_FONT_T],\n t.int32,\n);\n\nconst readMatrixVia = (self: ScaledFont, boundFn: BoundFunction): Matrix => {\n const { handle, matrix } = allocMatrix();\n boundFn(getHandle(self), handle);\n\n return matrix;\n};\n\n/**\n * A cairo scaled font (`cairo_scaled_font_t`): a font face frozen at a given font matrix, transformation and\n * set of font options, ready to measure text and positioned glyphs.\n */\nclass ScaledFont {\n static {\n registerWrapperClass(this, SCALED_FONT_TYPE);\n }\n\n /** Creates a scaled font, the same as `new ScaledFont(fontFace, fontMatrix, ctm, options)`. */\n static create(fontFace: FontFace, fontMatrix: Matrix, ctm: Matrix, options: FontOptions): ScaledFont {\n return new ScaledFont(fontFace, fontMatrix, ctm, options);\n }\n\n /** GType of `CairoScaledFont`, the boxed type this class is registered under. */\n declare __type__: bigint;\n\n /** Creates a scaled font from a font face, a font matrix, a user-to-device transformation and font options. */\n constructor(fontFace: FontFace, fontMatrix: Matrix, ctm: Matrix, options: FontOptions) {\n const handle = cairoScaledFontCreate(\n getHandle(fontFace),\n getHandle(fontMatrix),\n getHandle(ctm),\n getHandle(options),\n ) as ExternalObject<Handle>;\n\n setHandle(this, handle);\n }\n\n /** Returns the error status of the scaled font, `Status.SUCCESS` when it is usable. */\n status(): Status {\n return cairoScaledFontStatus(getHandle(this)) as Status;\n }\n\n /** Returns the metrics of the font. */\n extents(): FontExtents {\n const ext = allocFontExtents();\n cairoScaledFontExtents(getHandle(this), ext);\n\n return readFontExtents(ext);\n }\n\n /** Measures `text` with the font. */\n textExtents(text: string): TextExtents {\n const ext = allocTextExtents();\n cairoScaledFontTextExtents(getHandle(this), text, ext);\n\n return readTextExtents(ext);\n }\n\n /** Measures positioned glyphs with the font. */\n glyphExtents(glyphs: CairoGlyph[]): TextExtents {\n const buf = allocGlyphBuffer(glyphs);\n const ext = allocTextExtents();\n cairoScaledFontGlyphExtents(getHandle(this), buf, glyphs.length, ext);\n\n return readTextExtents(ext);\n }\n\n /** Returns the font face the scaled font was created from, wrapped as its concrete class. */\n getFontFace(): FontFace {\n return wrapHandle(cairoScaledFontGetFontFace(getHandle(this)) as ExternalObject<Handle>, FontFace);\n }\n\n /** Returns a copy of the font options the scaled font was created with. */\n getFontOptions(): FontOptions {\n const options = FontOptions.create();\n cairoScaledFontGetFontOptions(getHandle(this), getHandle(options));\n\n return options;\n }\n\n /** Returns the font matrix the scaled font was created with. */\n getFontMatrix(): Matrix {\n return readMatrixVia(this, cairoScaledFontGetFontMatrix);\n }\n\n /** Returns the user-to-device transformation the scaled font was created with. */\n getCtm(): Matrix {\n return readMatrixVia(this, cairoScaledFontGetCtm);\n }\n\n /** Returns the scale matrix: the font matrix multiplied by the transformation, without translation. */\n getScaleMatrix(): Matrix {\n return readMatrixVia(this, cairoScaledFontGetScaleMatrix);\n }\n\n /** Returns the backend the scaled font belongs to. */\n getType(): FontType {\n return cairoScaledFontGetType(getHandle(this)) as FontType;\n }\n\n /** Returns the reference count of the scaled font. */\n getReferenceCount(): number {\n return cairoScaledFontGetReferenceCount(getHandle(this)) as number;\n }\n}\n\nexport { ScaledFont };\n"]}
package/dist/structs.d.ts CHANGED
@@ -59,7 +59,7 @@ declare class Rectangle {
59
59
  /** Height of the rectangle. */
60
60
  set height(value: number);
61
61
  }
62
- /** A rectangle with integer edges, as regions and `Surface.mapToImage` use. */
62
+ /** A rectangle with integer edges, as Cairo regions use. */
63
63
  declare class RectangleInt {
64
64
  /** GType of `CairoRectangleInt`, the boxed type this struct is registered under. */
65
65
  __type__: bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"structs.d.ts","sourceRoot":"","sources":["../src/structs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"structs.d.ts","sourceRoot":"","sources":["../src/structs.ts"],"names":[],"mappings":"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"}
package/dist/structs.js CHANGED
@@ -67,7 +67,7 @@ class Rectangle {
67
67
  writeField(this, DOUBLE, 24, value);
68
68
  }
69
69
  }
70
- /** A rectangle with integer edges, as regions and `Surface.mapToImage` use. */
70
+ /** A rectangle with integer edges, as Cairo regions use. */
71
71
  class RectangleInt {
72
72
  static {
73
73
  registerWrapperClass(this, RECTANGLE_INT_TYPE);
@@ -1 +1 @@
1
- {"version":3,"file":"structs.js","sourceRoot":"","sources":["../src/structs.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n alloc,\n type ExternalObject,\n getHandle,\n type Handle,\n read,\n registerWrapperClass,\n resolveType,\n setHandle,\n t,\n toNative,\n write,\n} from \"@gtkx/runtime\";\n\ntype FieldDescriptor = typeof t.float64 | typeof t.int32 | typeof t.biguint64;\n\n/** Initial field values for a `Rectangle`; a field left out or set to null keeps zero. */\ntype RectangleConstructorProps = {\n /** Horizontal position of the left edge. */\n x?: number | null;\n /** Vertical position of the top edge. */\n y?: number | null;\n /** Width of the rectangle. */\n width?: number | null;\n /** Height of the rectangle. */\n height?: number | null;\n};\n\n/** Initial field values for a `RectangleInt`; a field left out or set to null keeps zero. */\ntype RectangleIntConstructorProps = {\n /** Horizontal position of the left edge. */\n x?: number | null;\n /** Vertical position of the top edge. */\n y?: number | null;\n /** Width of the rectangle. */\n width?: number | null;\n /** Height of the rectangle. */\n height?: number | null;\n};\n\n/** Initial field values for a `Glyph`; a field left out or set to null keeps zero. */\ntype GlyphConstructorProps = {\n /** Index of the glyph in the font. */\n index?: bigint | null;\n /** Horizontal position of the glyph origin. */\n x?: number | null;\n /** Vertical position of the glyph origin. */\n y?: number | null;\n};\n\n/** Initial field values for a `TextCluster`; a field left out or set to null keeps zero. */\ntype TextClusterConstructorProps = {\n /** Number of UTF-8 bytes the cluster covers. */\n numBytes?: number | null;\n /** Number of glyphs the cluster covers. */\n numGlyphs?: number | null;\n};\n\nconst CAIRO_GOBJECT_LIBRARY = \"libcairo-gobject.so.2\";\nconst RECTANGLE_TYPE = resolveType(CAIRO_GOBJECT_LIBRARY, \"cairo_gobject_rectangle_get_type\");\nconst RECTANGLE_INT_TYPE = resolveType(CAIRO_GOBJECT_LIBRARY, \"cairo_gobject_rectangle_int_get_type\");\nconst GLYPH_TYPE = resolveType(CAIRO_GOBJECT_LIBRARY, \"cairo_gobject_glyph_get_type\");\nconst TEXT_CLUSTER_TYPE = resolveType(CAIRO_GOBJECT_LIBRARY, \"cairo_gobject_text_cluster_get_type\");\nconst RECTANGLE_SIZE = 32;\nconst RECTANGLE_INT_SIZE = 16;\nconst GLYPH_SIZE = 24;\nconst TEXT_CLUSTER_SIZE = 8;\nconst DOUBLE = t.float64;\nconst INT = t.int32;\nconst ULONG = t.biguint64;\n\nconst readField = (instance: object, descriptor: FieldDescriptor, offset: number): number =>\n read(getHandle(instance), descriptor, offset) as number;\n\nconst writeField = (instance: object, descriptor: FieldDescriptor, offset: number, value: unknown): void => {\n write(getHandle(instance), descriptor, offset, toNative(descriptor, value));\n};\n\nconst writeInitial = (\n handle: ExternalObject<Handle>,\n descriptor: FieldDescriptor,\n offset: number,\n value: unknown,\n): void => {\n if (value != null) {\n write(handle, descriptor, offset, toNative(descriptor, value));\n }\n};\n\n/** A rectangle with double-precision edges, as `copyClipRectangleList` and recording surfaces report. */\nclass Rectangle {\n static {\n registerWrapperClass(this, RECTANGLE_TYPE);\n }\n\n /** GType of `CairoRectangle`, the boxed type this struct is registered under. */\n declare __type__: bigint;\n\n /** Allocates a rectangle, writing the given fields and leaving the others at zero. */\n constructor(props: RectangleConstructorProps = {}) {\n const handle = alloc(RECTANGLE_SIZE, RECTANGLE_TYPE);\n writeInitial(handle, DOUBLE, 0, props.x);\n writeInitial(handle, DOUBLE, 8, props.y);\n writeInitial(handle, DOUBLE, 16, props.width);\n writeInitial(handle, DOUBLE, 24, props.height);\n setHandle(this, handle);\n }\n\n /** Horizontal position of the left edge. */\n get x(): number {\n return readField(this, DOUBLE, 0);\n }\n\n /** Horizontal position of the left edge. */\n set x(value: number) {\n writeField(this, DOUBLE, 0, value);\n }\n\n /** Vertical position of the top edge. */\n get y(): number {\n return readField(this, DOUBLE, 8);\n }\n\n /** Vertical position of the top edge. */\n set y(value: number) {\n writeField(this, DOUBLE, 8, value);\n }\n\n /** Width of the rectangle. */\n get width(): number {\n return readField(this, DOUBLE, 16);\n }\n\n /** Width of the rectangle. */\n set width(value: number) {\n writeField(this, DOUBLE, 16, value);\n }\n\n /** Height of the rectangle. */\n get height(): number {\n return readField(this, DOUBLE, 24);\n }\n\n /** Height of the rectangle. */\n set height(value: number) {\n writeField(this, DOUBLE, 24, value);\n }\n}\n\n/** A rectangle with integer edges, as regions and `Surface.mapToImage` use. */\nclass RectangleInt {\n static {\n registerWrapperClass(this, RECTANGLE_INT_TYPE);\n }\n\n /** GType of `CairoRectangleInt`, the boxed type this struct is registered under. */\n declare __type__: bigint;\n\n /** Allocates a rectangle, writing the given fields and leaving the others at zero. */\n constructor(props: RectangleIntConstructorProps = {}) {\n const handle = alloc(RECTANGLE_INT_SIZE, RECTANGLE_INT_TYPE);\n writeInitial(handle, INT, 0, props.x);\n writeInitial(handle, INT, 4, props.y);\n writeInitial(handle, INT, 8, props.width);\n writeInitial(handle, INT, 12, props.height);\n setHandle(this, handle);\n }\n\n /** Horizontal position of the left edge. */\n get x(): number {\n return readField(this, INT, 0);\n }\n\n /** Horizontal position of the left edge. */\n set x(value: number) {\n writeField(this, INT, 0, value);\n }\n\n /** Vertical position of the top edge. */\n get y(): number {\n return readField(this, INT, 4);\n }\n\n /** Vertical position of the top edge. */\n set y(value: number) {\n writeField(this, INT, 4, value);\n }\n\n /** Width of the rectangle. */\n get width(): number {\n return readField(this, INT, 8);\n }\n\n /** Width of the rectangle. */\n set width(value: number) {\n writeField(this, INT, 8, value);\n }\n\n /** Height of the rectangle. */\n get height(): number {\n return readField(this, INT, 12);\n }\n\n /** Height of the rectangle. */\n set height(value: number) {\n writeField(this, INT, 12, value);\n }\n}\n\n/** A `cairo_glyph_t`: one glyph index and where to draw it. */\nclass Glyph {\n static {\n registerWrapperClass(this, GLYPH_TYPE);\n }\n\n /** GType of `CairoGlyph`, the boxed type this struct is registered under. */\n declare __type__: bigint;\n\n /** Allocates a glyph, writing the given fields and leaving the others at zero. */\n constructor(props: GlyphConstructorProps = {}) {\n const handle = alloc(GLYPH_SIZE, GLYPH_TYPE);\n writeInitial(handle, ULONG, 0, props.index);\n writeInitial(handle, DOUBLE, 8, props.x);\n writeInitial(handle, DOUBLE, 16, props.y);\n setHandle(this, handle);\n }\n\n /** Index of the glyph in the font. */\n get index(): bigint {\n return read(getHandle(this), ULONG, 0) as bigint;\n }\n\n /** Index of the glyph in the font. */\n set index(value: bigint) {\n writeField(this, ULONG, 0, value);\n }\n\n /** Horizontal position of the glyph origin. */\n get x(): number {\n return readField(this, DOUBLE, 8);\n }\n\n /** Horizontal position of the glyph origin. */\n set x(value: number) {\n writeField(this, DOUBLE, 8, value);\n }\n\n /** Vertical position of the glyph origin. */\n get y(): number {\n return readField(this, DOUBLE, 16);\n }\n\n /** Vertical position of the glyph origin. */\n set y(value: number) {\n writeField(this, DOUBLE, 16, value);\n }\n}\n\n/** A `cairo_text_cluster_t`: how many bytes of text map to how many glyphs. */\nclass TextCluster {\n static {\n registerWrapperClass(this, TEXT_CLUSTER_TYPE);\n }\n\n /** GType of `CairoTextCluster`, the boxed type this struct is registered under. */\n declare __type__: bigint;\n\n /** Allocates a cluster, writing the given fields and leaving the others at zero. */\n constructor(props: TextClusterConstructorProps = {}) {\n const handle = alloc(TEXT_CLUSTER_SIZE, TEXT_CLUSTER_TYPE);\n writeInitial(handle, INT, 0, props.numBytes);\n writeInitial(handle, INT, 4, props.numGlyphs);\n setHandle(this, handle);\n }\n\n /** Number of UTF-8 bytes the cluster covers. */\n get numBytes(): number {\n return readField(this, INT, 0);\n }\n\n /** Number of UTF-8 bytes the cluster covers. */\n set numBytes(value: number) {\n writeField(this, INT, 0, value);\n }\n\n /** Number of glyphs the cluster covers. */\n get numGlyphs(): number {\n return readField(this, INT, 4);\n }\n\n /** Number of glyphs the cluster covers. */\n set numGlyphs(value: number) {\n writeField(this, INT, 4, value);\n }\n}\n\nexport {\n Glyph,\n type GlyphConstructorProps,\n Rectangle,\n type RectangleConstructorProps,\n RectangleInt,\n type RectangleIntConstructorProps,\n TextCluster,\n type TextClusterConstructorProps,\n};\n"]}
1
+ {"version":3,"file":"structs.js","sourceRoot":"","sources":["../src/structs.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n alloc,\n type ExternalObject,\n getHandle,\n type Handle,\n read,\n registerWrapperClass,\n resolveType,\n setHandle,\n t,\n toNative,\n write,\n} from \"@gtkx/runtime\";\n\ntype FieldDescriptor = typeof t.float64 | typeof t.int32 | typeof t.biguint64;\n\n/** Initial field values for a `Rectangle`; a field left out or set to null keeps zero. */\ntype RectangleConstructorProps = {\n /** Horizontal position of the left edge. */\n x?: number | null;\n /** Vertical position of the top edge. */\n y?: number | null;\n /** Width of the rectangle. */\n width?: number | null;\n /** Height of the rectangle. */\n height?: number | null;\n};\n\n/** Initial field values for a `RectangleInt`; a field left out or set to null keeps zero. */\ntype RectangleIntConstructorProps = {\n /** Horizontal position of the left edge. */\n x?: number | null;\n /** Vertical position of the top edge. */\n y?: number | null;\n /** Width of the rectangle. */\n width?: number | null;\n /** Height of the rectangle. */\n height?: number | null;\n};\n\n/** Initial field values for a `Glyph`; a field left out or set to null keeps zero. */\ntype GlyphConstructorProps = {\n /** Index of the glyph in the font. */\n index?: bigint | null;\n /** Horizontal position of the glyph origin. */\n x?: number | null;\n /** Vertical position of the glyph origin. */\n y?: number | null;\n};\n\n/** Initial field values for a `TextCluster`; a field left out or set to null keeps zero. */\ntype TextClusterConstructorProps = {\n /** Number of UTF-8 bytes the cluster covers. */\n numBytes?: number | null;\n /** Number of glyphs the cluster covers. */\n numGlyphs?: number | null;\n};\n\nconst CAIRO_GOBJECT_LIBRARY = \"libcairo-gobject.so.2\";\nconst RECTANGLE_TYPE = resolveType(CAIRO_GOBJECT_LIBRARY, \"cairo_gobject_rectangle_get_type\");\nconst RECTANGLE_INT_TYPE = resolveType(CAIRO_GOBJECT_LIBRARY, \"cairo_gobject_rectangle_int_get_type\");\nconst GLYPH_TYPE = resolveType(CAIRO_GOBJECT_LIBRARY, \"cairo_gobject_glyph_get_type\");\nconst TEXT_CLUSTER_TYPE = resolveType(CAIRO_GOBJECT_LIBRARY, \"cairo_gobject_text_cluster_get_type\");\nconst RECTANGLE_SIZE = 32;\nconst RECTANGLE_INT_SIZE = 16;\nconst GLYPH_SIZE = 24;\nconst TEXT_CLUSTER_SIZE = 8;\nconst DOUBLE = t.float64;\nconst INT = t.int32;\nconst ULONG = t.biguint64;\n\nconst readField = (instance: object, descriptor: FieldDescriptor, offset: number): number =>\n read(getHandle(instance), descriptor, offset) as number;\n\nconst writeField = (instance: object, descriptor: FieldDescriptor, offset: number, value: unknown): void => {\n write(getHandle(instance), descriptor, offset, toNative(descriptor, value));\n};\n\nconst writeInitial = (\n handle: ExternalObject<Handle>,\n descriptor: FieldDescriptor,\n offset: number,\n value: unknown,\n): void => {\n if (value != null) {\n write(handle, descriptor, offset, toNative(descriptor, value));\n }\n};\n\n/** A rectangle with double-precision edges, as `copyClipRectangleList` and recording surfaces report. */\nclass Rectangle {\n static {\n registerWrapperClass(this, RECTANGLE_TYPE);\n }\n\n /** GType of `CairoRectangle`, the boxed type this struct is registered under. */\n declare __type__: bigint;\n\n /** Allocates a rectangle, writing the given fields and leaving the others at zero. */\n constructor(props: RectangleConstructorProps = {}) {\n const handle = alloc(RECTANGLE_SIZE, RECTANGLE_TYPE);\n writeInitial(handle, DOUBLE, 0, props.x);\n writeInitial(handle, DOUBLE, 8, props.y);\n writeInitial(handle, DOUBLE, 16, props.width);\n writeInitial(handle, DOUBLE, 24, props.height);\n setHandle(this, handle);\n }\n\n /** Horizontal position of the left edge. */\n get x(): number {\n return readField(this, DOUBLE, 0);\n }\n\n /** Horizontal position of the left edge. */\n set x(value: number) {\n writeField(this, DOUBLE, 0, value);\n }\n\n /** Vertical position of the top edge. */\n get y(): number {\n return readField(this, DOUBLE, 8);\n }\n\n /** Vertical position of the top edge. */\n set y(value: number) {\n writeField(this, DOUBLE, 8, value);\n }\n\n /** Width of the rectangle. */\n get width(): number {\n return readField(this, DOUBLE, 16);\n }\n\n /** Width of the rectangle. */\n set width(value: number) {\n writeField(this, DOUBLE, 16, value);\n }\n\n /** Height of the rectangle. */\n get height(): number {\n return readField(this, DOUBLE, 24);\n }\n\n /** Height of the rectangle. */\n set height(value: number) {\n writeField(this, DOUBLE, 24, value);\n }\n}\n\n/** A rectangle with integer edges, as Cairo regions use. */\nclass RectangleInt {\n static {\n registerWrapperClass(this, RECTANGLE_INT_TYPE);\n }\n\n /** GType of `CairoRectangleInt`, the boxed type this struct is registered under. */\n declare __type__: bigint;\n\n /** Allocates a rectangle, writing the given fields and leaving the others at zero. */\n constructor(props: RectangleIntConstructorProps = {}) {\n const handle = alloc(RECTANGLE_INT_SIZE, RECTANGLE_INT_TYPE);\n writeInitial(handle, INT, 0, props.x);\n writeInitial(handle, INT, 4, props.y);\n writeInitial(handle, INT, 8, props.width);\n writeInitial(handle, INT, 12, props.height);\n setHandle(this, handle);\n }\n\n /** Horizontal position of the left edge. */\n get x(): number {\n return readField(this, INT, 0);\n }\n\n /** Horizontal position of the left edge. */\n set x(value: number) {\n writeField(this, INT, 0, value);\n }\n\n /** Vertical position of the top edge. */\n get y(): number {\n return readField(this, INT, 4);\n }\n\n /** Vertical position of the top edge. */\n set y(value: number) {\n writeField(this, INT, 4, value);\n }\n\n /** Width of the rectangle. */\n get width(): number {\n return readField(this, INT, 8);\n }\n\n /** Width of the rectangle. */\n set width(value: number) {\n writeField(this, INT, 8, value);\n }\n\n /** Height of the rectangle. */\n get height(): number {\n return readField(this, INT, 12);\n }\n\n /** Height of the rectangle. */\n set height(value: number) {\n writeField(this, INT, 12, value);\n }\n}\n\n/** A `cairo_glyph_t`: one glyph index and where to draw it. */\nclass Glyph {\n static {\n registerWrapperClass(this, GLYPH_TYPE);\n }\n\n /** GType of `CairoGlyph`, the boxed type this struct is registered under. */\n declare __type__: bigint;\n\n /** Allocates a glyph, writing the given fields and leaving the others at zero. */\n constructor(props: GlyphConstructorProps = {}) {\n const handle = alloc(GLYPH_SIZE, GLYPH_TYPE);\n writeInitial(handle, ULONG, 0, props.index);\n writeInitial(handle, DOUBLE, 8, props.x);\n writeInitial(handle, DOUBLE, 16, props.y);\n setHandle(this, handle);\n }\n\n /** Index of the glyph in the font. */\n get index(): bigint {\n return read(getHandle(this), ULONG, 0) as bigint;\n }\n\n /** Index of the glyph in the font. */\n set index(value: bigint) {\n writeField(this, ULONG, 0, value);\n }\n\n /** Horizontal position of the glyph origin. */\n get x(): number {\n return readField(this, DOUBLE, 8);\n }\n\n /** Horizontal position of the glyph origin. */\n set x(value: number) {\n writeField(this, DOUBLE, 8, value);\n }\n\n /** Vertical position of the glyph origin. */\n get y(): number {\n return readField(this, DOUBLE, 16);\n }\n\n /** Vertical position of the glyph origin. */\n set y(value: number) {\n writeField(this, DOUBLE, 16, value);\n }\n}\n\n/** A `cairo_text_cluster_t`: how many bytes of text map to how many glyphs. */\nclass TextCluster {\n static {\n registerWrapperClass(this, TEXT_CLUSTER_TYPE);\n }\n\n /** GType of `CairoTextCluster`, the boxed type this struct is registered under. */\n declare __type__: bigint;\n\n /** Allocates a cluster, writing the given fields and leaving the others at zero. */\n constructor(props: TextClusterConstructorProps = {}) {\n const handle = alloc(TEXT_CLUSTER_SIZE, TEXT_CLUSTER_TYPE);\n writeInitial(handle, INT, 0, props.numBytes);\n writeInitial(handle, INT, 4, props.numGlyphs);\n setHandle(this, handle);\n }\n\n /** Number of UTF-8 bytes the cluster covers. */\n get numBytes(): number {\n return readField(this, INT, 0);\n }\n\n /** Number of UTF-8 bytes the cluster covers. */\n set numBytes(value: number) {\n writeField(this, INT, 0, value);\n }\n\n /** Number of glyphs the cluster covers. */\n get numGlyphs(): number {\n return readField(this, INT, 4);\n }\n\n /** Number of glyphs the cluster covers. */\n set numGlyphs(value: number) {\n writeField(this, INT, 4, value);\n }\n}\n\nexport {\n Glyph,\n type GlyphConstructorProps,\n Rectangle,\n type RectangleConstructorProps,\n RectangleInt,\n type RectangleIntConstructorProps,\n TextCluster,\n type TextClusterConstructorProps,\n};\n"]}