summaryrefslogtreecommitdiff
path: root/servers/rendering/shader_language.cpp
AgeCommit message (Collapse)Author
2022-07-27Fix incorrect conversion of default value for mat4 uniform in shadersYuri Rubinsky
2022-07-26Implement shader uniform groups/subgroupsYuri Rubinsky
2022-07-25Merge pull request #63424 from Chaosus/shader_preprocessor_inc_fixRémi Verschelde
2022-07-25Fix errors when using built-ins in shaderincYuri Rubinsky
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-22Clean up Shader Preprocessorreduz
* 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.
2022-07-22Adding shader preprocessor supportYuri Roubinsky
Co-authored-by: TheOrangeDay <6472143+TheOrangeDay@users.noreply.github.com>
2022-06-14Remove GLES2 shader constraints from GLES3clayjohn
2022-06-10Prevent defining float constant without number after exponent in shadersYuri Rubinsky
2022-05-31Refactor shader hintsYuri Rubinsky
2022-05-24Merge pull request #60803 from Chaosus/shader_hint_renameRémi Verschelde
Rename `hint_albedo`, `hint_white/black` in shaders
2022-05-23Merge pull request #61226 from Chaosus/shader_fix_keyword_completionRémi Verschelde
2022-05-20Add a new HashSet templatereduz
* Intended to replace RBSet in most cases. * Optimized for iteration speed
2022-05-20Fix incorrect keyword completion after period in shader editorYuri Rubinsky
2022-05-19Use range iterators for RBSet in most casesAaron Record
2022-05-16Replace most uses of Map by HashMapreduz
* 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!
2022-05-09Rename `hint_albedo`, `hint_white/black` in shadersYuri Roubinsky
2022-05-04Merge pull request #60568 from Chaosus/shader_keyword_completionsRémi Verschelde
Add keyword completion to shader editor
2022-05-01Add `hint_color` support for `vec3` in shadersYuri Roubinsky
2022-04-29Add keyword completion to shader editorYuri Roubinsky
2022-04-26Prevent shader crash when using precision on boolean typesYuri Roubinsky
2022-04-20Merge pull request #60175 from Geometror/visual-shader-vector4Yuri Rubinsky
2022-04-12Add Vector4 to VisualShaderHendrik Brucker
2022-04-12Merge pull request #59825 from Chaosus/shader_fixRémi Verschelde
Fix incorrect parsing array's `length()` at return statement in shader
2022-04-06Fix some issues found by cppcheck.bruvzg
2022-04-03Fix incorrect parsing array's `length()` at return statement in shaderYuri Roubinsky
2022-04-01Fix shader crashing when attempting to access `length()` at global spaceYuri Roubinsky
2022-03-27Add GDExtension support to Scriptreduz
* Ability to create script languages from GDExtension * Some additions to gdnative_extension.h to make this happen * Moved the GDExtension binder to core This now allows creating scripting languages from GDExtension, with the same ease as if it was a module. It replaces the old PluginScript from Godot 3.x. Warning: GodotCPP will need to be updated to support this (it may be a bit of work as ScriptInstance needs to be created over there again).
2022-03-16Fix device limit exceeding for uniform buffernotSanil
2022-02-16Style: Cleanup single-line blocks, semicolons, dead codeRémi Verschelde
Remove currently unused implementation of TextureBasisU, could be re-added later on if needed and ported.
2022-02-09Fixed shader error message for instance qualifierZuBsPaCe
Moved argument from RTR to vformat. Message is now similar to uniform-arrays-error further down.
2022-02-06Fix unknown identifier error in for loopYuri Roubinsky
2022-02-05Few more fixes to for loop in shadersYuri Roubinsky
2022-02-04Cleanup and move char functions to the `char_utils.h` header.bruvzg
2022-02-03Allow multiple declarations in for loop in a shaderYuri Roubinsky
2022-02-02Vectors: Use clear() and has().Anilforextra
Use clear() instead of resize(0). Use has() instead of "find(p_val) != -1".
2022-01-25Prevent checking of global uniform type outside the editorYuri Roubinsky
2022-01-24Remove incorrect items from completion of main functions in shaderYuri Roubinsky
2022-01-23Fix incorrect unused local var warning in shader blocksYuri Roubinsky
2022-01-19Add translation links to shader errorsYuri Roubinsky
2022-01-18Unify variable and array declarations in shadersYuri Roubinsky
2022-01-15Refactor size expression parsing for arrays in the shadersYuri Roubinsky
2022-01-13Fix completion for global constants in shadersYuri Roubinsky
2022-01-13Add completion for shader_typeYuri Roubinsky
2022-01-13Prevent redefinition of main functions in shaderYuri Roubinsky
2022-01-08Enhances a shader uniform limit warningYuri Roubinsky
2022-01-04Merge pull request #56477 from Chaosus/fix_device_crashYuri Roubinsky
2022-01-04Add a check for device in shader lang to prevent startup editor crashYuri Roubinsky
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2022-01-03Add a shader warning when the uniform buffer limit is exceededYuri Roubinsky