Commit Graph
86 Commits
Author SHA1 Message Date
Benjamin Woodruff 3971fc9b4e Save and restore the ctx for cached characters
Drawing dim colors sets the globalAlpha to 0.5, so we need to
save/restore the ctx state. Otherwise, every time we draw some dim
content, our display will get progressively dimmer.

I tested this by running `echo '\u001b[2mfoo'` a few times in zsh.

Fixes #1424
2018-05-09 20:34:55 -07:00
Benjamin Woodruff 9893338020 Add drawBoldTextInBrightColors to DEFAULT_OPTIONS
This lets term.setOption() work for drawBoldTextInBrightColors.
2018-05-08 18:34:23 -07:00
Linus Unnebäck ce6139e604 Add drawBoldTextInBrightColors option 2018-05-07 22:23:04 +02:00
Linus Unnebäck a23354f018 Fully use char atlas for bright & bold colors 2018-05-07 22:23:01 +02:00
Linus Unnebäck 41fd563144 Separate bright and bold 2018-05-07 22:19:01 +02:00
Daniel Imms a732952677 Rearrange italic/bold to get _ctx.font validating 2018-05-01 11:50:06 -07:00
Brandon Bayer 235982362c Add support for italic rendering 2018-04-26 17:34:01 -04:00
Benjamin Woodruff 0cb6138cd0 Allow theming with arbitrary CSS color strings
This mostly worked before, but clearColor made the assumption that the
colors were always in #RRBBGG format. See the discussion here:
https://github.com/xtermjs/xterm.js/pull/1327#issuecomment-374812842

This changes the internal representation of a color so that we hold onto
into an object containing the original css string along with an RGBA
value encoded as a 32-bit uint. clearColor can then use that RGBA
representation.

Additionally, this deduplicates some code between ColorManager and
Terminal. Terminal was generating the 256 ansi colors the same way
ColorManager was, so this just makes Terminal use the same constant.
2018-03-26 09:47:25 -07:00
Daniel Imms 4443ed69c7 Add noUnusedLocals tsconfig flag, fix issues
Two parts were commented out:
- _writeStopped: This is because _xoffSentToCatchUp references this variable
  and the feature is sort of half implemented/disabled.
- _clearChar: This is because some comments still reference this, it's part
  of the work needed to do better line redrawing.
2018-03-08 10:56:10 -08:00
Daniel Imms 404a285eaf Merge pull request #1307 from bgw/split-char-atlas-files
Split CharAtlas types and utility functions off
2018-03-08 05:16:44 -08:00
Benjamin Woodruff ab69bfbb32 Move rest of atlas implementations to atlas dirs
Moves CharAtlas into src/renderer/atlas/ and CharAtlasGenerator into
src/shared/atlas/.
2018-03-07 22:23:19 -08:00
Benjamin Woodruff 70771430b5 Clean up char atlas constant imports/exports
- Ensures that everything is only defined in one place, and everything
  imports from that place.
- Moves CHAR_ATLAS_CELL_SPACING into a subdirectory of shared/ so that
  CharAtlasGenerator can pull from it.

This addresses the comments on
https://github.com/xtermjs/xterm.js/pull/1307/files/454fd4bfb1ab5c9ece
2018-03-07 22:13:41 -08:00
Benjamin Woodruff 18fb134910 Remove didCharSizeChange logic from renderer
The only thing `didCharSizeChange` was used for was to figure out if we
need to refresh the character atlas or not. However, `acquireCharAtlas`
already inspects the atlas owned by this terminal, and if it matches, it
avoids generating a new atlas.

So if `didCharSizeChange` is true and it's not needed, it quickly bails
out as a no-op. But if `didCharSizeChange` is false, and it was needed
(possible given the complexity of testing all of these edge cases), it
could introduce a bug.

I think it makes sense to just get rid of `didCharSizeChange`, and just
always call `acquireCharAtlas`.
2018-03-04 20:55:42 -08:00
Daniel Imms 69ebb3e53e Fix recent typo in comment 2018-01-29 07:42:59 -08:00
Daniel Imms fc2af1d806 Fix lint, reduce duplication, don't scale ctx
Scaling ctx was breaking the scale when setOption was called, not sure
it was doing anything.
2018-01-28 14:13:25 -08:00
Daniel Imms 106704b5d8 Merge remote-tracking branch 'ups/master' into pr/1148 2018-01-28 13:39:07 -08:00
Daniel Imms 39abf8aecf Change render layer id to a class
It's only used to identify them in DOM explorer currently

Fixes #1255
2018-01-27 22:26:00 -08:00
CHaBou fe53e1a091 Change canvas transparency when option is updated 2018-01-25 23:20:20 +01:00
Daniel Imms 2e23dd34e0 Move xterm-internal types back into Types.ts files 2018-01-25 11:06:52 -08:00
Daniel Imms 177edfa66e Merge interfaces and types files 2018-01-25 10:03:28 -08:00
Daniel Imms 7358890a31 Merge remote-tracking branch 'ups/master' into 1221_iterminal_typings 2018-01-25 09:45:13 -08:00
Daniel Imms df02dacdc4 Add enableBold back
Part of #1117
2018-01-23 08:28:01 -08:00
Daniel Imms e4abd4dd8a Move Shared interfaces into a new typings file
This will enable sharing the internal interface with addons (and catching
breakages early)
2018-01-19 09:48:33 -08:00
Bruno Ribeito 51de968fde Fix non-white colors not being drawn as bold 2017-11-12 23:05:27 +00:00
Bruno Ribeito 007410995a Fix#1117 2017-11-12 22:04:10 +00:00
Daniel Imms 79cdaa8d3b Initialize scaled dimension variables
Fixes #1089
2017-10-30 11:21:22 -07:00
Daniel Imms cf6c11db14 Merge remote-tracking branch 'origin/v3' into 1048_enableBold 2017-10-17 12:41:13 -07:00
Daniel Imms a1fcafd50c Fix default color with bold disabled 2017-10-13 13:20:22 -07:00
Daniel Imms a622b97a94 Support enableBold option 2017-10-13 13:13:38 -07:00
Daniel Imms e86aebaa41 Merge remote-tracking branch 'origin/v3' into more_rendering_improvements 2017-10-13 13:02:38 -07:00
Daniel Imms b1449880be Merge pull request #1052 from Tyriar/1047_ansi_bright
Fix ansi bright text being bold without bold flag
2017-10-11 19:06:05 -07:00
Thomas Zilz b6c886837f Add support for dimmed characters (faint) (#1043)
* Add support for dimmed character style
2017-10-11 20:24:26 +02:00
Daniel Imms a56edd65a7 Fix ansi bright text being bold without bold flag
Fixes #1047
2017-10-10 22:37:13 -07:00
Daniel Imms 09c9cb4508 Draw from charatlas without changing scale
Fixes #1050
2017-10-10 22:19:48 -07:00
Daniel Imms eb57cc3e9e Clip rows using the row's cell height, not char height 2017-10-09 20:10:13 -07:00
Daniel Imms 1b2bac7aef Add letterSpacing option
This provides an option for fonts to be more spaced out. This is particularly useful
for fonts that can seem crammed due to not allowing floating point numbers when
drawing, such as Monoid or Operator Mono.
2017-10-09 20:07:30 -07:00
Daniel Imms 06b9f1db87 Always draw entire line and allow overlapping
State/diffing code is kept in comments as it may be reinstated soon.

Fixes #1035
Fixes #1036
Fixes #1032
Fixes #1037
2017-10-05 23:25:03 -07:00
Daniel Imms 356a14bb16 Fix non-default backgrounds on left cell of wide/overlapping chars
Fixes #1031
2017-10-05 20:30:09 -07:00
Daniel Imms 0a08d6389a Fix sub-pixel anti-aliasing for uncached text
Fixes #1032
2017-10-05 19:31:07 -07:00
Daniel Imms ef5e393510 Merge pull request #1002 from Tyriar/990_fix_link_issues
Fix link clearing issues
2017-09-30 05:36:48 -04:00
Daniel Imms 0b54df14e2 Remove unnecessary rounding 2017-09-20 12:16:27 +09:00
Daniel Imms 40fdd00b9e Correct if statement, ensure charAtlas exists 2017-09-20 09:02:21 +09:00
Daniel Imms 9b6c4e046f Only refresh char atlas when char dimensions are valid
See Microsoft/vscode#34493
2017-09-16 10:57:49 -07:00
Daniel Imms 8bdc8fb7a2 Remove log 2017-09-14 01:00:19 -07:00
Daniel Imms aca7ab63e8 Set background color on Renderer immediately
Prevents black flash on init
2017-09-14 00:22:57 -07:00
Daniel Imms c2b765f3ff Redraw background on text layer after a resize 2017-09-13 23:56:35 -07:00
Daniel Imms 0a58628f74 Clear text layer to the background color on creation
Prevents a black flash before the first draw
2017-09-13 23:49:37 -07:00
Daniel Imms b225866c27 Clear cells properly for text layer 2017-09-13 23:21:24 -07:00
Daniel Imms 872c007a29 Finish merging bg and fg layers 2017-09-13 23:15:21 -07:00
Daniel Imms 402cebc76c Support bold in non cached text drawing
Fixes #987
2017-09-13 22:50:48 -07:00