Skip to content

Commit 307c5ce

Browse files
authored
Merge pull request #9 from xO-3670/release-1.3.0
Release 1.3.0
2 parents e2c5d76 + 057e85a commit 307c5ce

File tree

9 files changed

+63
-35
lines changed

9 files changed

+63
-35
lines changed

Cursor.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ class Cursor : public sf::Drawable
2020
float_t sizeOfTrailCircles,
2121
float_t trailCirclesLifetime,
2222
bool trailCirclesFadingEffect,
23+
bool TrailCirclesSpacingOutFadingEffect,
2324
sf::Texture& cursorTexture,
2425
sf::Texture& cursorTrailTexture
2526
);
@@ -43,6 +44,7 @@ class Cursor : public sf::Drawable
4344
float_t _TrailCirclesLifetime;
4445

4546
bool _TrailCirclesFadingEffect;
47+
bool _TrailCirclesSpacingOutEffect;
4648

4749
};
4850
}

README.md

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Tablet Visualizer is a lightweight application designed to function as an overla
1111

1212
[![GPLv3 License](https://img.shields.io/badge/License-GPL%20v3-yellow.svg)](https://choosealicense.com/licenses/gpl-3.0/)
1313
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/55a8b6fbec384a7c974e34ee04daf00d)](https://app.codacy.com/gh/xO-3670/Tablet-Visualizer/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
14-
[![Release](https://img.shields.io/github/v/release/xO-3670/Tablet-Visualizer)](https://github.com/xO-3670/Tablet-Visualizer/releases/tag/1.2.1)
14+
[![Release](https://img.shields.io/github/v/release/xO-3670/Tablet-Visualizer)](https://github.com/xO-3670/Tablet-Visualizer/releases/tag/1.3.0)
1515
[![Build status](https://github.com/xO-3670/Tablet-Visualizer/actions/workflows/cmake-multi-platform.yml/badge.svg?branch=main&event=push)](https://github.com/xO-3670/Tablet-Visualizer/actions/workflows/cmake-multi-platform.yml)
1616

1717

@@ -24,13 +24,20 @@ Tablet Visualizer is a lightweight application designed to function as an overla
2424
- You can change the default tablet and cursor image in the `Settings.json` file
2525

2626
- Modify cursor size, skin, and behavior (trail density, lifetime) in `Settings.json`
27+
28+
- Graphics configurator, with it you can easily modify the `Settings.json` file (available in versions >= 1.3.0)
29+
2730
## Screenshots
2831

2932
![App Screenshot](Screenshot1.png)
3033

3134
![App Screenshot](Screenshot2.png)
3235

33-
# How to edit Settings.json
36+
# New graphics configurator (versions >= 1.3.0)
37+
38+
![App Screenshot](Screenshot3.png)
39+
40+
# How to edit MANUALLY Settings.json
3441

3542
| Parameter | Type | Description or examples |
3643
| :------------------------ | :-------------- | :------------------------------------------------------- |
@@ -48,11 +55,12 @@ Tablet Visualizer is a lightweight application designed to function as an overla
4855
| `CustomTablet` | `bool` | Condition if you're using custom tablet image |
4956
| `EnableErrors` | `bool` | Condition if console with errors will show default: true |
5057
| `TrailCirclesFadingEffect`| `bool` | Enable fading of trail circles like in osu default: true |
58+
| `TrailCirclesSpacingOutEffect`| `bool` | Enable spacing out trail circles default: false |
5159
| `CustomTabletSize` |`sf::Vector2f` | Real size of tablet in mm |
5260
| `CustomTabletImageOffset` |`sf::Vector2f` | Offset in custom tablet image to active area |
5361
| `CustomTabletActiveArea` |`sf::Vector2f` | Active area of custom tablet |
5462

55-
### If you want to customize it you should set:
63+
### If you want to customize MANUALLY you should set in `Settings.json`:
5664

5765
- `CustomTablet` to `true`
5866

@@ -84,17 +92,17 @@ Tablet Visualizer is a lightweight application designed to function as an overla
8492

8593
## Linux build dependencies
8694
```bash
87-
libx11-dev
88-
libxrandr-dev
89-
libxcursor-dev
90-
libxi-dev
91-
libudev-dev
92-
libfreetype-dev
93-
libflac-dev
94-
libvorbis-dev
95-
libgl1-mesa-dev
96-
libegl1-mesa-dev
97-
libfreetype-dev
95+
libx11-dev \
96+
libxrandr-dev \
97+
libxcursor-dev \
98+
libxi-dev \
99+
libudev-dev \
100+
libfreetype-dev \
101+
libflac-dev \
102+
libvorbis-dev \
103+
libgl1-mesa-dev \
104+
libegl1-mesa-dev \
105+
libfreetype-dev \
98106
libopenal-dev
99107
```
100108

Screenshot3.png

61.1 KB
Loading

Settings.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,15 @@
1111
],
1212
"TabletImageTransparency": 255,
1313

14-
"CursorSize": 15,
15-
"CursorTrailSize": 8,
14+
"CursorSize": 1.00,
15+
"CursorTrailSize": 1.00,
1616
"CursorImage": "Cursor.png",
1717
"CursorTrailImage": "CursorTrail.png",
18-
"CursorTrailDensity": 86,
18+
"CursorTrailDensity": 64,
1919
"TrailCirclesLifetime": 120.0,
2020
"TrailCirclesFadingEffect": true,
21-
"FramerateLimit": 120,
21+
"TrailCirclesSpacingOutEffect": false,
22+
"FramerateLimit": 165,
2223

2324
"CustomTablet": false,
2425
"CustomTabletImage": "ctl-472-s.png",

TrailCircle.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class TrailCircle : public sf::Drawable
1717
const sf::Vector2f& GetPosition();
1818

1919
void SetColorAlpha(uint8_t newAlpha);
20+
void SetScale(sf::Vector2f newScale);
2021

2122
private:
2223
virtual void draw(sf::RenderTarget& target, sf::RenderStates states)const;

Visualizer.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ struct Settings
4444
bool CustomTablet;
4545
bool EnableErrors;
4646
bool TrailCirclesFadingEffect;
47+
bool TrailCirclesSpacingOutEffect;
4748

4849
sf::Vector2f CustomTabletActiveArea;
4950
sf::Vector2f CustomTabletSize;

src/Cursor.cpp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
21
#include "../Cursor.hpp"
32

3+
44
TVis::Cursor::Cursor() :
55
_CursorTrailTexturePtr(nullptr),
66
_TrailCirclesLifetime(0),
@@ -17,14 +17,16 @@ TVis::Cursor::Cursor(
1717
float_t sizeOfTrailCircles,
1818
float_t trailCirclesLifetime,
1919
bool TrailCirclesFadingEffect,
20+
bool TrailCirclesSpacingOutFadingEffect,
2021
sf::Texture& cursorTexture,
2122
sf::Texture& cursorTrailTexture
2223
) :
2324
_TrailDensity(trailDensity),
2425
_TrailCirclesSize(sizeOfTrailCircles),
2526
_CursorTrailTexturePtr(&cursorTrailTexture),
2627
_TrailCirclesLifetime(trailCirclesLifetime),
27-
_TrailCirclesFadingEffect(TrailCirclesFadingEffect)
28+
_TrailCirclesFadingEffect(TrailCirclesFadingEffect),
29+
_TrailCirclesSpacingOutEffect(TrailCirclesSpacingOutFadingEffect)
2830
{
2931
_CursorBody.setRadius (cursorSize);
3032
_CursorBody.setOrigin (_CursorBody.getRadius(), _CursorBody.getRadius());
@@ -42,6 +44,11 @@ void TVis::Cursor::Update(sf::Vector2f cursorPosition)
4244
{
4345
if (_TrailCirclesFadingEffect) // fading effect switch
4446
_TrailCircles.at(i).SetColorAlpha(255 - static_cast<uint8_t>((_TrailCircles[i].GetLifetime() / _TrailCirclesLifetime) * 255));
47+
if (_TrailCirclesSpacingOutEffect) // spacing out effect switch
48+
{
49+
float calculatedScale = (1000.0 - static_cast<float>((_TrailCircles[i].GetLifetime() / _TrailCirclesLifetime) * 1000.0));
50+
_TrailCircles.at(i).SetScale({calculatedScale/1000, calculatedScale/1000});
51+
}
4552

4653
if (_TrailCircles[i].GetLifetime() >= _TrailCirclesLifetime)
4754
_TrailCircles.erase(_TrailCircles.begin());
@@ -61,4 +68,4 @@ void TVis::Cursor::draw(sf::RenderTarget &target, sf::RenderStates states) const
6168
target.draw(_TrailCircles[i]);
6269

6370
target.draw(_CursorBody);
64-
}
71+
}

src/TrailCircle.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "../TrailCircle.hpp"
22

3+
34
TVis::TrailCircle::TrailCircle(sf::Vector2f cursorPosition, float& sizeOfTrailCircle, sf::Texture* trailTexture)
45
{
56
_Lifetime.restart();
@@ -27,7 +28,12 @@ void TVis::TrailCircle::SetColorAlpha(uint8_t newAlpha)
2728
_TrailBody.setFillColor(sf::Color(255,255,255,newAlpha));
2829
}
2930

31+
void TVis::TrailCircle::SetScale(sf::Vector2f newScale)
32+
{
33+
_TrailBody.setScale(newScale);
34+
}
35+
3036
void TVis::TrailCircle::draw(sf::RenderTarget &target, sf::RenderStates states) const
3137
{
3238
target.draw(_TrailBody);
33-
}
39+
}

src/Visualizer.cpp

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -43,25 +43,26 @@ bool TVis::Visualizer::_LoadSettingsFile()
4343
SettingsFile = nlohmann::json::parse(SettingsFileStream);
4444

4545
// bool values
46-
settings.CustomTablet = SettingsFile["CustomTablet"];
47-
settings.EnableErrors = SettingsFile["EnableErrors"];
48-
settings.TrailCirclesFadingEffect = SettingsFile["TrailCirclesFadingEffect"];
49-
50-
// float values
51-
settings.CursorSize = SettingsFile["CursorSize"];
52-
settings.CursorTrailSize = SettingsFile["CursorTrailSize"];
46+
settings.CustomTablet = SettingsFile["CustomTablet"];
47+
settings.EnableErrors = SettingsFile["EnableErrors"];
48+
settings.TrailCirclesFadingEffect = SettingsFile["TrailCirclesFadingEffect"];
49+
settings.TrailCirclesSpacingOutEffect = SettingsFile["TrailCirclesSpacingOutEffect"];
50+
51+
// float values // multiply times 10 so 1.00 will be converted to program's size standard
52+
settings.CursorSize = static_cast<float_t>(SettingsFile["CursorSize"]) * 10;
53+
settings.CursorTrailSize = static_cast<float_t>(SettingsFile["CursorTrailSize"]) * 10;
5354
settings.TrailCirclesLifetime = SettingsFile["TrailCirclesLifetime"];
5455

5556
// uint32_t
56-
settings.CursorTrailDensity = SettingsFile["CursorTrailDensity"];
57-
settings.FramerateLimit = SettingsFile["FramerateLimit"];
57+
settings.CursorTrailDensity = SettingsFile["CursorTrailDensity"];
58+
settings.FramerateLimit = SettingsFile["FramerateLimit"];
5859

5960
// uint8_t values
60-
settings.TabletImageTransparency = SettingsFile["TabletImageTransparency"];
61+
settings.TabletImageTransparency = SettingsFile["TabletImageTransparency"];
6162

6263
// string path
63-
settings.CursorTexture = SettingsFile["CursorImage"];
64-
settings.CursorTrailTexture = SettingsFile["CursorTrailImage"];
64+
settings.CursorTexture = SettingsFile["CursorImage"];
65+
settings.CursorTrailTexture = SettingsFile["CursorTrailImage"];
6566

6667
settings.WindowDimensions = sf::Vector2i(
6768
SettingsFile["WindowDimensions"].at(0),
@@ -214,6 +215,7 @@ void TVis::Visualizer::_ApplySettings(Settings settings) // this function exist
214215
settings.CursorTrailSize,
215216
settings.TrailCirclesLifetime,
216217
settings.TrailCirclesFadingEffect,
218+
settings.TrailCirclesSpacingOutEffect,
217219
_CursorTexture,
218220
_CursorTrailTexture
219221
);
@@ -293,4 +295,4 @@ sf::Vector2i TVis::Visualizer::_GetDesktopDimensions()
293295

294296
return sf::Vector2i(desktop.right, desktop.bottom);
295297
}
296-
#endif
298+
#endif

0 commit comments

Comments
 (0)