forked from StrafesNET/strafe-client
no need for hardcoded image size
This commit is contained in:
parent
70e8f7a0ad
commit
2e786b090f
42
src/main.rs
42
src/main.rs
@ -2,8 +2,6 @@ use bytemuck::{Pod, Zeroable};
|
|||||||
use std::{borrow::Cow, time::Instant};
|
use std::{borrow::Cow, time::Instant};
|
||||||
use wgpu::{util::DeviceExt, AstcBlock, AstcChannel};
|
use wgpu::{util::DeviceExt, AstcBlock, AstcChannel};
|
||||||
|
|
||||||
const IMAGE_SIZE: u32 = 128;
|
|
||||||
|
|
||||||
#[derive(Clone, Copy, Pod, Zeroable)]
|
#[derive(Clone, Copy, Pod, Zeroable)]
|
||||||
#[repr(C)]
|
#[repr(C)]
|
||||||
struct Vertex {
|
struct Vertex {
|
||||||
@ -624,26 +622,6 @@ impl framework::Example for GraphicsData {
|
|||||||
wgpu::TextureFormat::Bgra8UnormSrgb
|
wgpu::TextureFormat::Bgra8UnormSrgb
|
||||||
};
|
};
|
||||||
|
|
||||||
let size = wgpu::Extent3d {
|
|
||||||
width: IMAGE_SIZE,
|
|
||||||
height: IMAGE_SIZE,
|
|
||||||
depth_or_array_layers: 6,
|
|
||||||
};
|
|
||||||
|
|
||||||
let layer_size = wgpu::Extent3d {
|
|
||||||
depth_or_array_layers: 1,
|
|
||||||
..size
|
|
||||||
};
|
|
||||||
let max_mips = layer_size.max_mips(wgpu::TextureDimension::D2);
|
|
||||||
|
|
||||||
log::debug!(
|
|
||||||
"Copying {:?} skybox images of size {}, {}, 6 with {} mips to gpu",
|
|
||||||
skybox_format,
|
|
||||||
IMAGE_SIZE,
|
|
||||||
IMAGE_SIZE,
|
|
||||||
max_mips,
|
|
||||||
);
|
|
||||||
|
|
||||||
let bytes = match skybox_format {
|
let bytes = match skybox_format {
|
||||||
wgpu::TextureFormat::Astc {
|
wgpu::TextureFormat::Astc {
|
||||||
block: AstcBlock::B4x4,
|
block: AstcBlock::B4x4,
|
||||||
@ -657,6 +635,26 @@ impl framework::Example for GraphicsData {
|
|||||||
|
|
||||||
let skybox_image = ddsfile::Dds::read(&mut std::io::Cursor::new(bytes)).unwrap();
|
let skybox_image = ddsfile::Dds::read(&mut std::io::Cursor::new(bytes)).unwrap();
|
||||||
|
|
||||||
|
let size = wgpu::Extent3d {
|
||||||
|
width: skybox_image.get_width(),
|
||||||
|
height: skybox_image.get_height(),
|
||||||
|
depth_or_array_layers: 6,
|
||||||
|
};
|
||||||
|
|
||||||
|
let layer_size = wgpu::Extent3d {
|
||||||
|
depth_or_array_layers: 1,
|
||||||
|
..size
|
||||||
|
};
|
||||||
|
let max_mips = layer_size.max_mips(wgpu::TextureDimension::D2);
|
||||||
|
|
||||||
|
log::debug!(
|
||||||
|
"Copying {:?} skybox images of size {}, {}, 6 with {} mips to gpu",
|
||||||
|
skybox_format,
|
||||||
|
size.width,
|
||||||
|
size.height,
|
||||||
|
max_mips,
|
||||||
|
);
|
||||||
|
|
||||||
let skybox_texture = device.create_texture_with_data(
|
let skybox_texture = device.create_texture_with_data(
|
||||||
queue,
|
queue,
|
||||||
&wgpu::TextureDescriptor {
|
&wgpu::TextureDescriptor {
|
||||||
|
Loading…
Reference in New Issue
Block a user