Skip to content
Snippets Groups Projects
Commit 3cec2301 authored by dg's avatar dg
Browse files

fucking sahders

git-svn-id: http://svn.net-core.org/repos/t-engine4@743 51575b47-30f0-44d4-a5cc-537603b46e54
parent 9562ecb0
No related branches found
No related tags found
No related merge requests found
......@@ -93,17 +93,19 @@ function _M:loaded()
setfenv(f, setmetatable(self.args or {}, {__index=_G}))
local def = f()
_M.progs[self.name] = self:createProgram(def)
end
self.shad = _M.progs[self.name]
for k, v in pairs(self.args) do
if type(v) == "number" then
self.shad:paramNumber(k, v)
elseif type(v) == "table"
if v.texture then
self.shad:paramNumber(k, v.texture, v.is3d)
for k, v in pairs(def.args) do
if type(v) == "number" then
print("[SHADER] setting param", k, v)
_M.progs[self.name]:paramNumber(k, v)
elseif type(v) == "table" then
if v.texture then
print("[SHADER] setting texture param", k, v.texture)
_M.progs[self.name]:paramTexture(k, v.texture, v.is3d)
end
end
end
end
self.shad = _M.progs[self.name]
end
......@@ -62,7 +62,7 @@ newEntity{
newEntity{
define_as = "WALL",
-- shader = "water", shader_args = {},
shader = "water", shader_args = {},
name = "wall", image = "terrain/granite_wall1.png",
display = '#', color_r=255, color_g=255, color_b=255, back_color=colors.GREY,
always_remember = true,
......
uniform int tick;
uniform sampler3D noisevol;
uniform sampler2D noise2d;
uniform float red;
void main(void)
{
......@@ -17,4 +18,9 @@ void main(void)
vec4 n = texture2D(noise2d, gl_TexCoord[0].xy);
n.x = 1;
gl_FragColor = n;
// int i = (tick / 30) % 255;
// float t = (float)i;
// t = t / 255;
// gl_FragColor = vec4(red, 0, t, 1);
}
......@@ -17,7 +17,13 @@
-- Nicolas Casalini "DarkGod"
-- darkgod@te4.org
local noise = core.noise.new(2)
local tex = noise:makeTexture2D("simplex", 128, 128, 4, 0, 0)
return {
frag = "water",
args = {
noise2d = { texture = tex },
},
clone = false,
}
......@@ -159,8 +159,8 @@ static int program_set_uniform_number(lua_State *L)
const char *var = luaL_checkstring(L, 2);
GLfloat i = luaL_checknumber(L, 3);
CHECKGL(glUseProgramObjectARB(p));
CHECKGL(glUniform1fvARB(glGetUniformLocationARB(p, var), 1, &i));
CHECKGL(glUseProgramObjectARB(*p));
CHECKGL(glUniform1fvARB(glGetUniformLocationARB(*p, var), 1, &i));
CHECKGL(glUseProgramObjectARB(0));
return 0;
}
......@@ -173,12 +173,12 @@ static int program_set_uniform_texture(lua_State *L)
bool is3d = lua_toboolean(L, 4);
GLint i = 1;
CHECKGL(glUseProgramObjectARB(p));
CHECKGL(glUseProgramObjectARB(*p));
CHECKGL(glActiveTexture(GL_TEXTURE1));
CHECKGL(glBindTexture(is3d ? GL_TEXTURE_3D : GL_TEXTURE_2D, *t));
CHECKGL(glUniform1ivARB(glGetUniformLocationARB(p, var), 1, &i));
CHECKGL(glActiveTexture(GL_TEXTURE0));
CHECKGL(glUniform1ivARB(glGetUniformLocationARB(*p, var), 1, &i));
CHECKGL(glUseProgramObjectARB(0));
// CHECKGL(glActiveTexture(GL_TEXTURE0));
return 0;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment