Commit Graph

95 Commits (39c837d32311b244df0b03e44414e2a441c38117)

Author SHA1 Message Date
Tomasz Kapuściński 39c837d323 Refactored PrimitiveType to enum class 2021-12-05 12:26:34 +01:00
Tomasz Kapuściński 9139239f9f Merge branch 'dev' into dev-graphics-overhaul
# Conflicts:
#	src/app/app.cpp
#	src/graphics/opengl/gl14device.cpp
#	src/graphics/opengl/gl14device.h
#	src/graphics/opengl/gl21device.cpp
#	src/graphics/opengl/gl21device.h
2021-12-01 17:27:54 +01:00
MrSimbax 80f074e2ba Update license headers 2021-09-11 15:53:59 +02:00
Tomasz Kapuściński 16200bbeac Removed all dependency on interface rendering mode 2021-09-05 16:32:16 +02:00
Tomasz Kapuściński 465fe59dfb Added Renderers
Added UI Renderer
Added OpenGL 3.3 UI Renderer
Reimplemented most of UI drawing functionality to use UI Renderer
TODO: fix OpenGL errors
2021-09-05 16:32:15 +02:00
MrSimbax 05de2baef5 Fix crashes in SatCom on some \button characters
The issue is that the \button fragments in SatCom are replaced with
invalid UTF-8 bytes, hence those bytes need to be handled as a special
case when checking for UTF-8 character length.

When the text is processed e.g. in `Gfx::CText::Justify`, there are
generally two arrays: `text` and `format`. The second one is interpreted
as a font for a given character, e.g. `text[i]` has font `format[i]`.

Now, in the loops the index for `text` is increased by the length of
the character, e.g. 1 to 4 bytes, whereas index for `format` is
only incremented. It seems there's an assumption that `format` treats
multibyte characters as one byte, which doesn't seem to be true by
looking at the process of filling up the `format` array. This can result
in using wrong font e.g. FONT_SATCOM for the \button character which
should be FONT_BUTTON, hence the `StrUtils::Utf8CharSizeAt` method
complains about unexpected continuation byte via exception, causing
the crash.

Incrementing the index by the UTF-8 length seems to have fixed the
issue. However, I am not sure if I haven't broken anything else by this
and if I analyzed the intended behaviour correctly.
Gfx::CText needs a major refactor IMHO.
2020-09-20 21:22:05 +02:00
Emxx52 1c9f5f3f64
Merge branch 'dev' into dev-mod-manager 2020-08-21 18:21:08 +02:00
tomangelo2 4bb6f9f1b3 Remove unnecessary warning if there is no fonts.ini file 2020-08-08 15:41:07 +02:00
MrSimbax b685d0060c Merge branch 'dev' into dev-mod-manager 2020-07-23 18:19:42 +02:00
Mateusz Przybył a5c7187017
Fix crashes on SatCom in Moon missions (#1334) 2020-07-22 00:37:37 +02:00
MrSimbax 7e6782a1be Try to improve font reloading 2020-07-19 16:07:27 +02:00
MrSimbax 8390d85e46 Refactor the mod manager
Moved list of mods logic to a new CModManager class.

The list of enabled mods is now managed by a flag instead of directory
names of mods.

Mods are now disabled by default.

Also general cleanup, fixing issues from the code review in
https://github.com/colobot/colobot/pull/1191 and fixing linter issues.

Regression: the state of enabled/disabled mods is now not persistent.
The plan is to use some kind of config file for this.
2020-07-18 14:30:50 +02:00
MrSimbax 4905abe30b Merge branch 'dev-mod-manager' of https://github.com/DavivaD/colobot into dev-mod-manager 2020-07-17 11:49:51 +02:00
tomangelo 37e4ed8029
Updated license headers (#1317)
* Updated headers

* Updated more headers
2020-07-07 10:19:36 +02:00
tomangelo2 be97167994 Potential fix for issue #1128 2019-01-02 01:18:45 +01:00
DavivaD 1b47cf76d3 Implement Mod Manager 2018-08-02 07:38:32 +02:00
tomangelo 5080cb46b1
Merge pull request #1031 from tomangelo2/dev
Added fonts configurability by a separate file
2018-07-25 19:51:55 +02:00
tomangelo2 3383532752 Changed font_config to font_loader
Apparently linter doesn't like files with `config` in its name
2018-07-25 00:44:06 +02:00
tomangelo2 df46bcfe2d Fix another linter warning 2018-07-23 14:03:59 +02:00
krzys-h 12cf57409c Support more buttonX.png files in other places than just buttons 2018-05-10 11:24:59 +02:00
AbigailBuccaneer 6f6cfb136a Batch draw calls from CText to improve performance
This significantly speeds up text rendering. On my computer, looking at
the program editor with a full screen of text, this commit takes the
framerate from under 30 to 60 (hitting vsync).

Performance could be further improved in the gl33 renderer by using
instancing or glPrimitiveRestartIndex instead of glMultiDrawArrays, but
that would be a more invasive change.

All of the interface rendering could use a unified quad batching system,
instead of it being limited to CText, but that would require some
refactoring in CText as it currently draws using a different coordinate
space to the rest of the interface.

Fixes #1104.
2018-04-30 10:18:51 +01:00
AbigailBuccaneer c49c815ea5 Set uniforms less often during text rendering
We now call SetWindowCoordinates and SetInterfaceCoordinates once per
string, rather than once or twice per character.
2018-04-27 10:43:26 +01:00
krzys-h 1c2bdc9cab Update license headers 2018-04-20 02:08:50 +02:00
tomangelo2 ff97df74c6 Added support for italic and bold variants of studio and satcom fonts
They aren't currently used anywhere
2017-10-28 22:22:22 +02:00
tomangelo2 94cacdae96 Removed singletone from FontConfig
Also renamed class so it now matches better with class file name
2017-10-15 23:46:15 +02:00
tomangelo2 52d9330114 Replaced multiple methods with one 2017-10-15 23:31:06 +02:00
tomangelo2 dd9439aed2 Renamed font_file to font_config 2017-10-15 22:47:32 +02:00
tomangelo2 054d1c3e54 Changed in-engine fonts names 2017-10-11 17:10:04 +02:00
tomangelo2 cf46c2457a Moved file font.ini to /fonts/ directory
Separated SatCom font from Colobot font
2017-10-11 17:02:09 +02:00
tomangelo2 250c934b9e Added fonts configurability by a separate file 2017-10-09 00:36:31 +02:00
krzys-h 88c6818cfd Fix code style issues 2016-11-26 13:48:12 +01:00
krzys-h 9017e5a25b Fixed links in CBot listings in SatCom 2016-06-17 21:13:16 +02:00
Piotr Dziwinski c6c01c332f Fix displaying of text highlights (#738) 2016-04-08 21:24:14 +12:00
Piotr Dziwinski 71a77c77f6 Hack to finally fix #738
Text rendering is now done in window coordinates corresponding to window
pixels to avoid floating-point rounding errors that show up as rendering
artifacts
2016-04-06 23:08:50 +12:00
Piotr Dziwinski 72f966b118 Fix for #738
Add one-pixel boundary and fix texture coordinates for font characters
This should finally fix the issue of pixelated text
2016-04-03 21:40:33 +12:00
Piotr Dziwinski 4e331f1f54 Possible workaround for #738
Align text rendering to character, not tile size
2016-03-25 15:50:13 +13:00
Piotr Dziwinski 8baccb08a7 Optimize use of textures in text rendering, closes #215 2016-03-19 12:00:56 +13:00
krzys-h 0256b1aa39 Add logging in font loading 2016-02-18 18:07:29 +01:00
krzys-h 977607a934 Updated license headers 2016-02-13 14:11:30 +01:00
Krzysztof Dermont c780148b77 Fix crash related to TTF and PHYSFS
TTF fonts will be loaded to memory instead of file pointers

Added new class CSDLMemoryWrapper that loads data from PHYSFS into memory block
and closes file after. This closes issues #519, #708 and #619
2016-02-11 16:12:16 +01:00
Piotr Dziwinski d11ebc891c Bring to zero some types of issues reported by colobot-lint 2015-10-04 00:09:10 +02:00
krzys-h a0034f8000 Finalized SDL2 migration 2015-09-25 21:26:49 +02:00
krzys-h dfa06dafcf Refactored window resize 2015-09-25 11:11:35 +02:00
krzys-h 53e4470dbf Started SDL2 migration 2015-09-24 21:09:46 +02:00
Piotr Dziwinski b93f610930 Fix license header in all files 2015-08-22 16:40:02 +02:00
krzys-h 8421189716 Merge branch 'dev-cbot-syntax-highlighting' into dev (#575) 2015-08-18 23:01:02 +02:00
krzys-h e91ecbbb01 Removed unused references to effect03.png from the code 2015-08-18 22:59:31 +02:00
krzys-h 1c0fc21e2b Made all colors a bit darker 2015-08-18 22:12:00 +02:00
krzys-h c5da68d516 New CBot syntax highlighting 2015-08-18 22:12:00 +02:00
Piotr Dziwinski 2289d69735 Replace NULL -> nullptr 2015-08-16 12:43:42 +02:00