summaryrefslogtreecommitdiff
path: root/drivers/gles3/rasterizer_canvas_gles3.h
AgeCommit message (Collapse)Author
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-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-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-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-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-14Remove redundant Variant-types initializationsMarkus Sauermann
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-13Improve behaviour of clip_children by clippingclayjohn
to parent alpha value, but still retaining parent color
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-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-10-01Remove usage of unitialized variablesRafał Mikrut
2022-08-23Add font LCD sub-pixel anti-aliasing support.bruvzg
2022-07-25Code quality: Fix header guards consistencyRémi Verschelde
Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
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-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 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-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
2022-04-17Merge canvas and decal into TextureStorage and add render targetBastiaan Olij
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-03-31Extract global variable, shader and material storageBastiaan Olij
2022-03-16Split dummy renderer classes into separate filesBastiaan Olij
Split canvas_texture_storage and texture_storage from render_storage class
2022-01-11New OpenGL batching canvas rendererclayjohn
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
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-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-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-28Fixed antialiased option for Polygon2D / Line2DPouleyKetchoupp
Polygon2D: The property wasn't used anymore after switching from canvas_item_add_polygon() to canvas_item_add_triangle_array() for drawing. Line2D: Added the same property as for Polygon2D & fixed smooth line drawing to use indices correctly. Fixes #26823
2019-11-11Improve glBufferSubData usage where safeclayjohn
2019-01-01Update copyright statements to 2019Rémi Verschelde
Happy new year to the wonderful Godot community!
2018-10-02Moving lens distortion shader into drivers and adding GLES2 supportBastiaan Olij
2018-09-12Make core/ includes absolute, remove subfolders from include pathRémi Verschelde
This allows more consistency in the manner we include core headers, where previously there would be a mix of absolute, relative and include path-dependent includes.
2018-05-15Fix a corner-case bug in _copy_texscreen in the gles3 rendererBojidar Marinov
Fixes #17698
2018-05-04Skeletal deform workingJuan Linietsky
2018-05-03Skeleton for 2D WIPJuan Linietsky
2018-02-212D Skeletons WORK IN PROGRESSJuan Linietsky
2018-01-05Add missing copyright headers and fix formattingRémi Verschelde
Using `misc/scripts/fix_headers.py` on all Godot files. Some missing header guards were added, and the header inclusion order was fixed in the Bullet module.
2018-01-01Update copyright statements to 2018Rémi Verschelde
Happy new year to the wonderful Godot community!
2017-08-27Use HTTPS URL for Godot's website in the headersRémi Verschelde
2017-08-11Some fixes for shaders and WebGL2Fabio Alessandrelli
Add padding to UBO data to be multiple of 16 bytes Add precision definition for samplers Replace texture2D (deprecated) with texture in shaders