diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libjin-lua/je_lua_embed.h | 2 | ||||
-rw-r--r-- | src/libjin-lua/modules/time/je_lua_time.cpp | 2 | ||||
-rw-r--r-- | src/libjin-lua/scripts/app.lua | 5 | ||||
-rw-r--r-- | src/libjin-lua/scripts/app.lua.h | 238 | ||||
-rw-r--r-- | src/libjin-lua/scripts/time/time.lua | 25 | ||||
-rw-r--r-- | src/libjin-lua/scripts/time/time.lua.h | 23 | ||||
-rw-r--r-- | src/libjin/graphics/fonts/je_texture_font.cpp | 3 | ||||
-rw-r--r-- | src/libjin/graphics/fonts/je_ttf.cpp | 3 | ||||
-rw-r--r-- | src/libjin/graphics/je_gl.cpp | 1 | ||||
-rw-r--r-- | src/libjin/graphics/je_graphic.cpp | 22 | ||||
-rw-r--r-- | src/libjin/graphics/je_mesh.cpp | 7 | ||||
-rw-r--r-- | src/libjin/graphics/je_shapes.cpp | 54 | ||||
-rw-r--r-- | src/libjin/graphics/shaders/je_jsl_compiler.cpp | 10 | ||||
-rw-r--r-- | src/libjin/graphics/shaders/je_jsl_compiler.h | 1 | ||||
-rw-r--r-- | src/libjin/graphics/shaders/je_shader.cpp | 24 | ||||
-rw-r--r-- | src/libjin/graphics/shaders/je_shader.h | 15 | ||||
-rw-r--r-- | src/libjin/time/je_timer.cpp | 2 | ||||
-rw-r--r-- | src/libjin/time/je_timer.h | 19 |
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 |