Difference between revisions of "Shader"

From GiderosMobile
Line 22: Line 22:
 
| style="width: 50%; vertical-align:top;"|
 
| style="width: 50%; vertical-align:top;"|
 
=== Methods ===
 
=== Methods ===
[[Shader.new]] ''creates a new shader''<br/><!--GIDEROSMTD:Shader.new(vertex shader,fragment shader,flags,uniform descriptor,attribute descriptor) creates a new shader-->
 
 
[[Shader.getEngineVersion]] ''gets the shader engine version''<br/><!--GIDEROSMTD:Shader.getEngineVersion() gets the shader engine version-->
 
[[Shader.getEngineVersion]] ''gets the shader engine version''<br/><!--GIDEROSMTD:Shader.getEngineVersion() gets the shader engine version-->
 
[[Shader.getProperties]] ''gets the graphics engine properties''<br/><!--GIDEROSMTD:Shader.getProperties() gets the graphics engine properties-->
 
[[Shader.getProperties]] ''gets the graphics engine properties''<br/><!--GIDEROSMTD:Shader.getProperties() gets the graphics engine properties-->
 
[[Shader.getShaderLanguage]] ''gets the shader language''<br/><!--GIDEROSMTD:Shader.getShaderLanguage() gets the shader language-->
 
[[Shader.getShaderLanguage]] ''gets the shader language''<br/><!--GIDEROSMTD:Shader.getShaderLanguage() gets the shader language-->
 +
[[Shader.new]] ''creates a new shader''<br/><!--GIDEROSMTD:Shader.new(vertex shader,fragment shader,flags,uniform descriptor,attribute descriptor) creates a new shader-->
  
[[Shader:isValid]] ''check if this shader was compiled successfully''<br/><!--GIDEROSMTD:Shader:isValid() check if this shader was compiled successfully-->
+
[[Shader:isValid]] ''checks if this shader was compiled successfully''<br/><!--GIDEROSMTD:Shader:isValid() checks if this shader was compiled successfully-->
 
[[Shader:setConstant]] ''changes the value of a uniform''<br/><!--GIDEROSMTD:Shader:setConstant(uniform name,data type,mult,data) changes the value of a uniform-->
 
[[Shader:setConstant]] ''changes the value of a uniform''<br/><!--GIDEROSMTD:Shader:setConstant(uniform name,data type,mult,data) changes the value of a uniform-->
  
 
| style="width: 50%; vertical-align:top;"|
 
| style="width: 50%; vertical-align:top;"|
 
 
=== Events ===
 
=== Events ===
 
=== Constants ===
 
=== Constants ===

Revision as of 02:45, 4 November 2023

Supported platforms: Platform android.pngPlatform ios.pngPlatform mac.pngPlatform pc.pngPlatform html5.pngPlatform winrt.pngPlatform win32.png
Available since: Gideros 2015.06.30
Inherits from: Object

Description

Gideros internally uses five distinct shaders:

  • the ‘Basic’ shader handles shapes with a constant color
  • the ‘Color’ shader handles shapes with per-vertex colors (mostly used by Mesh sprite)
  • the ‘Texture’ shader handles textured shapes (Bitmaps)
  • the ‘TextureColor’ shader handles textured and per-vertex colored shapes
  • and the ‘Particle’ shader deals with Box2D particle systems

The shader API allows replacing the default shader used by Gideros with a custom one, on a sprite per sprite basis. You create a Shader object and assign it to one or several sprites. Writing Shaders

That said, since Gideros will use your shader as if it was the standard one, you will have to make sure that your custom shader is compatible with Gideros standard Shader, which essentially means that it takes the same input parameters.

The recommended way is to write your shader code in Lua, it will then be automatically translated to the relevant shader language for the platform you are using, eg GLSL, HLSL or MTL: Lua Shaders

Methods

Shader.getEngineVersion gets the shader engine version
Shader.getProperties gets the graphics engine properties
Shader.getShaderLanguage gets the shader language
Shader.new creates a new shader

Shader:isValid checks if this shader was compiled successfully
Shader:setConstant changes the value of a uniform

Events

Constants

Shader Constants