mirror of
https://github.com/cyberarm/i-mic-fps.git
synced 2025-12-15 15:42:35 +00:00
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:
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user