summaryrefslogtreecommitdiff
path: root/drivers/gles3/rasterizer_canvas_gles3.cpp
AgeCommit message (Collapse)Author
2023-04-24Check for instancing without relying on instance_count when drawing 2D meshesclayjohn
This ensures that Particles and MultiMeshes still draw when instance_count is 1 (cherry picked from commit 579ca03e885f294b2d430a3550693b43d58d4f64)
2023-03-14Fixes a canvas item set to clip children being drawn as black if no children ↵SlugFiller
are visible (cherry picked from commit f25508befb4f0358ba8a8aaa35cdee4d9c20637c)
2023-02-21Merge pull request #73478 from NewDefectus/masterRémi Verschelde
Use the original canvas to calculate light positioning
2023-02-21Use the original canvas to calculate light positioningAlon Ran
2023-02-20Fix bufSize parameter for glGetSyncivChibiDenDen
According to the docs: https://registry.khronos.org/OpenGL-Refpages/es3.0/html/glGetSynciv.xhtml Bufsize is in integers, not bytes. The current code overflows data unto other stack variables.
2023-02-17Avoid unecessary binding of occlusion polygon vertex arrayclayjohn
By binding this and unbinding it, the state was getting modified in other parts of the pipeline
2023-02-13Store blend mode between CanvasItems to preserve batchingclayjohn
2023-02-09Properly reset blend mode when resetting canvas in compatibility rendererclayjohn
2023-02-07Set instancing flags when using GPUParticles in OpenGL rendererclayjohn
2023-02-04Merge pull request #72695 from clayjohn/CanvasGroup-shadingYuri Sizov
Avoid shading CanvasGroup nodes twice
2023-02-03Avoid shading CanvasGroup nodes twiceclayjohn
2023-02-03Ignore instance color and instance custom_data when not used in the OpenGL ↵clayjohn
renderer
2023-02-02Fix texture rect transpose for OpenGLNinni Pipping
2023-01-30Avoid crash when CanvasTexture used with light decal atlasclayjohn
The decal atlas is used for Light2Ds, decals, and Light3Ds
2023-01-29Merge pull request #72291 from clayjohn/GL-item-capRémi Verschelde
Remove cap on number of items drawn in frame in 2D gl_compatibility renderer
2023-01-28Remove cap on number of items drawn in frame in 2D gl_compatibility renderclayjohn
Also clean up some names to make the overall organization more clear Also remove cap on items per batch
2023-01-27Automatically transform Skeleton2D calculations so pivots are not neededclayjohn
2023-01-26Fix LCD font AA on OpenGL renderer.bruvzg
2023-01-20Stop incrementing light_count once max number of lights are reached in 2D ↵clayjohn
canvas renderer
2023-01-18Remove SCREEN_TEXTURE, DEPTH_TEXTURE, and NORMAL_ROUGHNESS_TEXTUREclayjohn
in favour of texture hints
2023-01-14fix normal map not flipping in sprite2Djainl28patel
2023-01-05One Copyright Update to rule them allRémi Verschelde
As many open source projects have started doing it, we're removing the current year from the copyright notice, so that we don't need to bump it every year. It seems like only the first year of publication is technically relevant for copyright notices, and even that seems to be something that many companies stopped listing altogether (in a version controlled codebase, the commits are a much better source of date of publication than a hardcoded copyright statement). We also now list Godot Engine contributors first as we're collectively the current maintainers of the project, and we clarify that the "exclusive" copyright of the co-founders covers the timespan before opensourcing (their further contributions are included as part of Godot Engine contributors). Also fixed "cf." Frenchism - it's meant as "refer to / see".
2022-12-17Merge pull request #70132 from clayjohn/RT-updateRémi Verschelde
Implement render_target_was_used API so that Viewports can properly check if they have been used.
2022-12-16Transform sdf xfrom by particle emission transform when particles are in ↵clayjohn
global space
2022-12-16Implement render_target_was_used API so that Viewports can properly check if ↵clayjohn
they have been used. For the RD renderer, this does not work for Viewports used in scene shaders yet
2022-12-15Use instanced array buffer instead of UBO for canvas item batchingclayjohn
This simplifies the generated shader code which increases both performance and compile time on low end devices
2022-12-13Various fixes and documentation for CanvasGroupclayjohn
Properly apply custom materials with CanvasGroups in the GLES3 backend Properly blur backbuffer when using a partial rect in forward_plus and gl_compatibility renderers Properly set fit_margin when clear_margin is set Fix shader error during backbuffer clear in mobile renderer
2022-12-07Detect and report if 2D particles use the screen SDFclayjohn
This ensures that the SDF is updated even if not used in a canvas_item shader
2022-12-02Merge pull request #68870 from dsnopek/master-webxr-inputRémi Verschelde
Get WebXR fully working in Godot 4!
2022-12-01Get WebXR fully working in Godot 4!David Snopek
2022-11-29Add Skeletons and Blend Shapes to the OpenGL rendererclayjohn
This uses a similar multipass approach to blend shapes as Godot 3.x, the major difference here is that we need to convert the normals and tangents to octahedral for rendering. Skeletons work the same as the Vulkan renderer except the bones are stored in a texture as they were in 3.x.
2022-11-24Fix drawing of Mesh2Dclayjohn
The batch was being discarded if no instance buffer was present, but an instance buffer is only needed for MultiMesh and particles.
2022-11-14Add GPUParticles to the OpenGL3 renderer.clayjohn
This includes collision (2D SDF, Box, Sphere, Heightmap), attraction (Box, Sphere), and all sorting modes. This does not include 3D SDF collisions, trails, or manual emission.
2022-11-11Merge pull request #67374 from MrBlockers/fix-draw-primitiveRémi Verschelde
Fix draw_primitive ignoring texture argument
2022-11-04Fix pathological corner case in drawing tileset editorclayjohn
Interleaving draw_rect calls with and without a texture forces every rect to have its own draw call. In this case it meant that there is a draw call for every single tile in the atlas. This change makes it so the renderer can batch draw calls which reduced the draw call count by a factor of 512
2022-11-02Merge pull request #67639 from clayjohn/GLES3-2d-shadowsRémi Verschelde
Add 2D shadows and canvas SDF to OpenGL3 renderer
2022-11-01Add texture reading code to OpenGL3 renderer for web and mobileclayjohn
This allows using texture_2d_get on all platforms which is needed for the get_image function This commit also fixes some OpenGL warnings on the Web platform that came from attempting to map a buffer with zero length
2022-10-28Add 2D shadows and canvas SDF to OpenGL3 rendererclayjohn
This is an initial implementation based on the current RD implementation Performance will improve later
2022-10-27Merge pull request #67043 from clayjohn/clip_childrenClay John
Improve behaviour of clip_children by clipping to parent alpha value but still retaining parent color
2022-10-21Fix draw_primitive ignoring texture argumentMrBlockers
2022-10-15Merge pull request #67416 from clayjohn/GLES3-primitiveRémi Verschelde
Fix drawing of 2D primitives in OpenGL3 renderer
2022-10-14Fix drawing of 2D primitives in OpenGL3 rendererclayjohn
Previously the wrong vertices were used when assembling the second triangle of a quad
2022-10-14Fix error in Web builds that resulting in 2Dclayjohn
objects not drawing in the GLES3 backend. Issue came from not binding a light UBO when using the DISABLE_LIGHTING code path
2022-10-14Implement multiple clip_children modes for CanvasItemsclayjohn
2022-10-13Improve behaviour of clip_children by clippingclayjohn
to parent alpha value, but still retaining parent color
2022-10-13Merge pull request #67335 from clayjohn/GLES3-2d-lightsRémi Verschelde
Add 2D lights to OpenGL3 canvas renderer
2022-10-12Add 2D lights to OpenGL3 canvas rendererclayjohn
This is an initial implementation using the same single-pass approach as the RenderingDevice.
2022-10-07Allow clearing backbuffer after finishing CanvasGroupclayjohn
This avoids an issue where having multiple CanvasGroups overlap would create a weird artifact
2022-10-06Use a giant UBO to optimize performance in 2Dclayjohn
This removes the countless small UBO writes we had before and replaces them with a single large write per render pass. This results in much faster rendering on low-end devices but improves speed on all devices.
2022-09-15Fix/restore BackBufferCopyHendrik Brucker