diff options
Diffstat (limited to 'src/lua/embed/scripts/graphics.lua.h')
-rw-r--r-- | src/lua/embed/scripts/graphics.lua.h | 104 |
1 files changed, 82 insertions, 22 deletions
diff --git a/src/lua/embed/scripts/graphics.lua.h b/src/lua/embed/scripts/graphics.lua.h index 1dddbf5..0a66127 100644 --- a/src/lua/embed/scripts/graphics.lua.h +++ b/src/lua/embed/scripts/graphics.lua.h @@ -27,44 +27,104 @@ jg.SpriteMode = { ANIMATED = 3 } -local default_shader = nil -local default_shader_source = [[ -#VERTEX_SHADER - -Vertex vert(Vertex v) -{ - return v; +-- built in shaders +jg.Shaders = { + Font = nil, + Texture = nil, + Sprite = nil, + SpriteSheet = nil, + Default = nil } -#END_VERTEX_SHADER - -#FRAGMENT_SHADER - -Color frag(Color col, Texture tex, Vertex v) -{ - return col * texel(tex, v.uv); -} - -#END_FRAGMENT_SHADER -]] +local function compileBuiltInShaders() + jg.Shaders.Font = jg.newShader([[ + #VERTEX_SHADER + Vertex vert(Vertex v) + { + return v; + } + #END_VERTEX_SHADER + #FRAGMENT_SHADER + Color frag(Color col, Texture tex, Vertex v) + { + return Color(col.rgb, texel(tex, v.uv).a); + } + #END_FRAGMENT_SHADER + ]]) + jg.Shaders.Texture = jg.newShader([[ + #VERTEX_SHADER + Vertex vert(Vertex v) + { + return v; + } + #END_VERTEX_SHADER + #FRAGMENT_SHADER + Color frag(Color col, Texture tex, Vertex v) + { + return col * texel(tex, v.uv); + } + #END_FRAGMENT_SHADER + ]]) + jg.Shaders.Sprite = jg.newShader([[ + #VERTEX_SHADER + Vertex vert(Vertex v) + { + return v; + } + #END_VERTEX_SHADER + #FRAGMENT_SHADER + Color frag(Color col, Texture tex, Vertex v) + { + return col * texel(tex, v.uv); + } + #END_FRAGMENT_SHADER + ]]) + jg.Shaders.SpriteSheet = jg.newShader([[ + #VERTEX_SHADER + Vertex vert(Vertex v) + { + return v; + } + #END_VERTEX_SHADER + #FRAGMENT_SHADER + Color frag(Color col, Texture tex, Vertex v) + { + return col * texel(tex, v.uv); + } + #END_FRAGMENT_SHADER + ]]) + jg.Shaders.Default = jg.newShader([[ + #VERTEX_SHADER + Vertex vert(Vertex v) + { + return v; + } + #END_VERTEX_SHADER + #FRAGMENT_SHADER + Color frag(Color col, Texture tex, Vertex v) + { + return col * texel(tex, v.uv); + } + #END_FRAGMENT_SHADER + ]]) +end local _init = jg.init local initialized = false - jg.init = function(setting) if initialized then return initialized end initialized = _init(setting) if initialized then - default_shader = jg.newShader(default_shader_source) - jg.useShader(default_shader) + compileBuiltInShaders() + jg.useShader(jg.Shaders.Default) end return initialized end jg.unuseShader = function() - jg.useShader(default_shader) + jg.useShader(jg.Shaders.Default) end -- Reset all attributes to default value. |