meep maap
This commit is contained in:
@@ -23,6 +23,3 @@ mgf = "1.4.0"
|
|||||||
[[bin]]
|
[[bin]]
|
||||||
name = "converter"
|
name = "converter"
|
||||||
path = "build/converter/src/main.rs"
|
path = "build/converter/src/main.rs"
|
||||||
|
|
||||||
[profile.dev.package."*"]
|
|
||||||
opt-level = 3
|
|
||||||
@@ -447,7 +447,7 @@ impl VulkanRenderer {
|
|||||||
device.clone(),
|
device.clone(),
|
||||||
dimensions,
|
dimensions,
|
||||||
format,
|
format,
|
||||||
MipmapsCount::Specific(13),
|
MipmapsCount::Log2,
|
||||||
usage,
|
usage,
|
||||||
layout,
|
layout,
|
||||||
device.active_queue_families(),
|
device.active_queue_families(),
|
||||||
@@ -456,7 +456,7 @@ impl VulkanRenderer {
|
|||||||
let init = SubImage::new(
|
let init = SubImage::new(
|
||||||
Arc::new(initializer),
|
Arc::new(initializer),
|
||||||
0,
|
0,
|
||||||
13,
|
image_view.mipmap_levels(),
|
||||||
0,
|
0,
|
||||||
1,
|
1,
|
||||||
ImageLayout::ShaderReadOnlyOptimal,
|
ImageLayout::ShaderReadOnlyOptimal,
|
||||||
@@ -464,15 +464,16 @@ impl VulkanRenderer {
|
|||||||
|
|
||||||
let mut cbb = AutoCommandBufferBuilder::new(device.clone(), self.queue.family()).unwrap();
|
let mut cbb = AutoCommandBufferBuilder::new(device.clone(), self.queue.family()).unwrap();
|
||||||
|
|
||||||
let mut offset: usize = 0;
|
let mut offset: usize = 128;
|
||||||
|
|
||||||
for i in 0..13 {
|
for i in 0..image_view.mipmap_levels() {
|
||||||
let mip_size = dimensions.to_image_dimensions().mipmap_dimensions(i).unwrap().width_height_depth();
|
let mip_size = dimensions.to_image_dimensions().mipmap_dimensions(i).unwrap().width_height_depth();
|
||||||
println!("Mip level {}, dimensions {:?}", i, mip_size);
|
|
||||||
|
|
||||||
// TODO: load sizes from DXT header instead
|
let block_bytes = 8;
|
||||||
// 4 bits per pixel in DXT1 -> 1/2 byte
|
let mip_byte_size = (
|
||||||
let mip_byte_size = ((mip_size[0] * mip_size[1]) / 2 + 8) as usize;
|
(u32::max(4, mip_size[0]) / 4)
|
||||||
|
* (u32::max(4, mip_size[1]) / 4)
|
||||||
|
* block_bytes) as usize;
|
||||||
|
|
||||||
let source = CpuAccessibleBuffer::from_iter(
|
let source = CpuAccessibleBuffer::from_iter(
|
||||||
device.clone(),
|
device.clone(),
|
||||||
@@ -505,8 +506,8 @@ impl VulkanRenderer {
|
|||||||
future.flush().unwrap();
|
future.flush().unwrap();
|
||||||
|
|
||||||
let sampler = Sampler::new(device.clone(), Filter::Linear, Filter::Linear,
|
let sampler = Sampler::new(device.clone(), Filter::Linear, Filter::Linear,
|
||||||
MipmapMode::Nearest, SamplerAddressMode::Repeat, SamplerAddressMode::Repeat,
|
MipmapMode::Linear, SamplerAddressMode::Repeat, SamplerAddressMode::Repeat,
|
||||||
SamplerAddressMode::Repeat, 0.0, 1.0, 0.0, 12 as f32).unwrap();
|
SamplerAddressMode::Repeat, 0.0, 1.0, 0.0, (image_view.mipmap_levels() - 1) as f32).unwrap();
|
||||||
|
|
||||||
self.game_data.textures.push(Texture { image: image_view, sampler });
|
self.game_data.textures.push(Texture { image: image_view, sampler });
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user