summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2022-05-13Merge pull request #60894 from derammo/derammo_opengl3_windowsRémi Verschelde
2022-05-12Merge pull request #60643 from clayjohn/GLES3-3DRémi Verschelde
2022-05-12Basic 3D renderingclayjohn
2022-05-12Add a new HashMap implementationreduz
Adds a new, cleaned up, HashMap implementation. * Uses Robin Hood Hashing (https://en.wikipedia.org/wiki/Hash_table#Robin_Hood_hashing). * Keeps elements in a double linked list for simpler, ordered, iteration. * Allows keeping iterators for later use in removal (Unlike Map<>, it does not do much for performance vs keeping the key, but helps replace old code). * Uses a more modern C++ iterator API, deprecates the old one. * Supports custom allocator (in case there is a wish to use a paged one). This class aims to unify all the associative template usage and replace it by this one: * Map<> (whereas key order does not matter, which is 99% of cases) * HashMap<> * OrderedHashMap<> * OAHashMap<>
2022-05-11SceneShader compilingclayjohn
2022-05-11SkyShaders workingclayjohn
2022-05-11opengl3 driver now works on windows including multi windowderammo
fixed and simplified gl_manager_windows swap buffers now called for all windows fixed missing pixel format setting in additional windows this makes them work in OpenGL contexts changed verbose error printing to write once this error message happens very frequently while opengl3 is not finished removed dead code no longer needed after changes fixed comments that were misinformation window messages during window creation now handled these were previously discarded messages now tunnel the required context changed failure to create opengl3 window on windows to be more fatal marked a problem with pen code conditional compilation of vulkan and opengl3 on windows fixed windows debug builds now show messages on debug console also rendering driver selection box now shows only compiled drivers marked some problematic code thanks to akien-mga for patiently rewriting my style mistakes
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-10[macOS / iOS] Fix text-to-speech build with older macOS / iOS SDK.bruvzg
Add __has_include check for AVFAudio include. Add some explicit casts to avoid conflicts. Change all `include`s to `import`s for consistency.
2022-05-10Merge pull request #60596 from clayjohn/GLES3-LightStorageRémi Verschelde
Add LightStorage functions to GLES3 renderer
2022-05-04Merge pull request #60723 from reduz/refactor-module-initializationRémi Verschelde
2022-05-04Refactor module initializationreduz
* Changed to use the same stages as extensions. * Makes the initialization more coherent, helping solve problems due to lack of stages. * Makes it easier to port between module and extension. * removed the DRIVER initialization level (no longer needed).
2022-05-03Add OS::is_process_running function.mdavisprog
Adds the is_process_running function to the native OS class and exposes it to script. This is implemented on Windows and Unix platforms. A stub is provided for other platforms that do not support this function. Documentation is updated to reflect new API function.
2022-05-03Rename Basis get_axis to get_column, remove redundant methodsAaron Franke
2022-05-03Merge pull request #51102 from Calinou/renderingserver-add-api-version-getterRémi Verschelde
Add `get_video_adapter_api_version()` to RenderingServer
2022-05-03Merge pull request #60627 from aaronfranke/rename-elementsRémi Verschelde
Rename Transform2D and Basis `elements` to `columns` and `rows` respectively
2022-05-03Merge pull request #60714 from Calinou/typedef-remove-refRémi Verschelde
Remove `RES` and `REF` typedefs in favor of spelled out `Ref<>`
2022-05-03Merge pull request #60601 from touilleMan/gdextension_get_library_pathRémi Verschelde
Add GDNativeInterface::get_library_path to GDExtension
2022-05-03Remove `RES` and `REF` typedefs in favor of spelled out `Ref<>`Hugo Locurcio
These typedefs don't save much typing compared to the full `Ref<Resource>` and `Ref<RefCounted>`, yet they sometimes introduce confusion among new contributors.
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-05-01Add `hint_color` support for `vec3` in shadersYuri Roubinsky
2022-04-29Rename Basis "elements" to "rows"Aaron Franke
2022-04-29Rename Transform2D "elements" to "columns"Aaron Franke
2022-04-29Add GDNativeInterface::get_library_path to GDExtensionEmmanuel Leblond
2022-04-28Add LightStorage functions to GLES3 rendererclayjohn
2022-04-28Add MeshStorage to GLES3clayjohn
2022-04-28Fix typo after #60503Rémi Verschelde
2022-04-28Merge pull request #60503 from clayjohn/OPENGL-3DRémi Verschelde
2022-04-28Fix cppcheck const parametersMarkus Sauermann
Convert method signature parameters to const where it is possible # Conflicts: # drivers/gles3/rasterizer_canvas_gles3.cpp # drivers/gles3/rasterizer_canvas_gles3.h # editor/plugins/animation_state_machine_editor.cpp # editor/plugins/animation_state_machine_editor.h
2022-04-27Merge pull request #59979 from bruvzg/cpp_check2Rémi Verschelde
2022-04-26Fix "ortogonal" -> "orthogonal" typo in rasterizer codeHugo Locurcio
2022-04-26Overhaul GLES3: Add basis for 3D renderer, overhaul materials and texturesclayjohn
2022-04-25Merge pull request #60386 from bruvzg/label3dRémi Verschelde
2022-04-22Fixed ambiguous reference to "Shader" and "Material" classes in ↵Shnazzy
drivers/gles3/storage/material_storage.cpp
2022-04-22Implement Label3D node.bruvzg
Add "generate_mipmap" font import option. Add some missing features to the Sprite3D. Move BiDi override code from Control to TextServer. Add functions to access TextServer font cache textures. Add MSDF related flags and shader to the standard material. Change standard material cache to use HashMap instead of Vector.
2022-04-20Fix more issues found by cppcheck.bruvzg
2022-04-20Merge pull request #60175 from Geometror/visual-shader-vector4Yuri Rubinsky
2022-04-19Initialize OpenGL before rasterizers in GLES3clayjohn
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-12Add Vector4 to VisualShaderHendrik Brucker
2022-04-12Remove or make private `FileAccess` `close()` methods.bruvzg
2022-04-11Make FileAccess and DirAccess classes reference counted.bruvzg
2022-04-06Fix some issues found by cppcheck.bruvzg
2022-04-04Style: Apply clang-tidy to current code, add `readability-redundant-member-init`Rémi Verschelde
2022-04-04Zero initialize all pointer class and struct membersRémi Verschelde
This prevents the pitfall of UB when checking if they have been assigned something valid by comparing to nullptr.
2022-04-02Move storage for Mesh, MeshInstance, MultiMesh and Skeleton into MeshStorageBastiaan Olij
2022-04-01Add color pass flags to Forward Clustered rendererjfons
This commit removes a lot of enum values related to the color render pass in favor of a new flag-bases approach. This means instead of hard-coding all the possible option combinations into enums, we can write our logic by checking a bit-mask. The changes in rendering_device_vulkan.cpp add support for unused attachments. That means RenderingDeviceVulkan::framebuffer_create() can take null RIDs in the attachments vector, which will result in VK_ATTACHMENT_UNUSED entries in the render pass. This is used in this same PR to establish fixed locations for the color pass attachments (only color and separate specular so far, but TAA will add motion vectors as well). This way the attachment locations in the shader can stay the same regardless of which attachments are actually used. Right now all the combinations of flags are generated, but we will need to add a way to limit the amount of combinations in the future.