textmode.js 0.1.9 → 0.2.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +4 -4
  2. package/dist/textmode.esm.js +1418 -1481
  3. package/dist/textmode.esm.min.js +1500 -1563
  4. package/dist/textmode.umd.js +19 -56
  5. package/dist/textmode.umd.min.js +20 -57
  6. package/dist/types/Textmode.d.ts +10 -38
  7. package/dist/types/export/base/DataExtractor.d.ts +3 -3
  8. package/dist/types/export/image/ImageExporter.d.ts +4 -11
  9. package/dist/types/export/image/types.d.ts +2 -3
  10. package/dist/types/export/svg/SVGExporter.d.ts +1 -1
  11. package/dist/types/export/svg/types.d.ts +1 -0
  12. package/dist/types/export/txt/TXTExporter.d.ts +1 -1
  13. package/dist/types/export/txt/types.d.ts +2 -2
  14. package/dist/types/index.d.ts +1 -7
  15. package/dist/types/rendering/index.d.ts +0 -1
  16. package/dist/types/rendering/webgl/DrawQueue.d.ts +26 -0
  17. package/dist/types/rendering/webgl/Framebuffer.d.ts +41 -40
  18. package/dist/types/rendering/webgl/InstanceBatch.d.ts +91 -0
  19. package/dist/types/rendering/webgl/InstanceData.d.ts +65 -0
  20. package/dist/types/rendering/webgl/RenderPipeline.d.ts +15 -0
  21. package/dist/types/rendering/webgl/RenderState.d.ts +71 -0
  22. package/dist/types/rendering/webgl/Renderer.d.ts +54 -81
  23. package/dist/types/rendering/webgl/Shader.d.ts +11 -16
  24. package/dist/types/rendering/webgl/VAOManager.d.ts +15 -0
  25. package/dist/types/rendering/webgl/geometries/Arc.d.ts +16 -0
  26. package/dist/types/rendering/webgl/geometries/BaseGeometry.d.ts +35 -29
  27. package/dist/types/rendering/webgl/geometries/BezierCurve.d.ts +22 -0
  28. package/dist/types/rendering/webgl/geometries/Ellipse.d.ts +20 -0
  29. package/dist/types/rendering/webgl/geometries/Line.d.ts +13 -4
  30. package/dist/types/rendering/webgl/geometries/Rectangle.d.ts +13 -8
  31. package/dist/types/rendering/webgl/geometries/Triangle.d.ts +20 -0
  32. package/dist/types/rendering/webgl/geometries/index.d.ts +4 -1
  33. package/dist/types/rendering/webgl/index.d.ts +17 -1
  34. package/dist/types/rendering/webgl/types/DrawCommand.d.ts +9 -0
  35. package/dist/types/rendering/webgl/types/GeometryTypes.d.ts +144 -0
  36. package/dist/types/rendering/webgl/types/RenderTypes.d.ts +12 -0
  37. package/dist/types/textmode/AnimationController.d.ts +81 -0
  38. package/dist/types/textmode/Canvas.d.ts +18 -19
  39. package/dist/types/textmode/Grid.d.ts +1 -34
  40. package/dist/types/textmode/Textmodifier.d.ts +36 -277
  41. package/dist/types/textmode/font/CharacterColorMapper.d.ts +3 -3
  42. package/dist/types/textmode/font/TextmodeFont.d.ts +6 -11
  43. package/dist/types/textmode/font/types.d.ts +1 -1
  44. package/dist/types/textmode/font/typr/types.d.ts +1 -1
  45. package/dist/types/textmode/font/utils/index.d.ts +0 -1
  46. package/dist/types/textmode/mixins/AnimationMixin.d.ts +120 -0
  47. package/dist/types/textmode/mixins/ExportMixin.d.ts +4 -6
  48. package/dist/types/textmode/mixins/FontMixin.d.ts +4 -10
  49. package/dist/types/textmode/mixins/RenderingMixin.d.ts +224 -246
  50. package/dist/types/textmode/mixins/TextmodifierMixin.d.ts +13 -4
  51. package/dist/types/textmode/mixins/index.d.ts +2 -2
  52. package/package.json +1 -1
  53. package/dist/types/ColorPalette.d.ts +0 -35
  54. package/dist/types/rendering/core/Framebuffer.d.ts +0 -140
  55. package/dist/types/rendering/core/Shader.d.ts +0 -59
  56. package/dist/types/rendering/core/index.d.ts +0 -2
  57. package/dist/types/textmode/ConversionPipeline.d.ts +0 -110
  58. package/dist/types/textmode/converters/BrightnessConverter.d.ts +0 -58
  59. package/dist/types/textmode/converters/Converter.d.ts +0 -69
  60. package/dist/types/textmode/converters/FeatureConverter.d.ts +0 -128
  61. package/dist/types/textmode/converters/index.d.ts +0 -3
  62. package/dist/types/textmode/font/utils/FontConstants.d.ts +0 -60
  63. package/dist/types/textmode/mixins/ConversionMixin.d.ts +0 -62
@@ -1,60 +0,0 @@
1
- /**
2
- * Font-related constants and configuration values.
3
- * Centralizes magic numbers and configuration to improve maintainability.
4
- */
5
- /**
6
- * Character mapping platform and encoding preferences.
7
- * Ordered by preference for Unicode character mapping.
8
- */
9
- export declare const CMAP_PLATFORM_PREFERENCES: readonly ["p3e1", "p3e10", "p0e3", "p0e4"];
10
- /**
11
- * Control characters that are allowed in text rendering.
12
- * Most control characters are filtered out, but these common ones are preserved.
13
- */
14
- export declare const ALLOWED_CONTROL_CHARACTERS: readonly [9, 10, 13];
15
- /**
16
- * Character code ranges to filter out during character extraction.
17
- */
18
- export declare const FILTERED_CHARACTER_RANGES: readonly [{
19
- readonly start: 0;
20
- readonly end: 31;
21
- }, {
22
- readonly start: 127;
23
- readonly end: 159;
24
- }];
25
- /**
26
- * Font table format constants.
27
- */
28
- export declare const CMAP_FORMATS: {
29
- readonly BMP_UNICODE: 4;
30
- readonly FULL_UNICODE: 12;
31
- };
32
- /**
33
- * Default font metrics and sizing constants.
34
- */
35
- export declare const FONT_DEFAULTS: {
36
- readonly SIZE: 16;
37
- readonly FAMILY_NAME: "UrsaFont";
38
- readonly ATLAS_PADDING: 1;
39
- };
40
- /**
41
- * Cache size limits to prevent excessive memory usage.
42
- */
43
- export declare const CACHE_LIMITS: {
44
- readonly GLYPH_INDEX_CACHE: 10000;
45
- readonly CMAP_TABLE_CACHE: 100;
46
- readonly FONT_METRICS_CACHE: 1000;
47
- };
48
- /**
49
- * Sentinel values used in font tables.
50
- */
51
- export declare const FONT_SENTINELS: {
52
- readonly CMAP_END_MARKER: 65535;
53
- };
54
- /**
55
- * WebGL texture configuration for font atlases.
56
- */
57
- export declare const TEXTURE_CONFIG: {
58
- readonly FILTER: "nearest";
59
- readonly WRAP: "clamp-to-edge";
60
- };
@@ -1,62 +0,0 @@
1
- import type { Mixin } from './TextmodifierMixin';
2
- import type { TextmodeConverter } from '../converters';
3
- /**
4
- * Interface for conversion pipeline capabilities that will be mixed into Textmodifier
5
- */
6
- export interface ConversionCapabilities {
7
- /**
8
- * Adds a new converter to the pipeline.
9
- * @param type The type of converter to add. Can be either "brightness" or "custom".
10
- * @returns The newly created {@link TextmodeConverter} instance or `void` if the addition failed.
11
- *
12
- * @example
13
- * ```javascript
14
- * // Fetch a canvas element to apply textmode rendering to
15
- * const canvas = document.querySelector('canvas#myCanvas');
16
- *
17
- * // Create a Textmodifier instance
18
- * const textmodifier = await textmode.create(canvas);
19
- *
20
- * // Add a new brightness converter
21
- * const myConverter = textmodifier.addConverter('brightness');
22
- *
23
- * // Configure the new converter
24
- * myConverter.characters("▓▒░ ");
25
- * myConverter.enabled(true);
26
- *
27
- * // Add a custom converter
28
- * const customConverter = textmodifier.addConverter('custom');
29
- * ```
30
- */
31
- addConverter(type: 'brightness' | 'custom'): TextmodeConverter | void;
32
- /**
33
- * Removes a converter from the pipeline by name or instance.
34
- * @param nameOrInstance The unique name of the converter or the converter instance to remove.
35
- *
36
- * @example
37
- * ```javascript
38
- * // Fetch a canvas element to apply textmode rendering to
39
- * const canvas = document.querySelector('canvas#myCanvas');
40
- *
41
- * // Create a Textmodifier instance
42
- * const textmodifier = await textmode.create(canvas);
43
- *
44
- * // Add a converter
45
- * const myConverter = textmodifier.addConverter('temp-converter', 'brightness');
46
- *
47
- * // Remove by name
48
- * textmodifier.removeConverter('temp-converter');
49
- *
50
- * // Or remove by instance
51
- * const anotherConverter = textmodifier.addConverter('another', 'custom');
52
- * textmodifier.removeConverter(anotherConverter);
53
- * ```
54
- */
55
- removeConverter(nameOrInstance: string | TextmodeConverter): void;
56
- }
57
- /**
58
- * Mixin that adds conversion pipeline capabilities to a class by delegating to TextmodeConversionPipeline
59
- * @param Base The base class to extend
60
- * @returns Extended class with conversion capabilities
61
- */
62
- export declare const ConversionMixin: Mixin<ConversionCapabilities>;