diff --git a/Cargo.lock b/Cargo.lock index 698b9a3..0c33b5e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -15,12 +15,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" -[[package]] -name = "adler32" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" - [[package]] name = "aho-corasick" version = "0.7.13" @@ -71,12 +65,6 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" -[[package]] -name = "byteorder" -version = "1.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" - [[package]] name = "cc" version = "1.0.58" @@ -118,69 +106,6 @@ dependencies = [ "cc", ] -[[package]] -name = "color_quant" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dbbb57365263e881e805dc77d94697c9118fd94d8da011240555aa7b23445bd" - -[[package]] -name = "crc32fast" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-deque" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", - "maybe-uninit", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" -dependencies = [ - "autocfg 1.0.0", - "cfg-if", - "crossbeam-utils", - "lazy_static", - "maybe-uninit", - "memoffset", - "scopeguard", -] - -[[package]] -name = "crossbeam-queue" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" -dependencies = [ - "cfg-if", - "crossbeam-utils", - "maybe-uninit", -] - -[[package]] -name = "crossbeam-utils" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" -dependencies = [ - "autocfg 1.0.0", - "cfg-if", - "lazy_static", -] - [[package]] name = "darling" version = "0.10.2" @@ -199,10 +124,10 @@ checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.19", - "quote 1.0.7", + "proc-macro2", + "quote", "strsim", - "syn 1.0.38", + "syn", ] [[package]] @@ -212,18 +137,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" dependencies = [ "darling_core", - "quote 1.0.7", - "syn 1.0.38", -] - -[[package]] -name = "deflate" -version = "0.7.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707b6a7b384888a70c8d2e8650b3e60170dfc6a67bb4aa67b6dfca57af4bedb4" -dependencies = [ - "adler32", - "byteorder", + "quote", + "syn", ] [[package]] @@ -233,21 +148,14 @@ dependencies = [ "cgmath", "gl", "human-panic", - "image", + "image2", "imgui-glfw-rs", "imgui-inspect", "imgui-inspect-derive", - "num", - "rand 0.7.3", + "inline_tweak", "tobj", ] -[[package]] -name = "either" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56b59865bce947ac5958779cfa508f6c3b9497cc762b7e24a12d11ccde2c4f" - [[package]] name = "fnv" version = "1.0.7" @@ -271,16 +179,6 @@ dependencies = [ "wasi", ] -[[package]] -name = "gif" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "471d90201b3b223f3451cd4ad53e34295f16a1df17b1edf3736d47761c3981af" -dependencies = [ - "color_quant", - "lzw", -] - [[package]] name = "gimli" version = "0.22.0" @@ -342,15 +240,6 @@ dependencies = [ "cmake", ] -[[package]] -name = "hermit-abi" -version = "0.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9" -dependencies = [ - "libc", -] - [[package]] name = "human-panic" version = "1.0.3" @@ -373,20 +262,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] -name = "image" -version = "0.22.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08ed2ada878397b045454ac7cfb011d73132c59f31a955d230bd1f1c2e68eb4a" +name = "image2" +version = "0.11.3" +source = "git+https://github.com/Leinnan/image2-rs?branch=legacy#e5d4de2a6e8647fb0cb444e09851c125f950e7ff" dependencies = [ - "byteorder", - "gif", - "jpeg-decoder", - "num-iter", - "num-rational 0.2.4", - "num-traits", - "png", - "scoped_threadpool", - "tiff", + "cc", + "lazy_static", + "num", ] [[package]] @@ -428,9 +310,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd0654249213b6df7aed82a4a1dd41d6e11533fa5a7a4b5ac0b282107d7cf73d" dependencies = [ "darling", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.38", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -453,22 +335,12 @@ dependencies = [ ] [[package]] -name = "inflate" -version = "0.4.5" +name = "inline_tweak" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cdb29978cc5797bd8dcc8e5bf7de604891df2a8dc576973d71a281e916db2ff" +checksum = "7033e97b20277cc0d043226d1940fa7719ff08d2305d1fc7421e53066d00eb4b" dependencies = [ - "adler32", -] - -[[package]] -name = "jpeg-decoder" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc797adac5f083b8ff0ca6f6294a999393d76e197c36488e2ef732c4715f6fa3" -dependencies = [ - "byteorder", - "rayon", + "lazy_static", ] [[package]] @@ -513,12 +385,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "lzw" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084" - [[package]] name = "malloc_buf" version = "0.0.6" @@ -528,27 +394,12 @@ dependencies = [ "libc", ] -[[package]] -name = "maybe-uninit" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" - [[package]] name = "memchr" version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" -[[package]] -name = "memoffset" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f" -dependencies = [ - "autocfg 1.0.0", -] - [[package]] name = "miniz_oxide" version = "0.4.0" @@ -568,7 +419,7 @@ dependencies = [ "num-complex", "num-integer", "num-iter", - "num-rational 0.3.0", + "num-rational", "num-traits", ] @@ -592,17 +443,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-derive" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eafd0b45c5537c3ba526f79d3e75120036502bebacbb3f3220914067ce39dbf2" -dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "syn 0.15.44", -] - [[package]] name = "num-integer" version = "0.1.43" @@ -624,17 +464,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-rational" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" -dependencies = [ - "autocfg 1.0.0", - "num-integer", - "num-traits", -] - [[package]] name = "num-rational" version = "0.3.0" @@ -656,16 +485,6 @@ dependencies = [ "autocfg 1.0.0", ] -[[package]] -name = "num_cpus" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" -dependencies = [ - "hermit-abi", - "libc", -] - [[package]] name = "objc" version = "0.2.7" @@ -714,49 +533,19 @@ dependencies = [ "winapi", ] -[[package]] -name = "png" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef859a23054bbfee7811284275ae522f0434a3c8e7f4b74bd4a35ae7e1c4a283" -dependencies = [ - "bitflags", - "crc32fast", - "deflate", - "inflate", -] - [[package]] name = "ppv-lite86" version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" -[[package]] -name = "proc-macro2" -version = "0.4.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" -dependencies = [ - "unicode-xid 0.1.0", -] - [[package]] name = "proc-macro2" version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12" dependencies = [ - "unicode-xid 0.2.1", -] - -[[package]] -name = "quote" -version = "0.6.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" -dependencies = [ - "proc-macro2 0.4.30", + "unicode-xid", ] [[package]] @@ -765,7 +554,7 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" dependencies = [ - "proc-macro2 1.0.19", + "proc-macro2", ] [[package]] @@ -924,31 +713,6 @@ dependencies = [ "libc", ] -[[package]] -name = "rayon" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f02856753d04e03e26929f820d0a0a337ebe71f849801eea335d464b349080" -dependencies = [ - "autocfg 1.0.0", - "crossbeam-deque", - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e92e15d89083484e11353891f1af602cc661426deb9564c298b270c726973280" -dependencies = [ - "crossbeam-deque", - "crossbeam-queue", - "crossbeam-utils", - "lazy_static", - "num_cpus", -] - [[package]] name = "rdrand" version = "0.4.0" @@ -988,12 +752,6 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" -[[package]] -name = "scoped_threadpool" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" - [[package]] name = "scopeguard" version = "1.1.0" @@ -1017,19 +775,19 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.115" +version = "1.0.116" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e54c9a88f2da7238af84b5101443f0c0d0a3bbdc455e34a5c9497b1903ed55d5" +checksum = "96fe57af81d28386a513cbc6858332abc6117cfdb5999647c6444b8f43a370a5" [[package]] name = "serde_derive" -version = "1.0.115" +version = "1.0.116" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "609feed1d0a73cc36a0182a840a9b37b4a82f0b1150369f0536a9e3f2a31dc48" +checksum = "f630a6370fd8e457873b4bd2ffdae75408bc291ba72be773772a4c2a065d9ae8" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.38", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -1044,26 +802,15 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" -[[package]] -name = "syn" -version = "0.15.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" -dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "unicode-xid 0.1.0", -] - [[package]] name = "syn" version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e69abc24912995b3038597a7a593be5053eb0fb44f3cc5beec0deb421790c1f4" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "unicode-xid 0.2.1", + "proc-macro2", + "quote", + "unicode-xid", ] [[package]] @@ -1084,18 +831,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "tiff" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7b7c2cfc4742bd8a32f2e614339dd8ce30dbcf676bb262bd63a2327bc5df57d" -dependencies = [ - "byteorder", - "lzw", - "num-derive", - "num-traits", -] - [[package]] name = "tobj" version = "2.0.2" @@ -1111,12 +846,6 @@ dependencies = [ "serde", ] -[[package]] -name = "unicode-xid" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" - [[package]] name = "unicode-xid" version = "0.2.1" diff --git a/Cargo.toml b/Cargo.toml index 4a384a6..f7836c9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,8 +4,6 @@ version = "0.1.0" authors = ["Piotr "] edition = "2018" -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - [profile.release] opt-level = 'z' panic = 'abort' @@ -14,17 +12,13 @@ lto = true [dependencies] cgmath = "0.17.0" gl = "0.14.0" -image = "0.22.5" imgui-glfw-rs = { git = "https://github.com/Leinnan/imgui-glfw-rs" } imgui-inspect = "0.5.0" imgui-inspect-derive = "0.5.0" -# only needed from chapter 3 on tobj = "2.0.2" -num = "0.3.0" -rand = "0.7.3" human-panic = "1.0.3" inline_tweak = "1.0.8" -image2 = { git = "https://github.com/Leinnan/image2-rs", features = [] } +image2 = { git = "https://github.com/Leinnan/image2-rs", branch="legacy", default-features = false, features=["io"] } # serde = "1.0.116" # serde_derive = "1.0.116" # assets_manager ={ version="0.3.2", features= ["ron", "bincode"]} diff --git a/src/gaia/utils.rs b/src/gaia/utils.rs index 875f779..01be941 100644 --- a/src/gaia/utils.rs +++ b/src/gaia/utils.rs @@ -1,25 +1,17 @@ use gl; -use image; -use image::DynamicImage::*; -use image::*; use image2::{ - ImageBuf, ImagePtr, - Rgb,Rgba, Gray, - Type, + Rgb,Rgba, io, - Filter, - filter::ToGrayscale }; -use image2::image::Image; use std::os::raw::c_void; use std::path::Path; -pub unsafe fn load_texture2(path: &str, file_format: &str) -> u32 { +pub unsafe fn load_texture(path: &str, file_format: &str) -> u32 { println!("[stb]Loading texture from path: {} with format {}", path, file_format); let mut id = 0; - + use image2::image::Image; gl::GenTextures(1, &mut id); let (data, dim, format) = match file_format { @@ -39,8 +31,6 @@ pub unsafe fn load_texture2(path: &str, file_format: &str) -> u32 { (img_data,(x as i32,y as i32),gl::RGB) }, - // _ => (io::read(path).unwrap() as ImageBuf,gl::RGBA), - // _ => (io::read_u8(path).unwrap() as ImagePtr,gl::RGB), }; gl::BindTexture(gl::TEXTURE_2D, id); @@ -69,56 +59,10 @@ pub unsafe fn load_texture2(path: &str, file_format: &str) -> u32 { id } - -pub unsafe fn load_texture(path: &str) -> u32 { - println!("Loading texture from path: {}", path); - let mut id = 0; - - gl::GenTextures(1, &mut id); - let img = image::open(&Path::new(path)).expect("Texture failed to load"); - let format = match img { - ImageLuma8(_) => gl::RED, - ImageLumaA8(_) => gl::RG, - ImageRgb8(_) => {println!("RGB for {}",path); - gl::RGB}, - ImageRgba8(_) => {println!("RGBA for {}",path); - gl::RGBA}, - _ => {println!("RGBA for {}",path); - gl::RGB}, - }; - let data = img.raw_pixels(); - let dim = img.dimensions(); - - gl::BindTexture(gl::TEXTURE_2D, id); - gl::TexImage2D( - gl::TEXTURE_2D, - 0, - format as i32, - dim.0 as i32, - dim.1 as i32, - 0, - format, - gl::UNSIGNED_BYTE, - &data[0] as *const u8 as *const c_void, - ); - gl::GenerateMipmap(gl::TEXTURE_2D); - - gl::TexParameteri(gl::TEXTURE_2D, gl::TEXTURE_WRAP_S, gl::REPEAT as i32); - gl::TexParameteri(gl::TEXTURE_2D, gl::TEXTURE_WRAP_T, gl::REPEAT as i32); - gl::TexParameteri( - gl::TEXTURE_2D, - gl::TEXTURE_MIN_FILTER, - gl::LINEAR_MIPMAP_LINEAR as i32, - ); - gl::TexParameteri(gl::TEXTURE_2D, gl::TEXTURE_MAG_FILTER, gl::LINEAR as i32); - - id -} - pub unsafe fn load_texture_from_dir(filename: &str, directory: &str) -> u32 { let fullpath = format!("{}/{}", directory, filename); let dot = filename.find(".").unwrap_or_default() + 1usize; let (_, format) = filename.split_at(dot); - load_texture2(&fullpath,format) + load_texture(&fullpath,format) } diff --git a/src/main.rs b/src/main.rs index 65b9ad1..f3463df 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,6 @@ #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] extern crate gl; -extern crate image; extern crate imgui_glfw_rs; use human_panic::setup_panic; #[macro_use]