bors[bot]
49bed71932
Merge #5696
...
5696: Add option for parallax-aware zoom r=def- a=Fireball-Teeworlds
## How this works
Currently we have parallax X and Y parameters that control how far away a layer feels. Currently it's only taken into account for camera moving sideways.
This pull request makes zoom behave as if the camera was moving closer or further away, taking into account the distance to the layer.
In order to provide flexibility, this behaviour is using a separate parallax value, similar to how we have separate values for X and Y. Para Zoom will default to the minimum of parallax X, Y, clamped to be between 0 and 100. This seems to look well on most maps.
This pull request also introduces two new features to the Editor:
* Controls for configuring per-group Para Zoom value. If Custom Zoom is set to No, Para Zoom will automatically keep following to the default value described above, so that people new to the feature don't have to figure out how it works.
* Zoom button that previews the zoom behavior (next to Proof at the top).
## Editor Screenshots
### Para Zoom controls
![screenshot_2022-08-22_21-38-04](https://user-images.githubusercontent.com/68162181/186014490-f7b91245-460f-405f-8d5c-3f91db2a1b9a.png )
![screenshot_2022-08-22_21-37-58](https://user-images.githubusercontent.com/68162181/186014522-03b6e814-4dd9-4d07-9af9-7db5fb434a56.png )
### Zoom Button
![screenshot_2022-08-22_21-40-46](https://user-images.githubusercontent.com/68162181/186014856-2d1d499d-9011-439c-b217-536957e0c1e3.png )
![screenshot_2022-08-22_21-40-50](https://user-images.githubusercontent.com/68162181/186014874-6d2939d3-00ff-4327-a790-414b5151ba31.png )
## In-Game Screenshots
Video: https://youtu.be/W7eXQN0gRFI
This is an older version of the pull request that had an option to disable the new behaviour. The current version can only be disabled in map editor for a particular map.
### Springlobe 3
With new feature:
![screenshot_2022-08-02_04-28-19](https://user-images.githubusercontent.com/68162181/182286371-b67cee1c-73d8-4a24-a9c3-1b28340a3b42.png )
Without:
![screenshot_2022-08-02_04-28-25](https://user-images.githubusercontent.com/68162181/182286367-24555381-1700-4ff1-80c7-39e5dce63820.png )
### Beyond Dreams
With new feature:
![screenshot_2022-08-02_04-28-59](https://user-images.githubusercontent.com/68162181/182286322-114ecb90-0860-462c-9012-bb2f3ff848fb.png )
Without:
![screenshot_2022-08-02_04-28-55](https://user-images.githubusercontent.com/68162181/182286654-f34da72b-7991-4f42-89ad-679279fcb83e.png )
## Checklist
- [X] Tested the change ingame
- [X] Provided screenshots if it is a visual change
- [X] Tested in combination with possibly related configuration options
- [ ] Written a unit test (especially base/) or added coverage to integration test
- [X] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [X] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck ) (optional)
Co-authored-by: Fireball <fireball.teeworlds@gmail.com>
2022-08-22 21:15:41 +00:00
Robert Müller
95550fd6a9
Move CRenderTools::DrawUIRect/4
to CUIRect::Draw/4
...
Use `ColorRGBA` instead of `vec4` for `Draw4`.
2022-08-12 19:37:08 +02:00
Robert Müller
4005b82743
Move CRenderTools::DrawUIElRect
to CUIElement::SUIElementRect::Draw
...
This method draws a particular UI element rectangle so it should be a member method.
2022-08-12 17:42:05 +02:00
Robert Müller
2a21cd6eab
Move all DrawRect*
methods from CRenderTools
to IGraphics
...
As the methods do not depend on any game components they are moved to the engine graphics interface.
2022-08-12 17:42:05 +02:00
Robert Müller
237fdc76db
Move CRenderTools::DrawCircle
to IGraphics::DrawCircle
...
As this method does not depend on any game components it is be moved to the engine graphics interface.
2022-08-12 17:42:03 +02:00
Fireball
5d886d80f8
Parallax Zoom: use CMapItemGroupEx to store parallax value
2022-08-10 03:05:23 +01:00
Fireball
a90c86e9a5
Parallax-aware zoom
...
How this works: parallax values configure perceived distance from camera
when it's moving along x and y axes. Assume that zoom is moving the
camera away and scale layers accordingly, with background layers
(furtherst away) changing the least.
New per-ItemGroup (LayerGroup) setting allows to set the new parallax
value independently from the other two. This can be used to do tricks
like on Time Shop zoom correctly or make it feel like the camera is
changing the field of view at the same time as moving in space.
2022-08-05 00:40:58 +01:00
Robert Müller
072b9ebaba
Use DrawRoundRectExt
instead of DrawRoundRect
and remove the latter
2022-07-10 17:19:35 +02:00
Robert Müller
a0ef36847b
Add CRenderTools::DrawRect/4
and make DrawUIRect/4
delegates
...
So usages of `DrawRoundRect/Ext` can more easily be replaced with `DrawRect/4` and so the basic draw methods can be moved to the engine graphics without depending on the `CUIRect` class.
2022-07-10 17:19:32 +02:00
Robert Müller
ebf6ce4d27
More efficient CreateRoundRectQuadContainer
with CORNER_NONE
...
By adding an additional case that only creates a single quad when no corners / rounding are used, like in `DrawRoundRectExt4`.
2022-07-10 17:19:32 +02:00
Robert Müller
a9787b15e3
Merge CRenderTools::DrawUIRect4NoRounding
into DrawUIRect4
...
As this is a special case the methods can be merged to reduce the number of public methods.
2022-07-10 17:19:32 +02:00
Chairn
a69dc599a9
Huge variable naming format
...
Fix pointer and pointer array variable naming
Huge renaming to match our rules
Used regex: (?!(return|delete)\b)\b\w+ (m_|ms_|g_|gs_|s_)[^a]\w+\[
(?!(return|delete)\b)\b\w+ (?!(m_|ms_|g_|gs_|s_))[^a]\w+\[
Further format static variables
Format almost all pointer names accordingly
Used regex: (?!(return)\b)\b\w+
\*(?!(m_p|p|s_p|m_ap|s_ap|g_p|g_ap|ap|gs_ap|ms_ap|gs_p|ms_p))\w+\b[^:\(p]
clang-format
Fix CI fail
Fix misnamed non pointer as pointer and non array as array
Used regex: (?!(return|delete)\b)\b\w+ (m_|ms_|g_|gs_|s_)p\w+\b
(?!return\b)\b\w+ (ms_|m_|g_|gs_|s_)a\w+\b[^\[]
clang-format
Revert to SCREAMING_SNAKE_CASE and reinstate dead code
2022-07-08 18:01:29 +02:00
Robert Müller
fb91881765
Move CMenus::DoIcon
to CRenderTools::RenderIcon
...
As this method only renders and doesn't provide an interactive element, the naming `Render` as well as the placement in `CRenderTools` fits better.
This also allows the method to be used in the editor.
2022-06-25 17:15:55 +02:00
Robert Müller
2add5d5c3c
Organize game-client and editor includes
2022-06-17 20:32:56 +02:00
Robert Müller
ffff4435c4
Remove ui_scale
:
...
- remove config variable `ui_scale`
- remove `CUI::Scale`
- remove `CUI::SetScale`
- remove `CUI::DoLabelScaled`
- remove `CUIRect::Scale`
- use `CUI::DoLabel` instead of `CUI::DoLabelScaled`
- remove usages of `CUI::Scale()` and `CUIRect::Scale()`, or use 1.0f instead
2022-06-12 10:40:19 +02:00
Robert Müller
91d2ba1865
Organize game-client includes
2022-05-29 21:24:43 +02:00
Robert Müller
fccfbd5b70
Extract CRenderTools::RenderCursor
2022-05-27 19:43:12 +02:00
c0d3d3v
87893ceca7
Move MapScreenToGroup from 3 classes to render.cpp; Rename MapscreenToWorld to MapScreenToWorld
2022-05-22 21:59:43 +02:00
Robert Müller
51d0d76e11
Rename parameters id -> Id
2022-05-14 19:08:43 +02:00
Robert Müller
485d61d4f8
Use std::swap
2022-05-14 13:43:26 +02:00
Robert Müller
1690a9703d
Rename variable cs -> ColorScale
2022-05-14 13:40:46 +02:00
Robert Müller
3708abe8e0
Remove CRenderTools' pointers to CUI and CGameClient
2022-05-14 13:31:07 +02:00
Jupeyy
b8da817716
Return the quad offset of the first added quad, when adding new quads
2022-04-28 16:50:18 +02:00
def
8134f9fa55
Enable -Wshadow=local
...
> Warn when a local variable shadows another local variable or parameter.
Found one actual bug in graphics_threaded.cpp
Should reduce confusion in the future when reading source code
2022-03-20 13:24:34 +01:00
Dennis Felsing
dbfc62d2c0
Add modernize-deprecated-headers
2022-02-15 00:22:52 +01:00
def
bc78ba57b9
Enable readability-inconsistent-declaration-parameter-name
2022-01-22 14:12:59 +01:00
Robert Müller
1810ff3949
Move InitTilemapSkip to CLayers
2022-01-19 22:22:31 +01:00
Jupeyy
1e07a00c3b
Refactor CUIElements
2021-09-14 00:21:20 +02:00
Jupeyy
7f5ca0ffe1
Small graphic refactoring
2021-09-14 00:21:17 +02:00
ChillerDragon
43b67b1c3a
Remove commented out render code
2021-09-13 12:31:08 +02:00
ChillerDragon
5140854d68
Some char array naming convention
2021-09-13 12:21:56 +02:00
Дядя Женя
9b4dfc142a
Merge branch 'master' into pr_color_picker
...
# Conflicts:
# src/game/client/components/chat.h
# src/game/client/components/menus_settings.cpp
2020-12-13 20:40:33 +03:00
Jupeyy
0c231c3668
Respect outline in skin metrics
2020-11-12 08:45:10 +01:00
Jupeyy
df4c7a08c8
Add skin metrics
2020-11-08 10:28:47 +01:00
Дядя Женя
e817a179da
Started making color picker
2020-10-28 05:59:50 +03:00
Dennis Felsing
1347537561
Fix style in render.cpp
2020-10-27 13:18:33 +01:00
Дядя Женя
05d6201a72
DrawRoundRectEx readability
2020-10-26 21:50:56 +03:00
bors[bot]
b0803b26e0
Merge #3077
...
3077: UI Elements r=def- a=Jupeyy
Build will fail bcs of clang-format,
i'll update this comment to explain.
Co-authored-by: Jupeyy <jupjopjap@gmail.com>
2020-10-26 08:37:25 +00:00
Jupeyy
95824b24a3
Fix weapon muzzle texture cutoff
2020-10-25 15:40:22 +01:00
Jupeyy
74515d4b95
UI Elements
2020-10-19 23:52:29 +02:00
Jupeyy
8d6148b20b
Modulize skins, particles, emoticons and game
2020-10-09 09:07:19 +02:00
def
3be8a592e5
Run clang-format
...
Purely automatic change. In case of conflict with this change, apply the
other change and rerun the formatting to restore it:
$ python scripts/fix_style.py
2020-09-26 21:50:15 +02:00
def
f7b37eaf6a
clang-format fixes
2020-09-10 20:16:09 +02:00
def
2cdc7d0faf
Adapt 0.7 start menu
...
- Working Local Server button (needs fixing for Windows)
- Highlight buttons if server is running, new news is out and editor has
unsaved changes
2020-09-10 20:13:01 +02:00
def
1782d95d99
Client tells server its zoom level ( fixes #2087 )
...
and server adapts the visible distance to it
2020-06-29 18:59:07 +02:00
Magnus Auvinen
6a6a5f00c9
more typesafty in the graphics. introduced the IGraphics::CTextureHandle
...
Edited by @ChillerDragon to fit in ddnet
(cherry picked from commit cb95e8dfe8
)
2019-11-22 18:08:37 +01:00
ChillerDragon
6172a9dca0
Use the float type explicitly
2019-07-08 23:08:42 +02:00
Learath
13807edc6a
Don't apply colorscale to alpha
2019-05-03 20:37:32 +02:00
Learath
6c371a9a57
Even more refactoring
2019-04-27 01:11:15 +03:00
Learath
65a17599e1
Add ColorHSVA, phase out more vec3's
2019-04-26 15:06:32 +03:00