mirror of
https://github.com/Swordfish90/cool-retro-term.git
synced 2025-01-31 02:01:19 +00:00
Make the upscaled fonts really upscaled. (Faster expecially at high resolutions).
This commit is contained in:
parent
a63135045e
commit
a6952251de
@ -81,6 +81,8 @@ QtObject{
|
|||||||
property real fontScaling: 1.0
|
property real fontScaling: 1.0
|
||||||
property real fontWidth: 1.0
|
property real fontWidth: 1.0
|
||||||
|
|
||||||
|
property bool lowResolutionFont: false
|
||||||
|
|
||||||
property var fontNames: ["HERMIT", "COMMODORE_PET", "COMMODORE_PET"]
|
property var fontNames: ["HERMIT", "COMMODORE_PET", "COMMODORE_PET"]
|
||||||
property var fontlist: fontManager.item.fontlist
|
property var fontlist: fontManager.item.fontlist
|
||||||
|
|
||||||
@ -135,6 +137,8 @@ QtObject{
|
|||||||
var screenScaling = fontManager.item.screenScaling;
|
var screenScaling = fontManager.item.screenScaling;
|
||||||
var fontWidth = fontManager.item.defaultFontWidth * appSettings.fontWidth;
|
var fontWidth = fontManager.item.defaultFontWidth * appSettings.fontWidth;
|
||||||
|
|
||||||
|
lowResolutionFont = fontManager.item.lowResolutionFont;
|
||||||
|
|
||||||
terminalFontChanged(fontSource, pixelSize, lineSpacing, screenScaling, fontWidth);
|
terminalFontChanged(fontSource, pixelSize, lineSpacing, screenScaling, fontWidth);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@ QtObject{
|
|||||||
property int lineSpacing: _font.lineSpacing
|
property int lineSpacing: _font.lineSpacing
|
||||||
property real screenScaling: scaling * _font.baseScaling
|
property real screenScaling: scaling * _font.baseScaling
|
||||||
property real defaultFontWidth: fontlist.get(selectedFontIndex).fontWidth
|
property real defaultFontWidth: fontlist.get(selectedFontIndex).fontWidth
|
||||||
|
property bool lowResolutionFont: true
|
||||||
|
|
||||||
property ListModel fontlist: ListModel{
|
property ListModel fontlist: ListModel{
|
||||||
ListElement{
|
ListElement{
|
||||||
|
@ -29,6 +29,7 @@ QtObject{
|
|||||||
property int lineSpacing: _font.lineSpacing
|
property int lineSpacing: _font.lineSpacing
|
||||||
property real screenScaling: scaling * _font.baseScaling
|
property real screenScaling: scaling * _font.baseScaling
|
||||||
property real defaultFontWidth: fontlist.get(selectedFontIndex).fontWidth
|
property real defaultFontWidth: fontlist.get(selectedFontIndex).fontWidth
|
||||||
|
property bool lowResolutionFont: true
|
||||||
|
|
||||||
property ListModel fontlist: ListModel{
|
property ListModel fontlist: ListModel{
|
||||||
ListElement{
|
ListElement{
|
||||||
|
@ -25,14 +25,121 @@ QtObject{
|
|||||||
property real scaling
|
property real scaling
|
||||||
property var source: fontlist.get(selectedFontIndex).source
|
property var source: fontlist.get(selectedFontIndex).source
|
||||||
property var _font: fontlist.get(selectedFontIndex)
|
property var _font: fontlist.get(selectedFontIndex)
|
||||||
property int pixelSize: _font.pixelSize * scaling
|
property bool lowResolutionFont: _font.lowResolutionFont
|
||||||
property int lineSpacing: pixelSize * _font.lineSpacing
|
|
||||||
property real screenScaling: 1.0
|
property int pixelSize: lowResolutionFont
|
||||||
|
? _font.pixelSize
|
||||||
|
: _font.pixelSize * scaling
|
||||||
|
|
||||||
|
property int lineSpacing: lowResolutionFont
|
||||||
|
? _font.lineSpacing
|
||||||
|
: pixelSize * _font.lineSpacing
|
||||||
|
|
||||||
|
property real screenScaling: lowResolutionFont
|
||||||
|
? _font.baseScaling * scaling
|
||||||
|
: 1.0
|
||||||
|
|
||||||
property real defaultFontWidth: fontlist.get(selectedFontIndex).fontWidth
|
property real defaultFontWidth: fontlist.get(selectedFontIndex).fontWidth
|
||||||
|
|
||||||
//In this configuration lineSpacing is proportional to pixelSize.
|
// There are two kind of fonts: low resolution and high resolution.
|
||||||
|
// Low resolution font sets the lowResolutionFont property to true.
|
||||||
|
// They are rendered at a fixed pixel size and the texture is upscaled
|
||||||
|
// to fill the screen (they are much faster to render).
|
||||||
|
// High resolution fonts are instead drawn on a texture which has the
|
||||||
|
// size of the screen, and the scaling directly controls their pixels size.
|
||||||
|
// Those are slower to render but are not pixelated.
|
||||||
|
|
||||||
property ListModel fontlist: ListModel{
|
property ListModel fontlist: ListModel{
|
||||||
|
ListElement{
|
||||||
|
name: "TERMINUS_SCALED"
|
||||||
|
text: "Terminus (Pixelated) (Modern)"
|
||||||
|
source: "fonts/modern-terminus/TerminusTTF-4.38.2.ttf"
|
||||||
|
lineSpacing: 1
|
||||||
|
pixelSize: 12
|
||||||
|
baseScaling: 3.0
|
||||||
|
fontWidth: 1.0
|
||||||
|
lowResolutionFont: true
|
||||||
|
}
|
||||||
|
ListElement{
|
||||||
|
name: "PRO_FONT_SCALED"
|
||||||
|
text: "Pro Font (Pixelated) (Modern)"
|
||||||
|
source: "fonts/modern-pro-font-win-tweaked/ProFontWindows.ttf"
|
||||||
|
lineSpacing: 1
|
||||||
|
pixelSize: 12
|
||||||
|
baseScaling: 3.0
|
||||||
|
fontWidth: 1.0
|
||||||
|
lowResolutionFont: true
|
||||||
|
}
|
||||||
|
ListElement{
|
||||||
|
name: "COMMODORE_PET_SCALED"
|
||||||
|
text: "Commodore PET (Pixelated) (1977)"
|
||||||
|
source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf"
|
||||||
|
lineSpacing: 2
|
||||||
|
pixelSize: 8
|
||||||
|
baseScaling: 4.0
|
||||||
|
fontWidth: 0.7
|
||||||
|
lowResolutionFont: true
|
||||||
|
}
|
||||||
|
ListElement{
|
||||||
|
name: "PROGGY_TINY_SCALED"
|
||||||
|
text: "Proggy Tiny (Pixelated) (Modern)"
|
||||||
|
source: "fonts/modern-proggy-tiny/ProggyTiny.ttf"
|
||||||
|
lineSpacing: 1
|
||||||
|
pixelSize: 16
|
||||||
|
baseScaling: 4.0
|
||||||
|
fontWidth: 0.9
|
||||||
|
lowResolutionFont: true
|
||||||
|
}
|
||||||
|
ListElement{
|
||||||
|
name: "APPLE_II_SCALED"
|
||||||
|
text: "Apple ][ (Pixelated) (1977)"
|
||||||
|
source: "fonts/1977-apple2/PrintChar21.ttf"
|
||||||
|
lineSpacing: 2
|
||||||
|
pixelSize: 8
|
||||||
|
baseScaling: 4.0
|
||||||
|
fontWidth: 0.8
|
||||||
|
lowResolutionFont: true
|
||||||
|
}
|
||||||
|
ListElement{
|
||||||
|
name: "ATARI_400_SCALED"
|
||||||
|
text: "Atari 400-800 (Pixelated) (1979)"
|
||||||
|
source: "fonts/1979-atari-400-800/ATARI400800_original.TTF"
|
||||||
|
lineSpacing: 3
|
||||||
|
pixelSize: 8
|
||||||
|
baseScaling: 4.0
|
||||||
|
fontWidth: 0.7
|
||||||
|
lowResolutionFont: true
|
||||||
|
}
|
||||||
|
ListElement{
|
||||||
|
name: "COMMODORE_64_SCALED"
|
||||||
|
text: "Commodore 64 (Pixelated) (1982)"
|
||||||
|
source: "fonts/1982-commodore64/C64_Pro_Mono_v1.0-STYLE.ttf"
|
||||||
|
lineSpacing: 3
|
||||||
|
pixelSize: 8
|
||||||
|
baseScaling: 4.0
|
||||||
|
fontWidth: 0.7
|
||||||
|
lowResolutionFont: true
|
||||||
|
}
|
||||||
|
ListElement{
|
||||||
|
name: "ATARI_ST_SCALED"
|
||||||
|
text: "Atari ST (Pixelated) (1985)"
|
||||||
|
source: "fonts/1985-atari-st/AtariST8x16SystemFont.ttf"
|
||||||
|
lineSpacing: 3
|
||||||
|
pixelSize: 16
|
||||||
|
baseScaling: 2.0
|
||||||
|
fontWidth: 1.0
|
||||||
|
lowResolutionFont: true
|
||||||
|
}
|
||||||
|
ListElement{
|
||||||
|
name: "IBM_DOS"
|
||||||
|
text: "IBM DOS (Pixelated) (1985)"
|
||||||
|
source: "fonts/1985-ibm-pc-vga/Perfect DOS VGA 437 Win.ttf"
|
||||||
|
lineSpacing: 3
|
||||||
|
pixelSize: 16
|
||||||
|
baseScaling: 2.0
|
||||||
|
fontWidth: 1.0
|
||||||
|
lowResolutionFont: true
|
||||||
|
}
|
||||||
ListElement{
|
ListElement{
|
||||||
name: "HERMIT"
|
name: "HERMIT"
|
||||||
text: "Hermit (Modern)"
|
text: "Hermit (Modern)"
|
||||||
@ -40,6 +147,7 @@ QtObject{
|
|||||||
lineSpacing: 0.05
|
lineSpacing: 0.05
|
||||||
pixelSize: 28
|
pixelSize: 28
|
||||||
fontWidth: 1.0
|
fontWidth: 1.0
|
||||||
|
lowResolutionFont: false
|
||||||
}
|
}
|
||||||
ListElement{
|
ListElement{
|
||||||
name: "TERMINUS"
|
name: "TERMINUS"
|
||||||
@ -48,6 +156,7 @@ QtObject{
|
|||||||
lineSpacing: 0.1
|
lineSpacing: 0.1
|
||||||
pixelSize: 35
|
pixelSize: 35
|
||||||
fontWidth: 1.0
|
fontWidth: 1.0
|
||||||
|
lowResolutionFont: false
|
||||||
}
|
}
|
||||||
ListElement{
|
ListElement{
|
||||||
name: "ENVY_CODE_R"
|
name: "ENVY_CODE_R"
|
||||||
@ -56,6 +165,7 @@ QtObject{
|
|||||||
lineSpacing: 0.1
|
lineSpacing: 0.1
|
||||||
pixelSize: 30
|
pixelSize: 30
|
||||||
fontWidth: 1.0
|
fontWidth: 1.0
|
||||||
|
lowResolutionFont: false
|
||||||
}
|
}
|
||||||
ListElement{
|
ListElement{
|
||||||
name: "PRO_FONT"
|
name: "PRO_FONT"
|
||||||
@ -64,6 +174,7 @@ QtObject{
|
|||||||
lineSpacing: 0.1
|
lineSpacing: 0.1
|
||||||
pixelSize: 35
|
pixelSize: 35
|
||||||
fontWidth: 1.0
|
fontWidth: 1.0
|
||||||
|
lowResolutionFont: false
|
||||||
}
|
}
|
||||||
ListElement{
|
ListElement{
|
||||||
name: "MONACO"
|
name: "MONACO"
|
||||||
@ -72,6 +183,7 @@ QtObject{
|
|||||||
lineSpacing: 0.1
|
lineSpacing: 0.1
|
||||||
pixelSize: 30
|
pixelSize: 30
|
||||||
fontWidth: 1.0
|
fontWidth: 1.0
|
||||||
|
lowResolutionFont: false
|
||||||
}
|
}
|
||||||
ListElement{
|
ListElement{
|
||||||
name: "INCONSOLATA"
|
name: "INCONSOLATA"
|
||||||
@ -80,54 +192,7 @@ QtObject{
|
|||||||
lineSpacing: 0.1
|
lineSpacing: 0.1
|
||||||
pixelSize: 35
|
pixelSize: 35
|
||||||
fontWidth: 1.0
|
fontWidth: 1.0
|
||||||
}
|
lowResolutionFont: false
|
||||||
ListElement{
|
|
||||||
name: "COMMODORE_PET"
|
|
||||||
text: "Commodore PET (1977)"
|
|
||||||
source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf"
|
|
||||||
lineSpacing: 0.2
|
|
||||||
pixelSize: 26
|
|
||||||
fontWidth: 0.7
|
|
||||||
}
|
|
||||||
ListElement{
|
|
||||||
name: "APPLE_II"
|
|
||||||
text: "Apple ][ (1977)"
|
|
||||||
source: "fonts/1977-apple2/PrintChar21.ttf"
|
|
||||||
lineSpacing: 0.2
|
|
||||||
pixelSize: 26
|
|
||||||
fontWidth: 0.8
|
|
||||||
}
|
|
||||||
ListElement{
|
|
||||||
name: "ATARI_400"
|
|
||||||
text: "Atari 400-800 (1979)"
|
|
||||||
source: "fonts/1979-atari-400-800/ATARI400800_original.TTF"
|
|
||||||
lineSpacing: 0.3
|
|
||||||
pixelSize: 26
|
|
||||||
fontWidth: 0.7
|
|
||||||
}
|
|
||||||
ListElement{
|
|
||||||
name: "COMMODORE_64"
|
|
||||||
text: "Commodore 64 (1982)"
|
|
||||||
source: "fonts/1982-commodore64/C64_Pro_Mono_v1.0-STYLE.ttf"
|
|
||||||
lineSpacing: 0.3
|
|
||||||
pixelSize: 26
|
|
||||||
fontWidth: 0.7
|
|
||||||
}
|
|
||||||
ListElement{
|
|
||||||
name: "ATARI_ST"
|
|
||||||
text: "Atari ST (1985)"
|
|
||||||
source: "fonts/1985-atari-st/AtariST8x16SystemFont.ttf"
|
|
||||||
lineSpacing: 0.2
|
|
||||||
pixelSize: 32
|
|
||||||
fontWidth: 1.0
|
|
||||||
}
|
|
||||||
ListElement{
|
|
||||||
name: "IBM_DOS"
|
|
||||||
text: "IBM DOS (1985)"
|
|
||||||
source: "fonts/1985-ibm-pc-vga/Perfect DOS VGA 437 Win.ttf"
|
|
||||||
lineSpacing: 0.2
|
|
||||||
pixelSize: 32
|
|
||||||
fontWidth: 1.0
|
|
||||||
}
|
}
|
||||||
ListElement{
|
ListElement{
|
||||||
name: "IBM_3278"
|
name: "IBM_3278"
|
||||||
@ -136,6 +201,7 @@ QtObject{
|
|||||||
lineSpacing: 0.2
|
lineSpacing: 0.2
|
||||||
pixelSize: 32
|
pixelSize: 32
|
||||||
fontWidth: 1.0
|
fontWidth: 1.0
|
||||||
|
lowResolutionFont: false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -83,7 +83,7 @@ Item{
|
|||||||
|
|
||||||
colorScheme: "cool-retro-term"
|
colorScheme: "cool-retro-term"
|
||||||
|
|
||||||
smooth: appSettings.rasterization === appSettings.no_rasterization
|
smooth: !appSettings.lowResolutionFont
|
||||||
enableBold: false
|
enableBold: false
|
||||||
fullCursorHeight: true
|
fullCursorHeight: true
|
||||||
|
|
||||||
@ -115,7 +115,7 @@ Item{
|
|||||||
function handleFontChange(fontSource, pixelSize, lineSpacing, screenScaling, fontWidth){
|
function handleFontChange(fontSource, pixelSize, lineSpacing, screenScaling, fontWidth){
|
||||||
fontLoader.source = fontSource;
|
fontLoader.source = fontSource;
|
||||||
|
|
||||||
kterminal.antialiasText = appSettings.rasterization === appSettings.no_rasterization
|
kterminal.antialiasText = !appSettings.lowResolutionFont;
|
||||||
font.pixelSize = pixelSize;
|
font.pixelSize = pixelSize;
|
||||||
font.family = fontLoader.name;
|
font.family = fontLoader.name;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user