Skip to content

Commit eed3199

Browse files
PatriceJiangminggo
authored andcommitted
[lua tests] MaterialSystemTest update u_Time uniform (#20083)
1 parent dcf7baf commit eed3199

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

cocos/scripting/lua-bindings/manual/LuaBasicConversions.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3348,7 +3348,7 @@ bool luaval_to_uniformLocation(lua_State* L, int pos, cocos2d::backend::UniformL
33483348
return false;
33493349

33503350
lua_pushstring(L, "location");
3351-
lua_gettable(L, pos);
3351+
lua_gettable(L, pos - 1);
33523352
if (lua_isnil(L, -1)) {
33533353
CCASSERT(false, "invalidate UniformLocation value");
33543354
}
@@ -3362,7 +3362,7 @@ bool luaval_to_uniformLocation(lua_State* L, int pos, cocos2d::backend::UniformL
33623362
lua_pop(L, 1);
33633363

33643364
lua_pushstring(L, "shaderStage");
3365-
lua_gettable(L, pos);
3365+
lua_gettable(L, pos -1);
33663366
if (lua_isnil(L, -1)) {
33673367
CCASSERT(false, "invalidate UniformLocation value");
33683368
}

tests/lua-tests/src/MaterialSystemTest/MaterialSystemTest.lua

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ function Material_2DEffects:subtitle()
133133
return "Testing effects on Sprite"
134134
end
135135

136+
136137
function Material_2DEffects:onEnter()
137138
local properties = cc.Properties:createNonRefCounted("Materials/2d_effects.material#sample")
138139

@@ -161,6 +162,19 @@ function Material_2DEffects:onEnter()
161162
spriteEdgeDetect:setNormalizedPosition(cc.p(0.8, 0.5))
162163
self:addChild(spriteEdgeDetect)
163164
spriteEdgeDetect:setProgramState(mat1:getTechniqueByName("edge_detect"):getPassByIndex(0):getProgramState())
165+
166+
local scheduler = cc.Director:getInstance():getScheduler()
167+
local uTimeLoc = spriteNoise:getProgramState():getUniformLocation("u_Time")
168+
self._schedulerEntry = scheduler:scheduleScriptFunc(function(dt)
169+
local time = cc.Director:getInstance():getTotalFrames() * cc.Director:getInstance():getAnimationInterval()
170+
local random = cc.vec4(time / 10., time, time * 2, time * 4)
171+
spriteNoise:getProgramState():setUniform(uTimeLoc, cc.bytearray.from_vec4(random));
172+
end, 0, false)
173+
end
174+
175+
function Material_2DEffects:onExit()
176+
local scheduler = cc.Director:getInstance():getScheduler()
177+
scheduler:unscheduleScriptEntry(self._schedulerEntry)
164178
end
165179

166180
----------------------------------------

0 commit comments

Comments
 (0)