_math: cdef-backed structures
This commit is contained in:
parent
6a57516349
commit
761a0073ef
@ -211,9 +211,9 @@ collada_scene = {
|
||||
end
|
||||
|
||||
--shader:send("Joints", "column",
|
||||
--joints[1].data,
|
||||
--joints[2].data,
|
||||
--joints[3].data)
|
||||
--joints[1]:data(),
|
||||
--joints[2]:data(),
|
||||
--joints[3]:data())
|
||||
current_shader:send("Joints", "column",
|
||||
mat4.store_table(joints[1]),
|
||||
mat4.store_table(joints[2]),
|
||||
@ -241,20 +241,20 @@ collada_scene = {
|
||||
if node.instance_geometries_count > 0 then
|
||||
current_shader = current_shader_set.static
|
||||
love.graphics.setShader(current_shader)
|
||||
--current_shader:send("projection", "column", projection.data)
|
||||
current_shader:send("view_transform", "column", view_transform.data)
|
||||
current_shader:send("world_transform", "column", world.data)
|
||||
current_shader:send("light_transform", "column", light_transform.data)
|
||||
current_shader:send("transform", "column", transform.data)
|
||||
--current_shader:send("projection", "column", projection:data())
|
||||
current_shader:send("view_transform", "column", view_transform:data())
|
||||
current_shader:send("world_transform", "column", world:data())
|
||||
current_shader:send("light_transform", "column", light_transform:data())
|
||||
current_shader:send("transform", "column", transform:data())
|
||||
collada_scene.draw_instance_geometries(node.instance_geometries)
|
||||
end
|
||||
|
||||
if node.instance_controllers_count > 0 then
|
||||
current_shader = current_shader_set.skinned
|
||||
love.graphics.setShader(current_shader)
|
||||
current_shader:send("world_transform", "column", world.data)
|
||||
current_shader:send("light_transform", "column", light_transform.data)
|
||||
current_shader:send("transform", "column", transform.data)
|
||||
current_shader:send("world_transform", "column", world:data())
|
||||
current_shader:send("light_transform", "column", light_transform:data())
|
||||
current_shader:send("transform", "column", transform:data())
|
||||
collada_scene.draw_instance_controllers(node_state, node.instance_controllers)
|
||||
end
|
||||
end,
|
||||
@ -303,12 +303,12 @@ collada_scene = {
|
||||
-- color
|
||||
----------------------------------------------------------------------
|
||||
|
||||
shader_color_static:send("view_position", view_position.data)
|
||||
shader_color_static:send("light_position", light_position.data)
|
||||
shader_color_static:send("view_position", view_position:data())
|
||||
shader_color_static:send("light_position", light_position:data())
|
||||
--shader_color_static:send("shadow_sampler", g_shadow_canvas)
|
||||
|
||||
shader_color_skinned:send("view_position", view_position.data)
|
||||
shader_color_skinned:send("light_position", light_position.data)
|
||||
shader_color_skinned:send("view_position", view_position:data())
|
||||
shader_color_skinned:send("light_position", light_position:data())
|
||||
--shader_color_skinned:send("shadow_sampler", g_shadow_canvas)
|
||||
|
||||
love.graphics.setCanvas({g_color_canvas, g_position_canvas, g_normal_canvas, depth=true})
|
||||
@ -331,7 +331,7 @@ collada_scene = {
|
||||
if true then
|
||||
love.graphics.setCanvas({g_occlusion_canvas_a, depth=false})
|
||||
love.graphics.setShader(shader_ssao)
|
||||
shader_ssao:send("projection", "column", perspective_projection.data)
|
||||
shader_ssao:send("projection", "column", perspective_projection:data())
|
||||
--shader_ssao:send("g_color_sampler", g_color_canvas)
|
||||
shader_ssao:send("g_position_sampler", g_position_canvas)
|
||||
shader_ssao:send("g_normal_sampler", g_normal_canvas)
|
||||
|
||||
@ -30,11 +30,11 @@ local transform_matrix = function (loaded_transform)
|
||||
elseif type == collada_types.transform_type.MATRIX then
|
||||
return value
|
||||
elseif type == collada_types.transform_type.ROTATE then
|
||||
if value.f[0] == 0 and value.f[1] == 0 and value.f[2] == 0 then
|
||||
if value.x == 0 and value.y == 0 and value.z == 0 then
|
||||
-- WUT?
|
||||
return mat4.identity()
|
||||
end
|
||||
return mat4.rotation_axis(value, scalar.convert_to_radians(value.f[3]))
|
||||
return mat4.rotation_axis(value, scalar.convert_to_radians(value.w))
|
||||
elseif type == collada_types.transform_type.SCALE then
|
||||
return mat4.scaling_from_vector(value)
|
||||
elseif type == collada_types.transform_type.TRANSLATE then
|
||||
|
||||
2
font.lua
2
font.lua
@ -79,7 +79,7 @@ local draw_string = function(font, s, x, y)
|
||||
for i = 1, #s do
|
||||
local c = s:byte(i)
|
||||
if c ~= 32 then
|
||||
shader_font:send("transform", "column", glyph_transform(font, x, y).data)
|
||||
shader_font:send("transform", "column", glyph_transform(font, x, y):data())
|
||||
shader_font:send("glyph", glyph_coordinate(font, c))
|
||||
love.graphics.drawFromShader(screen_index_buffer, 3 * 2, 1, 1)
|
||||
end
|
||||
|
||||
1
main.lua
1
main.lua
@ -166,6 +166,7 @@ function love.run()
|
||||
local dt = love.timer.step()
|
||||
update(dt)
|
||||
draw()
|
||||
|
||||
love.graphics.present()
|
||||
love.timer.sleep(0.001)
|
||||
end
|
||||
|
||||
@ -32,9 +32,9 @@ local generate_ssao_kernel = function(kernel_samples)
|
||||
local scale = i / kernel_samples
|
||||
scale = lerp(0.1, 1.0, scale * scale)
|
||||
v = vec3.multiply_scalar(v, love.math.random() * scale)
|
||||
ssao_kernel_data_ptr[i * 4 + 0] = v.f[0]
|
||||
ssao_kernel_data_ptr[i * 4 + 1] = v.f[1]
|
||||
ssao_kernel_data_ptr[i * 4 + 2] = v.f[2]
|
||||
ssao_kernel_data_ptr[i * 4 + 0] = v.x
|
||||
ssao_kernel_data_ptr[i * 4 + 1] = v.y
|
||||
ssao_kernel_data_ptr[i * 4 + 2] = v.z
|
||||
--ssao_kernel_data_ptr[i * 4 + 3] = 0
|
||||
end
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user