Commit graph

74 commits

Author SHA1 Message Date
Hein-Pieter van Braam
08f452d1a9 Fall back to GLES2 if GLES3 is not working
This adds a static is_viable() method to all rasterizers which has to be
called before initializing the rasterizer. This allows us to check what
rasterizer to use in OS::initialize together with the GL context
initialization.

This commit also adds a new project setting
"rendering/quality/driver/driver_fallback" which allows the creator of a
project to specify whether or not fallback to GLES2 is allowed. This
setting is ignored for the editor so the editor will always open even if
the project itself cannot run. This will hopefully reduce confusion for
users downloading projects from the internet.

We also no longer crash when GLES3 is not functioning on a platform.

This fixes #15324
2018-08-26 16:40:46 +02:00
Thomas Herzog
b4d3f541e7 add 3D textures 2018-07-30 12:20:27 +02:00
Hein-Pieter van Braam
0e29f7974b Reduce unnecessary COW on Vector by make writing explicit
This commit makes operator[] on Vector const and adds a write proxy to it.  From
now on writes to Vectors need to happen through the .write proxy. So for
instance:

Vector<int> vec;
vec.push_back(10);
std::cout << vec[0] << std::endl;
vec.write[0] = 20;

Failing to use the .write proxy will cause a compilation error.

In addition COWable datatypes can now embed a CowData pointer to their data.
This means that String, CharString, and VMap no longer use or derive from
Vector.

_ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug
builds. This is a lot faster for Vector in the editor and while running tests.
The reason why this difference used to exist is because force-inlined methods
used to give a bad debugging experience. After extensive testing with modern
compilers this is no longer the case.
2018-07-26 00:54:16 +02:00
Rémi Verschelde
237148e80f
Merge pull request #18368 from Gamblify/RasterizerEngineSync
sync rasterizers with engine
2018-07-25 20:33:37 +02:00
Wilson E. Alvarez
a22e746bc3 Removed unnecessary assignments 2018-07-24 09:51:03 +02:00
Max Hilbrunner
277793439a
Revert "Fix #19507 Not emitted particles affects performance" 2018-07-17 16:52:13 +02:00
Max Hilbrunner
4b626dc114
Merge pull request #19764 from malbach/godot_malbach
Fix #19507 Not emitted particles affects performance
2018-07-17 16:47:41 +02:00
Juan Linietsky
de910f8c26 Finally figured out how to implement AnimatedTexture properly. 2018-07-16 11:43:49 -03:00
Leon Krause
ae5ef9f0c5 Fix dummy renderer for CPU particles 2018-07-10 04:24:43 +02:00
Rémi Verschelde
8ce6444f59 Fix server build after 7fc23675 2018-07-03 13:53:00 +02:00
malbach
cef8d355d2 Fix #19507 Not emitted particles affects performance 2018-06-25 18:17:28 +02:00
Gustav Lund
35eb7f2d6a Rasterizers are now in sync with engine
The rasterisers (both GLES3 and GLES2) were calculating their own frame delta time
This fix lets the rasterizers get the frame delta through the draw call
That way any regulations to the frame step from the main script will not cause particle systems to process at a different step than the rest of the Engine.

Remove unused rasterizer storage variable

frame.prev_tick variable were not used anywhere and has been removed
2018-06-05 16:33:02 +02:00
Rémi Verschelde
0738ba6bc1
Merge pull request #18798 from jfaust/bugfix/scene-import-on-server-platform
Fix two issues preventing model import from working properly when platform=server
2018-05-15 10:28:17 +02:00
Rémi Verschelde
57d257c361
Merge pull request #18680 from Gamblify/DummyTextureLoader
Dummy texture importer
2018-05-15 10:27:07 +02:00
Josh Faust
5b639269a2 Fix scene import when platform=server
Adds code in RasterizerStorageDummy to store off mesh surface information,
rather than just throwing it away. Without this, all surface arrays were
just defaulting to empty when the packed scene was written.
2018-05-11 14:12:04 -07:00
Fabio Alessandrelli
0cad1417b6 Implement missing methods in dummy rasterizer 2018-05-10 16:07:01 +02:00
Gustav Lund
3dcf338ebb Dummy texture importer
Added a dummy importer for textures to use with the server platform.
Allows for running a project in headless mode without crashing when loading scenes containing textured objects
Also as a result decreases load time as no image files have to be loaded.
2018-05-09 08:13:02 +02:00
bruvzg
e3c2778d7e
Add missing return statements (iOS and server). 2018-02-25 01:11:03 +02:00
Juan Linietsky
7cd867c3fe 2D Skeletons WORK IN PROGRESS 2018-02-21 17:24:00 -03:00
K. S. Ernest (iFire) Lee
2e66730061 Create and return LightmapCapture. 2018-02-15 07:34:11 -08:00
K. S. Ernest (iFire) Lee
4e1923a931 Add dummy audio driver, fix dummy rasterizer 2018-02-15 07:34:11 -08:00
Fabio Alessandrelli
2de10aa467 Fixes to OS_Server and DummyRasterizer to match new signatures 2018-02-15 07:34:11 -08:00
Fabio Alessandrelli
72ef766dfa Add dummy Texture handling 2018-02-15 07:34:11 -08:00
Fabio Alessandrelli
c0dce6e480 Add dummy resterizer driver 2018-02-15 07:34:11 -08:00