aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libjin-lua/je_lua_embed.h2
-rw-r--r--src/libjin-lua/modules/time/je_lua_time.cpp2
-rw-r--r--src/libjin-lua/scripts/app.lua5
-rw-r--r--src/libjin-lua/scripts/app.lua.h238
-rw-r--r--src/libjin-lua/scripts/time/time.lua25
-rw-r--r--src/libjin-lua/scripts/time/time.lua.h23
-rw-r--r--src/libjin/graphics/fonts/je_texture_font.cpp3
-rw-r--r--src/libjin/graphics/fonts/je_ttf.cpp3
-rw-r--r--src/libjin/graphics/je_gl.cpp1
-rw-r--r--src/libjin/graphics/je_graphic.cpp22
-rw-r--r--src/libjin/graphics/je_mesh.cpp7
-rw-r--r--src/libjin/graphics/je_shapes.cpp54
-rw-r--r--src/libjin/graphics/shaders/je_jsl_compiler.cpp10
-rw-r--r--src/libjin/graphics/shaders/je_jsl_compiler.h1
-rw-r--r--src/libjin/graphics/shaders/je_shader.cpp24
-rw-r--r--src/libjin/graphics/shaders/je_shader.h15
-rw-r--r--src/libjin/time/je_timer.cpp2
-rw-r--r--src/libjin/time/je_timer.h19
18 files changed, 255 insertions, 201 deletions
diff --git a/src/libjin-lua/je_lua_embed.h b/src/libjin-lua/je_lua_embed.h
index cf4eec1..f99ff35 100644
--- a/src/libjin-lua/je_lua_embed.h
+++ b/src/libjin-lua/je_lua_embed.h
@@ -15,6 +15,7 @@ namespace JinEngine
#include "scripts/keyboard/keyboard.lua.h"
#include "scripts/mouse/mouse.lua.h"
#include "scripts/path/path.lua.h"
+ #include "scripts/time/time.lua.h"
#include "scripts/app.lua.h"
// Embed structure.
@@ -32,6 +33,7 @@ namespace JinEngine
{ "mouse.lua", mouse_lua },
{ "graphics.lua", graphics_lua },
{ "path.lua", path_lua },
+ { "time.lua", time_lua },
{ 0, 0 }
};
diff --git a/src/libjin-lua/modules/time/je_lua_time.cpp b/src/libjin-lua/modules/time/je_lua_time.cpp
index cd49978..764cf9d 100644
--- a/src/libjin-lua/modules/time/je_lua_time.cpp
+++ b/src/libjin-lua/modules/time/je_lua_time.cpp
@@ -48,6 +48,8 @@ namespace JinEngine
{
context.previous = context.current;
context.current = getSecond();
+ // Update jin time counter.
+ Time::step();
return 0;
}
diff --git a/src/libjin-lua/scripts/app.lua b/src/libjin-lua/scripts/app.lua
index a55b598..1e55857 100644
--- a/src/libjin-lua/scripts/app.lua
+++ b/src/libjin-lua/scripts/app.lua
@@ -29,9 +29,6 @@ local function call(func, ...)
end
end
-local step = jin.time.step
-jin.time.step = nil
-
function jin.core.run()
jin.graphics.reset()
call(jin.core.onLoad)
@@ -45,7 +42,7 @@ function jin.core.run()
end
call(jin.core.onEvent, e)
end
- step()
+ jin.time.step()
dt = jin.time.getDelta()
call(jin.core.onUpdate, dt)
jin.graphics.clear()
diff --git a/src/libjin-lua/scripts/app.lua.h b/src/libjin-lua/scripts/app.lua.h
index 3e2a7bb..34da98b 100644
--- a/src/libjin-lua/scripts/app.lua.h
+++ b/src/libjin-lua/scripts/app.lua.h
@@ -54,67 +54,89 @@ static char app_lua[] = {
32,99,97,108,108,40,102,117,110,99,44,32,46,46,46,41,13,10,32,32,
32,32,105,102,32,102,117,110,99,32,116,104,101,110,32,13,10,32,32,32,
32,32,32,32,32,114,101,116,117,114,110,32,102,117,110,99,40,46,46,46,
-41,13,10,32,32,32,32,101,110,100,13,10,101,110,100,13,10,13,10,108,
-111,99,97,108,32,115,116,101,112,32,61,32,106,105,110,46,116,105,109,101,
-46,115,116,101,112,13,10,106,105,110,46,116,105,109,101,46,115,116,101,112,
-32,61,32,110,105,108,13,10,13,10,102,117,110,99,116,105,111,110,32,106,
-105,110,46,99,111,114,101,46,114,117,110,40,41,13,10,32,32,32,32,106,
+41,13,10,32,32,32,32,101,110,100,13,10,101,110,100,13,10,13,10,102,
+117,110,99,116,105,111,110,32,106,105,110,46,99,111,114,101,46,114,117,110,
+40,41,13,10,32,32,32,32,106,105,110,46,103,114,97,112,104,105,99,115,
+46,114,101,115,101,116,40,41,13,10,32,32,32,32,99,97,108,108,40,106,
+105,110,46,99,111,114,101,46,111,110,76,111,97,100,41,13,10,32,32,32,
+32,108,111,99,97,108,32,100,116,32,61,32,48,13,10,32,32,32,32,119,
+104,105,108,101,32,106,105,110,46,99,111,114,101,46,114,117,110,110,105,110,
+103,40,41,32,100,111,13,10,32,32,32,32,32,32,32,32,102,111,114,32,
+95,44,32,101,32,105,110,32,112,97,105,114,115,40,106,105,110,46,101,118,
+101,110,116,46,112,111,108,108,40,41,41,32,100,111,32,13,10,32,32,32,
+32,32,32,32,32,32,32,32,32,105,102,32,101,46,116,121,112,101,32,61,
+61,32,34,75,101,121,68,111,119,110,34,32,116,104,101,110,32,13,10,32,
+32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,106,105,110,46,107,
+101,121,98,111,97,114,100,46,115,101,116,40,101,46,107,101,121,44,32,116,
+114,117,101,41,32,13,10,32,32,32,32,32,32,32,32,32,32,32,32,101,
+108,115,101,105,102,32,101,46,116,121,112,101,32,61,61,32,34,75,101,121,
+85,112,34,32,116,104,101,110,32,13,10,32,32,32,32,32,32,32,32,32,
+32,32,32,32,32,32,32,106,105,110,46,107,101,121,98,111,97,114,100,46,
+115,101,116,40,101,46,107,101,121,44,32,102,97,108,115,101,41,13,10,32,
+32,32,32,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,
+32,32,32,32,32,32,32,32,99,97,108,108,40,106,105,110,46,99,111,114,
+101,46,111,110,69,118,101,110,116,44,32,101,41,13,10,32,32,32,32,32,
+32,32,32,101,110,100,13,10,32,32,32,32,32,32,32,32,106,105,110,46,
+116,105,109,101,46,115,116,101,112,40,41,13,10,32,32,32,32,32,32,32,
+32,100,116,32,61,32,106,105,110,46,116,105,109,101,46,103,101,116,68,101,
+108,116,97,40,41,13,10,32,32,32,32,32,32,32,32,99,97,108,108,40,
+106,105,110,46,99,111,114,101,46,111,110,85,112,100,97,116,101,44,32,100,
+116,41,13,10,32,32,32,32,32,32,32,32,106,105,110,46,103,114,97,112,
+104,105,99,115,46,99,108,101,97,114,40,41,32,32,32,32,32,32,32,32,
+13,10,32,32,32,32,32,32,32,32,99,97,108,108,40,106,105,110,46,99,
+111,114,101,46,111,110,68,114,97,119,41,13,10,32,32,32,32,32,32,32,
+32,106,105,110,46,103,114,97,112,104,105,99,115,46,112,114,101,115,101,110,
+116,40,41,13,10,32,32,32,32,32,32,32,32,106,105,110,46,116,105,109,
+101,46,115,108,101,101,112,40,48,46,48,48,49,41,13,10,32,32,32,32,
+101,110,100,13,10,101,110,100,13,10,13,10,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,13,10,45,45,32,66,111,111,116,32,103,97,109,101,13,
+10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,13,10,45,45,
+32,68,105,115,112,108,97,121,32,101,114,114,111,114,32,109,101,115,115,97,
+103,101,46,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,
+111,110,69,114,114,111,114,40,109,115,103,41,32,13,10,32,32,32,32,106,
+105,110,46,97,117,100,105,111,46,100,101,115,116,114,111,121,40,41,13,10,
+32,32,32,32,106,105,110,46,103,114,97,112,104,105,99,115,46,115,104,111,
+119,87,105,110,100,111,119,40,41,13,10,32,32,32,32,108,111,99,97,108,
+32,101,114,114,32,61,32,34,69,114,114,111,114,58,92,110,34,32,46,46,
+32,109,115,103,32,46,46,32,34,92,110,34,32,46,46,32,100,101,98,117,
+103,46,116,114,97,99,101,98,97,99,107,40,41,13,10,32,32,32,32,106,
105,110,46,103,114,97,112,104,105,99,115,46,114,101,115,101,116,40,41,13,
-10,32,32,32,32,99,97,108,108,40,106,105,110,46,99,111,114,101,46,111,
-110,76,111,97,100,41,13,10,32,32,32,32,108,111,99,97,108,32,100,116,
-32,61,32,48,13,10,32,32,32,32,119,104,105,108,101,32,106,105,110,46,
-99,111,114,101,46,114,117,110,110,105,110,103,40,41,32,100,111,13,10,32,
-32,32,32,32,32,32,32,102,111,114,32,95,44,32,101,32,105,110,32,112,
-97,105,114,115,40,106,105,110,46,101,118,101,110,116,46,112,111,108,108,40,
-41,41,32,100,111,32,13,10,32,32,32,32,32,32,32,32,32,32,32,32,
-105,102,32,101,46,116,121,112,101,32,61,61,32,34,75,101,121,68,111,119,
-110,34,32,116,104,101,110,32,13,10,32,32,32,32,32,32,32,32,32,32,
-32,32,32,32,32,32,106,105,110,46,107,101,121,98,111,97,114,100,46,115,
-101,116,40,101,46,107,101,121,44,32,116,114,117,101,41,32,13,10,32,32,
-32,32,32,32,32,32,32,32,32,32,101,108,115,101,105,102,32,101,46,116,
-121,112,101,32,61,61,32,34,75,101,121,85,112,34,32,116,104,101,110,32,
-13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,106,105,
-110,46,107,101,121,98,111,97,114,100,46,115,101,116,40,101,46,107,101,121,
-44,32,102,97,108,115,101,41,13,10,32,32,32,32,32,32,32,32,32,32,
-32,32,101,110,100,13,10,32,32,32,32,32,32,32,32,32,32,32,32,99,
-97,108,108,40,106,105,110,46,99,111,114,101,46,111,110,69,118,101,110,116,
-44,32,101,41,13,10,32,32,32,32,32,32,32,32,101,110,100,13,10,32,
-32,32,32,32,32,32,32,115,116,101,112,40,41,13,10,32,32,32,32,32,
-32,32,32,100,116,32,61,32,106,105,110,46,116,105,109,101,46,103,101,116,
-68,101,108,116,97,40,41,13,10,32,32,32,32,32,32,32,32,99,97,108,
-108,40,106,105,110,46,99,111,114,101,46,111,110,85,112,100,97,116,101,44,
-32,100,116,41,13,10,32,32,32,32,32,32,32,32,106,105,110,46,103,114,
-97,112,104,105,99,115,46,99,108,101,97,114,40,41,32,32,32,32,32,32,
-32,32,13,10,32,32,32,32,32,32,32,32,99,97,108,108,40,106,105,110,
-46,99,111,114,101,46,111,110,68,114,97,119,41,13,10,32,32,32,32,32,
-32,32,32,106,105,110,46,103,114,97,112,104,105,99,115,46,112,114,101,115,
-101,110,116,40,41,13,10,32,32,32,32,32,32,32,32,106,105,110,46,116,
+10,32,32,32,32,106,105,110,46,103,114,97,112,104,105,99,115,46,115,101,
+116,67,108,101,97,114,67,111,108,111,114,40,49,48,48,44,32,49,48,48,
+44,32,49,48,48,44,32,50,53,53,41,13,10,32,32,32,32,106,105,110,
+46,103,114,97,112,104,105,99,115,46,99,108,101,97,114,40,41,13,10,32,
+32,32,32,106,105,110,46,103,114,97,112,104,105,99,115,46,112,114,105,110,
+116,40,101,114,114,44,32,53,44,32,53,41,13,10,32,32,32,32,106,105,
+110,46,103,114,97,112,104,105,99,115,46,112,114,101,115,101,110,116,40,41,
+13,10,32,32,32,32,119,104,105,108,101,32,106,105,110,46,99,111,114,101,
+46,114,117,110,110,105,110,103,40,41,32,100,111,32,13,10,32,32,32,32,
+32,32,32,32,102,111,114,32,95,44,32,101,32,105,110,32,112,97,105,114,
+115,40,106,105,110,46,101,118,101,110,116,46,112,111,108,108,40,41,41,32,
+100,111,32,13,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,
+101,46,116,121,112,101,32,61,61,32,34,81,117,105,116,34,32,116,104,101,
+110,32,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
+106,105,110,46,99,111,114,101,46,115,116,111,112,40,41,13,10,32,32,32,
+32,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,32,32,
+32,32,101,110,100,13,10,32,32,32,32,32,32,32,32,106,105,110,46,116,
105,109,101,46,115,108,101,101,112,40,48,46,48,48,49,41,13,10,32,32,
-32,32,101,110,100,13,10,101,110,100,13,10,13,10,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,13,10,45,45,32,66,111,111,116,32,103,97,109,
-101,13,10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,13,10,
-45,45,32,68,105,115,112,108,97,121,32,101,114,114,111,114,32,109,101,115,
-115,97,103,101,46,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,
-110,32,111,110,69,114,114,111,114,40,109,115,103,41,32,13,10,32,32,32,
-32,106,105,110,46,97,117,100,105,111,46,100,101,115,116,114,111,121,40,41,
-13,10,32,32,32,32,106,105,110,46,103,114,97,112,104,105,99,115,46,115,
-104,111,119,87,105,110,100,111,119,40,41,13,10,32,32,32,32,108,111,99,
-97,108,32,101,114,114,32,61,32,34,69,114,114,111,114,58,92,110,34,32,
-46,46,32,109,115,103,32,46,46,32,34,92,110,34,32,46,46,32,100,101,
-98,117,103,46,116,114,97,99,101,98,97,99,107,40,41,13,10,32,32,32,
-32,106,105,110,46,103,114,97,112,104,105,99,115,46,114,101,115,101,116,40,
-41,13,10,32,32,32,32,106,105,110,46,103,114,97,112,104,105,99,115,46,
-115,101,116,67,108,101,97,114,67,111,108,111,114,40,49,48,48,44,32,49,
-48,48,44,32,49,48,48,44,32,50,53,53,41,13,10,32,32,32,32,106,
-105,110,46,103,114,97,112,104,105,99,115,46,99,108,101,97,114,40,41,13,
-10,32,32,32,32,106,105,110,46,103,114,97,112,104,105,99,115,46,112,114,
-105,110,116,40,101,114,114,44,32,53,44,32,53,41,13,10,32,32,32,32,
+32,32,101,110,100,13,10,101,110,100,13,10,13,10,45,45,32,78,111,32,
+103,97,109,101,32,115,99,114,101,101,110,46,13,10,108,111,99,97,108,32,
+102,117,110,99,116,105,111,110,32,110,111,71,97,109,101,40,41,13,10,32,
+32,32,32,106,105,110,46,103,114,97,112,104,105,99,115,46,115,104,111,119,
+87,105,110,100,111,119,40,41,13,10,32,32,32,32,106,105,110,46,103,114,
+97,112,104,105,99,115,46,114,101,115,101,116,40,41,13,10,32,32,32,32,
+106,105,110,46,103,114,97,112,104,105,99,115,46,115,101,116,67,108,101,97,
+114,67,111,108,111,114,40,49,48,48,44,32,49,48,48,44,32,49,48,48,
+44,32,50,53,53,41,13,10,32,32,32,32,106,105,110,46,103,114,97,112,
+104,105,99,115,46,99,108,101,97,114,40,41,13,10,32,32,32,32,106,105,
+110,46,103,114,97,112,104,105,99,115,46,112,114,105,110,116,40,34,78,111,
+32,71,97,109,101,34,44,32,53,44,32,53,41,32,13,10,32,32,32,32,
106,105,110,46,103,114,97,112,104,105,99,115,46,112,114,101,115,101,110,116,
40,41,13,10,32,32,32,32,119,104,105,108,101,32,106,105,110,46,99,111,
114,101,46,114,117,110,110,105,110,103,40,41,32,100,111,32,13,10,32,32,
@@ -127,82 +149,58 @@ static char app_lua[] = {
32,32,32,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,
32,32,32,32,101,110,100,13,10,32,32,32,32,32,32,32,32,106,105,110,
46,116,105,109,101,46,115,108,101,101,112,40,48,46,48,48,49,41,13,10,
-32,32,32,32,101,110,100,13,10,101,110,100,13,10,13,10,45,45,32,78,
-111,32,103,97,109,101,32,115,99,114,101,101,110,46,13,10,108,111,99,97,
-108,32,102,117,110,99,116,105,111,110,32,110,111,71,97,109,101,40,41,13,
-10,32,32,32,32,106,105,110,46,103,114,97,112,104,105,99,115,46,115,104,
-111,119,87,105,110,100,111,119,40,41,13,10,32,32,32,32,106,105,110,46,
-103,114,97,112,104,105,99,115,46,114,101,115,101,116,40,41,13,10,32,32,
-32,32,106,105,110,46,103,114,97,112,104,105,99,115,46,115,101,116,67,108,
-101,97,114,67,111,108,111,114,40,49,48,48,44,32,49,48,48,44,32,49,
-48,48,44,32,50,53,53,41,13,10,32,32,32,32,106,105,110,46,103,114,
-97,112,104,105,99,115,46,99,108,101,97,114,40,41,13,10,32,32,32,32,
-106,105,110,46,103,114,97,112,104,105,99,115,46,112,114,105,110,116,40,34,
-78,111,32,71,97,109,101,34,44,32,53,44,32,53,41,32,13,10,32,32,
-32,32,106,105,110,46,103,114,97,112,104,105,99,115,46,112,114,101,115,101,
-110,116,40,41,13,10,32,32,32,32,119,104,105,108,101,32,106,105,110,46,
-99,111,114,101,46,114,117,110,110,105,110,103,40,41,32,100,111,32,13,10,
-32,32,32,32,32,32,32,32,102,111,114,32,95,44,32,101,32,105,110,32,
-112,97,105,114,115,40,106,105,110,46,101,118,101,110,116,46,112,111,108,108,
-40,41,41,32,100,111,32,13,10,32,32,32,32,32,32,32,32,32,32,32,
-32,105,102,32,101,46,116,121,112,101,32,61,61,32,34,81,117,105,116,34,
-32,116,104,101,110,32,13,10,32,32,32,32,32,32,32,32,32,32,32,32,
-32,32,32,32,106,105,110,46,99,111,114,101,46,115,116,111,112,40,41,13,
-10,32,32,32,32,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,
-32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,32,32,32,32,106,
-105,110,46,116,105,109,101,46,115,108,101,101,112,40,48,46,48,48,49,41,
-13,10,32,32,32,32,101,110,100,13,10,101,110,100,13,10,13,10,108,111,
-99,97,108,32,102,117,110,99,116,105,111,110,32,98,111,111,116,40,41,32,
-13,10,32,32,32,32,105,102,32,106,105,110,46,102,105,108,101,115,121,115,
-116,101,109,46,101,120,105,115,116,40,34,109,97,105,110,46,108,117,97,34,
-41,32,116,104,101,110,32,13,10,32,32,32,32,32,32,32,32,99,97,108,
-108,40,102,117,110,99,116,105,111,110,40,41,32,13,10,32,32,32,32,32,
-32,32,32,32,32,32,32,114,101,113,117,105,114,101,34,109,97,105,110,34,
-32,13,10,32,32,32,32,32,32,32,32,32,32,32,32,106,105,110,46,99,
-111,114,101,46,114,117,110,40,41,13,10,32,32,32,32,32,32,32,32,101,
-110,100,41,13,10,32,32,32,32,101,108,115,101,13,10,32,32,32,32,32,
-32,32,32,110,111,71,97,109,101,40,41,13,10,32,32,32,32,101,110,100,
-13,10,101,110,100,13,10,13,10,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,13,10,45,45,32,73,110,105,116,105,97,108,105,122,101,32,115,117,
-98,32,115,121,115,116,101,109,115,13,10,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,13,10,13,10,106,105,110,46,97,117,100,105,111,46,105,110,
-105,116,40,41,13,10,13,10,106,105,110,46,103,114,97,112,104,105,99,115,
-46,105,110,105,116,40,106,105,110,46,99,111,110,102,105,103,41,13,10,13,
-10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+32,32,32,32,101,110,100,13,10,101,110,100,13,10,13,10,108,111,99,97,
+108,32,102,117,110,99,116,105,111,110,32,98,111,111,116,40,41,32,13,10,
+32,32,32,32,105,102,32,106,105,110,46,102,105,108,101,115,121,115,116,101,
+109,46,101,120,105,115,116,40,34,109,97,105,110,46,108,117,97,34,41,32,
+116,104,101,110,32,13,10,32,32,32,32,32,32,32,32,99,97,108,108,40,
+102,117,110,99,116,105,111,110,40,41,32,13,10,32,32,32,32,32,32,32,
+32,32,32,32,32,114,101,113,117,105,114,101,34,109,97,105,110,34,32,13,
+10,32,32,32,32,32,32,32,32,32,32,32,32,106,105,110,46,99,111,114,
+101,46,114,117,110,40,41,13,10,32,32,32,32,32,32,32,32,101,110,100,
+41,13,10,32,32,32,32,101,108,115,101,13,10,32,32,32,32,32,32,32,
+32,110,111,71,97,109,101,40,41,13,10,32,32,32,32,101,110,100,13,10,
+101,110,100,13,10,13,10,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+13,10,45,45,32,73,110,105,116,105,97,108,105,122,101,32,115,117,98,32,
+115,121,115,116,101,109,115,13,10,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,13,10,13,10,106,105,110,46,97,117,100,105,111,46,105,110,105,116,
+40,41,13,10,13,10,106,105,110,46,103,114,97,112,104,105,99,115,46,105,
+110,105,116,40,106,105,110,46,99,111,110,102,105,103,41,13,10,13,10,45,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,45,45,32,66,
-111,111,116,32,103,97,109,101,13,10,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,13,10,45,45,32,66,111,111,
+116,32,103,97,109,101,13,10,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,13,10,13,10,120,112,99,97,108,108,40,98,111,111,116,44,32,
-111,110,69,114,114,111,114,41,13,10,13,10,45,45,45,45,45,45,45,45,
+45,13,10,13,10,120,112,99,97,108,108,40,98,111,111,116,44,32,111,110,
+69,114,114,111,114,41,13,10,13,10,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,13,10,45,45,32,68,101,115,116,114,111,121,32,115,117,
-98,45,115,121,115,116,101,109,115,13,10,45,45,45,45,45,45,45,45,45,
+45,45,45,13,10,45,45,32,68,101,115,116,114,111,121,32,115,117,98,45,
+115,121,115,116,101,109,115,13,10,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,13,10,13,10,106,105,110,46,103,114,97,112,104,105,99,115,
-46,100,101,115,116,114,111,121,40,41,13,10,13,10,106,105,110,46,97,117,
-100,105,111,46,100,101,115,116,114,111,121,40,41,13,10,13,10,45,45,45,
+45,45,13,10,13,10,106,105,110,46,103,114,97,112,104,105,99,115,46,100,
+101,115,116,114,111,121,40,41,13,10,13,10,106,105,110,46,97,117,100,105,
+111,46,100,101,115,116,114,111,121,40,41,13,10,13,10,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,13,10,45,45,32,81,117,105,116,32,
-103,97,109,101,13,10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,13,10,45,45,32,81,117,105,116,32,103,97,
+109,101,13,10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
-45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,
-10,13,10,106,105,110,46,99,111,114,101,46,113,117,105,116,40,41,13,10
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,10,13,
+10,106,105,110,46,99,111,114,101,46,113,117,105,116,40,41,13,10
};
diff --git a/src/libjin-lua/scripts/time/time.lua b/src/libjin-lua/scripts/time/time.lua
new file mode 100644
index 0000000..61c6ab1
--- /dev/null
+++ b/src/libjin-lua/scripts/time/time.lua
@@ -0,0 +1,25 @@
+
+jin.time = jin.time or {}
+
+local f = 0
+local fps = 0
+local t = 0
+
+jin.time.getFPS = function()
+ return fps
+end
+
+local step = jin.time.step
+
+jin.time.step = function()
+ step()
+ -- Update fps
+ t = t + jin.time.getDelta()
+ if t > 1 then
+ t = t - 1
+ fps = f + 1
+ f = 0
+ else
+ f = f + 1
+ end
+end
diff --git a/src/libjin-lua/scripts/time/time.lua.h b/src/libjin-lua/scripts/time/time.lua.h
new file mode 100644
index 0000000..e2003a3
--- /dev/null
+++ b/src/libjin-lua/scripts/time/time.lua.h
@@ -0,0 +1,23 @@
+/*Auto generated, don't modify by hand.*/
+static char time_lua[] = {
+13,10,106,105,110,46,116,105,109,101,32,61,32,106,105,110,46,116,105,109,
+101,32,111,114,32,123,125,13,10,13,10,108,111,99,97,108,32,102,32,61,
+32,48,13,10,108,111,99,97,108,32,102,112,115,32,61,32,48,13,10,108,
+111,99,97,108,32,116,32,61,32,48,13,10,13,10,106,105,110,46,116,105,
+109,101,46,103,101,116,70,80,83,32,61,32,102,117,110,99,116,105,111,110,
+40,41,32,13,10,32,32,32,32,114,101,116,117,114,110,32,102,112,115,13,
+10,101,110,100,32,13,10,13,10,108,111,99,97,108,32,115,116,101,112,32,
+61,32,106,105,110,46,116,105,109,101,46,115,116,101,112,13,10,13,10,106,
+105,110,46,116,105,109,101,46,115,116,101,112,32,61,32,102,117,110,99,116,
+105,111,110,40,41,32,13,10,32,32,32,32,115,116,101,112,40,41,32,13,
+10,32,32,32,32,45,45,32,85,112,100,97,116,101,32,102,112,115,13,10,
+32,32,32,32,116,32,61,32,116,32,43,32,106,105,110,46,116,105,109,101,
+46,103,101,116,68,101,108,116,97,40,41,32,13,10,32,32,32,32,105,102,
+32,116,32,62,32,49,32,116,104,101,110,32,13,10,32,32,32,32,32,32,
+32,32,116,32,61,32,116,32,45,32,49,32,13,10,32,32,32,32,32,32,
+32,32,102,112,115,32,61,32,102,32,43,32,49,13,10,32,32,32,32,32,
+32,32,32,102,32,61,32,48,13,10,32,32,32,32,101,108,115,101,32,13,
+10,32,32,32,32,32,32,32,32,102,32,61,32,102,32,43,32,49,13,10,
+32,32,32,32,101,110,100,13,10,101,110,100,32,13,10
+};
+
diff --git a/src/libjin/graphics/fonts/je_texture_font.cpp b/src/libjin/graphics/fonts/je_texture_font.cpp
index 97f1f2f..bd1b061 100644
--- a/src/libjin/graphics/fonts/je_texture_font.cpp
+++ b/src/libjin/graphics/fonts/je_texture_font.cpp
@@ -276,15 +276,14 @@ namespace JinEngine
const vector<GlyphArrayDrawInfo>& glyphinfolist = page->glyphinfolist;
const vector<GlyphVertex>& glyphvertices = page->glyphvertices;
Matrix modelMatrix = gl.getModelViewMatrix(x, y, 1, 1, 0, 0, 0);
+ shader->prepare();
shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix);
shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix());
for (int i = 0; i < glyphinfolist.size(); ++i)
{
const GlyphArrayDrawInfo& info = glyphinfolist[i];
- shader->beginUploadAttributes();
shader->uploadVertices(2, GL_INT, sizeof(GlyphVertex), &glyphvertices[info.start].x);
shader->uploadUV(2, GL_FLOAT, sizeof(GlyphVertex), &glyphvertices[info.start].u);
- shader->endUploadAttributes();
gl.bindTexture(info.texture);
gl.drawArrays(GL_QUADS, 0, info.count);
gl.bindTexture(0);
diff --git a/src/libjin/graphics/fonts/je_ttf.cpp b/src/libjin/graphics/fonts/je_ttf.cpp
index 5d341fa..0e9f672 100644
--- a/src/libjin/graphics/fonts/je_ttf.cpp
+++ b/src/libjin/graphics/fonts/je_ttf.cpp
@@ -295,15 +295,14 @@ namespace JinEngine
const vector<GlyphArrayDrawInfo>& glyphinfolist = page->glyphinfolist;
const vector<GlyphVertex>& glyphvertices = page->glyphvertices;
Matrix modelMatrix = gl.getModelViewMatrix(x, y, 1, 1, 0, 0, 0);
+ shader->prepare();
shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix);
shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix());
for (int i = 0; i < glyphinfolist.size(); ++i)
{
const GlyphArrayDrawInfo& info = glyphinfolist[i];
- shader->beginUploadAttributes();
shader->uploadVertices(2, GL_INT, sizeof(GlyphVertex), &glyphvertices[info.start].x);
shader->uploadUV(2, GL_FLOAT, sizeof(GlyphVertex), &glyphvertices[info.start].u);
- shader->endUploadAttributes();
gl.bindTexture(info.texture);
gl.drawArrays(GL_QUADS, 0, info.count);
gl.bindTexture(0);
diff --git a/src/libjin/graphics/je_gl.cpp b/src/libjin/graphics/je_gl.cpp
index 41fdf76..7ef4ee0 100644
--- a/src/libjin/graphics/je_gl.cpp
+++ b/src/libjin/graphics/je_gl.cpp
@@ -281,7 +281,6 @@ namespace JinEngine
if (shader)
{
glUseProgram(shader->getGLProgramID());
- shader->setDefaultUniform();
mShader = shader;
}
}
diff --git a/src/libjin/graphics/je_graphic.cpp b/src/libjin/graphics/je_graphic.cpp
index 964d0e5..96c3b4a 100644
--- a/src/libjin/graphics/je_graphic.cpp
+++ b/src/libjin/graphics/je_graphic.cpp
@@ -71,12 +71,11 @@ namespace JinEngine
textureCoords[6] = 1; textureCoords[7] = 0;
// Set shader.
Shader* shader = gl.getShader();
- shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelViewMatrix);
- shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix());
- shader->beginUploadAttributes();
- shader->uploadVertices(2, GL_FLOAT, 0, vertexCoords);
- shader->uploadUV(2, GL_FLOAT, 0, textureCoords);
- shader->endUploadAttributes();
+ shader->prepare()
+ .sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelViewMatrix)
+ .sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix())
+ .uploadVertices(2, GL_FLOAT, 0, vertexCoords)
+ .uploadUV(2, GL_FLOAT, 0, textureCoords);
gl.bindTexture(getGLTexture());
gl.drawArrays(GL_QUADS, 0, 4);
@@ -106,12 +105,11 @@ namespace JinEngine
Math::Matrix modelViewMatrix = gl.getModelViewMatrix(x, y, sx, sy, r, ax, ay);
Shader* shader = gl.getShader();
- shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelViewMatrix);
- shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix());
- shader->beginUploadAttributes();
- shader->uploadVertices(2, GL_FLOAT, 0, vertexCoords);
- shader->uploadUV(2, GL_FLOAT, 0, textureCoords);
- shader->endUploadAttributes();
+ shader->prepare()
+ .sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelViewMatrix)
+ .sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix())
+ .uploadVertices(2, GL_FLOAT, 0, vertexCoords)
+ .uploadUV(2, GL_FLOAT, 0, textureCoords);
gl.bindTexture(getGLTexture());
gl.drawArrays(GL_QUADS, 0, 4);
diff --git a/src/libjin/graphics/je_mesh.cpp b/src/libjin/graphics/je_mesh.cpp
index 7a409b4..e8512ac 100644
--- a/src/libjin/graphics/je_mesh.cpp
+++ b/src/libjin/graphics/je_mesh.cpp
@@ -60,13 +60,12 @@ namespace JinEngine
Math::Matrix modelViewMatrix = gl.getModelViewMatrix(x, y, sx, sy, r, ox, oy);
Shader* shader = gl.getShader();
- shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelViewMatrix)
+ shader->prepare()
+ .sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelViewMatrix)
.sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix())
- .beginUploadAttributes()
.uploadVertices(2, GL_FLOAT, sizeof(Vertex), &(mVertices[0].xy))
.uploadUV(2, GL_FLOAT, sizeof(Vertex), &(mVertices[0].uv))
- .uploadColor(4, GL_UNSIGNED_BYTE, sizeof(Vertex), &(mVertices[0].color), GL_TRUE)
- .endUploadAttributes();
+ .uploadColor(4, GL_UNSIGNED_BYTE, sizeof(Vertex), &(mVertices[0].color), GL_TRUE);
gl.bindTexture(mGraphic->getGLTexture());
gl.drawArrays(GL_POLYGON, 0, mVertices.size());
diff --git a/src/libjin/graphics/je_shapes.cpp b/src/libjin/graphics/je_shapes.cpp
index 9af031d..7781b3f 100644
--- a/src/libjin/graphics/je_shapes.cpp
+++ b/src/libjin/graphics/je_shapes.cpp
@@ -22,26 +22,26 @@ namespace JinEngine
{
float verts[] = { x + 0.5f , y + 0.5f };
- Shader* shader = gl.getShader();
- shader->beginUploadAttributes();
- shader->uploadVertices(2, GL_FLOAT, 0, verts);
- shader->endUploadAttributes();
Matrix modelMatrix = gl.getModelViewMatrix();
- shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix);
- shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix());
+
+ Shader* shader = gl.getShader();
+ shader->prepare()
+ .uploadVertices(2, GL_FLOAT, 0, verts)
+ .sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix)
+ .sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix());
glDrawArrays(GL_POINTS, 0, 1);
}
void points(int n, GLshort* p)
{
- Shader* shader = gl.getShader();
- shader->beginUploadAttributes();
- shader->uploadVertices(2, GL_SHORT, 0, p);
- shader->endUploadAttributes();
Matrix modelMatrix = gl.getModelViewMatrix();
- shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix);
- shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix());
+
+ Shader* shader = gl.getShader();
+ shader->prepare()
+ .uploadVertices(2, GL_SHORT, 0, p)
+ .sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix)
+ .sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix());
glDrawArrays(GL_POINTS, 0, n);
}
@@ -52,14 +52,14 @@ namespace JinEngine
x1 + 0.5f, y1 + 0.5f,
x2 + 0.5f, y2 + 0.5f
};
+
+ Matrix modelMatrix = gl.getModelViewMatrix();
Shader* shader = gl.getShader();
- shader->beginUploadAttributes();
- shader->uploadVertices(2, GL_FLOAT, 0, verts);
- shader->endUploadAttributes();
- Matrix modelMatrix = gl.getModelViewMatrix();
- shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix);
- shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix());
+ shader->prepare()
+ .uploadVertices(2, GL_FLOAT, 0, verts)
+ .sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix)
+ .sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix());
glDrawArrays(GL_LINES, 0, 2);
}
@@ -105,11 +105,10 @@ namespace JinEngine
{
Shader* shader = gl.getShader();
Matrix modelMatrix = gl.getModelViewMatrix();
- shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix);
- shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix());
- shader->beginUploadAttributes();
- shader->uploadVertices(2, GL_FLOAT, 0, p);
- shader->endUploadAttributes();
+ shader->prepare()
+ .sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix)
+ .sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix())
+ .uploadVertices(2, GL_FLOAT, 0, p);
glDrawArrays(GL_LINE_LOOP, 0, count);
}
@@ -124,11 +123,10 @@ namespace JinEngine
{
Shader* shader = gl.getShader();
Matrix modelMatrix = gl.getModelViewMatrix();
- shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix);
- shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix());
- shader->beginUploadAttributes();
- shader->uploadVertices(2, GL_FLOAT, 0, p);
- shader->endUploadAttributes();
+ shader->prepare()
+ .sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix)
+ .sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix())
+ .uploadVertices(2, GL_FLOAT, 0, p);
glDrawArrays(GL_POLYGON, 0, count);
}
diff --git a/src/libjin/graphics/shaders/je_jsl_compiler.cpp b/src/libjin/graphics/shaders/je_jsl_compiler.cpp
index d081c51..8aacdd0 100644
--- a/src/libjin/graphics/shaders/je_jsl_compiler.cpp
+++ b/src/libjin/graphics/shaders/je_jsl_compiler.cpp
@@ -20,7 +20,8 @@ namespace JinEngine
/// Built-in variables in vertex shader:
/// jin_ProjectionMatrix --+
/// jin_ModelViewMatrix |- Uniforms
- /// jin_MainTexture --+
+ /// jin_MainTexture |
+ /// jin_Time --+
/// jin_VertexCoords --+
/// jin_TextureCoords |- Attributes
/// jin_VertexColor --+
@@ -29,7 +30,8 @@ namespace JinEngine
/// Built-in variables in fragment shader:
/// jin_ProjectionMatrix --+
/// jin_ModelViewMatrix |- Uniforms
- /// jin_MainTexture --+
+ /// jin_MainTexture |
+ /// jin_Time --+
/// jin_Color --+
/// jin_XY |- Inputs
/// jin_UV |
@@ -42,6 +44,7 @@ namespace JinEngine
JinEngine::String SHADER_VERTEX_COORDS = "jin_VertexCoords";
JinEngine::String SHADER_TEXTURE_COORDS = "jin_TextureCoords";
JinEngine::String SHADER_VERTEX_COLOR = "jin_VertexColor";
+ JinEngine::String SHADER_TIME = "jin_Time";
JinEngine::String SHADER_VERSION = "#version 130 core \n";
JinEngine::String SHADER_DEFINITIONS =
// Types
@@ -65,7 +68,8 @@ namespace JinEngine
JinEngine::String SHADER_UNIFORMS =
"uniform Texture " + SHADER_MAIN_TEXTURE + "; \n"
"uniform mat4 " + SHADER_PROJECTION_MATRIX + "; \n"
- "uniform mat4 " + SHADER_MODELVIEW_MATRIX + "; \n";
+ "uniform mat4 " + SHADER_MODELVIEW_MATRIX + "; \n"
+ "uniform vec2 " + SHADER_TIME + "; \n";
JinEngine::String JSLCompiler::formatVertexShader(const JinEngine::String& vert)
{
diff --git a/src/libjin/graphics/shaders/je_jsl_compiler.h b/src/libjin/graphics/shaders/je_jsl_compiler.h
index c34f8ec..75c92cf 100644
--- a/src/libjin/graphics/shaders/je_jsl_compiler.h
+++ b/src/libjin/graphics/shaders/je_jsl_compiler.h
@@ -22,6 +22,7 @@ namespace JinEngine
extern JinEngine::String SHADER_VERTEX_COORDS;
extern JinEngine::String SHADER_TEXTURE_COORDS;
extern JinEngine::String SHADER_VERTEX_COLOR;
+ extern JinEngine::String SHADER_TIME;
///
/// Compile JSL into GLSL.
diff --git a/src/libjin/graphics/shaders/je_shader.cpp b/src/libjin/graphics/shaders/je_shader.cpp
index 0137978..5668168 100644
--- a/src/libjin/graphics/shaders/je_shader.cpp
+++ b/src/libjin/graphics/shaders/je_shader.cpp
@@ -3,6 +3,7 @@
#include <iostream>
+#include "../../time/je_timer.h"
#include "../../filesystem/je_buffer.h"
#include "../../utils/je_macros.h"
@@ -13,6 +14,7 @@
using namespace std;
using namespace JinEngine::Filesystem;
+using namespace JinEngine::Time;
namespace JinEngine
{
@@ -71,9 +73,14 @@ namespace JinEngine
glDeleteShader(mPID);
}
- void Shader::setDefaultUniform()
+ Shader& Shader::prepare()
{
+ // Send uniforms.
sendInt(SHADER_MAIN_TEXTURE, DEFAULT_TEXTURE_UNIT);
+ sendVec2(SHADER_TIME, Time::getSecond(), Time::getDeltaTime());
+ // Reset attribute index.
+ mAttributeIndex = 0;
+ return *this;
}
bool Shader::compile(const string& program)
@@ -86,7 +93,7 @@ namespace JinEngine
return false;
}
- #define glsl(SHADER_MODE, SHADER, SRC) \
+ #define glsl(SHADER_MODE, SHADER, SRC) \
do{ \
const GLchar* src = SRC.c_str(); \
glShaderSource(SHADER, 1, &src, NULL); \
@@ -103,6 +110,7 @@ namespace JinEngine
// Compile fragment shader.
GLuint fid = glCreateShader(GL_FRAGMENT_SHADER);
glsl(GL_FRAGMENT_SHADER, fid, fragment_shader);
+
#undef glsl
// Create OpenGL shader program.
mPID = glCreateProgram();
@@ -269,18 +277,6 @@ namespace JinEngine
return *this;
}
- Shader& Shader::beginUploadAttributes()
- {
- mAttributeIndex = 0;
- return *this;
- }
-
- Shader& Shader::endUploadAttributes()
- {
- mAttributeIndex = 0;
- return *this;
- }
-
Shader& Shader::uploadAttribute(const String& name, int n, GLenum type, GLsizei stride, const GLvoid * pointers, GLboolean normalized)
{
GLint loc = glGetAttribLocation(mPID, name);
diff --git a/src/libjin/graphics/shaders/je_shader.h b/src/libjin/graphics/shaders/je_shader.h
index 92e1c4c..a279a79 100644
--- a/src/libjin/graphics/shaders/je_shader.h
+++ b/src/libjin/graphics/shaders/je_shader.h
@@ -44,7 +44,10 @@ namespace JinEngine
///
virtual ~Shader();
- void setDefaultUniform();
+ ///
+ /// Prepare shader and set default uniforms.
+ ///
+ Shader& prepare();
///
/// Send float value to shader.
@@ -155,16 +158,6 @@ namespace JinEngine
Shader& uploadAttribute(const String& name, int n, GLenum type, GLsizei stride, const GLvoid * pointers, GLboolean normalized = GL_FALSE);
///
- /// Reset attribute index.
- ///
- Shader& beginUploadAttributes();
-
- ///
- /// Reset attribute index.
- ///
- Shader& endUploadAttributes();
-
- ///
/// Program ID.
///
inline GLuint getGLProgramID() { return mPID; };
diff --git a/src/libjin/time/je_timer.cpp b/src/libjin/time/je_timer.cpp
index 5de3e26..ef5a040 100644
--- a/src/libjin/time/je_timer.cpp
+++ b/src/libjin/time/je_timer.cpp
@@ -116,6 +116,8 @@ namespace JinEngine
}
}
+ float deltaTime = 0;
+
} // namespace Time
} // namespace JinEngine
diff --git a/src/libjin/time/je_timer.h b/src/libjin/time/je_timer.h
index 1209827..95c1925 100644
--- a/src/libjin/time/je_timer.h
+++ b/src/libjin/time/je_timer.h
@@ -131,6 +131,25 @@ namespace JinEngine
#endif
}
+ ///
+ /// Delta time between frames.
+ ///
+ extern float deltaTime;
+
+ inline void step()
+ {
+ static float previous = 0;
+ static float current = getSecond();
+ previous = current;
+ current = getSecond();
+ deltaTime = current - previous;
+ }
+
+ inline float getDeltaTime()
+ {
+ return deltaTime;
+ }
+
} // namespace Time
} // namespace JinEngine