summaryrefslogtreecommitdiffstats
path: root/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Stop incrementing light_count once max number of lights are reached in 2D ↵clayjohn2023-01-201-1/+1
| | | | canvas renderer
* Remove SCREEN_TEXTURE, DEPTH_TEXTURE, and NORMAL_ROUGHNESS_TEXTUREclayjohn2023-01-181-6/+7
| | | | in favour of texture hints
* fix normal map not flipping in sprite2Djainl28patel2023-01-141-0/+2
|
* One Copyright Update to rule them allRémi Verschelde2023-01-051-29/+29
| | | | | | | | | | | | | | | | | | | | 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".
* Avoid updating particles during 2D renderingclayjohn2022-12-221-1/+1
| | | | In 2D the particle uniform set isn't obtained until the render pass. So in 2D just avoid rendering if not updated yet.
* Implement render_target_was_used API so that Viewports can properly check if ↵clayjohn2022-12-161-0/+1
| | | | | | they have been used. For the RD renderer, this does not work for Viewports used in scene shaders yet
* Refactor `ShaderData` & fix the sorting of shader uniformsYuri Rubinsky2022-12-151-93/+0
|
* Detect and report if 2D particles use the screen SDFclayjohn2022-12-071-7/+10
| | | | This ensures that the SDF is updated even if not used in a canvas_item shader
* Code simplifications found by cppcheckMarkus Sauermann2022-11-211-7/+1
| | | | | | | They are based on: - Boolean arithmetic simplifications - setting variables that are not accessed - constant variables
* Fix drawing of 2D skeletons in the RD renderer.clayjohn2022-11-181-12/+0
| | | | | | Also clean up skeleton code in preparation for adding them to GLES3 Properly update Mesh2D AABBs when skeleton is updated
* Merge pull request #67374 from MrBlockers/fix-draw-primitiveRémi Verschelde2022-11-111-1/+1
|\ | | | | | | Fix draw_primitive ignoring texture argument
| * Fix draw_primitive ignoring texture argumentMrBlockers2022-10-211-1/+1
| |
* | Add 2D shadows and canvas SDF to OpenGL3 rendererclayjohn2022-10-281-1/+2
| | | | | | | | | | | | This is an initial implementation based on the current RD implementation Performance will improve later
* | Merge pull request #67043 from clayjohn/clip_childrenClay John2022-10-271-5/+42
|\ \ | | | | | | Improve behaviour of clip_children by clipping to parent alpha value but still retaining parent color
| * | Implement multiple clip_children modes for CanvasItemsclayjohn2022-10-141-4/+12
| | |
| * | Improve behaviour of clip_children by clippingclayjohn2022-10-131-4/+33
| |/ | | | | | | | | to parent alpha value, but still retaining parent color
* / Clean up Basis from Euler codeAaron Franke2022-10-211-1/+1
|/
* SCons: Re-enable treating `#warning` as error with `werror`Rémi Verschelde2022-10-101-4/+1
| | | | | | | | Replace all TODO uses of `#warning` by proper TODO comments, and will open matching bug reports to keep track of them. We don't have a great track record fixing TODOs, but I'd wager we're even worse for fixing these "TODO #warning" so we should prohibit this usage.
* Allow clearing backbuffer after finishing CanvasGroupclayjohn2022-10-071-0/+2
| | | | | This avoids an issue where having multiple CanvasGroups overlap would create a weird artifact
* Merge pull request #66683 from clayjohn/SRGB-canvasitemRémi Verschelde2022-10-051-1/+1
|\ | | | | | | Default CanvasItem materials to use sRGB space for uniform colors
| * Default CanvasItem materials to not convert uniform colors to linear space.clayjohn2022-09-301-1/+1
| | | | | | | | | | The 2D renderer in Godot is totally in sRGB space so it is appropriate to keep 2D uniform colors in sRGB space
* | Rename Projection `matrix` to `columns`Aaron Franke2022-10-041-3/+3
|/
* Clean up canvas light shader API.clayjohn2022-09-281-0/+2
| | | | | Expose LIGHT_ENERGY and LIGHT_IS_DIRECTIONAL. Add LIGHT_DIRECTION
* Fix/restore BackBufferCopyHendrik Brucker2022-09-151-4/+17
|
* Rename `uniform` to `parameter` across the engineYuri Rubinsky2022-09-011-2/+2
|
* Fix updating OccluderPolygon shapessakrel2022-08-291-2/+2
|
* Merge pull request #64367 from Mickeon/rename-var-to-strRémi Verschelde2022-08-261-1/+1
|\ | | | | Rename `str2var` to `str_to_var` and similar
| * Rename `str2var` to `str_to_var` and similarMicky2022-08-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Affects the Math class, a good chunk of the audio code, and a lot of other miscellaneous classes, too. - `var2str` -> `var_to_str` - `str2var` -> `str_to_var` - `bytes2var` -> `bytes_to_var` - `bytes2var_with_objects` -> `bytes_to_var_with_objects` - `var2bytes` -> `var_to_bytes` - `var2bytes_with_objects` -> `var_to_bytes_with_objects` - `linear2db` -> `linear_to_db` - `db2linear` -> `db_to_linear` - `deg2rad` -> `deg_to_rad` - `rad2deg` -> `rad_to_deg` - `dict2inst` -> `dict_to_inst` - `inst2dict` -> `inst_to_dict`
* | Add font LCD sub-pixel anti-aliasing support.bruvzg2022-08-231-11/+63
|/
* Merge pull request #64167 from clayjohn/screen-texture-hintMax Hilbrunner2022-08-191-8/+21
|\ | | | | Add shader uniform hints for screen textures
| * Add shader uniform hints for screen textures so users can specify custom ↵clayjohn2022-08-091-8/+21
| | | | | | | | | | | | | | | | 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.
* | Rename shader parameter uniform setter/getter methods for consistencyHugo Locurcio2022-08-041-1/+1
|/ | | | | | `shader_uniform` is now consistenly used across both per-shader and per-instance shader uniform methods. This makes methods easier to find in the class reference when looking for them.
* Changed storage structs to privateBastiaan Olij2022-08-011-11/+11
|
* Rename RenderingServer global shader uniform methods to be more explicitHugo Locurcio2022-07-281-2/+2
| | | | | The `global_shader_uniform` name is longer, but it makes it much easier to find the methods when searching in the class reference.
* Merge pull request #57698 from ↵Rémi Verschelde2022-07-281-1/+1
|\ | | | | | | bluenote10/feature/rename_translated_to_translated_local
| * rename translate(d) to translate(d)_local in Transform 2D/3DFabian Keller2022-07-161-1/+1
| |
* | Merge pull request #62972 from Chaosus/shader_groupsRémi Verschelde2022-07-261-0/+15
|\ \ | | | | | | Implement shader uniform groups/subgroups
| * | Implement shader uniform groups/subgroupsYuri Rubinsky2022-07-261-0/+15
| | |
* | | Merge pull request #63236 from halgriffiths/fix-texture-rect-transposeRémi Verschelde2022-07-261-1/+1
|\ \ \ | |/ / |/| | send FLAGS_TRANSPOSE_RECT to Vulkan
| * | send FLAGS_TRANSPOSE_RECT to Vulkanhalgriffiths2022-07-221-1/+1
| | |
* | | Implement Vector4, Vector4i, Projectionreduz2022-07-231-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Clean up Shader Preprocessorreduz2022-07-221-0/+4
|/ / | | | | | | | | | | | | | | | | * Moved preprocessor to Shader and ShaderInclude * Clean up RenderingServer side * Preprocessor is separate from parser now, but it emits tokens with include location hints. * Improved ShaderEditor validation code * Added include file code completion * Added notification for all files affected by a broken include.
* | Merge pull request #63057 from sakrel/vulkan-fix-2d-shadowsRémi Verschelde2022-07-181-2/+3
|\ \
| * | Fix DirectionalLight2D and PointLight2D shadows not rendering correctlysakrel2022-07-151-2/+3
| |/
* / added usage_defines for SPECULAR_SHININESSDavid R2022-07-181-0/+1
|/ | | | added usage defines for opengl3 renderer
* Split dependency logicBastiaan Olij2022-06-281-2/+1
| | | | | | Split FOG Split visibility notifier Final cleanup of storage classes
* Replace most uses of Map by HashMapreduz2022-05-161-3/+3
| | | | | | | | | | | | * Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
* Merge pull request #60627 from aaronfranke/rename-elementsRémi Verschelde2022-05-031-41/+41
|\ | | | | Rename Transform2D and Basis `elements` to `columns` and `rows` respectively
| * Rename Basis "elements" to "rows"Aaron Franke2022-04-291-9/+9
| |
| * Rename Transform2D "elements" to "columns"Aaron Franke2022-04-291-32/+32
| |