Commit Graph

16611 Commits

Author SHA1 Message Date
Deve
93fc20e275 Merge OpenGL ES renderer branch
It adds support for OpenGL ES renderer, which is needed for Android port and for running STK on other embedded devices such as Raspberry Pi.

Currently it works in two ways:
- Shader-based pipeline, which requires OpenGL ES 3.0 (Android >= 4.3)
- Fallback to irrlicht-based fixed pipeline that needs OpenGL ES 2.0. The fixed pipeline generally works, but it is affected by the same issues as our OpenGL 2.1 fixed pipeline renderer.

I tried to modify our OpenGL renderer as little as possible to avoid regressions. The only one major change is that we are now using the "#stk_include" directive in shaders instead of linking multiple shaders into one program.

Currently it works only on linux. The Android port needs some refactoring. In theory it should be possible to make it working on Windows, but we would need some OpenGL ES SDK, or maybe modified libglew.

At this stage it is playable with current mesa drivers. I tested it on intel graphics card and I didn't notice any issues.

On Android only the OpenGL ES 2.0 renderer with fixed pipeline  has been tested for now.
2016-07-14 20:54:30 +02:00
Deve
eea30b3197 Handle glDebugMessageCallback extension in better way for OpenGL ES 2016-07-14 20:34:43 +02:00
Deve
8f8acdcef3 Remove android related code part2.
Again, it will be handled in different branch and hopefully with curl and sounds support.
2016-07-14 19:50:34 +02:00
Benau
53374176ad First try to support colorization texture mask 2016-07-15 00:53:22 +08:00
auria.mg
1463cf9344 Fix uninitialized variables, fixes #2567 2016-07-12 19:39:44 -04:00
Deve
81b471be1f More proper solution for glDrawElementsBaseVertex function 2016-07-12 23:34:31 +02:00
Deve
32cd942760 Revert "Use function compatible with GLES 3.0 for drawing elements with offset."
This reverts commit 86a1d3a07a.
2016-07-12 22:50:59 +02:00
Deve
131dfb2fc0 Fixed compiler warning 2016-07-12 00:04:46 +02:00
Deve
5601309ae8 Fixed windows compilation 2016-07-12 00:04:37 +02:00
Deve
886382bb54 Merge remote-tracking branch 'origin/master' into gles 2016-07-11 23:43:10 +02:00
Deve
0f7976e5f8 Merge branch 'master' into gles 2016-07-11 23:23:02 +02:00
Deve
01dfd7bc05 More #ifdef's simplifications 2016-07-11 22:55:32 +02:00
Deve
b25a4e874f Remove android related code. It will be handled in different branch. 2016-07-11 22:54:59 +02:00
Benau
19acdad9b4 Replace Ubuntu font with a really free font 2016-07-11 15:52:16 +08:00
Benau
08f2437754 Merge branch 'support_loop_start_music' 2016-07-11 09:09:06 +08:00
Deve
3728adf1c5 The gles renderer is currently supported only on linux 2016-07-09 03:03:15 +02:00
Deve
f2d21d2353 Remove GLESv1 renderer because it's not used 2016-07-09 02:59:40 +02:00
Deve
17a0e4fbd8 Fixed an issue with grass shader.
It looks that EMT_TRANSPARENT_ALPHA_CHANNEL_REF wasn't handled at all in irrlicht OpenGL renderer.
2016-07-09 02:50:40 +02:00
Deve
f1effe3208 Revert "Fixed a grass being too dark in some places."
This reverts commit 2b734a9579.
2016-07-09 02:20:06 +02:00
Deve
a67a378c41 Merge pull request #2563 from LoadingPleaseWait/wiimote-string
Add missing space in string for wiimote manager
2016-07-08 22:43:23 +02:00
LoadingPleaseWait
bdd21142bb Add missing space in string for wiimote manager 2016-07-08 15:33:10 -05:00
Benau
b903baf226 Fix crash sound only working once if the timer counts backwards 2016-07-08 23:43:12 +08:00
Benau
98b9aef121 Add support for loop start of music 2016-07-08 13:54:37 +08:00
Deve
fa03185370 Remove extensions that are not used anyway 2016-07-08 01:24:02 +02:00
Deve
44f8290d77 Added gles renderer to the warning about incompatible irrlicht version 2016-07-08 01:02:25 +02:00
Deve
902e6163dc Disable heightmap simulation shader for now 2016-07-08 00:48:20 +02:00
Deve
86a1d3a07a Use function compatible with GLES 3.0 for drawing elements with offset. 2016-07-08 00:20:08 +02:00
hiker
b2a62c222c Merge branch 'camera-refactor' 2016-07-08 06:47:32 +10:00
hiker
c3e1a67f39 Merge branch 'master' of https://github.com/supertuxkart/stk-code 2016-07-08 06:24:19 +10:00
hiker
c43930dc46 Bugfix: characteristics could not be overwritten in kart.xml files.
First part of #2560.
2016-07-08 06:22:28 +10:00
Deve
2b734a9579 Fixed a grass being too dark in some places.
It seems to be an inconsistency in using sRGB rendering.
2016-07-07 01:52:22 +02:00
Deve
66e76be76d Don't use hardcoded path for irrlicht shaders 2016-07-06 06:37:22 +02:00
qwertychouskie
fbcd0ef495 Update TODO.md (#2531)
* Update TODO.md

* Update link
2016-07-05 19:09:22 -04:00
deve
20e72b2e9d Show better text in old driver popup 2016-07-05 12:18:43 +02:00
deve
e42673c4ac Read mesa version in better way.
It solves the problem with OpenGL ES, because there is one more word in the version string:
OpenGL version string: OpenGL ES 3.0 Mesa 11.2.2
2016-07-05 12:17:40 +02:00
deve
93dde11562 Use proper depth texture 2016-07-05 11:48:43 +02:00
Benau
b6153b6002 Thanks devee for this fix 2016-07-05 17:47:55 +08:00
Benau
04ccadd745 Fix non-linux build 2016-07-05 16:24:59 +08:00
Deve
04d3bfb9a1 Restore previous version of object pass shader.
This one doesn't have sense at all. We should make sure that uniforms are always initialized in c++ code.
2016-07-05 01:10:53 +02:00
Deve
0f318ab1ba Restore checking for framebuffer completion 2016-07-05 00:28:25 +02:00
Deve
4132177132 Fully integrate gles renderer with our irrlicht version. 2016-07-05 00:25:03 +02:00
Ezequiel Garcia
02361a37e8 Minor fixes for issues found while cross-building v2 (#2556)
* irrlicht: Fix harmless typo when setting CMAKE_CXX_FLAGS

The CMAKE_CXX_FLAGS set should be based on previously set
CMAKE_CXX_FLAGS (instead of C flags). This is currently
harmless because CMAKE_CXX_FLAGS is not previously set.

Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>

* irrlicht: Get rid of unprefixed cflags

Cross-building requires proper include paths. This commit
removes the unprefixed -I/usr/X11R6/include in irrlicht cflags,
replacing it with a proper CMake module.

Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>

* irrlicht: Fix boolean return type for jpeglib's callback

Building on certain toolchains can fail due to returning an integer
instead of TRUE. In any case, only {TRUE,FALSE} should be used
as 'boolean' jpeglib type. Fix this by returning TRUE.

  CImageLoaderJPG.cpp: In static member function 'static boolean
  irr::video::CImageLoaderJPG::fill_input_buffer(j_decompress_ptr)':
  CImageLoaderJPG.cpp:69:9: error: invalid conversion from 'int' to 'boolean'
  [-fpermissive]

Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
2016-07-03 21:07:53 -04:00
Benau
a0898962a9 Remove hard-coded value for colorization factor 2016-07-04 00:26:25 +08:00
Benau
ffbe06a98c Update with the same type from blender export script 2016-07-03 11:25:50 +08:00
Benau
6b60d866ba Make render info works with instanced rendering
The unordered_map in the past skipped some mesh buffer even its
render_info pointer is different, now the map takes it into account
2016-07-02 11:48:36 +08:00
Benau
ae790e9c62 Fix transparency of ghost karts 2016-07-02 08:59:38 +08:00
Benau
48d94097d6 Add min saturation setting to material class 2016-07-01 23:55:56 +08:00
Benau
f23ec7e7b8 Add more helper function to render info class 2016-07-01 00:39:25 +08:00
Benau
bfd66ebbac Put color change code in a better location 2016-06-30 16:08:59 +08:00
Benau
4c4b4782e0 Fix wrong type 2016-06-30 14:16:12 +08:00