Switched back to old model renderer while fixing vbo based renderer, set stats text shadow color to black, fixed tab completion showing empty list of available options when tab completion triggered

This commit is contained in:
2019-08-12 21:27:04 -05:00
parent d07130b03b
commit 771b6a4247
4 changed files with 34 additions and 15 deletions

View File

@@ -15,12 +15,13 @@ class IMICFPS
handleGlError
if Shader.available?("default")
if Shader.available?("ddefault")
Shader.use("default") do |shader|
glUniform3f(shader.attribute_location("worldPosition"), object.position.x, object.position.y, object.position.z)
handleGlError
draw_model(object.model)
draw_mesh(object.model)
# draw_model(object.model)
object.draw
end
else

View File

@@ -24,7 +24,7 @@ class IMICFPS
@crosshair_color = Gosu::Color.rgb(255,127,0)
# @font = Gosu::Font.new(18, name: "DejaVu Sans")
@text = Text.new("Pending...", x: 10, y: 10, z: 1, size: 18, font: "DejaVu Sans")
@text = Text.new("Pending...", x: 10, y: 10, z: 1, size: 18, font: "DejaVu Sans", shadow_color: Gosu::Color::BLACK)
Light.new(x: 3, y: -6, z: 6, game_state: self)
Light.new(x: 0, y: 100, z: 0, diffuse: Color.new(1.0, 0.5, 0.1), game_state: self)

View File

@@ -111,7 +111,7 @@ class IMICFPS
if list.size == 1
console.text_input.text = "#{split.first} #{split[1]} #{list.first} "
else
console.stdin("Available options: #{list.map { |value| Commands::Style.highlight(value) }.join(",")}")
console.stdin("Available options: #{list.map { |value| Commands::Style.highlight(value) }.join(",")}") if list.size > 0
end
end
end

View File

@@ -85,7 +85,6 @@ class IMICFPS
def populate_vertex_buffer
@vertices_buffer_size = 0
@vertices_buffer_data = []
model_has_texture = @materials.any? { |id, mat| mat.texture_id != nil }
verts = []
colors = []
@@ -98,7 +97,7 @@ class IMICFPS
colors << face.colors.map { |vert| [vert.x, vert.y, vert.z] }
norms << face.normals.map { |vert| [vert.x, vert.y, vert.z, vert.weight] }
if model_has_texture
if @has_texture
uvs << face.uvs.map { |vert| [vert.x, vert.y, vert.z] }
tex_ids << face.material.texture_id ? face.material.texture_id.to_f : -1.0
end
@@ -108,16 +107,22 @@ class IMICFPS
@vertices_buffer_data << vert
@vertices_buffer_data << colors[i]
@vertices_buffer_data << norms[i]
@vertices_buffer_data << uvs[i] if uvs.size > 0
@vertices_buffer_data << tex_ids[i] if tex_ids.size > 0
# if @has_texture
# @vertices_buffer_data << uvs[i] if uvs.size > 0
# @vertices_buffer_data << tex_ids[i] if tex_ids.size > 0
# end
end
data_size = 0
data_size += Fiddle::SIZEOF_FLOAT * 3 * verts.size
data_size += Fiddle::SIZEOF_FLOAT * 3 * colors.size
data_size += Fiddle::SIZEOF_FLOAT * 4 * norms.size
data_size += Fiddle::SIZEOF_FLOAT * 3 * uvs.size
data_size += Fiddle::SIZEOF_FLOAT * 1 * tex_ids.size
if @has_texture
data_size += Fiddle::SIZEOF_FLOAT * 3 * uvs.size
data_size += Fiddle::SIZEOF_FLOAT * 1 * tex_ids.size
end
@vertices_buffer_size = data_size
@@ -140,21 +145,34 @@ class IMICFPS
program = Shader.get("default").program
stride = 0
position_stride = Fiddle::SIZEOF_FLOAT * 3
color_stride = Fiddle::SIZEOF_FLOAT * 3
normal_stride = Fiddle::SIZEOF_FLOAT * 4
uv_stride = Fiddle::SIZEOF_FLOAT * 3
texture_id_stride = Fiddle::SIZEOF_FLOAT
if @has_texture
stride = position_stride + color_stride + normal_stride + uv_stride + texture_id_stride
else
stride = position_stride + color_stride + normal_stride
end
# index, size, type, normalized, stride, pointer
# vertices (positions)
glVertexAttribPointer(glGetAttribLocation(program, "inPosition"), 3, GL_FLOAT, GL_FALSE, Fiddle::SIZEOF_FLOAT * 3, nil)
glVertexAttribPointer(glGetAttribLocation(program, "inPosition"), 3, GL_FLOAT, GL_FALSE, stride, nil)
handleGlError
# colors
glVertexAttribPointer(glGetAttribLocation(program, "inColor"), 3, GL_FLOAT, GL_FALSE, Fiddle::SIZEOF_FLOAT * (3 + 3), nil)
glVertexAttribPointer(glGetAttribLocation(program, "inColor"), 3, GL_FLOAT, GL_FALSE, stride + position_stride, nil)
handleGlError
# normals
glVertexAttribPointer(glGetAttribLocation(program, "inNormal"), 4, GL_FLOAT, GL_FALSE, Fiddle::SIZEOF_FLOAT * (4 + 3 + 3), nil)
glVertexAttribPointer(glGetAttribLocation(program, "inNormal"), 4, GL_FLOAT, GL_FALSE, stride + position_stride + color_stride, nil)
handleGlError
# uvs
glVertexAttribPointer(glGetAttribLocation(program, "inUV"), 4, GL_FLOAT, GL_FALSE, Fiddle::SIZEOF_FLOAT * (3 + 4 + 3 + 3), nil)
glVertexAttribPointer(glGetAttribLocation(program, "inUV"), 3, GL_FLOAT, GL_FALSE, stride + position_stride + color_stride + normal_stride, nil)
handleGlError
# texture ids
glVertexAttribPointer(glGetAttribLocation(program, "inTextureID"), 1, GL_FLOAT, GL_FALSE, Fiddle::SIZEOF_FLOAT + (Fiddle::SIZEOF_FLOAT * (3 + 4 + 3 + 3)), nil)
glVertexAttribPointer(glGetAttribLocation(program, "inTextureID"), 1, GL_FLOAT, GL_FALSE, stride + position_stride + color_stride + normal_stride + uv_stride, nil)
handleGlError
glDisableVertexAttribArray(4)