summaryrefslogtreecommitdiff
path: root/drivers/gles3/rasterizer_storage_gles3.h
AgeCommit message (Collapse)Author
2022-05-12Basic 3D renderingclayjohn
2022-05-11[GL] Fix HTML5 builds.Fabio Alessandrelli
Safer guards for debug functions. GL_FRAMEBUFFER_INCOMPLETE_* functions seem to be OpenGL 4.
2022-05-03Add `get_video_adapter_api_version()` to RenderingServerHugo Locurcio
This method can be used to get the graphics API version currently in use (such as Vulkan). It can be used by projects for troubleshooting or statistical purposes.
2022-05-02Style: Partially apply clang-tidy's `cppcoreguidelines-pro-type-member-init`Rémi Verschelde
Didn't commit all the changes where it wants to initialize a struct with `{}`. Should be reviewed in a separate PR. Option `IgnoreArrays` enabled for now to be conservative, can be disabled to see if it proposes more useful changes. Also fixed manually a handful of other missing initializations / moved some from constructors.
2022-04-28Add MeshStorage to GLES3clayjohn
2022-04-26Overhaul GLES3: Add basis for 3D renderer, overhaul materials and texturesclayjohn
2022-04-17Moved particles into ParticlesStorageBastiaan Olij
2022-04-17Move light, reflection probe and lightmap into LightStorageBastiaan Olij
2022-04-17Merge canvas and decal into TextureStorage and add render targetBastiaan Olij
2022-04-02Move storage for Mesh, MeshInstance, MultiMesh and Skeleton into MeshStorageBastiaan Olij
2022-03-31Extract global variable, shader and material storageBastiaan Olij
2022-03-21Extract Decal and Decal atlas from Storage classBastiaan Olij
2022-03-18Rename several transform built-ins in shadersYuri Roubinsky
2022-03-17Replace DirectionalLight3D's `use_in_sky_only` with `sky_mode` enumHugo Locurcio
3 options are available: - Light and Sky (default) - Light Only (new) - Sky Only (equivalent to `use_in_sky_only = true`) Co-authored by: clayjohn <claynjohn@gmail.com>
2022-03-16Split dummy renderer classes into separate filesBastiaan Olij
Split canvas_texture_storage and texture_storage from render_storage class
2022-03-04Remove unused `shadow_color` property from Light3DHugo Locurcio
This shadow color property was no longer effective since the shaders were optimized to improve occupancy.
2022-03-04GLES3: Fix `-Wmaybe-uninitialized` warning for MipMaps::SizeRémi Verschelde
2022-02-25Implement distance fade properties in OmniLight3D and SpotLight3DHugo Locurcio
This can be used to fade lights and their shadows in the distance, similar to Decal nodes. This can bring significant performance improvements, especially for lights with shadows enabled and when using higher-than-default shadow quality settings. While lights can be smoothly faded out over distance, shadows are currently "all or nothing" since per-light shadow color is no longer customizable in the Vulkan renderer. This may result in noticeable pop-in when leaving the shadow cutoff distance, but depending on the scene, it may not always be that noticeable.
2022-02-15Add Particle Shader Userdatareduz
* Adds optional vec4 USERDATA1 .. USERDATA6 to particles, allowing to store custom data. * This data is allocated on demand, so shaders that do not use it do not cost more.
2022-01-29simplify formatting scripts, add a clang-tidy script, and run clang-tidyNathan Franke
2022-01-14Remove support for PVRTC texture encoding and decodingHugo Locurcio
On the only platform where PVRTC is supported (iOS), ETC2 generally supersedes PVRTC in every possible way. The increased memory usage is not really a problem thanks to modern iOS' devices processing power being higher than its Android counterparts.
2022-01-11New OpenGL batching canvas rendererclayjohn
2022-01-11WIP New GLES3 Shader Compilerreduz
Uses versions and specializations (more similar to RenderingDevice version)
2022-01-07Fix typos with codespellRémi Verschelde
Using codespell 2.1.0. Method: ``` $ cat > ../godot-word-whitelist.txt << EOF ang ans ba curvelinear dof doubleclick fave findn gird inout leapyear lod merchantibility nd numer ois ony que readded seeked statics
2022-01-04Merge pull request #55790 from Calinou/renderingserver-add-device-type-getterRémi Verschelde
Add `RenderingServer.get_video_adapter_type()` method
2022-01-04Merge pull request #56305 from Calinou/rename-lod-thresholdRémi Verschelde
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-12-29Rename Lod Threshold to Mesh Lod ThresholdHugo Locurcio
This makes it more obvious that the setting only affects mesh LOD, not manual (H)LOD achieved using visibility ranges.
2021-12-10Add `RenderingServer.get_video_adapter_type()` methodHugo Locurcio
This can be used to distinguish between integrated, dedicated, virtual and software-emulated GPUs. This in turn can be used to automatically adjust graphics settings, or warn users about features that may run slowly on their hardware.
2021-11-12Fix default_texture_param in shader pipeline to support uniform arraysYuri Roubinsky
2021-10-31Use OpenGL 3.3 core profile instead of compatibility profileClay John
- Rename OpenGL to GLES3 in the source code per community feedback. - The renderer is still exposed as "OpenGL 3" to the user. - Hide renderer selection dropdown until OpenGL support is more mature. - The renderer can still be changed in the Project Settings or using the `--rendering-driver opengl` command line argument. - Remove commented out exporter code. - Remove some OpenGL/DisplayServer-related debugging prints.
2020-02-13Remove obsolete GLES3 backendRémi Verschelde
Due to the port to Vulkan and complete redesign of the rendering backend, the `drivers/gles3` code is no longer usable in this state and is not planned to be ported to the new architecture. The GLES2 backend is kept (while still disabled and non-working) as it will eventually be ported to serve as the low-end renderer for Godot 4.0. Some GLES3 features might be selectively ported to the updated GLES2 backend if there's a need for them, and extensions we can use for that. So long, OpenGL driver bugs!
2020-02-11Custom material support seems complete.Juan Linietsky
2020-02-11basic 2D engine is more or less working with Vulkan, including editor.Juan Linietsky
Still a lot to do
2020-02-11A lot of progress with canvas rendering, still far from working.Juan Linietsky
2020-02-11Texture refactorJuan Linietsky
-Texture renamed to Texture2D -TextureLayered as base now inherits 2Darray, cubemap and cubemap array -Removed all references to flags in textures (they will go in the shader) -Texture3D gone for now (will come back later done properly) -Create base rasterizer for RenderDevice, RasterizerRD
2020-02-11Refactored RID/RID_Owner to always use O(1) allocation.Juan Linietsky
* Implements a growing chunked allocator * Removed redudant methods get and getptr, only getornull is supported now.
2020-01-06Add VisualServer methods to get the video adapter name and vendorHugo Locurcio
These methods can be used in scripts to retrieve the OpenGL `GL_RENDERER` and `GL_VENDOR` strings (respectively). This closes #28404.
2020-01-01Update copyright statements to 2020Rémi Verschelde
Happy new year to the wonderful Godot community! We're starting a new decade with a well-established, non-profit, free and open source game engine, and tons of further improvements in the pipeline from hundreds of contributors. Godot will keep getting better, and we're looking forward to all the games that the community will keep developing and releasing with it.
2019-11-19Fix issues with environment mappingclayjohn
2019-10-28Merge pull request #33104 from qarmin/fix_some_crashesRémi Verschelde
Fix some crashes and using null pointers
2019-10-28Fix some crashes and using null pointersRafał Mikrut
2019-10-25WebGL 2.0: Force decompressing non power-of-2 textures with repeat/mipmapRémi Verschelde
While OpenGL ES 3.0 and WebGL 2.0 both support non power-of-2 (NPOT) textures in their specification, the situation seems to be less clear about *compressed* NPOT textures using repeat or mipmap flags. At least Chrome on Linux doesn't seem to support this combination, and a variety of mobile hardware have similar limitations. As a workaround, we force decompressing such textures when running on WebGL 2.0, at the cost of loading time and memory usage. Fixes #33058.
2019-09-18Added skin support and simplified APIs to override bone position.Juan Linietsky
2019-06-26Some code changed with Clang-Tidyqarmin
2019-06-15Adding a new Camera Server implementation to Godot.BastiaanOlij
This is a new singleton where camera sources such as webcams or cameras on a mobile phone can register themselves with the Server. Other parts of Godot can interact with this to obtain images from the camera as textures. This work includes additions to the Visual Server to use this functionality to present the camera image in the background. This is specifically targetted at AR applications.
2019-05-28Fix some unincialised variablesqarmin
2019-05-13Implement ability to render viewports directly to screenclayjohn
2019-04-30Merge pull request #25670 from aqnuep/bake_mode_affect_gi_proveRémi Verschelde
Disable GI probe capturing lights with bake mode disabled
2019-04-23Disable GI probe capturing lights with bake mode disabledDaniel Rakos
The bake mode property of lights previously didn't affect GI probes. This change makes the GI probe ignore lights that have their bake mode set to disabled.