Commit Graph

12916 Commits

Author SHA1 Message Date
Benau
c7d56d3edc Allow caching compressed texture
Use std::hash for string (path + basename + max_texture_size)
2017-01-05 12:50:33 +08:00
Deve
fb0a54278a Fixed possible crash.
STK could crash when invalid graphics restriction name was set in graphics_restrictions.xml file.
It's because of wrong while (m_names_of_restrictions[i] != NULL) condition.
2017-01-05 00:28:16 +01:00
Deve
23acade026 Make sure that legacy pipeline is used when it's set in graphics restrictions.
It was be done only for GLES before, but also for OpenGL some drivers create OpenGL 4.x compatibility profile context even if we request GL 2.1. So we can't assume that it will report GL2.1 and we should make sure that fixed pipeline will be used.
Actually now it works in the same way as force_legacy_device in config.xml.
2017-01-04 23:39:15 +01:00
Benau
99857ca193 Fix GLES 2017-01-04 15:05:04 +08:00
Benau
497f1e2785 Clean up billboard texture code
Todo: compress them in STKTexture class
2017-01-04 14:35:49 +08:00
Benau
c98e4f2bac Simplify particle texture loading 2017-01-04 13:43:14 +08:00
Benau
63f57d6a9c Fix wrong texture if absolute path is not given 2017-01-04 11:41:11 +08:00
hiker
2be59e7728 Avoid infinite loop when showing the in-race menu and a rollback happens. 2017-01-04 09:51:36 +11:00
hiker
6941317979 Increase server delay to reduce number of rewinds on server. 2017-01-04 09:50:43 +11:00
hiker
b3f6307107 Fixed crash when exiting a race early. 2017-01-04 09:23:57 +11:00
hiker
cd4a19e801 Reset snapshot frquency; fixed bug in rewind (which would stop with
the last event, and not rewind all the way back to the current time).
2017-01-04 09:17:54 +11:00
hiker
2df97ebc39 Disable skipping of ready-set-go in artist debug mode when networking
(can desynchronise client and server).
2017-01-04 08:18:41 +11:00
hiker
e5c5870564 Removed debug output. 2017-01-04 08:11:17 +11:00
Benau
05a29fe7da Let material code handle premultiplied alpha and srgb 2017-01-03 16:35:37 +08:00
Benau
d57841bcb8 Fix crash if skybox / SH shares textures from track 2017-01-03 12:35:05 +08:00
Benau
57e16dcb73 Avoid unneeded copying in sky box and SH 2017-01-03 11:08:33 +08:00
Benau
19ac8a0d3c Allow sky box and SH to use new texture format 2017-01-03 10:18:11 +08:00
auria.mg
ac8a5c552f Make dialogs non-draggable. Fixes #2717 2017-01-02 19:02:05 -05:00
Deve
9c7a438826 Remove simulating mouse events from event handler.
It will be handled in irrlicht device.
2017-01-02 21:49:41 +01:00
Deve
bcea2355fa Allow to scroll list box by touch gesture.
It can be restricted to Android-only, but tbh. I don't see any reason that it can't work in the same way on desktop computers (may be usable on laptops with touch screen, all-in-one computers etc...).

I also made a minor fix with if(!event.MouseInput.isLeftPressed()) because the EGET_ELEMENT_FOCUS_LOST event seems to not work at all.
2017-01-02 21:47:23 +01:00
Benau
6db2212690 Try to fix server build 2017-01-03 00:03:26 +08:00
Benau
2dbf4675a5 First version of new texture format
Todo: IBL, texture compression, GLES, premul alpha ....
2017-01-02 16:14:59 +08:00
Deve
cec7c51bc0 Request closing the app on android in better place, so that it handles both - quit button and escape pressed. 2016-12-31 02:51:08 +01:00
Benau
dbe148baf6 Max 10 players supported in arena
See #2705
2016-12-31 09:27:39 +08:00
Benau
f8c09ccf83 Handle score times too 2016-12-31 09:03:42 +08:00
Benau
0d35ea74d1 Fix #2713 2016-12-31 08:59:24 +08:00
auria.mg
fcdb0b5614 Improve material code, fixes #2709 2016-12-30 16:04:56 -05:00
Benau
360e1bb88b Case insensitive in linux for reloading texture 2016-12-30 20:24:35 +08:00
Deve
412399cdf7 Fixed a crash in GLES 2.0.
The glGetStringi is available only in GLES >= 3.0. We can't easily check if this function exists or not because it requires EGL >= 1.5 (and still we can't be sure that all drivers handle it properly).

Though glGetString(GL_EXTENSIONS) is allowed on both GLES2.0 and GLES3.0, so we can just fallback to this method.
2016-12-30 11:09:06 +01:00
Benau
cb5f24e551 Reset time target if leaving the soccer screen with escape 2016-12-30 15:02:07 +08:00
Benau
5b96b4aa3f Allow windows user to enter path more easily 2016-12-30 15:00:26 +08:00
Benau
caf9dbab0c Fix crash when loading particle texture inside track folder 2016-12-30 13:28:13 +08:00
Benau
1e2a759f7b Restart STK if advanced pipeline option changed 2016-12-30 11:01:29 +08:00
auria.mg
7a6e6cb6a4 Attempt to imporove AMD driver version detection 2016-12-29 21:43:19 -05:00
hiker
069e916dc0 Added state updates, not fully working yet. 2016-12-30 13:35:48 +11:00
Benau
bbaff0467e Fix normal map when advanced pipeline off 2016-12-30 00:58:48 +08:00
Deve
278ef781bf GLES: Make sure that we are using fixed pipeline when force legacy device is set in graphics restrictions.
It is generally safe for GLES drivers. The driver often reports OpenGL ES 3.1 or 3.0 support even though we request only GLES 2.0. But we can still use GLES 2.0 / GLSL 1.0 functions on GLES 3.x context, so it shouldn't cause any issues.

I also added Android Emulator to graphics restrictions.
2016-12-29 16:01:46 +01:00
Benau
bc2fb1da76 Fix server build 2016-12-29 15:46:00 +08:00
Benau
67b6c3bf05 Allow to reload textures on the fly
Enter texture filename(s) (full path is optional) separating by
";" in the artist debug mode "Reload texture" dialog

Notice: premultiplied alpha texture reloading is not supported,
because it was done on STK side.
2016-12-29 14:56:18 +08:00
Benau
b9b8ab3e5f Don't load normal map too if not advanced pipeline 2016-12-29 09:46:26 +08:00
auria.mg
875bfad197 Merge remote-tracking branch 'temeliak/fix_non_hd_option' 2016-12-28 20:39:20 -05:00
auria.mg
f0afba84c8 More cleanup 2016-12-28 20:17:32 -05:00
auria.mg
33802d9f81 Materials optimisation : minor tweaks and cleanup 2016-12-28 20:13:55 -05:00
Benau
1597c2ad48 Make scaled texture work with alpha mask 2016-12-29 00:36:13 +08:00
Benau
72963f4fb4 Fix GLES 2016-12-28 16:23:57 +08:00
Benau
71161264be Merge remote-tracking branch 'origin/master' into fix_2316 2016-12-28 15:50:14 +08:00
Benau
f43f76b7c9 Fix server build 2016-12-28 15:40:12 +08:00
Benau
ffe4dd88b4 Apply mask directly on texture
Avoiding the ref counting issues
2016-12-28 15:32:27 +08:00
auria.mg
5e415e3331 Install all materials before loading meshes 2016-12-27 22:08:27 -05:00
Benau
8c5c85245f Use full detail default 2016-12-27 18:31:06 +08:00
auria.mg
0be858f7f8 Fix crash in texture cleanup branch 2016-12-26 23:03:22 -05:00
auria.mg
943373ea8e Try cleaning up textures when unloading tracks. Crashes at this time, more debugging is required 2016-12-26 22:33:54 -05:00
Benau
15469e555d Allow track loading to take care of geometry details 2016-12-27 11:15:24 +08:00
Benau
7085c164b5 Merge remote-tracking branch 'origin/geometry_detail' 2016-12-26 23:56:18 +08:00
Benau
9831802c7f Fix typo 2016-12-26 13:59:34 +08:00
Benau
c2d9f91c62 Allow to run cutscene(s) in artist debug menu 2016-12-26 13:51:40 +08:00
auria.mg
46e7b5ac77 Try to fix build 2016-12-25 22:27:46 -05:00
auria.mg
2b34dd8410 More cleanup and bugfixing related to #2316 2016-12-25 22:21:41 -05:00
auria.mg
059c2c8573 Bugfix delayed-loaded textures bug 2016-12-25 22:00:11 -05:00
Benau
ebef08c3d8 Try to combine all text field dialogs 2016-12-26 10:53:14 +08:00
auria.mg
4aa31dc56e First attempt at #2316. WIP, issues remains 2016-12-25 20:21:00 -05:00
Benau
3c9174d278 Add a general debug dialog
To be used later
2016-12-25 16:41:55 +08:00
samuncle
e62edcc89a Ground work for geometry detail option 2016-12-24 19:16:39 -05:00
Benau
6a142e8d2e Allow animated models in track to have different animation 2016-12-24 13:11:08 +08:00
Deve
26bbffe8b0 Don't declare features that are used for SDSM, AZDO and compute shaders and that are not available in GLES renderer anyway. 2016-12-24 01:26:18 +01:00
Deve
7b76804354 Allow to unlock all tracks in config.xml.
Can be used on android when only some tracks are included in the apk.
2016-12-23 23:36:39 +01:00
Deve
674e617018 Allow to use isDirectory function outside of file manager class.
It is used on android for extracting assets
2016-12-23 19:01:16 +01:00
Deve
8a88c9707b Fixed rendering when UBO is disabled 2016-12-23 16:45:03 +01:00
Benau
989234a0ba Clean up header part 2 2016-12-23 17:12:53 +08:00
Benau
31f2a720ca Try to reduce the header size of materials.hpp
Plus header clean up
2016-12-23 14:44:18 +08:00
Benau
f7e2122b79 Allow drawing instanced glow color without explicit location 2016-12-23 10:36:35 +08:00
Benau
a339975df6 Clean skidmark earlier if there are many karts 2016-12-23 10:08:12 +08:00
Benau
969592e3fc Try to fix framerate drop after few laps
Because skidmark left are never culled
2016-12-23 09:19:46 +08:00
Benau
8008ec851e Allow to use hardware skinning with opengl 3.1
Now we only need UBO to store the joint matrices to support it
2016-12-23 01:31:13 +08:00
Benau
28841d601d Remove old code for getting straight frame
With hardware skinning it is not necessary
2016-12-23 00:44:26 +08:00
Benau
bfd57659eb Remove unused file 2016-12-22 11:17:52 +08:00
Benau
ffa4ad84cb Merge branch 'hardware_skinning' 2016-12-22 10:38:06 +08:00
Deve
53ee40af70 Update multitouch device when settings are changed 2016-12-20 23:11:06 +01:00
Deve
082661db65 Add a possibility to change touch device settings in GUI 2016-12-20 23:10:57 +01:00
hiker
31619aecff Merge remote-tracking branch 'origin/master' into game_protocol 2016-12-20 10:31:24 +11:00
hiker
084869263d Use a sort function to sort the rewind info events and network events,
so that the merge function can be used to combine them. The RewindManager
is now threadsafe.
2016-12-20 09:41:50 +11:00
Benau
c26f8150f4 Fix server only build 2016-12-19 11:17:45 +08:00
Benau
581ca964fd Fix hats with hardware skinning 2016-12-19 11:06:05 +08:00
Daniel Butum
d0229cd85e Separate the non-cached shader loading in ShaderFilesManager 2016-12-18 13:40:36 +02:00
Benau
4f2e2331ee Correct the spelling of shader files 2016-12-18 14:59:37 +08:00
Benau
4477dbb0fb Preload shaders that delay kart selection screen the most
Plus some suggestion from #1787
2016-12-18 14:51:27 +08:00
Benau
7ea4f30824 Make sure no duplicated shader is added somewhere else 2016-12-18 13:49:58 +08:00
Benau
2a9656bfdc Allow all shader files to be loaded only once
Todo: preload
2016-12-18 10:51:05 +08:00
Benau
7894e5c864 Try to use a smarter approach 2016-12-18 09:27:50 +08:00
auria.mg
da795b69ed Better fix for #2687 2016-12-17 18:49:00 -05:00
auria.mg
2b13a5643e Ignore the "applesmc" accelerator as input device. see #2691 2016-12-17 17:43:03 -05:00
Deve
f314c1ff2a Some improvements for multitouch steering GUI
- move it to separate class, so that it can be displayed in Overworld too
- add a possibility to scale the interface (atm. only in config.xml)
- touch steering buttons are created only for single player races

I removed unused drawEnergyMeter function from Overworld GUI. The reason was that I use this function from race_gui.cpp for nitro button and this function in overworld breaks it. And still the proper drawEnergyMeter function is available in race_gui.cpp and can be moved to RaceGuiBase if it will be needed in Overworld in future.

I moved the font size computation to the top of constructor because I use it to check available space for minimap.
2016-12-17 23:28:22 +01:00
Benau
90a556fe9c Try to share shaders across different programs
Todo: non-instanced version
2016-12-17 15:59:40 +08:00
auria.mg
488af78fa3 Fix #2687, reset cameras properly 2016-12-16 21:03:05 -05:00
auria.mg
fc9a51b7f4 Reset cameras when resetting 3 strikes battle. Fixes #2687 2016-12-16 20:33:30 -05:00
auria.mg
5f0a65a07b Fix bug where an animated texture matrix could never be reset to identity. Fixes #2692 2016-12-16 20:21:09 -05:00
hiker
1e372d6e77 Added separate queue for storing network events (to reduce synchronisation);
replaced vector with std::list in preparation for making the RewindManager
threadsafe.
2016-12-17 10:32:21 +11:00
hiker
5cde8f785f Fix crash in normal race (RaceEventManager NULL). 2016-12-16 23:26:34 +11:00
Benau
79e5aadd4d Avoid using software skinning on empty joint objects 2016-12-16 10:04:35 +08:00
Benau
752d847b09 Add the remaining shaders for GL3 hardware skinning
Also use the same shader code for normal map shader
2016-12-15 15:55:14 +08:00
Benau
3d814d1036 Fix wrong case handling 2016-12-15 13:30:26 +08:00
Benau
035271d6ec Remove GL error about draw2DLine
Use GL32_draw2DRectangle, only works if it's a straight line.
2016-12-15 12:57:39 +08:00
Benau
2e2345289c Don't upload / bind skinning ubo if not supported 2016-12-15 12:17:39 +08:00
Benau
1f23e6e783 Remove code used to duplicate VAOs for animated meshes 2016-12-15 11:44:09 +08:00
Benau
6baed2b0dd Merge remote-tracking branch 'origin/master' into hardware_skinning 2016-12-15 10:01:12 +08:00
Benau
a696fd6dff Add transparent skinned mesh shader 2016-12-15 09:52:02 +08:00
hiker
77c14152c2 The server now uses the RewindManager to receive network events
and takes the kart input from this queue of events.
2016-12-15 08:12:04 +11:00
hiker
95ca3fcac1 Try to fix rare GUI crash, likely caused by pushing a screen in the
network thread while the gui is being drawn. Made the messages
causing this synchronous, i.e. executed by the main thread.
2016-12-15 08:10:04 +11:00
Benau
85bd8c3146 Add unlit and normal map skinned mesh shader
Also fix normal map with skinned mesh, now vertices and joints
will be recalculated for tangents mesh
2016-12-14 16:28:37 +08:00
hiker
177c8c8f63 Merge remote-tracking branch 'origin/simplify-world' into game_protocol 2016-12-13 17:17:25 +11:00
hiker
4ee6f6315f Made World::m_weather a singleton to further remove dependencies on World. 2016-12-13 17:14:29 +11:00
hiker
32f2196201 Removed unnecessary #include world.hpp. 2016-12-13 17:13:54 +11:00
hiker
ed7574ca85 Merge remote-tracking branch 'origin/master' into simplify-world 2016-12-13 09:19:24 +11:00
hiker
4d406490e1 Made ScriptingEngine a singleton and removed it from World, which reduces
more dependencies on world.
2016-12-13 09:18:59 +11:00
hiker
b12453e9ca Made Physics a singleton, removing the accessor functions from World.
Removes dependency on World for a few files.
2016-12-13 08:31:08 +11:00
hiker
cd149ab5d7 Moved m_track out of World into a static m_track in Track. Makes
world smaller and removes a few dependencies on World.
2016-12-13 07:53:33 +11:00
Benau
abe4ae2d6a Fix server only stk 2016-12-12 13:54:43 +08:00
Benau
c8e5238ce2 Merge remote-tracking branch 'origin/master' into hardware_skinning 2016-12-12 13:45:04 +08:00
Benau
269e440d0c Avoid translating artist debug mode only fps string 2016-12-12 13:43:01 +08:00
Benau
a420b09363 Disable all karts animation if UBO size not big enough 2016-12-12 13:24:34 +08:00
auria.mg
044e8c52e1 Fix tabs added in previous commit, used spaces instead... 2016-12-11 20:19:58 -05:00
auria.mg
ab7ded308a Make presentation of kart characteristics uniform and indepdendent of difficulty. Fixes #2684, fixes #2539 2016-12-11 20:16:44 -05:00
hiker
8785ddf148 Moved force-fog settings into track. 2016-12-12 08:05:07 +11:00
Benau
4327885f07 Add alpha test skinned mesh instanced shaders 2016-12-12 01:00:57 +08:00
Benau
e9b68a8a1f Use a non-hardcoded values for mat4 array (max 1024)
Also cull mesh that doesn't have enough space to be rendered
2016-12-11 15:50:53 +08:00
Benau
ceef7495d2 Enable culling for animated mesh
Use the first frame bounding box for it, don't update each frame
2016-12-11 11:01:02 +08:00
Benau
fcd1e2830e Use callback function to directly upload joints without copying 2016-12-10 16:16:40 +08:00
Benau
8ca0c54bdc Merge remote-tracking branch 'origin/master' into hardware_skinning 2016-12-10 10:09:30 +08:00
Benau
94f6d09bf5 Allow indirect and azdo shadow rendering for skinned mesh 2016-12-09 22:37:17 +08:00
Benau
f2422317ba Auto fallback to software skinning if not supported
Currently explicit attribute location, uniform buffer object and
opengl greater or equal 3.3 are required for hardware skinning

So even intel hd3000 in linux can do hardware skinning
2016-12-09 20:50:09 +08:00
Benau
76e070b709 Allow GL3 to have hardware skinning 2016-12-09 18:41:13 +08:00
Benau
b7e047b4c1 Avoid using else if in skinning vertex shader 2016-12-09 14:16:30 +08:00
hiker
22092e6459 Moved background/clear color from world to irr_driver. 2016-12-09 17:14:04 +11:00
hiker
b73d08d089 Removed unnecessary cast. 2016-12-09 16:39:59 +11:00
hiker
0a2ea4bd08 Removed unused functions. 2016-12-09 16:39:37 +11:00
hiker
a8d3b6b0df Fixed compiler warning. 2016-12-09 09:18:56 +11:00
hiker
04d1d4817a Removed KartUpdate protocol (which breakes online play). 2016-12-09 09:00:20 +11:00
hiker
4d065f67e6 Started to introduce GameProtocol (which will combine several
individual protocols.
2016-12-09 08:55:06 +11:00
Benau
21d9117b2d Fix matrix4 pointer in windows
Also allow minimum azdo rendering and avoid skinning empty joints
2016-12-08 16:12:54 +08:00
hiker
dbfaf2105b Merge remote-tracking branch 'origin/master' into nw 2016-12-08 13:36:36 +11:00
hiker
fed12f774c Fixed potential deadlock, made debug output more useful. 2016-12-08 09:46:44 +11:00
Benau
407ed319de Show debug info about total skinning joints being calculated 2016-12-07 16:26:22 +08:00
Benau
d21e5e0f76 Make skinning offset changeable by culling 2016-12-07 16:08:57 +08:00
Benau
fcebb5c2e6 Fix crash with normal map skinned mesh 2016-12-07 09:29:40 +08:00
Benau
a3905a1e19 Allow tangent mesh to be converted 2016-12-07 08:07:01 +08:00
hiker
32daf4ce29 Removed unused functions. 2016-12-07 09:34:33 +11:00
Deve
c013fcea61 Allow to log messages to file on android 2016-12-06 23:31:49 +01:00
Benau
57d9e83ed4 First version of hardware skinning
Todo: shadow, non-instanced shaders, culling, changeable offset...
2016-12-07 02:15:11 +08:00
hiker
95e627c004 Fixed pi compilation. 2016-12-07 00:28:36 +11:00
hiker
63fe4373a8 Removed unnecessary #ifdef. 2016-12-06 21:50:23 +11:00