Skip to content
Snippets Groups Projects
Commit fab9b29e authored by George Nachman's avatar George Nachman
Browse files

Transparency rendered but with terrible ghosting of subpixels when rendering...

Transparency rendered but with terrible ghosting of subpixels when rendering light background with transparent window over a dark color
parent 47012b1a
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -2420,6 +2420,13 @@
A6E7475C188C6731005355CF /* iTermExposeGridView.h in Headers */ = {isa = PBXBuildFile; fileRef = A6E7475A188C6731005355CF /* iTermExposeGridView.h */; };
A6E74761188C679C005355CF /* iTermExposeView.h in Headers */ = {isa = PBXBuildFile; fileRef = A6E7475F188C679C005355CF /* iTermExposeView.h */; };
A6E761641D39D216005C0E5C /* iTermMutableAttributedStringBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A6E761621D39D216005C0E5C /* iTermMutableAttributedStringBuilder.h */; };
A6E77C371FBAB1D900763C7F /* iTermClearRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = A6E77C351FBAB1D800763C7F /* iTermClearRenderer.h */; };
A6E77C381FBAB1D900763C7F /* iTermClearRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = A6E77C361FBAB1D800763C7F /* iTermClearRenderer.m */; };
A6E77C391FBAB1DF00763C7F /* iTermClearRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = A6E77C361FBAB1D800763C7F /* iTermClearRenderer.m */; };
A6E77C3A1FBAB1E200763C7F /* iTermClearRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = A6E77C361FBAB1D800763C7F /* iTermClearRenderer.m */; };
A6E77C3C1FBAB21800763C7F /* iTermClear.metal in Sources */ = {isa = PBXBuildFile; fileRef = A6E77C3B1FBAB21800763C7F /* iTermClear.metal */; };
A6E77C3D1FBAB21D00763C7F /* iTermClear.metal in Sources */ = {isa = PBXBuildFile; fileRef = A6E77C3B1FBAB21800763C7F /* iTermClear.metal */; };
A6E77C3E1FBAB21E00763C7F /* iTermClear.metal in Sources */ = {isa = PBXBuildFile; fileRef = A6E77C3B1FBAB21800763C7F /* iTermClear.metal */; };
A6E77F7B1A23D1A5009B1CB6 /* iTermSelectionScrollHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = A6E77F791A23D1A5009B1CB6 /* iTermSelectionScrollHelper.h */; };
A6E77F7C1A23D1A5009B1CB6 /* iTermSelectionScrollHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = A6E77F791A23D1A5009B1CB6 /* iTermSelectionScrollHelper.h */; };
A6E77F7D1A23D1A5009B1CB6 /* iTermIndicatorsHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = A6E77F7A1A23D1A5009B1CB6 /* iTermIndicatorsHelper.h */; };
Loading
Loading
@@ -4015,6 +4022,9 @@
A6E74760188C679C005355CF /* iTermExposeView.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = iTermExposeView.m; sourceTree = "<group>"; tabWidth = 4; };
A6E761621D39D216005C0E5C /* iTermMutableAttributedStringBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iTermMutableAttributedStringBuilder.h; sourceTree = "<group>"; };
A6E761631D39D216005C0E5C /* iTermMutableAttributedStringBuilder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = iTermMutableAttributedStringBuilder.m; sourceTree = "<group>"; };
A6E77C351FBAB1D800763C7F /* iTermClearRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = iTermClearRenderer.h; path = Metal/Renderers/iTermClearRenderer.h; sourceTree = "<group>"; };
A6E77C361FBAB1D800763C7F /* iTermClearRenderer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = iTermClearRenderer.m; path = Metal/Renderers/iTermClearRenderer.m; sourceTree = "<group>"; };
A6E77C3B1FBAB21800763C7F /* iTermClear.metal */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.metal; name = iTermClear.metal; path = Metal/Shaders/iTermClear.metal; sourceTree = "<group>"; };
A6E77F711A23D195009B1CB6 /* iTermSelectionScrollHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = iTermSelectionScrollHelper.m; sourceTree = "<group>"; };
A6E77F721A23D195009B1CB6 /* iTermIndicatorsHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = iTermIndicatorsHelper.m; sourceTree = "<group>"; };
A6E77F791A23D1A5009B1CB6 /* iTermSelectionScrollHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iTermSelectionScrollHelper.h; sourceTree = "<group>"; };
Loading
Loading
@@ -5475,6 +5485,7 @@
A67960871F81FC81008A42BC /* Shaders */ = {
isa = PBXGroup;
children = (
A6E77C3B1FBAB21800763C7F /* iTermClear.metal */,
A67960C21F81FCA6008A42BC /* iTermShaderTypes.h */,
A67960BD1F81FCA5008A42BC /* iTermBackgroundColor.metal */,
A67960BC1F81FCA5008A42BC /* iTermBackgroundImage.metal */,
Loading
Loading
@@ -5492,6 +5503,8 @@
A67960881F81FC87008A42BC /* Renderers */ = {
isa = PBXGroup;
children = (
A6E77C351FBAB1D800763C7F /* iTermClearRenderer.h */,
A6E77C361FBAB1D800763C7F /* iTermClearRenderer.m */,
A679609A1F81FC9B008A42BC /* iTermBackgroundColorRenderer.h */,
A67960A71F81FC9D008A42BC /* iTermBackgroundImageRenderer.h */,
A67960A81F81FC9D008A42BC /* iTermBadgeRenderer.h */,
Loading
Loading
@@ -6904,6 +6917,7 @@
A68A30FC186D150B007F550F /* VT100RemoteHost.h in Headers */,
1D67AAA914284BF300D5DA4E /* ToolNotes.h in Headers */,
1D67ABAB14285D6000D5DA4E /* NSFileManager+iTerm.h in Headers */,
A6E77C371FBAB1D900763C7F /* iTermClearRenderer.h in Headers */,
1D1F8C1A1A32616A00167161 /* AMIndeterminateProgressIndicator.h in Headers */,
1D31BC65142D33CA001F7ECB /* TriggerController.h in Headers */,
A67960AA1F81FC9E008A42BC /* iTermBackgroundColorRenderer.h in Headers */,
Loading
Loading
@@ -8625,7 +8639,9 @@
buildActionMask = 2147483647;
files = (
A67960FC1F8202C2008A42BC /* iTermCursorRenderer.metal in Sources */,
A6E77C3E1FBAB21E00763C7F /* iTermClear.metal in Sources */,
A67960FA1F8202C2008A42BC /* iTermBroadcastStripes.metal in Sources */,
A6E77C3A1FBAB1E200763C7F /* iTermClearRenderer.m in Sources */,
A6C763CF1B45C53B00E3C992 /* main.m in Sources */,
A67960FD1F8202C2008A42BC /* iTermMark.metal in Sources */,
A6D22A451BC8BE6B004084E0 /* Model.xcdatamodeld in Sources */,
Loading
Loading
@@ -8651,8 +8667,10 @@
A67960F61F8202C1008A42BC /* iTermText.metal in Sources */,
A67960F31F8202C1008A42BC /* iTermCursorGuide.metal in Sources */,
A6D22A441BC8BE6B004084E0 /* Model.xcdatamodeld in Sources */,
A6E77C3D1FBAB21D00763C7F /* iTermClear.metal in Sources */,
A67960F11F8202C1008A42BC /* iTermBadge.metal in Sources */,
A67960F21F8202C1008A42BC /* iTermBroadcastStripes.metal in Sources */,
A6E77C391FBAB1DF00763C7F /* iTermClearRenderer.m in Sources */,
A60BB3911EB6A56800D76C09 /* iTermProcessCollectionTest.m in Sources */,
A67960EF1F8202C1008A42BC /* iTermBackgroundColor.metal in Sources */,
A67960F41F8202C1008A42BC /* iTermCursorRenderer.metal in Sources */,
Loading
Loading
@@ -8673,7 +8691,9 @@
buildActionMask = 2147483647;
files = (
A67960EC1F8202C0008A42BC /* iTermCursorRenderer.metal in Sources */,
A6E77C3C1FBAB21800763C7F /* iTermClear.metal in Sources */,
A67960EA1F8202C0008A42BC /* iTermBroadcastStripes.metal in Sources */,
A6E77C381FBAB1D900763C7F /* iTermClearRenderer.m in Sources */,
A6C763CE1B45C53A00E3C992 /* main.m in Sources */,
A67960ED1F8202C0008A42BC /* iTermMark.metal in Sources */,
A6D22A431BC8BE6B004084E0 /* Model.xcdatamodeld in Sources */,
Loading
Loading
@@ -45,7 +45,7 @@
_cellRenderer = [[iTermMetalCellRenderer alloc] initWithDevice:device
vertexFunctionName:@"iTermBackgroundColorVertexShader"
fragmentFunctionName:@"iTermBackgroundColorFragmentShader"
blending:NO
blending:YES
piuElementSize:sizeof(iTermBackgroundColorPIU)
transientStateClass:[iTermBackgroundColorRendererTransientState class]];
}
Loading
Loading
Loading
Loading
@@ -8,6 +8,7 @@
#import "iTermBackgroundColorRenderer.h"
#import "iTermBadgeRenderer.h"
#import "iTermBroadcastStripesRenderer.h"
#import "iTermClearRenderer.h"
#import "iTermCopyBackgroundRenderer.h"
#import "iTermCursorGuideRenderer.h"
#import "iTermCursorRenderer.h"
Loading
Loading
@@ -32,6 +33,7 @@ static const NSInteger iTermMetalDriverMaximumNumberOfFramesInFlight = 3;
@end
 
@implementation iTermMetalDriver {
iTermClearRenderer *_clearRenderer;
iTermBackgroundImageRenderer *_backgroundImageRenderer;
iTermBackgroundColorRenderer *_backgroundColorRenderer;
iTermTextRenderer *_textRenderer;
Loading
Loading
@@ -74,6 +76,7 @@ static const NSInteger iTermMetalDriverMaximumNumberOfFramesInFlight = 3;
self = [super init];
if (self) {
_startTime = [NSDate timeIntervalSinceReferenceDate];
_clearRenderer = [[iTermClearRenderer alloc] initWithDevice:mtkView.device];
_backgroundImageRenderer = [[iTermBackgroundImageRenderer alloc] initWithDevice:mtkView.device];
_textRenderer = [[iTermTextRenderer alloc] initWithDevice:mtkView.device];
_backgroundColorRenderer = [[iTermBackgroundColorRenderer alloc] initWithDevice:mtkView.device];
Loading
Loading
@@ -382,6 +385,9 @@ static const NSInteger iTermMetalDriverMaximumNumberOfFramesInFlight = 3;
};
[renderEncoder setViewport:viewport];
 
[self drawRenderer:_clearRenderer
frameData:frameData
renderEncoder:renderEncoder];
[self drawRenderer:_backgroundImageRenderer
frameData:frameData
renderEncoder:renderEncoder];
Loading
Loading
@@ -534,7 +540,8 @@ static const NSInteger iTermMetalDriverMaximumNumberOfFramesInFlight = 3;
} else if (renderer == _backgroundColorRenderer ||
renderer == _textRenderer ||
renderer == _markRenderer ||
renderer == _broadcastStripesRenderer) {
renderer == _broadcastStripesRenderer ||
renderer == _clearRenderer) {
// Nothing to do here
} else if (renderer == _badgeRenderer) {
[self updateBadgeRendererWithPerFrameState:perFrameState];
Loading
Loading
@@ -609,7 +616,8 @@ static const NSInteger iTermMetalDriverMaximumNumberOfFramesInFlight = 3;
}
 
- (NSArray<id<iTermMetalRenderer>> *)nonCellRenderers {
return @[ _backgroundImageRenderer,
return @[ _clearRenderer,
_backgroundImageRenderer,
_badgeRenderer,
_broadcastStripesRenderer,
_copyBackgroundRenderer ];
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment