krzys-h
38a34829af
Fix code style in #1150
2018-05-01 21:27:49 +02:00
AbigailBuccaneer
c445d7d9a9
Add generic debug rendering functions
...
Currently the engine can draw debug spheres to show crash sphere
positions. This extends this to draw arbitrary spheres and cuboids,
transformed arbitrarily. With these in place it's now very quick and
easy to create a debug visualisation - for example, it's a one-line code
change to render the bounding box or sphere of every EngineObject.
2018-04-29 23:41:53 +01:00
AbigailBuccaneer
282a793a13
Improve object vis with tighter bounding spheres
...
This commit improves rendering performance by doing a better job of
checking whether an object is visible via its bounding sphere or not.
The engine maintains a bounding box for each EngineBaseObject that's
exactly large enough to fit every vertex. From this, it computes a
bounding sphere, and only draws objects if the sphere is within the view
frustum. Previously, the bounding sphere was always centered on the
EngineBaseObject's origin, even for models where the bounding box center
is significantly offset from the origin. Now, the bounding sphere is
always the tightest sphere which fits the bounding box.
2018-04-29 19:35:02 +01:00
AbigailBuccaneer
ea64edaa0b
Compile with -Wmissing-declarations
...
-Wmissing-declarations enforces that every function (except for static
functions) must be declared separately before it's defined. This
essentially enforces that every function must be either static, or
declared in a header elsewhere.
This helps the optimizer, as it can do a better job of inlining if it
knows that a function won't be used outside of a given file. It also
helps -Wunused-function (which is enabled by -Wall) find more unused
functions.
Note that Clang spells this option -Wmissing-prototypes, which
confusingly is the name of a related but different warning option under
GCC.
2018-04-21 16:49:27 +01:00
AbigailBuccaneer
4119e669d1
Remove central tracking of SystemTimeStamp
...
SystemTimeStamp used to be an opaque class, as it was provided by
`system_{linux/other/windows}.h`. Because of this, code dealt in
SystemTimeStamp pointers, and getting the current timestamp required a
memory allocation. Now SystemTimeStamp is just a
`std::chrono::time_point`, we can make the code cleaner and faster by
just directly keeping SystemTimeStamp instead of pointers around.
2018-04-20 09:57:10 +01:00
AbigailBuccaneer
2a003a27b1
Use C++11 threads, mutexes and condition variables
2018-04-20 09:56:57 +01:00
krzys-h
e964d3e48c
Fix colobot-lint warnings
2018-04-20 02:21:12 +02:00
krzys-h
1c2bdc9cab
Update license headers
2018-04-20 02:08:50 +02:00
Mateusz Przybył
46bef8fd92
Add button4.png drawing (builder icons)
2017-11-17 18:59:14 +01:00
tomangelo2
054d1c3e54
Changed in-engine fonts names
2017-10-11 17:10:04 +02:00
immibis
8b0ccf6667
Fix horizontal scrolling of background images.
2017-08-05 20:08:00 +12:00
immibis
2751db3245
Add horizontal FoV to CEngine
2017-08-05 19:45:08 +12:00
krzys-h
4faabf2185
Apply shadow mapping performance counter patch from #923
2017-06-03 21:11:18 +02:00
Abigail
f4614658cf
Fix -Wundefined-var-template warning ( #963 )
...
This avoids specializing CSingleton<T>::m_instance for each type, and
instead just defines it once in the header. This is allowed by the
standard, multiple definitions are merged in the same way that inline
functions are.
2017-05-29 20:46:11 +02:00
krzys-h
6bebbb3f70
Fix sky rendering artifact
2017-05-18 19:03:19 +02:00
piotrwalkusz1
6ec13017eb
Fix apperance camera position, closes #802 ( #880 )
2017-01-02 18:43:19 +01:00
krzys-h
3bac0aabd9
Fix buffer overrun when rendering goto() debug texture, closes #841
2016-11-11 17:26:37 +01:00
krzys-h
6e4764b97c
Fix GroundSpot blending, closes #846
2016-11-11 17:06:53 +01:00
Tomasz Kapuściński
e7c41ae9e6
Correction in changing wrap mode in SetState
2016-11-10 13:00:42 +01:00
MrSimbax
92b1e544ec
Remove default lambda parameters
...
They cause compilation error on MSVC and should give errors, as it's explicitly stated in the C++11 standard: http://stackoverflow.com/questions/6281472/why-does-a-default-argument-for-a-lambda-argument-trigger-a-pedantic-gcc-warni
2016-08-18 10:02:54 +02:00
krzys-h
dbe7fd6ef0
Added performance counter for UI particles
2016-07-24 18:19:37 +02:00
krzys-h
ffd688e2d7
Do not render the shadow map when pause blur is active
2016-07-24 16:56:47 +02:00
krzys-h
2c3e90b126
Added CBot performance counter
2016-07-24 16:36:13 +02:00
krzys-h
5fea22ff03
Moved performance counters to a separate class
2016-07-24 16:18:25 +02:00
krzys-h
81b7bcc5bc
Moved system modules from app/ to common/system/
2016-07-24 14:38:49 +02:00
krzys-h
9e545d0d39
Fixed colobot-lint warnings
2016-07-09 20:39:18 +02:00
krzys-h
8a17bc901c
Added pause blur config setting, enabled by default
2016-07-09 12:13:51 +02:00
krzys-h
3b9b9b322a
Changed mouse scaling (again)
2016-06-21 13:07:40 +02:00
krzys-h
bd4362e26c
Fixed dynamic textures not being reloaded properly
2016-06-19 19:57:55 +02:00
Tomasz Kapuściński
a0b3f7a769
Fixed problem with pause blur after changing some graphic settings
2016-06-19 16:52:01 +02:00
krzys-h
125d1a32c7
Fixed pause blur blinking for one frame
...
issue #656
2016-06-19 12:23:57 +02:00
krzys-h
9d9131c3fb
Fixed pause blur with MSAA
...
issue #656
2016-06-19 11:45:59 +02:00
krzys-h
bef27c3b36
Removed unused parameter from CEngine::SetViewParams
2016-05-28 16:48:36 +02:00
krzys-h
aa159bc9b0
Don't scale mouse cursor with resolution
2016-05-28 00:43:14 +02:00
krzys-h
59c106f7a7
Fixed pause blur image not updating correctly on resolution change
2016-05-21 19:03:53 +02:00
Tomasz Kapuściński
213fd6b203
Added blur effect when the game is paused (issue #656 )
...
Might be unstable, needs more testing. To enable, add PauseBlur=1 to [Experimental] section in colobot.ini
2016-05-21 14:27:35 +02:00
tomangelo2
9870cfe8a8
Clamp FogStart value to 0 if negative
...
Should fix issue #766
2016-05-02 01:27:07 +02: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
krzys-h
e24d77bde8
goto() bitmap debugger
2016-03-28 21:42:25 +02:00
krzys-h
d38ddcbc41
goto() path debugger
2016-03-28 20:25:07 +02:00
krzys-h
e4f9360e63
Resources debug mode
2016-03-28 17:58:31 +02:00
krzys-h
4af02c86f8
Debug menu
2016-03-28 17:58:31 +02:00
krzys-h
6585ee9ae8
Refactor some references to CRobotMain from CEngine
2016-03-26 18:55:39 +01:00
krzys-h
16c1f34a07
Removed unnecessary LoadAllTextures call
2016-03-25 17:14:20 +01:00
krzys-h
d812db19f8
Fixed ground spots not working after changing texture params; use UpdateTexture instead of destroy and recreate
2016-03-25 17:06:01 +01:00
Tomasz Kapuściński
b31353cf75
Optimized crash sphere rendering
2016-03-20 19:17:15 +01:00
Piotr Dziwinski
720705bd6b
Some colobot-lint fixes
2016-03-19 12:33:54 +13:00
Piotr Dziwinski
15c9cbd228
Debug mode for displaying crash spheres, closes #400
2016-03-19 11:54:58 +13:00
Tomasz Kapuściński
8deeddffe0
Corrected OpenGL 2.1 engine's error spam and added experimental terrain shadowing
2016-03-10 10:50:54 +01:00
Tomasz Kapuściński
e6a2fc9671
Rewritten shadow mapping implementation
2016-03-07 18:33:19 +01:00
Tomasz Kapuściński
9effa308ce
Small change in enabling/disabling shadow mapping
2016-03-06 20:25:50 +01:00
Tomasz Kapuściński
78e877d9a8
Changes in framebuffer creation, framebuffer error detection and small other graphical things
2016-02-29 16:42:01 +01:00
Tomasz Kapuściński
0bb5f96d7a
Changed depth of shadow map texture to 32
2016-02-28 23:17:25 +01:00
krzys-h
b97070bbad
stupid whitespace
2016-02-28 20:57:39 +01:00
krzys-h
282cd65a2d
Fix reloading changed ground spot textures ( closes #404 )
2016-02-28 20:22:05 +01:00
krzys-h
643c40e778
Revert "Get rid of "blacklisting shadowXX.png" logs"
...
This disabled loading of those textures completly
This reverts commit 60f0a7b45c
.
#BlamePiotrdzAgain
2016-02-28 20:17:35 +01:00
krzys-h
977607a934
Updated license headers
2016-02-13 14:11:30 +01:00
Tomasz Kapuściński
6b7e6cbc75
Added rendering modes and implemented additional OpenGL 2.1 shaders
2016-02-13 03:54:49 +01:00
Tomasz Kapuściński
a924cf6a75
Fix for fog distance
2016-01-31 00:38:24 +01:00
Tomasz Kapuściński
15c5e69199
Fix for visibility distance setting
2016-01-30 23:58:26 +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
3815ef0bd6
Refactored CPauseManager (again)
2015-10-01 18:55:41 +02:00
krzys-h
58035f3cd1
Fixed rendering camera overlay color, closes #157
2015-09-30 21:41:00 +02:00
Piotr Dziwinski
66ce745be0
Introduce forward declarations as suggested by colobot-lint
2015-09-27 16:28:14 +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
krzys-h
389aaaf132
Fixed 'invui' disabling too much
2015-09-12 11:51:03 +02:00
krzys-h
2792fa2c6c
Fixed mouse cursor scaling (again)
...
How could I even miss the fact that my previous fix is not working at all? :P
2015-09-11 17:54:55 +02:00
krzys-h
fb03a497d7
Added command to hide the UI
2015-09-04 19:16:21 +02:00
krzys-h
c3d7876a5c
Made CPauseManager not a singleton
2015-08-31 22:05:21 +02:00
krzys-h
ff17961584
Refactored CPauseManager
2015-08-31 21:47:55 +02:00
krzys-h
2ec5e07080
Possible fix to #608
2015-08-31 12:06:14 +02:00
krzys-h
d4b431adaa
Recalculate camera projection matrix after aspect ratio change
2015-08-25 16:18:01 +02:00
krzys-h
b5bd1b2d74
Destroy static buffers after resolution change
...
Under windows, changing the video mode causes SDL to destroy and recreate the OpenGL context, which invalidates all current static buffers.
It works on Linux because the actual SDL implementation here differs.
See http://sdl.beuc.net/sdl.wiki/SDL_SetVideoMode for details:
> Also note that, in Windows, setting the video mode resets the current OpenGL context. You must execute again the OpenGL initialization code (set the clear color or the shade model, or reload textures, for example) after calling SDL_SetVideoMode. In Linux, however, it works fine, and the initialization code only needs to be executed after the first call to SDL_SetVideoMode (although there is no harm in executing the initialization code after each call to SDL_SetVideoMode, for example for a multiplatform application).
2015-08-24 19:43:06 +02:00
Piotr Dziwinski
60f0a7b45c
Get rid of "blacklisting shadowXX.png" logs
2015-08-22 18:17:57 +02:00
Piotr Dziwinski
b93f610930
Fix license header in all files
2015-08-22 16:40:02 +02:00
Piotr Dziwinski
d703eb7165
Compile fixes for MSVC2013
2015-08-16 00:39:08 +02:00
krzys-h
9a15db1bea
Split global.h
2015-08-15 14:02:07 +02:00
krzys-h
9d8bef877d
Renamed old-style shadows to shadow spots in the code
2015-08-14 13:37:40 +02:00
krzys-h
78a279b479
Better shadow type selection UI
2015-08-14 13:37:27 +02:00
krzys-h
eda7435eb6
Removed a lot of useless settings ( #556 )
2015-08-14 13:04:05 +02:00
krzys-h
1d6c3cc748
Fixed CEngine trying to use unsupported values as defaults, closes #552
...
Also fixed the settings buttons not being disabled properly
2015-08-14 12:03:53 +02:00
krzys-h
92591c23b6
When flushing texture cache, also remove device textures
2015-08-13 23:49:01 +02:00
krzys-h
1c461ce1c8
Prevent reloading background if not needed
2015-08-13 23:44:08 +02:00
krzys-h
ff957afefc
Moved files not directly related to CObject into src/level/ directory
2015-08-13 11:47:32 +02:00
Piotr Dziwinski
93a06c0c23
Remove manual memory management from graphics classes
2015-08-12 21:07:16 +02:00
krzys-h
6b4610e808
Improved stats display
2015-08-09 15:20:38 +02:00
krzys-h
0ed11e0e7d
Fixed "unable to open shadow??.png texture" errors again
2015-08-07 22:48:26 +02:00
krzys-h
0468c3efdb
Fixed ULTRA LONG loading time bug introduced in 5593f427f6
...
Well... that escalated quickly :P
And it remained unnoticed for so long!
2015-08-07 22:36:50 +02:00
krzys-h
57469533b6
Implemented loading progress bar
2015-08-07 20:48:55 +02:00
krzys-h
f90bb63520
Hide some things in save screenshots
...
Save indicator, mouse cursor, CDisplayText and interface particles
2015-08-07 15:59:05 +02:00
krzys-h
4d5b4c47a2
Use CText for virus particle rendering
...
As suggested by @RaptorParkowsky on Trello - https://trello.com/c/56MszsWA/66-texture-remastering-checklist
2015-08-07 13:29:29 +02:00
Piotr Dziwinski
e9e1c8d4dd
Add proper initializations and remove manual memory management in app classes
2015-08-07 10:16:46 +02:00
krzys-h
22415e183d
Remove unneeded empty map.png file
2015-08-06 23:06:36 +02:00
krzys-h
0d00952b10
Rename text.png to effect03.png
2015-08-06 22:41:54 +02:00
Piotr Dziwinski
f95980456a
Replace anonymous union in Event with pointer to appropriate struct
2015-08-06 19:11:50 +02:00
krzys-h
ec3ded75b8
Removed unused LOD level setting
2015-08-06 18:35:56 +02:00
krzys-h
b20d589c87
Check available texture units in shadow mapping settings
2015-08-06 13:47:42 +02:00
krzys-h
dc85aa2138
Moved all UI controls to a subdirectory
2015-08-06 13:25:24 +02:00
krzys-h
2b4210dcbc
Separated CMainUserInterface from CMainDialog
2015-08-06 12:59:09 +02:00