summaryrefslogtreecommitdiff
path: root/drivers/gles3/rasterizer_canvas_gles3.cpp
AgeCommit message (Collapse)Author
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
2022-09-06Fix rendering when using WebGL2.clayjohn
Fixes include using proper depth buffer format in 3D (this had previously been fixed already but the changes were lost in a rebase), Remove unused lighting and shadowing code in 2D, and update 2D UBOs using glBufferSubData so that they remain the appropriate size.
2022-09-01Rename `uniform` to `parameter` across the engineYuri Rubinsky
2022-08-29[Web] Rename JavaScript platform to Web.Fabio Alessandrelli
Also rename export name from "HTML5" to "Web".
2022-08-23Add font LCD sub-pixel anti-aliasing support.bruvzg
2022-08-19Merge pull request #64167 from clayjohn/screen-texture-hintMax Hilbrunner
Add shader uniform hints for screen textures
2022-08-09Add shader uniform hints for screen textures so users can specify custom ↵clayjohn
filter and repeat modes. At this time, it works best in the Vulkan Renderers as they support using multiple samplers with the same texture. In GLES3 this feature really only allows you to use the screen texture without mipmaps if you want to save the cost of generating them.
2022-08-06Check also GLES3 in CIRafał Mikrut
2022-07-29fix 'Comparison result is always the same' warningsLinuxUserGD
2022-07-28Rename RenderingServer global shader uniform methods to be more explicitHugo Locurcio
The `global_shader_uniform` name is longer, but it makes it much easier to find the methods when searching in the class reference.
2022-07-28Merge pull request #57698 from ↵Rémi Verschelde
bluenote10/feature/rename_translated_to_translated_local
2022-07-23Implement Vector4, Vector4i, Projectionreduz
Implement built-in classes Vector4, Vector4i and Projection. * Two versions of Vector4 (float and integer). * A Projection class, which is a 4x4 matrix specialized in projection types. These types have been requested for a long time, but given they were very corner case they were not added before. Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity. **Q**: Why Projection and not Matrix4? **A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
2022-07-16rename translate(d) to translate(d)_local in Transform 2D/3DFabian Keller
2022-06-28Split dependency logicBastiaan Olij
Split FOG Split visibility notifier Final cleanup of storage classes
2022-06-14Implement MultiMesh in 3D and flesh out MultiMesh functionsclayjohn
2022-05-25Implement NinePatchRects in GLES3 rendererclayjohn
2022-05-25Implement 2D Meshes and MultiMeshes in GLES3 backendclayjohn
2022-05-24Add clipping, backbuffer, and CanvasGroups to 2D GLES3 rendererclayjohn
As well as significant consequent cleanup in the RenderTarget, Texture, and Canvas renderer code
2022-05-12Basic 3D renderingclayjohn
2022-04-29Rename Basis "elements" to "rows"Aaron Franke
2022-04-29Rename Transform2D "elements" to "columns"Aaron Franke
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-26Overhaul GLES3: Add basis for 3D renderer, overhaul materials and texturesclayjohn
2022-04-20Fix more issues found by cppcheck.bruvzg
2022-04-19Initialize OpenGL before rasterizers in GLES3clayjohn