text almost works
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
use std::{convert::TryInto, io::Read};
|
||||
|
||||
use vulkano::format::Format;
|
||||
use vulkano::{format::Format, sampler::Filter};
|
||||
|
||||
use super::VulkanRenderer;
|
||||
|
||||
@@ -26,14 +26,14 @@ pub fn upload_texture_from_file(path: &str, renderer: &mut VulkanRenderer) -> Re
|
||||
|
||||
if is_dxt1
|
||||
{
|
||||
renderer.upload_texture(&tex_bytes[128..], tex_width, tex_height, Format::BC1_RGBUnormBlock, renderer.device.clone());
|
||||
renderer.upload_texture(&tex_bytes[128..], tex_width, tex_height, Format::BC1_RGBUnormBlock, Filter::Linear, renderer.device.clone());
|
||||
}
|
||||
if is_dx10
|
||||
{
|
||||
let dxgi_type = u32::from_ne_bytes(tex_bytes[128..132].try_into()?);
|
||||
assert!(dxgi_type == 83); // BC5 Unorm Typeless
|
||||
|
||||
renderer.upload_texture(&tex_bytes[128+20..], tex_width, tex_height, Format::BC5UnormBlock, renderer.device.clone());
|
||||
renderer.upload_texture(&tex_bytes[128+20..], tex_width, tex_height, Format::BC5UnormBlock, Filter::Linear, renderer.device.clone());
|
||||
}
|
||||
|
||||
Ok(())
|
||||
|
||||
@@ -155,6 +155,7 @@ impl VulkanRenderer {
|
||||
ext_debug_utils: true,
|
||||
..vulkano_win::required_extensions()
|
||||
};
|
||||
println!("Using extensions: {:?}", extensions);
|
||||
|
||||
let app_info = ApplicationInfo {
|
||||
application_name: Some("Asuro's Editor".into()),
|
||||
@@ -454,7 +455,7 @@ impl VulkanRenderer {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn upload_texture(self: &mut Self, bytes: &[u8], width: u32, height: u32, format: Format, device: Arc<Device>) {
|
||||
pub fn upload_texture(self: &mut Self, bytes: &[u8], width: u32, height: u32, format: Format, filter: Filter, device: Arc<Device>) {
|
||||
let dimensions = Dimensions::Dim2d { width, height };
|
||||
|
||||
let usage = ImageUsage {
|
||||
@@ -538,7 +539,7 @@ impl VulkanRenderer {
|
||||
|
||||
future.flush().unwrap();
|
||||
|
||||
let sampler = Sampler::new(device.clone(), Filter::Linear, Filter::Linear,
|
||||
let sampler = Sampler::new(device.clone(), filter, filter,
|
||||
MipmapMode::Linear, SamplerAddressMode::Repeat, SamplerAddressMode::Repeat,
|
||||
SamplerAddressMode::Repeat, 0.0, 1.0, 0.0, (image_view.mipmap_levels() - 1) as f32).unwrap();
|
||||
|
||||
|
||||
@@ -142,8 +142,6 @@ impl Drawcall for DefaultShader {
|
||||
let mesh = &game_data.meshes[game_object.mesh_index];
|
||||
let push_constants = game_object.get_push_constants();
|
||||
|
||||
println!("default: {:?}", game_object.mesh_index);
|
||||
|
||||
builder.draw_indexed(
|
||||
self.pipeline.clone(),
|
||||
dynamic_state,
|
||||
@@ -328,11 +326,9 @@ impl Drawcall for TextShader {
|
||||
fn draw(self: &Self, builder: &mut AutoCommandBufferBuilder, fb_index: usize, game_objects: Vec<&GameObject>, game_data: &GameData, dynamic_state: &DynamicState) {
|
||||
for i in 0..game_objects.len() {
|
||||
let game_object = &game_objects[i];
|
||||
let mesh = &game_data.meshes[game_object.mesh_index];
|
||||
let mesh = &game_data.meshes_text[game_object.mesh_index];
|
||||
let push_constants = game_object.get_push_constants();
|
||||
|
||||
println!("text: {:?}", game_object.mesh_index);
|
||||
|
||||
builder.draw_indexed(
|
||||
self.pipeline.clone(),
|
||||
dynamic_state,
|
||||
|
||||
Reference in New Issue
Block a user