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 handleGlError
if Shader.available?("default") if Shader.available?("ddefault")
Shader.use("default") do |shader| Shader.use("default") do |shader|
glUniform3f(shader.attribute_location("worldPosition"), object.position.x, object.position.y, object.position.z) glUniform3f(shader.attribute_location("worldPosition"), object.position.x, object.position.y, object.position.z)
handleGlError handleGlError
draw_model(object.model) draw_mesh(object.model)
# draw_model(object.model)
object.draw object.draw
end end
else else

View File

@@ -24,7 +24,7 @@ class IMICFPS
@crosshair_color = Gosu::Color.rgb(255,127,0) @crosshair_color = Gosu::Color.rgb(255,127,0)
# @font = Gosu::Font.new(18, name: "DejaVu Sans") # @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: 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) 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 if list.size == 1
console.text_input.text = "#{split.first} #{split[1]} #{list.first} " console.text_input.text = "#{split.first} #{split[1]} #{list.first} "
else 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 end
end end

View File

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