engine/render: separate into rust_library

master
q3k 2021-07-11 01:21:16 +00:00
parent 081db95b45
commit fab7c59038
17 changed files with 98 additions and 44 deletions

View File

@ -1,5 +1,4 @@
load("@rules_rust//rust:rust.bzl", "rust_binary", "rust_library")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@rules_rust//rust:rust.bzl", "rust_library")
rust_library(
name = "engine",
@ -16,39 +15,18 @@ rust_library(
"lib.rs",
"globals.rs",
"input.rs",
"scripting.rs",
"render/mod.rs",
"render/light.rs",
"render/material.rs",
"render/mesh.rs",
"render/renderable.rs",
"render/resource.rs",
"render/vulkan/mod.rs",
"render/vulkan/data.rs",
"render/vulkan/material.rs",
"render/vulkan/pipeline.rs",
"render/vulkan/pipeline_forward.rs",
"render/vulkan/qfi.rs",
"render/vulkan/shaders.rs",
"render/vulkan/surface_binding.rs",
"render/vulkan/swapchain_binding.rs",
"render/vulkan/worker.rs",
],
deps = [
"//engine/util",
"//engine/physics",
"//engine/render",
"//lib/ecs",
"//third_party/cargo:cgmath",
"//third_party/cargo:image",
"//third_party/cargo:mlua",
"//third_party/cargo:winit",
"//third_party/cargo:log",
"//third_party/cargo:env_logger",
"//third_party/cargo:vulkano",
"//third_party/cargo:vulkano_win",
],
proc_macro_deps = [
"//lib/ecs_macros",

24
engine/input/BUILD.bazel Normal file
View File

@ -0,0 +1,24 @@
load("@rules_rust//rust:rust.bzl", "rust_library")
rust_library(
name = "input",
crate_name = "engine_input",
edition = "2018",
rustc_flags = [
"-C", "opt-level=3",
"-C", "overflow-checks=n",
"-C", "force-frame-pointers=y",
"-C", "lto=off",
"-Zpolonius",
"-Zborrowck=mir",
],
srcs = [
"lib.rs",
],
deps = [
"//lib/ecs",
],
visibility = [
"//visibility:public",
],
)

View File

@ -15,6 +15,4 @@
// Abrasion. If not, see <https://www.gnu.org/licenses/>.
pub mod globals;
pub mod input;
pub mod render;
pub mod scripting;

50
engine/render/BUILD.bazel Normal file
View File

@ -0,0 +1,50 @@
load("@rules_rust//rust:rust.bzl", "rust_library")
rust_library(
name = "render",
crate_name = "engine_render",
edition = "2018",
rustc_flags = [
"-C", "opt-level=3",
"-C", "overflow-checks=n",
"-C", "force-frame-pointers=y",
"-C", "lto=off",
"-Zpolonius",
"-Zborrowck=mir",
],
srcs = [
"lib.rs",
"light.rs",
"material.rs",
"mesh.rs",
"renderable.rs",
"resource.rs",
"vulkan/data.rs",
"vulkan/material.rs",
"vulkan/mod.rs",
"vulkan/pipeline.rs",
"vulkan/pipeline_forward.rs",
"vulkan/qfi.rs",
"vulkan/shaders.rs",
"vulkan/surface_binding.rs",
"vulkan/swapchain_binding.rs",
"vulkan/worker.rs",
],
deps = [
"//engine/input",
"//engine/util",
"//engine/physics",
"//lib/ecs",
"//third_party/cargo:cgmath",
"//third_party/cargo:image",
"//third_party/cargo:log",
"//third_party/cargo:mlua",
"//third_party/cargo:vulkano",
"//third_party/cargo:vulkano_win",
"//third_party/cargo:winit",
],
visibility = [
"//visibility:public",
],
)

View File

@ -49,7 +49,7 @@ pub use mesh::Mesh;
pub use renderable::{Transform, Renderable};
pub use resource::{Resource, ResourceID};
use crate::input;
use engine_input as input;
const WIDTH: u32 = 800;
const HEIGHT: u32 = 600;

View File

@ -20,7 +20,7 @@ use cgmath as cgm;
use engine_physics::color;
use crate::render::vulkan::data;
use crate::vulkan::data;
/// An Omni point light, with position in 3d space, and 'color' defined in lumens per CIE XYZ
/// color channel.

View File

@ -26,8 +26,8 @@ use vulkano::image as vm;
use engine_util::file;
use engine_physics::color;
use crate::render::vulkan::data;
use crate::render::vulkan::material::ChannelLayoutVulkan;
use crate::vulkan::data;
use crate::vulkan::material::ChannelLayoutVulkan;
#[derive(Debug)]
pub enum Texture<T: ChannelLayoutVulkan> {

View File

@ -22,7 +22,7 @@ use vulkano::device as vd;
use vulkano::buffer as vb;
use vulkano::sync::GpuFuture;
use crate::render::vulkan::data;
use crate::vulkan::data;
#[derive(Debug)]
pub struct Mesh {

View File

@ -21,8 +21,8 @@ use std::cell::Ref;
use cgmath as cgm;
use ecs::{Component, ComponentLuaBindings};
use crate::render::{Light, Mesh, Material};
use crate::render::resource::{ResourceID};
use crate::{Light, Mesh, Material};
use crate::resource::{ResourceID};
use mlua::ToLua;

View File

@ -1,7 +1,7 @@
use std::collections::BTreeMap;
use std::cmp::Ordering;
use crate::render::{Mesh, Material, Light};
use crate::{Mesh, Material, Light};
type Map<T> = BTreeMap<ResourceID<T>, T>;

View File

@ -40,8 +40,8 @@ mod shaders;
mod swapchain_binding;
mod worker;
use crate::render::{Light, Material, Mesh, ResourceID};
use crate::render::resource;
use crate::{Light, Material, Mesh, ResourceID};
use crate::resource;
const VERSION: vi::Version = vi::Version { major: 1, minor: 0, patch: 0};

View File

@ -21,7 +21,7 @@ use vulkano::pipeline as vp;
use vulkano::descriptor::descriptor_set as vdd;
use vulkano::memory as vm;
use crate::render::vulkan::data;
use crate::vulkan::data;
pub type VulkanoPipeline = dyn vp::GraphicsPipelineAbstract + Send + Sync;
pub type VulkanoDescriptorSet = dyn vdd::DescriptorSet + Send + Sync;

View File

@ -30,9 +30,9 @@ use vulkano::pipeline::shader as vps;
use vulkano::pipeline::vertex as vpv;
use vulkano::sampler as vs;
use crate::render::vulkan::data;
use crate::render::vulkan::shaders;
use crate::render::vulkan::pipeline;
use crate::vulkan::data;
use crate::vulkan::shaders;
use crate::vulkan::pipeline;
pub struct Forward {
pipeline: Arc<pipeline::VulkanoPipeline>,

View File

@ -2,7 +2,7 @@ use std::collections::BTreeMap;
use std::sync::{Arc, Mutex, RwLock, atomic};
use std::io::Read;
use crate::render;
use engine_render as render;
use engine_util as util;
use crate::globals::Time;

View File

@ -20,8 +20,10 @@ rust_binary(
],
deps = [
"//engine",
"//engine/input",
"//engine/util",
"//engine/physics",
"//engine/render",
"//lib/ecs",
"//third_party/cargo:cgmath",
"//third_party/cargo:env_logger",

View File

@ -2,9 +2,11 @@ use std::sync::Arc;
use cgmath as cgm;
use ecs_macros::Access;
use engine::{globals, input, render, scripting};
use engine::render::material;
use engine::render::vulkan::data;
use engine_input as input;
use engine_render as render;
use engine_render::material;
use engine_render::vulkan::data;
use engine::{globals, scripting};
use engine_physics as physics;
use engine_util as util;