1use crate::primitives::Frustum;
2
3use super::{
4 visibility::{Visibility, VisibleEntities},
5 ClearColorConfig, MsaaWriteback,
6};
7use bevy_asset::Handle;
8use bevy_derive::Deref;
9use bevy_ecs::{
10 component::Component, entity::Entity, reflect::ReflectComponent, template::FromTemplate,
11};
12use bevy_image::Image;
13use bevy_math::{ops, Dir3, FloatOrd, Mat4, Ray3d, Rect, URect, UVec2, Vec2, Vec3, Vec3A};
14use bevy_reflect::prelude::*;
15use bevy_transform::components::{GlobalTransform, Transform};
16use bevy_window::{NormalizedWindowRef, WindowRef};
17use core::ops::Range;
18use derive_more::derive::From;
19use thiserror::Error;
20use wgpu_types::{BlendState, TextureUsages};
21
22#[derive(const _: () =
{
impl bevy_reflect::GetTypeRegistration for Viewport where {
fn get_type_registration() -> bevy_reflect::TypeRegistration {
let mut registration =
bevy_reflect::TypeRegistration::of::<Self>();
registration.insert::<bevy_reflect::ReflectFromPtr>(bevy_reflect::FromType::<Self>::from_type());
registration.insert::<bevy_reflect::ReflectFromReflect>(bevy_reflect::FromType::<Self>::from_type());
registration.register_type_data::<ReflectDefault, Self>();
registration
}
#[inline(never)]
fn register_type_dependencies(registry:
&mut bevy_reflect::TypeRegistry) {
<UVec2 as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
<Range<f32> as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
}
}
impl bevy_reflect::Typed for Viewport where {
#[inline]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(||
{
bevy_reflect::TypeInfo::Struct(bevy_reflect::structs::StructInfo::new::<Self>(&[bevy_reflect::NamedField::new::<UVec2>("physical_position"),
bevy_reflect::NamedField::new::<UVec2>("physical_size"),
bevy_reflect::NamedField::new::<Range<f32>>("depth")]))
})
}
}
#[allow(deprecated, reason =
"derives on a deprecated type shouldn't be considered a usage")]
impl bevy_reflect::TypePath for Viewport where {
fn type_path() -> &'static str { "bevy_camera::camera::Viewport" }
fn short_type_path() -> &'static str { "Viewport" }
fn type_ident() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("Viewport")
}
fn crate_name() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera".split(':').next().unwrap())
}
fn module_path() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera")
}
}
impl bevy_reflect::Reflect for Viewport where {
#[inline]
fn into_any(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn ::core::any::Any> {
self
}
#[inline]
fn as_any(&self) -> &dyn ::core::any::Any { self }
#[inline]
fn as_any_mut(&mut self) -> &mut dyn ::core::any::Any { self }
#[inline]
fn into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect> {
self
}
#[inline]
fn as_reflect(&self) -> &dyn bevy_reflect::Reflect { self }
#[inline]
fn as_reflect_mut(&mut self) -> &mut dyn bevy_reflect::Reflect {
self
}
#[inline]
fn set(&mut self,
value:
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>)
->
::core::result::Result<(),
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>> {
*self = <dyn bevy_reflect::Reflect>::take(value)?;
::core::result::Result::Ok(())
}
}
#[allow(non_upper_case_globals)]
const _: () =
{
static __INVENTORY: ::inventory::Node =
::inventory::Node {
value: &{
bevy_reflect::__macro_exports::auto_register::AutomaticReflectRegistrations(<Viewport
as
bevy_reflect::__macro_exports::auto_register::RegisterForReflection>::__register)
},
next: ::inventory::__private::UnsafeCell::new(::inventory::__private::Option::None),
};
#[link_section = ".text.startup"]
unsafe extern "C" fn __ctor() {
unsafe {
::inventory::ErasedNode::submit(__INVENTORY.value,
&__INVENTORY)
}
}
#[used]
#[link_section = ".init_array"]
static __CTOR: unsafe extern "C" fn() = __ctor;
};
impl bevy_reflect::structs::Struct for Viewport where {
fn field(&self, name: &str)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match name {
"physical_position" =>
::core::option::Option::Some(&self.physical_position),
"physical_size" =>
::core::option::Option::Some(&self.physical_size),
"depth" => ::core::option::Option::Some(&self.depth),
_ => ::core::option::Option::None,
}
}
fn field_mut(&mut self, name: &str)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match name {
"physical_position" =>
::core::option::Option::Some(&mut self.physical_position),
"physical_size" =>
::core::option::Option::Some(&mut self.physical_size),
"depth" => ::core::option::Option::Some(&mut self.depth),
_ => ::core::option::Option::None,
}
}
fn field_at(&self, index: usize)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match index {
0usize =>
::core::option::Option::Some(&self.physical_position),
1usize => ::core::option::Option::Some(&self.physical_size),
2usize => ::core::option::Option::Some(&self.depth),
_ => ::core::option::Option::None,
}
}
fn field_at_mut(&mut self, index: usize)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match index {
0usize =>
::core::option::Option::Some(&mut self.physical_position),
1usize =>
::core::option::Option::Some(&mut self.physical_size),
2usize => ::core::option::Option::Some(&mut self.depth),
_ => ::core::option::Option::None,
}
}
fn name_at(&self, index: usize) -> ::core::option::Option<&str> {
match index {
0usize => ::core::option::Option::Some("physical_position"),
1usize => ::core::option::Option::Some("physical_size"),
2usize => ::core::option::Option::Some("depth"),
_ => ::core::option::Option::None,
}
}
fn index_of_name(&self, name: &str)
-> ::core::option::Option<usize> {
match name {
"physical_position" => ::core::option::Option::Some(0usize),
"physical_size" => ::core::option::Option::Some(1usize),
"depth" => ::core::option::Option::Some(2usize),
_ => ::core::option::Option::None,
}
}
fn field_len(&self) -> usize { 3usize }
fn iter_fields(&self) -> bevy_reflect::structs::FieldIter {
bevy_reflect::structs::FieldIter::new(self)
}
fn to_dynamic_struct(&self)
-> bevy_reflect::structs::DynamicStruct {
let mut dynamic: bevy_reflect::structs::DynamicStruct =
::core::default::Default::default();
dynamic.set_represented_type(bevy_reflect::PartialReflect::get_represented_type_info(self));
dynamic.insert_boxed("physical_position",
bevy_reflect::PartialReflect::to_dynamic(&self.physical_position));
dynamic.insert_boxed("physical_size",
bevy_reflect::PartialReflect::to_dynamic(&self.physical_size));
dynamic.insert_boxed("depth",
bevy_reflect::PartialReflect::to_dynamic(&self.depth));
dynamic
}
}
impl bevy_reflect::PartialReflect for Viewport where {
#[inline]
fn get_represented_type_info(&self)
-> ::core::option::Option<&'static bevy_reflect::TypeInfo> {
::core::option::Option::Some(<Self as
bevy_reflect::Typed>::type_info())
}
#[inline]
fn try_apply(&mut self, value: &dyn bevy_reflect::PartialReflect)
-> ::core::result::Result<(), bevy_reflect::ApplyError> {
if let bevy_reflect::ReflectRef::Struct(struct_value) =
bevy_reflect::PartialReflect::reflect_ref(value) {
for (name, value) in
bevy_reflect::structs::Struct::iter_fields(struct_value) {
if let ::core::option::Option::Some(v) =
bevy_reflect::structs::Struct::field_mut(self, name) {
bevy_reflect::PartialReflect::try_apply(v, value)?;
}
}
} else {
return ::core::result::Result::Err(bevy_reflect::ApplyError::MismatchedKinds {
from_kind: bevy_reflect::PartialReflect::reflect_kind(value),
to_kind: bevy_reflect::ReflectKind::Struct,
});
}
::core::result::Result::Ok(())
}
#[inline]
fn reflect_kind(&self) -> bevy_reflect::ReflectKind {
bevy_reflect::ReflectKind::Struct
}
#[inline]
fn reflect_ref(&self) -> bevy_reflect::ReflectRef {
bevy_reflect::ReflectRef::Struct(self)
}
#[inline]
fn reflect_mut(&mut self) -> bevy_reflect::ReflectMut {
bevy_reflect::ReflectMut::Struct(self)
}
#[inline]
fn reflect_owned(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
-> bevy_reflect::ReflectOwned {
bevy_reflect::ReflectOwned::Struct(self)
}
#[inline]
fn try_into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>> {
::core::result::Result::Ok(self)
}
#[inline]
fn try_as_reflect(&self)
-> ::core::option::Option<&dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn try_as_reflect_mut(&mut self)
-> ::core::option::Option<&mut dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn into_partial_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
self
}
#[inline]
fn as_partial_reflect(&self)
-> &dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn as_partial_reflect_mut(&mut self)
-> &mut dyn bevy_reflect::PartialReflect {
self
}
fn reflect_partial_eq(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<bool> {
(bevy_reflect::structs::struct_partial_eq)(self, value)
}
fn reflect_partial_cmp(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<::core::cmp::Ordering> {
(bevy_reflect::structs::struct_partial_cmp)(self, value)
}
#[inline]
fn reflect_clone(&self)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::ReflectCloneError> {
::core::result::Result::Ok(bevy_reflect::__macro_exports::alloc_utils::Box::new(::core::clone::Clone::clone(self)))
}
}
impl bevy_reflect::FromReflect for Viewport where {
fn from_reflect(reflect: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<Self> {
if let bevy_reflect::ReflectRef::Struct(__ref_struct) =
bevy_reflect::PartialReflect::reflect_ref(reflect) {
let mut __this =
<Self as ::core::default::Default>::default();
if let ::core::option::Option::Some(__field) =
(||
<UVec2 as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"physical_position")?))() {
__this.physical_position = __field;
}
if let ::core::option::Option::Some(__field) =
(||
<UVec2 as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"physical_size")?))() {
__this.physical_size = __field;
}
if let ::core::option::Option::Some(__field) =
(||
<Range<f32> as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"depth")?))() {
__this.depth = __field;
}
::core::option::Option::Some(__this)
} else { ::core::option::Option::None }
}
}
};Reflect, #[automatically_derived]
impl ::core::fmt::Debug for Viewport {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field3_finish(f, "Viewport",
"physical_position", &self.physical_position, "physical_size",
&self.physical_size, "depth", &&self.depth)
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for Viewport {
#[inline]
fn clone(&self) -> Viewport {
Viewport {
physical_position: ::core::clone::Clone::clone(&self.physical_position),
physical_size: ::core::clone::Clone::clone(&self.physical_size),
depth: ::core::clone::Clone::clone(&self.depth),
}
}
}Clone)]
61#[reflect(Default, Clone)]
62pub struct Viewport {
63 pub physical_position: UVec2,
66 pub physical_size: UVec2,
69 pub depth: Range<f32>,
71}
72
73impl Default for Viewport {
74 fn default() -> Self {
75 Self {
76 physical_position: Default::default(),
77 physical_size: UVec2::new(1, 1),
78 depth: 0.0..1.0,
79 }
80 }
81}
82
83impl Viewport {
84 pub fn clamp_to_size(&mut self, size: UVec2) {
92 if self.physical_size.x + self.physical_position.x > size.x {
95 if self.physical_position.x < size.x {
96 self.physical_size.x = size.x - self.physical_position.x;
97 } else if size.x > 0 {
98 self.physical_position.x = size.x - 1;
99 self.physical_size.x = 1;
100 } else {
101 self.physical_position.x = 0;
102 self.physical_size.x = 0;
103 }
104 }
105 if self.physical_size.y + self.physical_position.y > size.y {
106 if self.physical_position.y < size.y {
107 self.physical_size.y = size.y - self.physical_position.y;
108 } else if size.y > 0 {
109 self.physical_position.y = size.y - 1;
110 self.physical_size.y = 1;
111 } else {
112 self.physical_position.y = 0;
113 self.physical_size.y = 0;
114 }
115 }
116 }
117
118 pub fn from_viewport_and_override(
119 viewport: Option<&Self>,
120 main_pass_resolution_override: Option<&MainPassResolutionOverride>,
121 ) -> Option<Self> {
122 if let Some(override_size) = main_pass_resolution_override {
123 let mut vp = viewport.map_or_else(Self::default, Self::clone);
124 vp.physical_size = **override_size;
125 Some(vp)
126 } else {
127 viewport.cloned()
128 }
129 }
130}
131
132#[derive(impl bevy_ecs::component::Component for MainPassResolutionOverride where
Self: ::core::marker::Send + ::core::marker::Sync + 'static {
const STORAGE_TYPE: bevy_ecs::component::StorageType =
bevy_ecs::component::StorageType::Table;
type Mutability = bevy_ecs::component::Mutable;
fn register_required_components(_requiree:
bevy_ecs::component::ComponentId,
required_components:
&mut bevy_ecs::component::RequiredComponentsRegistrator) {}
fn clone_behavior() -> bevy_ecs::component::ComponentCloneBehavior {
use bevy_ecs::component::{
DefaultCloneBehaviorBase, DefaultCloneBehaviorViaClone,
};
(&&&bevy_ecs::component::DefaultCloneBehaviorSpecialization::<Self>::default()).default_clone_behavior()
}
fn relationship_accessor()
->
::core::option::Option<bevy_ecs::relationship::ComponentRelationshipAccessor<Self>> {
::core::option::Option::None
}
}Component, const _: () =
{
impl bevy_reflect::GetTypeRegistration for MainPassResolutionOverride
where {
fn get_type_registration() -> bevy_reflect::TypeRegistration {
let mut registration =
bevy_reflect::TypeRegistration::of::<Self>();
registration.insert::<bevy_reflect::ReflectFromPtr>(bevy_reflect::FromType::<Self>::from_type());
registration.insert::<bevy_reflect::ReflectFromReflect>(bevy_reflect::FromType::<Self>::from_type());
registration.register_type_data::<ReflectComponent, Self>();
registration
}
#[inline(never)]
fn register_type_dependencies(registry:
&mut bevy_reflect::TypeRegistry) {
<UVec2 as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
}
}
impl bevy_reflect::Typed for MainPassResolutionOverride where {
#[inline]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(||
{
bevy_reflect::TypeInfo::TupleStruct(bevy_reflect::tuple_struct::TupleStructInfo::new::<Self>(&[bevy_reflect::UnnamedField::new::<UVec2>(0usize)]))
})
}
}
#[allow(deprecated, reason =
"derives on a deprecated type shouldn't be considered a usage")]
impl bevy_reflect::TypePath for MainPassResolutionOverride where {
fn type_path() -> &'static str {
"bevy_camera::camera::MainPassResolutionOverride"
}
fn short_type_path() -> &'static str {
"MainPassResolutionOverride"
}
fn type_ident() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("MainPassResolutionOverride")
}
fn crate_name() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera".split(':').next().unwrap())
}
fn module_path() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera")
}
}
impl bevy_reflect::Reflect for MainPassResolutionOverride where {
#[inline]
fn into_any(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn ::core::any::Any> {
self
}
#[inline]
fn as_any(&self) -> &dyn ::core::any::Any { self }
#[inline]
fn as_any_mut(&mut self) -> &mut dyn ::core::any::Any { self }
#[inline]
fn into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect> {
self
}
#[inline]
fn as_reflect(&self) -> &dyn bevy_reflect::Reflect { self }
#[inline]
fn as_reflect_mut(&mut self) -> &mut dyn bevy_reflect::Reflect {
self
}
#[inline]
fn set(&mut self,
value:
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>)
->
::core::result::Result<(),
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>> {
*self = <dyn bevy_reflect::Reflect>::take(value)?;
::core::result::Result::Ok(())
}
}
#[allow(non_upper_case_globals)]
const _: () =
{
static __INVENTORY: ::inventory::Node =
::inventory::Node {
value: &{
bevy_reflect::__macro_exports::auto_register::AutomaticReflectRegistrations(<MainPassResolutionOverride
as
bevy_reflect::__macro_exports::auto_register::RegisterForReflection>::__register)
},
next: ::inventory::__private::UnsafeCell::new(::inventory::__private::Option::None),
};
#[link_section = ".text.startup"]
unsafe extern "C" fn __ctor() {
unsafe {
::inventory::ErasedNode::submit(__INVENTORY.value,
&__INVENTORY)
}
}
#[used]
#[link_section = ".init_array"]
static __CTOR: unsafe extern "C" fn() = __ctor;
};
impl bevy_reflect::tuple_struct::TupleStruct for
MainPassResolutionOverride where {
fn field(&self, index: usize)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match index {
0usize => ::core::option::Option::Some(&self.0),
_ => ::core::option::Option::None,
}
}
fn field_mut(&mut self, index: usize)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match index {
0usize => ::core::option::Option::Some(&mut self.0),
_ => ::core::option::Option::None,
}
}
#[inline]
fn field_len(&self) -> usize { 1usize }
#[inline]
fn iter_fields(&self)
-> bevy_reflect::tuple_struct::TupleStructFieldIter {
bevy_reflect::tuple_struct::TupleStructFieldIter::new(self)
}
fn to_dynamic_tuple_struct(&self)
-> bevy_reflect::tuple_struct::DynamicTupleStruct {
let mut dynamic:
bevy_reflect::tuple_struct::DynamicTupleStruct =
::core::default::Default::default();
dynamic.set_represented_type(bevy_reflect::PartialReflect::get_represented_type_info(self));
dynamic.insert_boxed(bevy_reflect::PartialReflect::to_dynamic(&self.0));
dynamic
}
}
impl bevy_reflect::PartialReflect for MainPassResolutionOverride where
{
#[inline]
fn get_represented_type_info(&self)
-> ::core::option::Option<&'static bevy_reflect::TypeInfo> {
::core::option::Option::Some(<Self as
bevy_reflect::Typed>::type_info())
}
#[inline]
fn try_apply(&mut self, value: &dyn bevy_reflect::PartialReflect)
-> ::core::result::Result<(), bevy_reflect::ApplyError> {
if let bevy_reflect::ReflectRef::TupleStruct(struct_value) =
bevy_reflect::PartialReflect::reflect_ref(value) {
for (i, value) in
::core::iter::Iterator::enumerate(bevy_reflect::tuple_struct::TupleStruct::iter_fields(struct_value))
{
if let ::core::option::Option::Some(v) =
bevy_reflect::tuple_struct::TupleStruct::field_mut(self, i)
{
bevy_reflect::PartialReflect::try_apply(v, value)?;
}
}
} else {
return ::core::result::Result::Err(bevy_reflect::ApplyError::MismatchedKinds {
from_kind: bevy_reflect::PartialReflect::reflect_kind(value),
to_kind: bevy_reflect::ReflectKind::TupleStruct,
});
}
::core::result::Result::Ok(())
}
#[inline]
fn reflect_kind(&self) -> bevy_reflect::ReflectKind {
bevy_reflect::ReflectKind::TupleStruct
}
#[inline]
fn reflect_ref(&self) -> bevy_reflect::ReflectRef {
bevy_reflect::ReflectRef::TupleStruct(self)
}
#[inline]
fn reflect_mut(&mut self) -> bevy_reflect::ReflectMut {
bevy_reflect::ReflectMut::TupleStruct(self)
}
#[inline]
fn reflect_owned(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
-> bevy_reflect::ReflectOwned {
bevy_reflect::ReflectOwned::TupleStruct(self)
}
#[inline]
fn try_into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>> {
::core::result::Result::Ok(self)
}
#[inline]
fn try_as_reflect(&self)
-> ::core::option::Option<&dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn try_as_reflect_mut(&mut self)
-> ::core::option::Option<&mut dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn into_partial_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
self
}
#[inline]
fn as_partial_reflect(&self)
-> &dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn as_partial_reflect_mut(&mut self)
-> &mut dyn bevy_reflect::PartialReflect {
self
}
fn reflect_partial_eq(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<bool> {
(bevy_reflect::tuple_struct::tuple_struct_partial_eq)(self,
value)
}
fn reflect_partial_cmp(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<::core::cmp::Ordering> {
(bevy_reflect::tuple_struct::tuple_struct_partial_cmp)(self,
value)
}
#[inline]
#[allow(unreachable_code, reason =
"Ignored fields without a `clone` attribute will early-return with an error")]
fn reflect_clone(&self)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::ReflectCloneError> {
::core::result::Result::Ok(bevy_reflect::__macro_exports::alloc_utils::Box::new(Self {
0: <UVec2 as
bevy_reflect::PartialReflect>::reflect_clone_and_take(&self.0)?,
}))
}
}
impl bevy_reflect::FromReflect for MainPassResolutionOverride where {
fn from_reflect(reflect: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<Self> {
if let bevy_reflect::ReflectRef::TupleStruct(__ref_struct) =
bevy_reflect::PartialReflect::reflect_ref(reflect) {
let __this =
Self {
0: <UVec2 as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::tuple_struct::TupleStruct::field(__ref_struct,
0)?)?,
};
::core::option::Option::Some(__this)
} else { ::core::option::Option::None }
}
}
};Reflect, impl ::core::ops::Deref for MainPassResolutionOverride {
type Target = UVec2;
fn deref(&self) -> &Self::Target { &self.0 }
}Deref, #[automatically_derived]
impl ::core::fmt::Debug for MainPassResolutionOverride {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"MainPassResolutionOverride", &&self.0)
}
}Debug)]
143#[reflect(Component)]
144pub struct MainPassResolutionOverride(pub UVec2);
145
146#[derive(#[automatically_derived]
impl ::core::fmt::Debug for SubCameraView {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field3_finish(f, "SubCameraView",
"full_size", &self.full_size, "offset", &self.offset, "size",
&&self.size)
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for SubCameraView {
#[inline]
fn clone(&self) -> SubCameraView {
let _: ::core::clone::AssertParamIsClone<UVec2>;
let _: ::core::clone::AssertParamIsClone<Vec2>;
*self
}
}Clone, #[automatically_derived]
impl ::core::marker::Copy for SubCameraView { }Copy, const _: () =
{
impl bevy_reflect::GetTypeRegistration for SubCameraView where {
fn get_type_registration() -> bevy_reflect::TypeRegistration {
let mut registration =
bevy_reflect::TypeRegistration::of::<Self>();
registration.insert::<bevy_reflect::ReflectFromPtr>(bevy_reflect::FromType::<Self>::from_type());
registration.insert::<bevy_reflect::ReflectFromReflect>(bevy_reflect::FromType::<Self>::from_type());
registration.register_type_data::<ReflectDefault, Self>();
registration
}
#[inline(never)]
fn register_type_dependencies(registry:
&mut bevy_reflect::TypeRegistry) {
<UVec2 as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
<Vec2 as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
}
}
impl bevy_reflect::Typed for SubCameraView where {
#[inline]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(||
{
bevy_reflect::TypeInfo::Struct(bevy_reflect::structs::StructInfo::new::<Self>(&[bevy_reflect::NamedField::new::<UVec2>("full_size"),
bevy_reflect::NamedField::new::<Vec2>("offset"),
bevy_reflect::NamedField::new::<UVec2>("size")]))
})
}
}
#[allow(deprecated, reason =
"derives on a deprecated type shouldn't be considered a usage")]
impl bevy_reflect::TypePath for SubCameraView where {
fn type_path() -> &'static str {
"bevy_camera::camera::SubCameraView"
}
fn short_type_path() -> &'static str { "SubCameraView" }
fn type_ident() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("SubCameraView")
}
fn crate_name() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera".split(':').next().unwrap())
}
fn module_path() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera")
}
}
impl bevy_reflect::Reflect for SubCameraView where {
#[inline]
fn into_any(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn ::core::any::Any> {
self
}
#[inline]
fn as_any(&self) -> &dyn ::core::any::Any { self }
#[inline]
fn as_any_mut(&mut self) -> &mut dyn ::core::any::Any { self }
#[inline]
fn into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect> {
self
}
#[inline]
fn as_reflect(&self) -> &dyn bevy_reflect::Reflect { self }
#[inline]
fn as_reflect_mut(&mut self) -> &mut dyn bevy_reflect::Reflect {
self
}
#[inline]
fn set(&mut self,
value:
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>)
->
::core::result::Result<(),
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>> {
*self = <dyn bevy_reflect::Reflect>::take(value)?;
::core::result::Result::Ok(())
}
}
#[allow(non_upper_case_globals)]
const _: () =
{
static __INVENTORY: ::inventory::Node =
::inventory::Node {
value: &{
bevy_reflect::__macro_exports::auto_register::AutomaticReflectRegistrations(<SubCameraView
as
bevy_reflect::__macro_exports::auto_register::RegisterForReflection>::__register)
},
next: ::inventory::__private::UnsafeCell::new(::inventory::__private::Option::None),
};
#[link_section = ".text.startup"]
unsafe extern "C" fn __ctor() {
unsafe {
::inventory::ErasedNode::submit(__INVENTORY.value,
&__INVENTORY)
}
}
#[used]
#[link_section = ".init_array"]
static __CTOR: unsafe extern "C" fn() = __ctor;
};
impl bevy_reflect::structs::Struct for SubCameraView where {
fn field(&self, name: &str)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match name {
"full_size" =>
::core::option::Option::Some(&self.full_size),
"offset" => ::core::option::Option::Some(&self.offset),
"size" => ::core::option::Option::Some(&self.size),
_ => ::core::option::Option::None,
}
}
fn field_mut(&mut self, name: &str)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match name {
"full_size" =>
::core::option::Option::Some(&mut self.full_size),
"offset" => ::core::option::Option::Some(&mut self.offset),
"size" => ::core::option::Option::Some(&mut self.size),
_ => ::core::option::Option::None,
}
}
fn field_at(&self, index: usize)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match index {
0usize => ::core::option::Option::Some(&self.full_size),
1usize => ::core::option::Option::Some(&self.offset),
2usize => ::core::option::Option::Some(&self.size),
_ => ::core::option::Option::None,
}
}
fn field_at_mut(&mut self, index: usize)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match index {
0usize => ::core::option::Option::Some(&mut self.full_size),
1usize => ::core::option::Option::Some(&mut self.offset),
2usize => ::core::option::Option::Some(&mut self.size),
_ => ::core::option::Option::None,
}
}
fn name_at(&self, index: usize) -> ::core::option::Option<&str> {
match index {
0usize => ::core::option::Option::Some("full_size"),
1usize => ::core::option::Option::Some("offset"),
2usize => ::core::option::Option::Some("size"),
_ => ::core::option::Option::None,
}
}
fn index_of_name(&self, name: &str)
-> ::core::option::Option<usize> {
match name {
"full_size" => ::core::option::Option::Some(0usize),
"offset" => ::core::option::Option::Some(1usize),
"size" => ::core::option::Option::Some(2usize),
_ => ::core::option::Option::None,
}
}
fn field_len(&self) -> usize { 3usize }
fn iter_fields(&self) -> bevy_reflect::structs::FieldIter {
bevy_reflect::structs::FieldIter::new(self)
}
fn to_dynamic_struct(&self)
-> bevy_reflect::structs::DynamicStruct {
let mut dynamic: bevy_reflect::structs::DynamicStruct =
::core::default::Default::default();
dynamic.set_represented_type(bevy_reflect::PartialReflect::get_represented_type_info(self));
dynamic.insert_boxed("full_size",
bevy_reflect::PartialReflect::to_dynamic(&self.full_size));
dynamic.insert_boxed("offset",
bevy_reflect::PartialReflect::to_dynamic(&self.offset));
dynamic.insert_boxed("size",
bevy_reflect::PartialReflect::to_dynamic(&self.size));
dynamic
}
}
impl bevy_reflect::PartialReflect for SubCameraView where {
#[inline]
fn get_represented_type_info(&self)
-> ::core::option::Option<&'static bevy_reflect::TypeInfo> {
::core::option::Option::Some(<Self as
bevy_reflect::Typed>::type_info())
}
#[inline]
fn try_apply(&mut self, value: &dyn bevy_reflect::PartialReflect)
-> ::core::result::Result<(), bevy_reflect::ApplyError> {
if let bevy_reflect::ReflectRef::Struct(struct_value) =
bevy_reflect::PartialReflect::reflect_ref(value) {
for (name, value) in
bevy_reflect::structs::Struct::iter_fields(struct_value) {
if let ::core::option::Option::Some(v) =
bevy_reflect::structs::Struct::field_mut(self, name) {
bevy_reflect::PartialReflect::try_apply(v, value)?;
}
}
} else {
return ::core::result::Result::Err(bevy_reflect::ApplyError::MismatchedKinds {
from_kind: bevy_reflect::PartialReflect::reflect_kind(value),
to_kind: bevy_reflect::ReflectKind::Struct,
});
}
::core::result::Result::Ok(())
}
#[inline]
fn reflect_kind(&self) -> bevy_reflect::ReflectKind {
bevy_reflect::ReflectKind::Struct
}
#[inline]
fn reflect_ref(&self) -> bevy_reflect::ReflectRef {
bevy_reflect::ReflectRef::Struct(self)
}
#[inline]
fn reflect_mut(&mut self) -> bevy_reflect::ReflectMut {
bevy_reflect::ReflectMut::Struct(self)
}
#[inline]
fn reflect_owned(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
-> bevy_reflect::ReflectOwned {
bevy_reflect::ReflectOwned::Struct(self)
}
#[inline]
fn try_into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>> {
::core::result::Result::Ok(self)
}
#[inline]
fn try_as_reflect(&self)
-> ::core::option::Option<&dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn try_as_reflect_mut(&mut self)
-> ::core::option::Option<&mut dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn into_partial_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
self
}
#[inline]
fn as_partial_reflect(&self)
-> &dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn as_partial_reflect_mut(&mut self)
-> &mut dyn bevy_reflect::PartialReflect {
self
}
fn reflect_partial_eq(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<bool> {
let value =
<dyn bevy_reflect::PartialReflect>::try_downcast_ref::<Self>(value);
if let ::core::option::Option::Some(value) = value {
::core::option::Option::Some(::core::cmp::PartialEq::eq(self,
value))
} else { ::core::option::Option::Some(false) }
}
fn reflect_partial_cmp(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<::core::cmp::Ordering> {
(bevy_reflect::structs::struct_partial_cmp)(self, value)
}
#[inline]
fn reflect_clone(&self)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::ReflectCloneError> {
::core::result::Result::Ok(bevy_reflect::__macro_exports::alloc_utils::Box::new(::core::clone::Clone::clone(self)))
}
}
impl bevy_reflect::FromReflect for SubCameraView where {
fn from_reflect(reflect: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<Self> {
if let bevy_reflect::ReflectRef::Struct(__ref_struct) =
bevy_reflect::PartialReflect::reflect_ref(reflect) {
let mut __this =
<Self as ::core::default::Default>::default();
if let ::core::option::Option::Some(__field) =
(||
<UVec2 as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"full_size")?))() {
__this.full_size = __field;
}
if let ::core::option::Option::Some(__field) =
(||
<Vec2 as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"offset")?))() {
__this.offset = __field;
}
if let ::core::option::Option::Some(__field) =
(||
<UVec2 as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"size")?))() {
__this.size = __field;
}
::core::option::Option::Some(__this)
} else { ::core::option::Option::None }
}
}
};Reflect, #[automatically_derived]
impl ::core::cmp::PartialEq for SubCameraView {
#[inline]
fn eq(&self, other: &SubCameraView) -> bool {
self.full_size == other.full_size && self.offset == other.offset &&
self.size == other.size
}
}PartialEq)]
175#[reflect(Clone, PartialEq, Default)]
176pub struct SubCameraView {
177 pub full_size: UVec2,
179 pub offset: Vec2,
181 pub size: UVec2,
183}
184
185impl Default for SubCameraView {
186 fn default() -> Self {
187 Self {
188 full_size: UVec2::new(1, 1),
189 offset: Vec2::new(0., 0.),
190 size: UVec2::new(1, 1),
191 }
192 }
193}
194
195#[derive(#[automatically_derived]
impl ::core::fmt::Debug for RenderTargetInfo {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field2_finish(f,
"RenderTargetInfo", "physical_size", &self.physical_size,
"scale_factor", &&self.scale_factor)
}
}Debug, const _: () =
{
impl bevy_reflect::GetTypeRegistration for RenderTargetInfo where {
fn get_type_registration() -> bevy_reflect::TypeRegistration {
let mut registration =
bevy_reflect::TypeRegistration::of::<Self>();
registration.insert::<bevy_reflect::ReflectFromPtr>(bevy_reflect::FromType::<Self>::from_type());
registration.insert::<bevy_reflect::ReflectFromReflect>(bevy_reflect::FromType::<Self>::from_type());
registration
}
#[inline(never)]
fn register_type_dependencies(registry:
&mut bevy_reflect::TypeRegistry) {
<UVec2 as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
<f32 as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
}
}
impl bevy_reflect::Typed for RenderTargetInfo where {
#[inline]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(||
{
bevy_reflect::TypeInfo::Struct(bevy_reflect::structs::StructInfo::new::<Self>(&[bevy_reflect::NamedField::new::<UVec2>("physical_size"),
bevy_reflect::NamedField::new::<f32>("scale_factor")]))
})
}
}
#[allow(deprecated, reason =
"derives on a deprecated type shouldn't be considered a usage")]
impl bevy_reflect::TypePath for RenderTargetInfo where {
fn type_path() -> &'static str {
"bevy_camera::camera::RenderTargetInfo"
}
fn short_type_path() -> &'static str { "RenderTargetInfo" }
fn type_ident() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("RenderTargetInfo")
}
fn crate_name() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera".split(':').next().unwrap())
}
fn module_path() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera")
}
}
impl bevy_reflect::Reflect for RenderTargetInfo where {
#[inline]
fn into_any(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn ::core::any::Any> {
self
}
#[inline]
fn as_any(&self) -> &dyn ::core::any::Any { self }
#[inline]
fn as_any_mut(&mut self) -> &mut dyn ::core::any::Any { self }
#[inline]
fn into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect> {
self
}
#[inline]
fn as_reflect(&self) -> &dyn bevy_reflect::Reflect { self }
#[inline]
fn as_reflect_mut(&mut self) -> &mut dyn bevy_reflect::Reflect {
self
}
#[inline]
fn set(&mut self,
value:
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>)
->
::core::result::Result<(),
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>> {
*self = <dyn bevy_reflect::Reflect>::take(value)?;
::core::result::Result::Ok(())
}
}
#[allow(non_upper_case_globals)]
const _: () =
{
static __INVENTORY: ::inventory::Node =
::inventory::Node {
value: &{
bevy_reflect::__macro_exports::auto_register::AutomaticReflectRegistrations(<RenderTargetInfo
as
bevy_reflect::__macro_exports::auto_register::RegisterForReflection>::__register)
},
next: ::inventory::__private::UnsafeCell::new(::inventory::__private::Option::None),
};
#[link_section = ".text.startup"]
unsafe extern "C" fn __ctor() {
unsafe {
::inventory::ErasedNode::submit(__INVENTORY.value,
&__INVENTORY)
}
}
#[used]
#[link_section = ".init_array"]
static __CTOR: unsafe extern "C" fn() = __ctor;
};
impl bevy_reflect::structs::Struct for RenderTargetInfo where {
fn field(&self, name: &str)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match name {
"physical_size" =>
::core::option::Option::Some(&self.physical_size),
"scale_factor" =>
::core::option::Option::Some(&self.scale_factor),
_ => ::core::option::Option::None,
}
}
fn field_mut(&mut self, name: &str)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match name {
"physical_size" =>
::core::option::Option::Some(&mut self.physical_size),
"scale_factor" =>
::core::option::Option::Some(&mut self.scale_factor),
_ => ::core::option::Option::None,
}
}
fn field_at(&self, index: usize)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match index {
0usize => ::core::option::Option::Some(&self.physical_size),
1usize => ::core::option::Option::Some(&self.scale_factor),
_ => ::core::option::Option::None,
}
}
fn field_at_mut(&mut self, index: usize)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match index {
0usize =>
::core::option::Option::Some(&mut self.physical_size),
1usize =>
::core::option::Option::Some(&mut self.scale_factor),
_ => ::core::option::Option::None,
}
}
fn name_at(&self, index: usize) -> ::core::option::Option<&str> {
match index {
0usize => ::core::option::Option::Some("physical_size"),
1usize => ::core::option::Option::Some("scale_factor"),
_ => ::core::option::Option::None,
}
}
fn index_of_name(&self, name: &str)
-> ::core::option::Option<usize> {
match name {
"physical_size" => ::core::option::Option::Some(0usize),
"scale_factor" => ::core::option::Option::Some(1usize),
_ => ::core::option::Option::None,
}
}
fn field_len(&self) -> usize { 2usize }
fn iter_fields(&self) -> bevy_reflect::structs::FieldIter {
bevy_reflect::structs::FieldIter::new(self)
}
fn to_dynamic_struct(&self)
-> bevy_reflect::structs::DynamicStruct {
let mut dynamic: bevy_reflect::structs::DynamicStruct =
::core::default::Default::default();
dynamic.set_represented_type(bevy_reflect::PartialReflect::get_represented_type_info(self));
dynamic.insert_boxed("physical_size",
bevy_reflect::PartialReflect::to_dynamic(&self.physical_size));
dynamic.insert_boxed("scale_factor",
bevy_reflect::PartialReflect::to_dynamic(&self.scale_factor));
dynamic
}
}
impl bevy_reflect::PartialReflect for RenderTargetInfo where {
#[inline]
fn get_represented_type_info(&self)
-> ::core::option::Option<&'static bevy_reflect::TypeInfo> {
::core::option::Option::Some(<Self as
bevy_reflect::Typed>::type_info())
}
#[inline]
fn try_apply(&mut self, value: &dyn bevy_reflect::PartialReflect)
-> ::core::result::Result<(), bevy_reflect::ApplyError> {
if let bevy_reflect::ReflectRef::Struct(struct_value) =
bevy_reflect::PartialReflect::reflect_ref(value) {
for (name, value) in
bevy_reflect::structs::Struct::iter_fields(struct_value) {
if let ::core::option::Option::Some(v) =
bevy_reflect::structs::Struct::field_mut(self, name) {
bevy_reflect::PartialReflect::try_apply(v, value)?;
}
}
} else {
return ::core::result::Result::Err(bevy_reflect::ApplyError::MismatchedKinds {
from_kind: bevy_reflect::PartialReflect::reflect_kind(value),
to_kind: bevy_reflect::ReflectKind::Struct,
});
}
::core::result::Result::Ok(())
}
#[inline]
fn reflect_kind(&self) -> bevy_reflect::ReflectKind {
bevy_reflect::ReflectKind::Struct
}
#[inline]
fn reflect_ref(&self) -> bevy_reflect::ReflectRef {
bevy_reflect::ReflectRef::Struct(self)
}
#[inline]
fn reflect_mut(&mut self) -> bevy_reflect::ReflectMut {
bevy_reflect::ReflectMut::Struct(self)
}
#[inline]
fn reflect_owned(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
-> bevy_reflect::ReflectOwned {
bevy_reflect::ReflectOwned::Struct(self)
}
#[inline]
fn try_into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>> {
::core::result::Result::Ok(self)
}
#[inline]
fn try_as_reflect(&self)
-> ::core::option::Option<&dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn try_as_reflect_mut(&mut self)
-> ::core::option::Option<&mut dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn into_partial_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
self
}
#[inline]
fn as_partial_reflect(&self)
-> &dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn as_partial_reflect_mut(&mut self)
-> &mut dyn bevy_reflect::PartialReflect {
self
}
fn reflect_partial_eq(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<bool> {
(bevy_reflect::structs::struct_partial_eq)(self, value)
}
fn reflect_partial_cmp(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<::core::cmp::Ordering> {
(bevy_reflect::structs::struct_partial_cmp)(self, value)
}
#[inline]
#[allow(unreachable_code, reason =
"Ignored fields without a `clone` attribute will early-return with an error")]
fn reflect_clone(&self)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::ReflectCloneError> {
::core::result::Result::Ok(bevy_reflect::__macro_exports::alloc_utils::Box::new(Self {
physical_size: <UVec2 as
bevy_reflect::PartialReflect>::reflect_clone_and_take(&self.physical_size)?,
scale_factor: <f32 as
bevy_reflect::PartialReflect>::reflect_clone_and_take(&self.scale_factor)?,
}))
}
}
impl bevy_reflect::FromReflect for RenderTargetInfo where {
fn from_reflect(reflect: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<Self> {
if let bevy_reflect::ReflectRef::Struct(__ref_struct) =
bevy_reflect::PartialReflect::reflect_ref(reflect) {
let __this =
Self {
physical_size: <UVec2 as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"physical_size")?)?,
scale_factor: <f32 as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"scale_factor")?)?,
};
::core::option::Option::Some(__this)
} else { ::core::option::Option::None }
}
}
};Reflect, #[automatically_derived]
impl ::core::clone::Clone for RenderTargetInfo {
#[inline]
fn clone(&self) -> RenderTargetInfo {
RenderTargetInfo {
physical_size: ::core::clone::Clone::clone(&self.physical_size),
scale_factor: ::core::clone::Clone::clone(&self.scale_factor),
}
}
}Clone)]
197pub struct RenderTargetInfo {
198 pub physical_size: UVec2,
200 pub scale_factor: f32,
205}
206
207impl Default for RenderTargetInfo {
208 fn default() -> Self {
209 Self {
210 physical_size: Default::default(),
211 scale_factor: 1.,
212 }
213 }
214}
215
216#[derive(#[automatically_derived]
impl ::core::default::Default for ComputedCameraValues {
#[inline]
fn default() -> ComputedCameraValues {
ComputedCameraValues {
clip_from_view: ::core::default::Default::default(),
target_info: ::core::default::Default::default(),
old_viewport_size: ::core::default::Default::default(),
old_sub_camera_view: ::core::default::Default::default(),
}
}
}Default, #[automatically_derived]
impl ::core::fmt::Debug for ComputedCameraValues {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field4_finish(f,
"ComputedCameraValues", "clip_from_view", &self.clip_from_view,
"target_info", &self.target_info, "old_viewport_size",
&self.old_viewport_size, "old_sub_camera_view",
&&self.old_sub_camera_view)
}
}Debug, const _: () =
{
impl bevy_reflect::GetTypeRegistration for ComputedCameraValues where
{
fn get_type_registration() -> bevy_reflect::TypeRegistration {
let mut registration =
bevy_reflect::TypeRegistration::of::<Self>();
registration.insert::<bevy_reflect::ReflectFromPtr>(bevy_reflect::FromType::<Self>::from_type());
registration.insert::<bevy_reflect::ReflectFromReflect>(bevy_reflect::FromType::<Self>::from_type());
registration
}
#[inline(never)]
fn register_type_dependencies(registry:
&mut bevy_reflect::TypeRegistry) {
<Mat4 as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
<Option<RenderTargetInfo> as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
<Option<UVec2> as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
<Option<SubCameraView> as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
}
}
impl bevy_reflect::Typed for ComputedCameraValues where {
#[inline]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(||
{
bevy_reflect::TypeInfo::Struct(bevy_reflect::structs::StructInfo::new::<Self>(&[bevy_reflect::NamedField::new::<Mat4>("clip_from_view"),
bevy_reflect::NamedField::new::<Option<RenderTargetInfo>>("target_info"),
bevy_reflect::NamedField::new::<Option<UVec2>>("old_viewport_size"),
bevy_reflect::NamedField::new::<Option<SubCameraView>>("old_sub_camera_view")]))
})
}
}
#[allow(deprecated, reason =
"derives on a deprecated type shouldn't be considered a usage")]
impl bevy_reflect::TypePath for ComputedCameraValues where {
fn type_path() -> &'static str {
"bevy_camera::camera::ComputedCameraValues"
}
fn short_type_path() -> &'static str { "ComputedCameraValues" }
fn type_ident() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("ComputedCameraValues")
}
fn crate_name() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera".split(':').next().unwrap())
}
fn module_path() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera")
}
}
impl bevy_reflect::Reflect for ComputedCameraValues where {
#[inline]
fn into_any(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn ::core::any::Any> {
self
}
#[inline]
fn as_any(&self) -> &dyn ::core::any::Any { self }
#[inline]
fn as_any_mut(&mut self) -> &mut dyn ::core::any::Any { self }
#[inline]
fn into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect> {
self
}
#[inline]
fn as_reflect(&self) -> &dyn bevy_reflect::Reflect { self }
#[inline]
fn as_reflect_mut(&mut self) -> &mut dyn bevy_reflect::Reflect {
self
}
#[inline]
fn set(&mut self,
value:
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>)
->
::core::result::Result<(),
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>> {
*self = <dyn bevy_reflect::Reflect>::take(value)?;
::core::result::Result::Ok(())
}
}
#[allow(non_upper_case_globals)]
const _: () =
{
static __INVENTORY: ::inventory::Node =
::inventory::Node {
value: &{
bevy_reflect::__macro_exports::auto_register::AutomaticReflectRegistrations(<ComputedCameraValues
as
bevy_reflect::__macro_exports::auto_register::RegisterForReflection>::__register)
},
next: ::inventory::__private::UnsafeCell::new(::inventory::__private::Option::None),
};
#[link_section = ".text.startup"]
unsafe extern "C" fn __ctor() {
unsafe {
::inventory::ErasedNode::submit(__INVENTORY.value,
&__INVENTORY)
}
}
#[used]
#[link_section = ".init_array"]
static __CTOR: unsafe extern "C" fn() = __ctor;
};
impl bevy_reflect::structs::Struct for ComputedCameraValues where {
fn field(&self, name: &str)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match name {
"clip_from_view" =>
::core::option::Option::Some(&self.clip_from_view),
"target_info" =>
::core::option::Option::Some(&self.target_info),
"old_viewport_size" =>
::core::option::Option::Some(&self.old_viewport_size),
"old_sub_camera_view" =>
::core::option::Option::Some(&self.old_sub_camera_view),
_ => ::core::option::Option::None,
}
}
fn field_mut(&mut self, name: &str)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match name {
"clip_from_view" =>
::core::option::Option::Some(&mut self.clip_from_view),
"target_info" =>
::core::option::Option::Some(&mut self.target_info),
"old_viewport_size" =>
::core::option::Option::Some(&mut self.old_viewport_size),
"old_sub_camera_view" =>
::core::option::Option::Some(&mut self.old_sub_camera_view),
_ => ::core::option::Option::None,
}
}
fn field_at(&self, index: usize)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match index {
0usize =>
::core::option::Option::Some(&self.clip_from_view),
1usize => ::core::option::Option::Some(&self.target_info),
2usize =>
::core::option::Option::Some(&self.old_viewport_size),
3usize =>
::core::option::Option::Some(&self.old_sub_camera_view),
_ => ::core::option::Option::None,
}
}
fn field_at_mut(&mut self, index: usize)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match index {
0usize =>
::core::option::Option::Some(&mut self.clip_from_view),
1usize =>
::core::option::Option::Some(&mut self.target_info),
2usize =>
::core::option::Option::Some(&mut self.old_viewport_size),
3usize =>
::core::option::Option::Some(&mut self.old_sub_camera_view),
_ => ::core::option::Option::None,
}
}
fn name_at(&self, index: usize) -> ::core::option::Option<&str> {
match index {
0usize => ::core::option::Option::Some("clip_from_view"),
1usize => ::core::option::Option::Some("target_info"),
2usize => ::core::option::Option::Some("old_viewport_size"),
3usize =>
::core::option::Option::Some("old_sub_camera_view"),
_ => ::core::option::Option::None,
}
}
fn index_of_name(&self, name: &str)
-> ::core::option::Option<usize> {
match name {
"clip_from_view" => ::core::option::Option::Some(0usize),
"target_info" => ::core::option::Option::Some(1usize),
"old_viewport_size" => ::core::option::Option::Some(2usize),
"old_sub_camera_view" =>
::core::option::Option::Some(3usize),
_ => ::core::option::Option::None,
}
}
fn field_len(&self) -> usize { 4usize }
fn iter_fields(&self) -> bevy_reflect::structs::FieldIter {
bevy_reflect::structs::FieldIter::new(self)
}
fn to_dynamic_struct(&self)
-> bevy_reflect::structs::DynamicStruct {
let mut dynamic: bevy_reflect::structs::DynamicStruct =
::core::default::Default::default();
dynamic.set_represented_type(bevy_reflect::PartialReflect::get_represented_type_info(self));
dynamic.insert_boxed("clip_from_view",
bevy_reflect::PartialReflect::to_dynamic(&self.clip_from_view));
dynamic.insert_boxed("target_info",
bevy_reflect::PartialReflect::to_dynamic(&self.target_info));
dynamic.insert_boxed("old_viewport_size",
bevy_reflect::PartialReflect::to_dynamic(&self.old_viewport_size));
dynamic.insert_boxed("old_sub_camera_view",
bevy_reflect::PartialReflect::to_dynamic(&self.old_sub_camera_view));
dynamic
}
}
impl bevy_reflect::PartialReflect for ComputedCameraValues where {
#[inline]
fn get_represented_type_info(&self)
-> ::core::option::Option<&'static bevy_reflect::TypeInfo> {
::core::option::Option::Some(<Self as
bevy_reflect::Typed>::type_info())
}
#[inline]
fn try_apply(&mut self, value: &dyn bevy_reflect::PartialReflect)
-> ::core::result::Result<(), bevy_reflect::ApplyError> {
if let bevy_reflect::ReflectRef::Struct(struct_value) =
bevy_reflect::PartialReflect::reflect_ref(value) {
for (name, value) in
bevy_reflect::structs::Struct::iter_fields(struct_value) {
if let ::core::option::Option::Some(v) =
bevy_reflect::structs::Struct::field_mut(self, name) {
bevy_reflect::PartialReflect::try_apply(v, value)?;
}
}
} else {
return ::core::result::Result::Err(bevy_reflect::ApplyError::MismatchedKinds {
from_kind: bevy_reflect::PartialReflect::reflect_kind(value),
to_kind: bevy_reflect::ReflectKind::Struct,
});
}
::core::result::Result::Ok(())
}
#[inline]
fn reflect_kind(&self) -> bevy_reflect::ReflectKind {
bevy_reflect::ReflectKind::Struct
}
#[inline]
fn reflect_ref(&self) -> bevy_reflect::ReflectRef {
bevy_reflect::ReflectRef::Struct(self)
}
#[inline]
fn reflect_mut(&mut self) -> bevy_reflect::ReflectMut {
bevy_reflect::ReflectMut::Struct(self)
}
#[inline]
fn reflect_owned(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
-> bevy_reflect::ReflectOwned {
bevy_reflect::ReflectOwned::Struct(self)
}
#[inline]
fn try_into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>> {
::core::result::Result::Ok(self)
}
#[inline]
fn try_as_reflect(&self)
-> ::core::option::Option<&dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn try_as_reflect_mut(&mut self)
-> ::core::option::Option<&mut dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn into_partial_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
self
}
#[inline]
fn as_partial_reflect(&self)
-> &dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn as_partial_reflect_mut(&mut self)
-> &mut dyn bevy_reflect::PartialReflect {
self
}
fn reflect_partial_eq(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<bool> {
(bevy_reflect::structs::struct_partial_eq)(self, value)
}
fn reflect_partial_cmp(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<::core::cmp::Ordering> {
(bevy_reflect::structs::struct_partial_cmp)(self, value)
}
#[inline]
#[allow(unreachable_code, reason =
"Ignored fields without a `clone` attribute will early-return with an error")]
fn reflect_clone(&self)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::ReflectCloneError> {
::core::result::Result::Ok(bevy_reflect::__macro_exports::alloc_utils::Box::new(Self {
clip_from_view: <Mat4 as
bevy_reflect::PartialReflect>::reflect_clone_and_take(&self.clip_from_view)?,
target_info: <Option<RenderTargetInfo> as
bevy_reflect::PartialReflect>::reflect_clone_and_take(&self.target_info)?,
old_viewport_size: <Option<UVec2> as
bevy_reflect::PartialReflect>::reflect_clone_and_take(&self.old_viewport_size)?,
old_sub_camera_view: <Option<SubCameraView> as
bevy_reflect::PartialReflect>::reflect_clone_and_take(&self.old_sub_camera_view)?,
}))
}
}
impl bevy_reflect::FromReflect for ComputedCameraValues where {
fn from_reflect(reflect: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<Self> {
if let bevy_reflect::ReflectRef::Struct(__ref_struct) =
bevy_reflect::PartialReflect::reflect_ref(reflect) {
let __this =
Self {
clip_from_view: <Mat4 as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"clip_from_view")?)?,
target_info: <Option<RenderTargetInfo> as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"target_info")?)?,
old_viewport_size: <Option<UVec2> as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"old_viewport_size")?)?,
old_sub_camera_view: <Option<SubCameraView> as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"old_sub_camera_view")?)?,
};
::core::option::Option::Some(__this)
} else { ::core::option::Option::None }
}
}
};Reflect, #[automatically_derived]
impl ::core::clone::Clone for ComputedCameraValues {
#[inline]
fn clone(&self) -> ComputedCameraValues {
ComputedCameraValues {
clip_from_view: ::core::clone::Clone::clone(&self.clip_from_view),
target_info: ::core::clone::Clone::clone(&self.target_info),
old_viewport_size: ::core::clone::Clone::clone(&self.old_viewport_size),
old_sub_camera_view: ::core::clone::Clone::clone(&self.old_sub_camera_view),
}
}
}Clone)]
218pub struct ComputedCameraValues {
219 pub clip_from_view: Mat4,
220 pub target_info: Option<RenderTargetInfo>,
221 pub old_viewport_size: Option<UVec2>,
223 pub old_sub_camera_view: Option<SubCameraView>,
224}
225
226#[derive(impl bevy_ecs::component::Component for Exposure where
Self: ::core::marker::Send + ::core::marker::Sync + 'static {
const STORAGE_TYPE: bevy_ecs::component::StorageType =
bevy_ecs::component::StorageType::Table;
type Mutability = bevy_ecs::component::Mutable;
fn register_required_components(_requiree:
bevy_ecs::component::ComponentId,
required_components:
&mut bevy_ecs::component::RequiredComponentsRegistrator) {}
fn clone_behavior() -> bevy_ecs::component::ComponentCloneBehavior {
use bevy_ecs::component::{
DefaultCloneBehaviorBase, DefaultCloneBehaviorViaClone,
};
(&&&bevy_ecs::component::DefaultCloneBehaviorSpecialization::<Self>::default()).default_clone_behavior()
}
fn relationship_accessor()
->
::core::option::Option<bevy_ecs::relationship::ComponentRelationshipAccessor<Self>> {
::core::option::Option::None
}
}Component, #[automatically_derived]
impl ::core::clone::Clone for Exposure {
#[inline]
fn clone(&self) -> Exposure {
let _: ::core::clone::AssertParamIsClone<f32>;
*self
}
}Clone, #[automatically_derived]
impl ::core::marker::Copy for Exposure { }Copy, const _: () =
{
impl bevy_reflect::GetTypeRegistration for Exposure where {
fn get_type_registration() -> bevy_reflect::TypeRegistration {
let mut registration =
bevy_reflect::TypeRegistration::of::<Self>();
registration.insert::<bevy_reflect::ReflectFromPtr>(bevy_reflect::FromType::<Self>::from_type());
registration.insert::<bevy_reflect::ReflectFromReflect>(bevy_reflect::FromType::<Self>::from_type());
registration.register_type_data::<ReflectComponent, Self>();
registration.register_type_data::<ReflectDefault, Self>();
registration
}
}
#[allow(deprecated, reason =
"derives on a deprecated type shouldn't be considered a usage")]
impl bevy_reflect::TypePath for Exposure where {
fn type_path() -> &'static str { "bevy_camera::camera::Exposure" }
fn short_type_path() -> &'static str { "Exposure" }
fn type_ident() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("Exposure")
}
fn crate_name() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera".split(':').next().unwrap())
}
fn module_path() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera")
}
}
impl bevy_reflect::Typed for Exposure where {
#[inline]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(||
{
let info = bevy_reflect::OpaqueInfo::new::<Self>();
bevy_reflect::TypeInfo::Opaque(info)
})
}
}
impl bevy_reflect::Reflect for Exposure where {
#[inline]
fn into_any(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn ::core::any::Any> {
self
}
#[inline]
fn as_any(&self) -> &dyn ::core::any::Any { self }
#[inline]
fn as_any_mut(&mut self) -> &mut dyn ::core::any::Any { self }
#[inline]
fn into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect> {
self
}
#[inline]
fn as_reflect(&self) -> &dyn bevy_reflect::Reflect { self }
#[inline]
fn as_reflect_mut(&mut self) -> &mut dyn bevy_reflect::Reflect {
self
}
#[inline]
fn set(&mut self,
value:
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>)
->
::core::result::Result<(),
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>> {
*self = <dyn bevy_reflect::Reflect>::take(value)?;
::core::result::Result::Ok(())
}
}
#[allow(non_upper_case_globals)]
const _: () =
{
static __INVENTORY: ::inventory::Node =
::inventory::Node {
value: &{
bevy_reflect::__macro_exports::auto_register::AutomaticReflectRegistrations(<Exposure
as
bevy_reflect::__macro_exports::auto_register::RegisterForReflection>::__register)
},
next: ::inventory::__private::UnsafeCell::new(::inventory::__private::Option::None),
};
#[link_section = ".text.startup"]
unsafe extern "C" fn __ctor() {
unsafe {
::inventory::ErasedNode::submit(__INVENTORY.value,
&__INVENTORY)
}
}
#[used]
#[link_section = ".init_array"]
static __CTOR: unsafe extern "C" fn() = __ctor;
};
impl bevy_reflect::PartialReflect for Exposure where {
#[inline]
fn get_represented_type_info(&self)
-> ::core::option::Option<&'static bevy_reflect::TypeInfo> {
::core::option::Option::Some(<Self as
bevy_reflect::Typed>::type_info())
}
#[inline]
fn to_dynamic(&self)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
bevy_reflect::__macro_exports::alloc_utils::Box::new(::core::clone::Clone::clone(self))
}
#[inline]
fn try_apply(&mut self, value: &dyn bevy_reflect::PartialReflect)
-> ::core::result::Result<(), bevy_reflect::ApplyError> {
if let ::core::option::Option::Some(value) =
<dyn bevy_reflect::PartialReflect>::try_downcast_ref::<Self>(value)
{
*self = ::core::clone::Clone::clone(value);
return ::core::result::Result::Ok(());
}
::core::result::Result::Err(bevy_reflect::ApplyError::MismatchedTypes {
from_type: ::core::convert::Into::into(bevy_reflect::DynamicTypePath::reflect_type_path(value)),
to_type: ::core::convert::Into::into(<Self as
bevy_reflect::TypePath>::type_path()),
})
}
#[inline]
fn reflect_kind(&self) -> bevy_reflect::ReflectKind {
bevy_reflect::ReflectKind::Opaque
}
#[inline]
fn reflect_ref(&self) -> bevy_reflect::ReflectRef {
bevy_reflect::ReflectRef::Opaque(self)
}
#[inline]
fn reflect_mut(&mut self) -> bevy_reflect::ReflectMut {
bevy_reflect::ReflectMut::Opaque(self)
}
#[inline]
fn reflect_owned(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
-> bevy_reflect::ReflectOwned {
bevy_reflect::ReflectOwned::Opaque(self)
}
#[inline]
fn try_into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>> {
::core::result::Result::Ok(self)
}
#[inline]
fn try_as_reflect(&self)
-> ::core::option::Option<&dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn try_as_reflect_mut(&mut self)
-> ::core::option::Option<&mut dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn into_partial_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
self
}
#[inline]
fn as_partial_reflect(&self)
-> &dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn as_partial_reflect_mut(&mut self)
-> &mut dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn reflect_clone(&self)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::ReflectCloneError> {
::core::result::Result::Ok(bevy_reflect::__macro_exports::alloc_utils::Box::new(::core::clone::Clone::clone(self)))
}
}
impl bevy_reflect::FromReflect for Exposure where {
fn from_reflect(reflect: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<Self> {
::core::option::Option::Some(::core::clone::Clone::clone(<dyn bevy_reflect::PartialReflect>::try_downcast_ref::<Exposure>(reflect)?))
}
}
};Reflect)]
230#[reflect(opaque)]
231#[reflect(Component, Default, Clone)]
232pub struct Exposure {
233 pub ev100: f32,
235}
236
237impl Exposure {
238 pub const SUNLIGHT: Self = Self {
239 ev100: Self::EV100_SUNLIGHT,
240 };
241 pub const OVERCAST: Self = Self {
242 ev100: Self::EV100_OVERCAST,
243 };
244 pub const INDOOR: Self = Self {
245 ev100: Self::EV100_INDOOR,
246 };
247 pub const BLENDER: Self = Self {
252 ev100: Self::EV100_BLENDER,
253 };
254
255 pub const EV100_SUNLIGHT: f32 = 15.0;
256 pub const EV100_OVERCAST: f32 = 12.0;
257 pub const EV100_INDOOR: f32 = 7.0;
258
259 pub const EV100_BLENDER: f32 = 9.7;
264
265 pub fn from_physical_camera(physical_camera_parameters: PhysicalCameraParameters) -> Self {
266 Self {
267 ev100: physical_camera_parameters.ev100(),
268 }
269 }
270
271 #[inline]
274 pub fn exposure(&self) -> f32 {
275 ops::exp2(-self.ev100) / 1.2
276 }
277}
278
279impl Default for Exposure {
280 fn default() -> Self {
281 Self::BLENDER
282 }
283}
284
285#[derive(#[automatically_derived]
impl ::core::clone::Clone for PhysicalCameraParameters {
#[inline]
fn clone(&self) -> PhysicalCameraParameters {
let _: ::core::clone::AssertParamIsClone<f32>;
*self
}
}Clone, #[automatically_derived]
impl ::core::marker::Copy for PhysicalCameraParameters { }Copy)]
288pub struct PhysicalCameraParameters {
289 pub aperture_f_stops: f32,
291 pub shutter_speed_s: f32,
293 pub sensitivity_iso: f32,
295 pub sensor_height: f32,
304}
305
306impl PhysicalCameraParameters {
307 pub fn ev100(&self) -> f32 {
309 ops::log2(
310 self.aperture_f_stops * self.aperture_f_stops * 100.0
311 / (self.shutter_speed_s * self.sensitivity_iso),
312 )
313 }
314}
315
316impl Default for PhysicalCameraParameters {
317 fn default() -> Self {
318 Self {
319 aperture_f_stops: 1.0,
320 shutter_speed_s: 1.0 / 125.0,
321 sensitivity_iso: 100.0,
322 sensor_height: 0.01866,
323 }
324 }
325}
326
327#[derive(#[automatically_derived]
impl ::core::fmt::Debug for ViewportConversionError {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f,
match self {
ViewportConversionError::NoViewportSize => "NoViewportSize",
ViewportConversionError::PastNearPlane => "PastNearPlane",
ViewportConversionError::PastFarPlane => "PastFarPlane",
ViewportConversionError::InvalidData => "InvalidData",
})
}
}Debug, #[automatically_derived]
impl ::core::cmp::Eq for ViewportConversionError {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {}
}Eq, #[automatically_derived]
impl ::core::cmp::PartialEq for ViewportConversionError {
#[inline]
fn eq(&self, other: &ViewportConversionError) -> bool {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
__self_discr == __arg1_discr
}
}PartialEq, #[automatically_derived]
impl ::core::marker::Copy for ViewportConversionError { }Copy, #[automatically_derived]
impl ::core::clone::Clone for ViewportConversionError {
#[inline]
fn clone(&self) -> ViewportConversionError { *self }
}Clone, #[allow(unused_qualifications)]
#[automatically_derived]
impl ::core::fmt::Display for ViewportConversionError {
fn fmt(&self, __formatter: &mut ::core::fmt::Formatter)
-> ::core::fmt::Result {
#[allow(unused_variables, deprecated, clippy ::
used_underscore_binding)]
match self {
ViewportConversionError::NoViewportSize {} =>
__formatter.write_str("pre-computed size of viewport not available"),
ViewportConversionError::PastNearPlane {} =>
__formatter.write_str("computed coordinate beyond `Camera`'s near plane"),
ViewportConversionError::PastFarPlane {} =>
__formatter.write_str("computed coordinate beyond `Camera`'s far plane"),
ViewportConversionError::InvalidData {} =>
__formatter.write_str("found NaN while computing NDC"),
}
}
}Error)]
331pub enum ViewportConversionError {
332 #[error("pre-computed size of viewport not available")]
341 NoViewportSize,
342 #[error("computed coordinate beyond `Camera`'s near plane")]
346 PastNearPlane,
347 #[error("computed coordinate beyond `Camera`'s far plane")]
351 PastFarPlane,
352 #[error("found NaN while computing NDC")]
356 InvalidData,
357}
358
359#[derive(#[doc =
"**Required Components**: [`Frustum`], [`CameraMainTextureUsages`], [`VisibleEntities`], [`Transform`], [`Visibility`], [`RenderTarget`]. \n\n A component's Required Components are inserted whenever it is inserted. Note that this will also insert the required components _of_ the required components, recursively, in depth-first order."]
impl bevy_ecs::component::Component for Camera where
Self: ::core::marker::Send + ::core::marker::Sync + 'static {
const STORAGE_TYPE: bevy_ecs::component::StorageType =
bevy_ecs::component::StorageType::Table;
type Mutability = bevy_ecs::component::Mutable;
fn register_required_components(_requiree:
bevy_ecs::component::ComponentId,
required_components:
&mut bevy_ecs::component::RequiredComponentsRegistrator) {
required_components.register_required::<Frustum>(<Frustum as
::core::default::Default>::default);
required_components.register_required::<CameraMainTextureUsages>(<CameraMainTextureUsages
as ::core::default::Default>::default);
required_components.register_required::<VisibleEntities>(<VisibleEntities
as ::core::default::Default>::default);
required_components.register_required::<Transform>(<Transform as
::core::default::Default>::default);
required_components.register_required::<Visibility>(<Visibility as
::core::default::Default>::default);
required_components.register_required::<RenderTarget>(<RenderTarget as
::core::default::Default>::default);
}
fn clone_behavior() -> bevy_ecs::component::ComponentCloneBehavior {
use bevy_ecs::component::{
DefaultCloneBehaviorBase, DefaultCloneBehaviorViaClone,
};
(&&&bevy_ecs::component::DefaultCloneBehaviorSpecialization::<Self>::default()).default_clone_behavior()
}
fn relationship_accessor()
->
::core::option::Option<bevy_ecs::relationship::ComponentRelationshipAccessor<Self>> {
::core::option::Option::None
}
}Component, #[automatically_derived]
impl ::core::fmt::Debug for Camera {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
let names: &'static _ =
&["viewport", "order", "is_active", "computed", "output_mode",
"msaa_writeback", "clear_color", "invert_culling",
"sub_camera_view"];
let values: &[&dyn ::core::fmt::Debug] =
&[&self.viewport, &self.order, &self.is_active, &self.computed,
&self.output_mode, &self.msaa_writeback, &self.clear_color,
&self.invert_culling, &&self.sub_camera_view];
::core::fmt::Formatter::debug_struct_fields_finish(f, "Camera", names,
values)
}
}Debug, const _: () =
{
impl bevy_reflect::GetTypeRegistration for Camera where {
fn get_type_registration() -> bevy_reflect::TypeRegistration {
let mut registration =
bevy_reflect::TypeRegistration::of::<Self>();
registration.insert::<bevy_reflect::ReflectFromPtr>(bevy_reflect::FromType::<Self>::from_type());
registration.insert::<bevy_reflect::ReflectFromReflect>(bevy_reflect::FromType::<Self>::from_type());
registration.register_type_data::<ReflectComponent, Self>();
registration.register_type_data::<ReflectDefault, Self>();
registration
}
#[inline(never)]
fn register_type_dependencies(registry:
&mut bevy_reflect::TypeRegistry) {
<Option<Viewport> as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
<isize as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
<bool as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
<ComputedCameraValues as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
<CameraOutputMode as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
<MsaaWriteback as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
<ClearColorConfig as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
<Option<SubCameraView> as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
}
}
impl bevy_reflect::Typed for Camera where {
#[inline]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(||
{
bevy_reflect::TypeInfo::Struct(bevy_reflect::structs::StructInfo::new::<Self>(&[bevy_reflect::NamedField::new::<Option<Viewport>>("viewport"),
bevy_reflect::NamedField::new::<isize>("order"),
bevy_reflect::NamedField::new::<bool>("is_active"),
bevy_reflect::NamedField::new::<ComputedCameraValues>("computed"),
bevy_reflect::NamedField::new::<CameraOutputMode>("output_mode"),
bevy_reflect::NamedField::new::<MsaaWriteback>("msaa_writeback"),
bevy_reflect::NamedField::new::<ClearColorConfig>("clear_color"),
bevy_reflect::NamedField::new::<bool>("invert_culling"),
bevy_reflect::NamedField::new::<Option<SubCameraView>>("sub_camera_view")]))
})
}
}
#[allow(deprecated, reason =
"derives on a deprecated type shouldn't be considered a usage")]
impl bevy_reflect::TypePath for Camera where {
fn type_path() -> &'static str { "bevy_camera::camera::Camera" }
fn short_type_path() -> &'static str { "Camera" }
fn type_ident() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("Camera")
}
fn crate_name() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera".split(':').next().unwrap())
}
fn module_path() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera")
}
}
impl bevy_reflect::Reflect for Camera where {
#[inline]
fn into_any(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn ::core::any::Any> {
self
}
#[inline]
fn as_any(&self) -> &dyn ::core::any::Any { self }
#[inline]
fn as_any_mut(&mut self) -> &mut dyn ::core::any::Any { self }
#[inline]
fn into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect> {
self
}
#[inline]
fn as_reflect(&self) -> &dyn bevy_reflect::Reflect { self }
#[inline]
fn as_reflect_mut(&mut self) -> &mut dyn bevy_reflect::Reflect {
self
}
#[inline]
fn set(&mut self,
value:
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>)
->
::core::result::Result<(),
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>> {
*self = <dyn bevy_reflect::Reflect>::take(value)?;
::core::result::Result::Ok(())
}
}
#[allow(non_upper_case_globals)]
const _: () =
{
static __INVENTORY: ::inventory::Node =
::inventory::Node {
value: &{
bevy_reflect::__macro_exports::auto_register::AutomaticReflectRegistrations(<Camera
as
bevy_reflect::__macro_exports::auto_register::RegisterForReflection>::__register)
},
next: ::inventory::__private::UnsafeCell::new(::inventory::__private::Option::None),
};
#[link_section = ".text.startup"]
unsafe extern "C" fn __ctor() {
unsafe {
::inventory::ErasedNode::submit(__INVENTORY.value,
&__INVENTORY)
}
}
#[used]
#[link_section = ".init_array"]
static __CTOR: unsafe extern "C" fn() = __ctor;
};
impl bevy_reflect::structs::Struct for Camera where {
fn field(&self, name: &str)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match name {
"viewport" => ::core::option::Option::Some(&self.viewport),
"order" => ::core::option::Option::Some(&self.order),
"is_active" =>
::core::option::Option::Some(&self.is_active),
"computed" => ::core::option::Option::Some(&self.computed),
"output_mode" =>
::core::option::Option::Some(&self.output_mode),
"msaa_writeback" =>
::core::option::Option::Some(&self.msaa_writeback),
"clear_color" =>
::core::option::Option::Some(&self.clear_color),
"invert_culling" =>
::core::option::Option::Some(&self.invert_culling),
"sub_camera_view" =>
::core::option::Option::Some(&self.sub_camera_view),
_ => ::core::option::Option::None,
}
}
fn field_mut(&mut self, name: &str)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match name {
"viewport" =>
::core::option::Option::Some(&mut self.viewport),
"order" => ::core::option::Option::Some(&mut self.order),
"is_active" =>
::core::option::Option::Some(&mut self.is_active),
"computed" =>
::core::option::Option::Some(&mut self.computed),
"output_mode" =>
::core::option::Option::Some(&mut self.output_mode),
"msaa_writeback" =>
::core::option::Option::Some(&mut self.msaa_writeback),
"clear_color" =>
::core::option::Option::Some(&mut self.clear_color),
"invert_culling" =>
::core::option::Option::Some(&mut self.invert_culling),
"sub_camera_view" =>
::core::option::Option::Some(&mut self.sub_camera_view),
_ => ::core::option::Option::None,
}
}
fn field_at(&self, index: usize)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match index {
0usize => ::core::option::Option::Some(&self.viewport),
1usize => ::core::option::Option::Some(&self.order),
2usize => ::core::option::Option::Some(&self.is_active),
3usize => ::core::option::Option::Some(&self.computed),
4usize => ::core::option::Option::Some(&self.output_mode),
5usize =>
::core::option::Option::Some(&self.msaa_writeback),
6usize => ::core::option::Option::Some(&self.clear_color),
7usize =>
::core::option::Option::Some(&self.invert_culling),
8usize =>
::core::option::Option::Some(&self.sub_camera_view),
_ => ::core::option::Option::None,
}
}
fn field_at_mut(&mut self, index: usize)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match index {
0usize => ::core::option::Option::Some(&mut self.viewport),
1usize => ::core::option::Option::Some(&mut self.order),
2usize => ::core::option::Option::Some(&mut self.is_active),
3usize => ::core::option::Option::Some(&mut self.computed),
4usize =>
::core::option::Option::Some(&mut self.output_mode),
5usize =>
::core::option::Option::Some(&mut self.msaa_writeback),
6usize =>
::core::option::Option::Some(&mut self.clear_color),
7usize =>
::core::option::Option::Some(&mut self.invert_culling),
8usize =>
::core::option::Option::Some(&mut self.sub_camera_view),
_ => ::core::option::Option::None,
}
}
fn name_at(&self, index: usize) -> ::core::option::Option<&str> {
match index {
0usize => ::core::option::Option::Some("viewport"),
1usize => ::core::option::Option::Some("order"),
2usize => ::core::option::Option::Some("is_active"),
3usize => ::core::option::Option::Some("computed"),
4usize => ::core::option::Option::Some("output_mode"),
5usize => ::core::option::Option::Some("msaa_writeback"),
6usize => ::core::option::Option::Some("clear_color"),
7usize => ::core::option::Option::Some("invert_culling"),
8usize => ::core::option::Option::Some("sub_camera_view"),
_ => ::core::option::Option::None,
}
}
fn index_of_name(&self, name: &str)
-> ::core::option::Option<usize> {
match name {
"viewport" => ::core::option::Option::Some(0usize),
"order" => ::core::option::Option::Some(1usize),
"is_active" => ::core::option::Option::Some(2usize),
"computed" => ::core::option::Option::Some(3usize),
"output_mode" => ::core::option::Option::Some(4usize),
"msaa_writeback" => ::core::option::Option::Some(5usize),
"clear_color" => ::core::option::Option::Some(6usize),
"invert_culling" => ::core::option::Option::Some(7usize),
"sub_camera_view" => ::core::option::Option::Some(8usize),
_ => ::core::option::Option::None,
}
}
fn field_len(&self) -> usize { 9usize }
fn iter_fields(&self) -> bevy_reflect::structs::FieldIter {
bevy_reflect::structs::FieldIter::new(self)
}
fn to_dynamic_struct(&self)
-> bevy_reflect::structs::DynamicStruct {
let mut dynamic: bevy_reflect::structs::DynamicStruct =
::core::default::Default::default();
dynamic.set_represented_type(bevy_reflect::PartialReflect::get_represented_type_info(self));
dynamic.insert_boxed("viewport",
bevy_reflect::PartialReflect::to_dynamic(&self.viewport));
dynamic.insert_boxed("order",
bevy_reflect::PartialReflect::to_dynamic(&self.order));
dynamic.insert_boxed("is_active",
bevy_reflect::PartialReflect::to_dynamic(&self.is_active));
dynamic.insert_boxed("computed",
bevy_reflect::PartialReflect::to_dynamic(&self.computed));
dynamic.insert_boxed("output_mode",
bevy_reflect::PartialReflect::to_dynamic(&self.output_mode));
dynamic.insert_boxed("msaa_writeback",
bevy_reflect::PartialReflect::to_dynamic(&self.msaa_writeback));
dynamic.insert_boxed("clear_color",
bevy_reflect::PartialReflect::to_dynamic(&self.clear_color));
dynamic.insert_boxed("invert_culling",
bevy_reflect::PartialReflect::to_dynamic(&self.invert_culling));
dynamic.insert_boxed("sub_camera_view",
bevy_reflect::PartialReflect::to_dynamic(&self.sub_camera_view));
dynamic
}
}
impl bevy_reflect::PartialReflect for Camera where {
#[inline]
fn get_represented_type_info(&self)
-> ::core::option::Option<&'static bevy_reflect::TypeInfo> {
::core::option::Option::Some(<Self as
bevy_reflect::Typed>::type_info())
}
#[inline]
fn try_apply(&mut self, value: &dyn bevy_reflect::PartialReflect)
-> ::core::result::Result<(), bevy_reflect::ApplyError> {
if let bevy_reflect::ReflectRef::Struct(struct_value) =
bevy_reflect::PartialReflect::reflect_ref(value) {
for (name, value) in
bevy_reflect::structs::Struct::iter_fields(struct_value) {
if let ::core::option::Option::Some(v) =
bevy_reflect::structs::Struct::field_mut(self, name) {
bevy_reflect::PartialReflect::try_apply(v, value)?;
}
}
} else {
return ::core::result::Result::Err(bevy_reflect::ApplyError::MismatchedKinds {
from_kind: bevy_reflect::PartialReflect::reflect_kind(value),
to_kind: bevy_reflect::ReflectKind::Struct,
});
}
::core::result::Result::Ok(())
}
#[inline]
fn reflect_kind(&self) -> bevy_reflect::ReflectKind {
bevy_reflect::ReflectKind::Struct
}
#[inline]
fn reflect_ref(&self) -> bevy_reflect::ReflectRef {
bevy_reflect::ReflectRef::Struct(self)
}
#[inline]
fn reflect_mut(&mut self) -> bevy_reflect::ReflectMut {
bevy_reflect::ReflectMut::Struct(self)
}
#[inline]
fn reflect_owned(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
-> bevy_reflect::ReflectOwned {
bevy_reflect::ReflectOwned::Struct(self)
}
#[inline]
fn try_into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>> {
::core::result::Result::Ok(self)
}
#[inline]
fn try_as_reflect(&self)
-> ::core::option::Option<&dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn try_as_reflect_mut(&mut self)
-> ::core::option::Option<&mut dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn into_partial_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
self
}
#[inline]
fn as_partial_reflect(&self)
-> &dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn as_partial_reflect_mut(&mut self)
-> &mut dyn bevy_reflect::PartialReflect {
self
}
fn reflect_partial_eq(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<bool> {
(bevy_reflect::structs::struct_partial_eq)(self, value)
}
fn reflect_partial_cmp(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<::core::cmp::Ordering> {
(bevy_reflect::structs::struct_partial_cmp)(self, value)
}
fn debug(&self, f: &mut ::core::fmt::Formatter<'_>)
-> ::core::fmt::Result {
::core::fmt::Debug::fmt(self, f)
}
#[inline]
fn reflect_clone(&self)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::ReflectCloneError> {
::core::result::Result::Ok(bevy_reflect::__macro_exports::alloc_utils::Box::new(::core::clone::Clone::clone(self)))
}
}
impl bevy_reflect::FromReflect for Camera where {
fn from_reflect(reflect: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<Self> {
if let bevy_reflect::ReflectRef::Struct(__ref_struct) =
bevy_reflect::PartialReflect::reflect_ref(reflect) {
let mut __this =
<Self as ::core::default::Default>::default();
if let ::core::option::Option::Some(__field) =
(||
<Option<Viewport> as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"viewport")?))() {
__this.viewport = __field;
}
if let ::core::option::Option::Some(__field) =
(||
<isize as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"order")?))() {
__this.order = __field;
}
if let ::core::option::Option::Some(__field) =
(||
<bool as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"is_active")?))() {
__this.is_active = __field;
}
if let ::core::option::Option::Some(__field) =
(||
<ComputedCameraValues as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"computed")?))() {
__this.computed = __field;
}
if let ::core::option::Option::Some(__field) =
(||
<CameraOutputMode as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"output_mode")?))() {
__this.output_mode = __field;
}
if let ::core::option::Option::Some(__field) =
(||
<MsaaWriteback as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"msaa_writeback")?))() {
__this.msaa_writeback = __field;
}
if let ::core::option::Option::Some(__field) =
(||
<ClearColorConfig as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"clear_color")?))() {
__this.clear_color = __field;
}
if let ::core::option::Option::Some(__field) =
(||
<bool as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"invert_culling")?))() {
__this.invert_culling = __field;
}
if let ::core::option::Option::Some(__field) =
(||
<Option<SubCameraView> as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"sub_camera_view")?))() {
__this.sub_camera_view = __field;
}
::core::option::Option::Some(__this)
} else { ::core::option::Option::None }
}
}
};Reflect, #[automatically_derived]
impl ::core::clone::Clone for Camera {
#[inline]
fn clone(&self) -> Camera {
Camera {
viewport: ::core::clone::Clone::clone(&self.viewport),
order: ::core::clone::Clone::clone(&self.order),
is_active: ::core::clone::Clone::clone(&self.is_active),
computed: ::core::clone::Clone::clone(&self.computed),
output_mode: ::core::clone::Clone::clone(&self.output_mode),
msaa_writeback: ::core::clone::Clone::clone(&self.msaa_writeback),
clear_color: ::core::clone::Clone::clone(&self.clear_color),
invert_culling: ::core::clone::Clone::clone(&self.invert_culling),
sub_camera_view: ::core::clone::Clone::clone(&self.sub_camera_view),
}
}
}Clone)]
375#[reflect(Component, Default, Debug, Clone)]
376#[require(
377 Frustum,
378 CameraMainTextureUsages,
379 VisibleEntities,
380 Transform,
381 Visibility,
382 RenderTarget
383)]
384pub struct Camera {
385 pub viewport: Option<Viewport>,
387 pub order: isize,
389 pub is_active: bool,
392 pub computed: ComputedCameraValues,
394 pub output_mode: CameraOutputMode,
397 pub msaa_writeback: MsaaWriteback,
400 pub clear_color: ClearColorConfig,
402 pub invert_culling: bool,
411 pub sub_camera_view: Option<SubCameraView>,
413}
414
415impl Default for Camera {
416 fn default() -> Self {
417 Self {
418 is_active: true,
419 order: 0,
420 viewport: None,
421 computed: Default::default(),
422 output_mode: Default::default(),
423 msaa_writeback: MsaaWriteback::default(),
424 clear_color: Default::default(),
425 invert_culling: false,
426 sub_camera_view: None,
427 }
428 }
429}
430
431impl Camera {
432 #[inline]
434 pub fn to_logical(&self, physical_size: UVec2) -> Option<Vec2> {
435 let scale = self.computed.target_info.as_ref()?.scale_factor;
436 Some(physical_size.as_vec2() / scale)
437 }
438
439 #[inline]
443 pub fn physical_viewport_rect(&self) -> Option<URect> {
444 let min = self
445 .viewport
446 .as_ref()
447 .map(|v| v.physical_position)
448 .unwrap_or(UVec2::ZERO);
449 let max = min + self.physical_viewport_size()?;
450 Some(URect { min, max })
451 }
452
453 #[inline]
457 pub fn logical_viewport_rect(&self) -> Option<Rect> {
458 let URect { min, max } = self.physical_viewport_rect()?;
459 Some(Rect {
460 min: self.to_logical(min)?,
461 max: self.to_logical(max)?,
462 })
463 }
464
465 #[inline]
479 pub fn logical_viewport_size(&self) -> Option<Vec2> {
480 self.viewport
481 .as_ref()
482 .and_then(|v| self.to_logical(v.physical_size))
483 .or_else(|| self.logical_target_size())
484 }
485
486 #[inline]
492 pub fn physical_viewport_size(&self) -> Option<UVec2> {
493 self.viewport
494 .as_ref()
495 .map(|v| v.physical_size)
496 .or_else(|| self.physical_target_size())
497 }
498
499 #[inline]
503 pub fn logical_target_size(&self) -> Option<Vec2> {
504 self.computed
505 .target_info
506 .as_ref()
507 .and_then(|t| self.to_logical(t.physical_size))
508 }
509
510 #[inline]
515 pub fn physical_target_size(&self) -> Option<UVec2> {
516 self.computed.target_info.as_ref().map(|t| t.physical_size)
517 }
518
519 #[inline]
520 pub fn target_scaling_factor(&self) -> Option<f32> {
521 self.computed
522 .target_info
523 .as_ref()
524 .map(|t: &RenderTargetInfo| t.scale_factor)
525 }
526
527 #[inline]
529 pub fn clip_from_view(&self) -> Mat4 {
530 self.computed.clip_from_view
531 }
532
533 fn world_to_viewport_core(
540 &self,
541 camera_transform: &GlobalTransform,
542 world_position: Vec3,
543 ) -> Result<(Vec2, f32), ViewportConversionError> {
544 let target_rect = self
545 .logical_viewport_rect()
546 .ok_or(ViewportConversionError::NoViewportSize)?;
547 let mut ndc_space_coords = self
548 .world_to_ndc(camera_transform, world_position)
549 .ok_or(ViewportConversionError::InvalidData)?;
550 if ndc_space_coords.z < 0.0 {
552 return Err(ViewportConversionError::PastFarPlane);
553 }
554 if ndc_space_coords.z > 1.0 {
555 return Err(ViewportConversionError::PastNearPlane);
556 }
557
558 let depth = ndc_space_coords.z;
559
560 ndc_space_coords.y = -ndc_space_coords.y;
562
563 let viewport_position =
565 (ndc_space_coords.truncate() + Vec2::ONE) / 2.0 * target_rect.size() + target_rect.min;
566 Ok((viewport_position, depth))
567 }
568
569 #[doc(alias = "world_to_screen")]
579 pub fn world_to_viewport(
580 &self,
581 camera_transform: &GlobalTransform,
582 world_position: Vec3,
583 ) -> Result<Vec2, ViewportConversionError> {
584 Ok(self
585 .world_to_viewport_core(camera_transform, world_position)?
586 .0)
587 }
588
589 #[doc(alias = "world_to_screen_with_depth")]
599 pub fn world_to_viewport_with_depth(
600 &self,
601 camera_transform: &GlobalTransform,
602 world_position: Vec3,
603 ) -> Result<Vec3, ViewportConversionError> {
604 let result = self.world_to_viewport_core(camera_transform, world_position)?;
605 let depth = -self.depth_ndc_to_view_z(result.1);
607 Ok(result.0.extend(depth))
608 }
609
610 pub fn viewport_to_world(
648 &self,
649 camera_transform: &GlobalTransform,
650 viewport_position: Vec2,
651 ) -> Result<Ray3d, ViewportConversionError> {
652 let ndc_xy = self.viewport_to_ndc(viewport_position)?;
653
654 let ndc_point_near = ndc_xy.extend(1.0).into();
655 let ndc_point_far = ndc_xy.extend(f32::EPSILON).into();
657 let view_from_clip = self.computed.clip_from_view.inverse();
658 let world_from_view = camera_transform.affine();
659 let view_point_near = view_from_clip.project_point3a(ndc_point_near);
663 let view_point_far = view_from_clip.project_point3a(ndc_point_far);
664 let view_dir = view_point_far - view_point_near;
665 let origin = world_from_view.transform_point3a(view_point_near).into();
666 let direction = world_from_view.transform_vector3a(view_dir).into();
667
668 Dir3::new(direction)
670 .map_err(|_| ViewportConversionError::InvalidData)
671 .map(|direction| Ray3d { origin, direction })
672 }
673
674 pub fn viewport_to_world_2d(
710 &self,
711 camera_transform: &GlobalTransform,
712 viewport_position: Vec2,
713 ) -> Result<Vec2, ViewportConversionError> {
714 let ndc = self.viewport_to_ndc(viewport_position)?;
715
716 let world_near_plane = self
717 .ndc_to_world(camera_transform, ndc.extend(1.))
718 .ok_or(ViewportConversionError::InvalidData)?;
719
720 Ok(world_near_plane.truncate())
721 }
722
723 pub fn world_to_ndc<V: Into<Vec3A> + From<Vec3A>>(
737 &self,
738 camera_transform: &GlobalTransform,
739 world_point: V,
740 ) -> Option<V> {
741 let view_from_world = camera_transform.affine().inverse();
742 let view_point = view_from_world.transform_point3a(world_point.into());
743 let ndc_point = self.computed.clip_from_view.project_point3a(view_point);
744
745 (!ndc_point.is_nan()).then_some(ndc_point.into())
746 }
747
748 pub fn ndc_to_world<V: Into<Vec3A> + From<Vec3A>>(
764 &self,
765 camera_transform: &GlobalTransform,
766 ndc_point: V,
767 ) -> Option<V> {
768 let view_point = self
771 .computed
772 .clip_from_view
773 .inverse()
774 .project_point3a(ndc_point.into());
775 let world_point = camera_transform.affine().transform_point3a(view_point);
776
777 (!world_point.is_nan()).then_some(world_point.into())
778 }
779
780 pub fn depth_ndc_to_view_z(&self, ndc_depth: f32) -> f32 {
785 let near = self.clip_from_view().w_axis.z; -near / ndc_depth
787 }
788
789 pub fn depth_ndc_to_view_z_2d(&self, ndc_depth: f32) -> f32 {
794 -(self.clip_from_view().w_axis.z - ndc_depth) / self.clip_from_view().z_axis.z
795 }
797
798 pub fn viewport_to_ndc(
800 &self,
801 viewport_position: Vec2,
802 ) -> Result<Vec2, ViewportConversionError> {
803 let target_rect = self
804 .logical_viewport_rect()
805 .ok_or(ViewportConversionError::NoViewportSize)?;
806 let rect_relative = (viewport_position - target_rect.min) / target_rect.size();
807 let mut ndc = rect_relative * 2. - Vec2::ONE;
808 ndc.y = -ndc.y;
810 Ok(ndc)
811 }
812}
813
814#[derive(#[automatically_derived]
impl ::core::clone::Clone for ShadowLodOrigin {
#[inline]
fn clone(&self) -> ShadowLodOrigin { *self }
}Clone, #[automatically_derived]
impl ::core::marker::Copy for ShadowLodOrigin { }Copy, #[automatically_derived]
impl ::core::default::Default for ShadowLodOrigin {
#[inline]
fn default() -> ShadowLodOrigin { ShadowLodOrigin {} }
}Default, #[doc =
"**Required Components**: [`Transform`]. \n\n A component's Required Components are inserted whenever it is inserted. Note that this will also insert the required components _of_ the required components, recursively, in depth-first order."]
impl bevy_ecs::component::Component for ShadowLodOrigin where
Self: ::core::marker::Send + ::core::marker::Sync + 'static {
const STORAGE_TYPE: bevy_ecs::component::StorageType =
bevy_ecs::component::StorageType::Table;
type Mutability = bevy_ecs::component::Mutable;
fn register_required_components(_requiree:
bevy_ecs::component::ComponentId,
required_components:
&mut bevy_ecs::component::RequiredComponentsRegistrator) {
required_components.register_required::<Transform>(<Transform as
::core::default::Default>::default);
}
fn clone_behavior() -> bevy_ecs::component::ComponentCloneBehavior {
use bevy_ecs::component::{
DefaultCloneBehaviorBase, DefaultCloneBehaviorViaClone,
};
(&&&bevy_ecs::component::DefaultCloneBehaviorSpecialization::<Self>::default()).default_clone_behavior()
}
fn relationship_accessor()
->
::core::option::Option<bevy_ecs::relationship::ComponentRelationshipAccessor<Self>> {
::core::option::Option::None
}
}Component, #[automatically_derived]
impl ::core::fmt::Debug for ShadowLodOrigin {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "ShadowLodOrigin")
}
}Debug, const _: () =
{
impl bevy_reflect::GetTypeRegistration for ShadowLodOrigin where {
fn get_type_registration() -> bevy_reflect::TypeRegistration {
let mut registration =
bevy_reflect::TypeRegistration::of::<Self>();
registration.insert::<bevy_reflect::ReflectFromPtr>(bevy_reflect::FromType::<Self>::from_type());
registration.insert::<bevy_reflect::ReflectFromReflect>(bevy_reflect::FromType::<Self>::from_type());
registration.register_type_data::<ReflectDefault, Self>();
registration.register_type_data::<ReflectComponent, Self>();
registration
}
#[inline(never)]
fn register_type_dependencies(registry:
&mut bevy_reflect::TypeRegistry) {}
}
impl bevy_reflect::Typed for ShadowLodOrigin where {
#[inline]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(||
{
bevy_reflect::TypeInfo::Struct(bevy_reflect::structs::StructInfo::new::<Self>(&[]))
})
}
}
#[allow(deprecated, reason =
"derives on a deprecated type shouldn't be considered a usage")]
impl bevy_reflect::TypePath for ShadowLodOrigin where {
fn type_path() -> &'static str {
"bevy_camera::camera::ShadowLodOrigin"
}
fn short_type_path() -> &'static str { "ShadowLodOrigin" }
fn type_ident() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("ShadowLodOrigin")
}
fn crate_name() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera".split(':').next().unwrap())
}
fn module_path() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera")
}
}
impl bevy_reflect::Reflect for ShadowLodOrigin where {
#[inline]
fn into_any(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn ::core::any::Any> {
self
}
#[inline]
fn as_any(&self) -> &dyn ::core::any::Any { self }
#[inline]
fn as_any_mut(&mut self) -> &mut dyn ::core::any::Any { self }
#[inline]
fn into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect> {
self
}
#[inline]
fn as_reflect(&self) -> &dyn bevy_reflect::Reflect { self }
#[inline]
fn as_reflect_mut(&mut self) -> &mut dyn bevy_reflect::Reflect {
self
}
#[inline]
fn set(&mut self,
value:
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>)
->
::core::result::Result<(),
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>> {
*self = <dyn bevy_reflect::Reflect>::take(value)?;
::core::result::Result::Ok(())
}
}
#[allow(non_upper_case_globals)]
const _: () =
{
static __INVENTORY: ::inventory::Node =
::inventory::Node {
value: &{
bevy_reflect::__macro_exports::auto_register::AutomaticReflectRegistrations(<ShadowLodOrigin
as
bevy_reflect::__macro_exports::auto_register::RegisterForReflection>::__register)
},
next: ::inventory::__private::UnsafeCell::new(::inventory::__private::Option::None),
};
#[link_section = ".text.startup"]
unsafe extern "C" fn __ctor() {
unsafe {
::inventory::ErasedNode::submit(__INVENTORY.value,
&__INVENTORY)
}
}
#[used]
#[link_section = ".init_array"]
static __CTOR: unsafe extern "C" fn() = __ctor;
};
impl bevy_reflect::structs::Struct for ShadowLodOrigin where {
fn field(&self, name: &str)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match name { _ => ::core::option::Option::None, }
}
fn field_mut(&mut self, name: &str)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match name { _ => ::core::option::Option::None, }
}
fn field_at(&self, index: usize)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match index { _ => ::core::option::Option::None, }
}
fn field_at_mut(&mut self, index: usize)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match index { _ => ::core::option::Option::None, }
}
fn name_at(&self, index: usize) -> ::core::option::Option<&str> {
match index { _ => ::core::option::Option::None, }
}
fn index_of_name(&self, name: &str)
-> ::core::option::Option<usize> {
match name { _ => ::core::option::Option::None, }
}
fn field_len(&self) -> usize { 0usize }
fn iter_fields(&self) -> bevy_reflect::structs::FieldIter {
bevy_reflect::structs::FieldIter::new(self)
}
fn to_dynamic_struct(&self)
-> bevy_reflect::structs::DynamicStruct {
let mut dynamic: bevy_reflect::structs::DynamicStruct =
::core::default::Default::default();
dynamic.set_represented_type(bevy_reflect::PartialReflect::get_represented_type_info(self));
dynamic
}
}
impl bevy_reflect::PartialReflect for ShadowLodOrigin where {
#[inline]
fn get_represented_type_info(&self)
-> ::core::option::Option<&'static bevy_reflect::TypeInfo> {
::core::option::Option::Some(<Self as
bevy_reflect::Typed>::type_info())
}
#[inline]
fn try_apply(&mut self, value: &dyn bevy_reflect::PartialReflect)
-> ::core::result::Result<(), bevy_reflect::ApplyError> {
if let bevy_reflect::ReflectRef::Struct(struct_value) =
bevy_reflect::PartialReflect::reflect_ref(value) {
for (name, value) in
bevy_reflect::structs::Struct::iter_fields(struct_value) {
if let ::core::option::Option::Some(v) =
bevy_reflect::structs::Struct::field_mut(self, name) {
bevy_reflect::PartialReflect::try_apply(v, value)?;
}
}
} else {
return ::core::result::Result::Err(bevy_reflect::ApplyError::MismatchedKinds {
from_kind: bevy_reflect::PartialReflect::reflect_kind(value),
to_kind: bevy_reflect::ReflectKind::Struct,
});
}
::core::result::Result::Ok(())
}
#[inline]
fn reflect_kind(&self) -> bevy_reflect::ReflectKind {
bevy_reflect::ReflectKind::Struct
}
#[inline]
fn reflect_ref(&self) -> bevy_reflect::ReflectRef {
bevy_reflect::ReflectRef::Struct(self)
}
#[inline]
fn reflect_mut(&mut self) -> bevy_reflect::ReflectMut {
bevy_reflect::ReflectMut::Struct(self)
}
#[inline]
fn reflect_owned(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
-> bevy_reflect::ReflectOwned {
bevy_reflect::ReflectOwned::Struct(self)
}
#[inline]
fn try_into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>> {
::core::result::Result::Ok(self)
}
#[inline]
fn try_as_reflect(&self)
-> ::core::option::Option<&dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn try_as_reflect_mut(&mut self)
-> ::core::option::Option<&mut dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn into_partial_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
self
}
#[inline]
fn as_partial_reflect(&self)
-> &dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn as_partial_reflect_mut(&mut self)
-> &mut dyn bevy_reflect::PartialReflect {
self
}
fn reflect_partial_eq(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<bool> {
(bevy_reflect::structs::struct_partial_eq)(self, value)
}
fn reflect_partial_cmp(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<::core::cmp::Ordering> {
(bevy_reflect::structs::struct_partial_cmp)(self, value)
}
#[inline]
fn reflect_clone(&self)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::ReflectCloneError> {
::core::result::Result::Ok(bevy_reflect::__macro_exports::alloc_utils::Box::new(::core::clone::Clone::clone(self)))
}
}
impl bevy_reflect::FromReflect for ShadowLodOrigin where {
fn from_reflect(reflect: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<Self> {
if let bevy_reflect::ReflectRef::Struct(__ref_struct) =
bevy_reflect::PartialReflect::reflect_ref(reflect) {
let mut __this =
<Self as ::core::default::Default>::default();
::core::option::Option::Some(__this)
} else { ::core::option::Option::None }
}
}
};Reflect)]
855#[reflect(Clone, Default, Component)]
856#[require(Transform)]
857pub struct ShadowLodOrigin;
858
859#[derive(#[automatically_derived]
impl ::core::fmt::Debug for CameraOutputMode {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
match self {
CameraOutputMode::Write {
blend_state: __self_0, clear_color: __self_1 } =>
::core::fmt::Formatter::debug_struct_field2_finish(f, "Write",
"blend_state", __self_0, "clear_color", &__self_1),
CameraOutputMode::Skip =>
::core::fmt::Formatter::write_str(f, "Skip"),
}
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for CameraOutputMode {
#[inline]
fn clone(&self) -> CameraOutputMode {
let _: ::core::clone::AssertParamIsClone<Option<BlendState>>;
let _: ::core::clone::AssertParamIsClone<ClearColorConfig>;
*self
}
}Clone, #[automatically_derived]
impl ::core::marker::Copy for CameraOutputMode { }Copy, const _: () =
{
impl bevy_reflect::GetTypeRegistration for CameraOutputMode where {
fn get_type_registration() -> bevy_reflect::TypeRegistration {
let mut registration =
bevy_reflect::TypeRegistration::of::<Self>();
registration.insert::<bevy_reflect::ReflectFromPtr>(bevy_reflect::FromType::<Self>::from_type());
registration.insert::<bevy_reflect::ReflectFromReflect>(bevy_reflect::FromType::<Self>::from_type());
registration
}
#[inline(never)]
fn register_type_dependencies(registry:
&mut bevy_reflect::TypeRegistry) {
<Option<BlendState> as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
<ClearColorConfig as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
}
}
impl bevy_reflect::Typed for CameraOutputMode where {
#[inline]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(||
{
bevy_reflect::TypeInfo::Enum(bevy_reflect::enums::EnumInfo::new::<Self>(&[bevy_reflect::enums::VariantInfo::Struct(bevy_reflect::enums::StructVariantInfo::new("Write",
&[bevy_reflect::NamedField::new::<Option<BlendState>>("blend_state"),
bevy_reflect::NamedField::new::<ClearColorConfig>("clear_color")])),
bevy_reflect::enums::VariantInfo::Unit(bevy_reflect::enums::UnitVariantInfo::new("Skip"))]))
})
}
}
#[allow(deprecated, reason =
"derives on a deprecated type shouldn't be considered a usage")]
impl bevy_reflect::TypePath for CameraOutputMode where {
fn type_path() -> &'static str {
"bevy_camera::camera::CameraOutputMode"
}
fn short_type_path() -> &'static str { "CameraOutputMode" }
fn type_ident() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("CameraOutputMode")
}
fn crate_name() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera".split(':').next().unwrap())
}
fn module_path() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera")
}
}
impl bevy_reflect::Reflect for CameraOutputMode where {
#[inline]
fn into_any(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn ::core::any::Any> {
self
}
#[inline]
fn as_any(&self) -> &dyn ::core::any::Any { self }
#[inline]
fn as_any_mut(&mut self) -> &mut dyn ::core::any::Any { self }
#[inline]
fn into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect> {
self
}
#[inline]
fn as_reflect(&self) -> &dyn bevy_reflect::Reflect { self }
#[inline]
fn as_reflect_mut(&mut self) -> &mut dyn bevy_reflect::Reflect {
self
}
#[inline]
fn set(&mut self,
value:
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>)
->
::core::result::Result<(),
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>> {
*self = <dyn bevy_reflect::Reflect>::take(value)?;
::core::result::Result::Ok(())
}
}
#[allow(non_upper_case_globals)]
const _: () =
{
static __INVENTORY: ::inventory::Node =
::inventory::Node {
value: &{
bevy_reflect::__macro_exports::auto_register::AutomaticReflectRegistrations(<CameraOutputMode
as
bevy_reflect::__macro_exports::auto_register::RegisterForReflection>::__register)
},
next: ::inventory::__private::UnsafeCell::new(::inventory::__private::Option::None),
};
#[link_section = ".text.startup"]
unsafe extern "C" fn __ctor() {
unsafe {
::inventory::ErasedNode::submit(__INVENTORY.value,
&__INVENTORY)
}
}
#[used]
#[link_section = ".init_array"]
static __CTOR: unsafe extern "C" fn() = __ctor;
};
impl bevy_reflect::enums::Enum for CameraOutputMode where {
fn field(&self, __name_param: &str)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match self {
CameraOutputMode::Write { blend_state: __value, .. } if
__name_param == "blend_state" =>
::core::option::Option::Some(__value),
CameraOutputMode::Write { clear_color: __value, .. } if
__name_param == "clear_color" =>
::core::option::Option::Some(__value),
_ => ::core::option::Option::None,
}
}
fn field_at(&self, __index_param: usize)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match self {
CameraOutputMode::Write { blend_state: __value, .. } if
__index_param == 0usize =>
::core::option::Option::Some(__value),
CameraOutputMode::Write { clear_color: __value, .. } if
__index_param == 1usize =>
::core::option::Option::Some(__value),
_ => ::core::option::Option::None,
}
}
fn field_mut(&mut self, __name_param: &str)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match self {
CameraOutputMode::Write { blend_state: __value, .. } if
__name_param == "blend_state" =>
::core::option::Option::Some(__value),
CameraOutputMode::Write { clear_color: __value, .. } if
__name_param == "clear_color" =>
::core::option::Option::Some(__value),
_ => ::core::option::Option::None,
}
}
fn field_at_mut(&mut self, __index_param: usize)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match self {
CameraOutputMode::Write { blend_state: __value, .. } if
__index_param == 0usize =>
::core::option::Option::Some(__value),
CameraOutputMode::Write { clear_color: __value, .. } if
__index_param == 1usize =>
::core::option::Option::Some(__value),
_ => ::core::option::Option::None,
}
}
fn index_of(&self, __name_param: &str)
-> ::core::option::Option<usize> {
match self {
CameraOutputMode::Write { .. } if
__name_param == "blend_state" =>
::core::option::Option::Some(0usize),
CameraOutputMode::Write { .. } if
__name_param == "clear_color" =>
::core::option::Option::Some(1usize),
_ => ::core::option::Option::None,
}
}
fn name_at(&self, __index_param: usize)
-> ::core::option::Option<&str> {
match self {
CameraOutputMode::Write { .. } if __index_param == 0usize =>
::core::option::Option::Some("blend_state"),
CameraOutputMode::Write { .. } if __index_param == 1usize =>
::core::option::Option::Some("clear_color"),
_ => ::core::option::Option::None,
}
}
fn iter_fields(&self) -> bevy_reflect::enums::VariantFieldIter {
bevy_reflect::enums::VariantFieldIter::new(self)
}
#[inline]
fn field_len(&self) -> usize {
match self {
CameraOutputMode::Write { .. } => 2usize,
CameraOutputMode::Skip { .. } => 0usize,
_ => 0,
}
}
#[inline]
fn variant_name(&self) -> &str {
match self {
CameraOutputMode::Write { .. } => "Write",
CameraOutputMode::Skip { .. } => "Skip",
_ =>
::core::panicking::panic("internal error: entered unreachable code"),
}
}
#[inline]
fn variant_index(&self) -> usize {
match self {
CameraOutputMode::Write { .. } => 0usize,
CameraOutputMode::Skip { .. } => 1usize,
_ =>
::core::panicking::panic("internal error: entered unreachable code"),
}
}
#[inline]
fn variant_type(&self) -> bevy_reflect::enums::VariantType {
match self {
CameraOutputMode::Write { .. } =>
bevy_reflect::enums::VariantType::Struct,
CameraOutputMode::Skip { .. } =>
bevy_reflect::enums::VariantType::Unit,
_ =>
::core::panicking::panic("internal error: entered unreachable code"),
}
}
fn to_dynamic_enum(&self) -> bevy_reflect::enums::DynamicEnum {
bevy_reflect::enums::DynamicEnum::from_ref::<Self>(self)
}
}
impl bevy_reflect::PartialReflect for CameraOutputMode where {
#[inline]
fn get_represented_type_info(&self)
-> ::core::option::Option<&'static bevy_reflect::TypeInfo> {
::core::option::Option::Some(<Self as
bevy_reflect::Typed>::type_info())
}
#[inline]
fn try_apply(&mut self,
__value_param: &dyn bevy_reflect::PartialReflect)
-> ::core::result::Result<(), bevy_reflect::ApplyError> {
if let bevy_reflect::ReflectRef::Enum(__value_param) =
bevy_reflect::PartialReflect::reflect_ref(__value_param) {
if bevy_reflect::enums::Enum::variant_name(self) ==
bevy_reflect::enums::Enum::variant_name(__value_param) {
match bevy_reflect::enums::Enum::variant_type(__value_param)
{
bevy_reflect::enums::VariantType::Struct => {
for field in
bevy_reflect::enums::Enum::iter_fields(__value_param) {
let name = field.name().unwrap();
if let ::core::option::Option::Some(v) =
bevy_reflect::enums::Enum::field_mut(self, name) {
bevy_reflect::PartialReflect::try_apply(v, field.value())?;
}
}
}
bevy_reflect::enums::VariantType::Tuple => {
for (index, field) in
::core::iter::Iterator::enumerate(bevy_reflect::enums::Enum::iter_fields(__value_param))
{
if let ::core::option::Option::Some(v) =
bevy_reflect::enums::Enum::field_at_mut(self, index) {
bevy_reflect::PartialReflect::try_apply(v, field.value())?;
}
}
}
_ => {}
}
} else {
match bevy_reflect::enums::Enum::variant_name(__value_param)
{
"Write" => {
*self =
CameraOutputMode::Write {
blend_state: {
let __blend_state = __value_param.field("blend_state");
let __blend_state =
__blend_state.ok_or(bevy_reflect::ApplyError::MissingEnumField {
variant_name: ::core::convert::Into::into("Write"),
field_name: ::core::convert::Into::into("blend_state"),
})?;
<Option<BlendState> as
bevy_reflect::FromReflect>::from_reflect(__blend_state).ok_or(bevy_reflect::ApplyError::MismatchedTypes {
from_type: ::core::convert::Into::into(bevy_reflect::DynamicTypePath::reflect_type_path(__blend_state)),
to_type: ::core::convert::Into::into(<Option<BlendState> as
bevy_reflect::TypePath>::type_path()),
})?
},
clear_color: {
let __clear_color = __value_param.field("clear_color");
let __clear_color =
__clear_color.ok_or(bevy_reflect::ApplyError::MissingEnumField {
variant_name: ::core::convert::Into::into("Write"),
field_name: ::core::convert::Into::into("clear_color"),
})?;
<ClearColorConfig as
bevy_reflect::FromReflect>::from_reflect(__clear_color).ok_or(bevy_reflect::ApplyError::MismatchedTypes {
from_type: ::core::convert::Into::into(bevy_reflect::DynamicTypePath::reflect_type_path(__clear_color)),
to_type: ::core::convert::Into::into(<ClearColorConfig as
bevy_reflect::TypePath>::type_path()),
})?
},
}
}
"Skip" => { *self = CameraOutputMode::Skip {} }
name => {
return ::core::result::Result::Err(bevy_reflect::ApplyError::UnknownVariant {
enum_name: ::core::convert::Into::into(bevy_reflect::DynamicTypePath::reflect_type_path(self)),
variant_name: ::core::convert::Into::into(name),
});
}
}
}
} else {
return ::core::result::Result::Err(bevy_reflect::ApplyError::MismatchedKinds {
from_kind: bevy_reflect::PartialReflect::reflect_kind(__value_param),
to_kind: bevy_reflect::ReflectKind::Enum,
});
}
::core::result::Result::Ok(())
}
fn reflect_kind(&self) -> bevy_reflect::ReflectKind {
bevy_reflect::ReflectKind::Enum
}
fn reflect_ref(&self) -> bevy_reflect::ReflectRef {
bevy_reflect::ReflectRef::Enum(self)
}
fn reflect_mut(&mut self) -> bevy_reflect::ReflectMut {
bevy_reflect::ReflectMut::Enum(self)
}
fn reflect_owned(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
-> bevy_reflect::ReflectOwned {
bevy_reflect::ReflectOwned::Enum(self)
}
#[inline]
fn try_into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>> {
::core::result::Result::Ok(self)
}
#[inline]
fn try_as_reflect(&self)
-> ::core::option::Option<&dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn try_as_reflect_mut(&mut self)
-> ::core::option::Option<&mut dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn into_partial_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
self
}
#[inline]
fn as_partial_reflect(&self)
-> &dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn as_partial_reflect_mut(&mut self)
-> &mut dyn bevy_reflect::PartialReflect {
self
}
fn reflect_hash(&self) -> ::core::option::Option<u64> {
(bevy_reflect::enums::enum_hash)(self)
}
fn reflect_partial_eq(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<bool> {
(bevy_reflect::enums::enum_partial_eq)(self, value)
}
fn reflect_partial_cmp(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<::core::cmp::Ordering> {
(bevy_reflect::enums::enum_partial_cmp)(self, value)
}
#[inline]
#[allow(unreachable_code, reason =
"Ignored fields without a `clone` attribute will early-return with an error")]
fn reflect_clone(&self)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::ReflectCloneError> {
let this = self;
::core::result::Result::Ok(bevy_reflect::__macro_exports::alloc_utils::Box::new(match this
{
CameraOutputMode::Write {
blend_state: __blend_state, clear_color: __clear_color } =>
CameraOutputMode::Write {
blend_state: <Option<BlendState> as
bevy_reflect::PartialReflect>::reflect_clone_and_take(__blend_state)?,
clear_color: <ClearColorConfig as
bevy_reflect::PartialReflect>::reflect_clone_and_take(__clear_color)?,
},
CameraOutputMode::Skip {} => CameraOutputMode::Skip {},
}))
}
}
impl bevy_reflect::FromReflect for CameraOutputMode where {
fn from_reflect(__param0: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<Self> {
if let bevy_reflect::ReflectRef::Enum(__param0) =
bevy_reflect::PartialReflect::reflect_ref(__param0) {
match bevy_reflect::enums::Enum::variant_name(__param0) {
"Write" =>
::core::option::Option::Some(CameraOutputMode::Write {
blend_state: {
let __blend_state = __param0.field("blend_state");
let __blend_state = __blend_state?;
<Option<BlendState> as
bevy_reflect::FromReflect>::from_reflect(__blend_state)?
},
clear_color: {
let __clear_color = __param0.field("clear_color");
let __clear_color = __clear_color?;
<ClearColorConfig as
bevy_reflect::FromReflect>::from_reflect(__clear_color)?
},
}),
"Skip" =>
::core::option::Option::Some(CameraOutputMode::Skip {}),
name => ::core::option::Option::None,
}
} else { ::core::option::Option::None }
}
}
};Reflect)]
861pub enum CameraOutputMode {
862 Write {
864 blend_state: Option<BlendState>,
867 clear_color: ClearColorConfig,
869 },
870 Skip,
877}
878
879impl Default for CameraOutputMode {
880 fn default() -> Self {
881 CameraOutputMode::Write {
882 blend_state: None,
883 clear_color: ClearColorConfig::Default,
884 }
885 }
886}
887
888#[derive(impl bevy_ecs::component::Component for RenderTarget where
Self: ::core::marker::Send + ::core::marker::Sync + 'static {
const STORAGE_TYPE: bevy_ecs::component::StorageType =
bevy_ecs::component::StorageType::Table;
type Mutability = bevy_ecs::component::Mutable;
fn register_required_components(_requiree:
bevy_ecs::component::ComponentId,
required_components:
&mut bevy_ecs::component::RequiredComponentsRegistrator) {}
fn clone_behavior() -> bevy_ecs::component::ComponentCloneBehavior {
use bevy_ecs::component::{
DefaultCloneBehaviorBase, DefaultCloneBehaviorViaClone,
};
(&&&bevy_ecs::component::DefaultCloneBehaviorSpecialization::<Self>::default()).default_clone_behavior()
}
fn map_entities<M: bevy_ecs::entity::EntityMapper>(this: &mut Self,
mapper: &mut M) {
use bevy_ecs::entity::MapEntities;
match this {
Self::Window { .. } => {}
Self::Image { .. } => {}
Self::TextureView { .. } => {}
Self::None { .. } => {}
_ => {}
}
}
fn relationship_accessor()
->
::core::option::Option<bevy_ecs::relationship::ComponentRelationshipAccessor<Self>> {
::core::option::Option::None
}
}Component, #[automatically_derived]
impl ::core::fmt::Debug for RenderTarget {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
match self {
RenderTarget::Window(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Window",
&__self_0),
RenderTarget::Image(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Image",
&__self_0),
RenderTarget::TextureView(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"TextureView", &__self_0),
RenderTarget::None { size: __self_0 } =>
::core::fmt::Formatter::debug_struct_field1_finish(f, "None",
"size", &__self_0),
}
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for RenderTarget {
#[inline]
fn clone(&self) -> RenderTarget {
match self {
RenderTarget::Window(__self_0) =>
RenderTarget::Window(::core::clone::Clone::clone(__self_0)),
RenderTarget::Image(__self_0) =>
RenderTarget::Image(::core::clone::Clone::clone(__self_0)),
RenderTarget::TextureView(__self_0) =>
RenderTarget::TextureView(::core::clone::Clone::clone(__self_0)),
RenderTarget::None { size: __self_0 } =>
RenderTarget::None {
size: ::core::clone::Clone::clone(__self_0),
},
}
}
}Clone, const _: () =
{
impl bevy_reflect::GetTypeRegistration for RenderTarget where {
fn get_type_registration() -> bevy_reflect::TypeRegistration {
let mut registration =
bevy_reflect::TypeRegistration::of::<Self>();
registration.insert::<bevy_reflect::ReflectFromPtr>(bevy_reflect::FromType::<Self>::from_type());
registration.insert::<bevy_reflect::ReflectFromReflect>(bevy_reflect::FromType::<Self>::from_type());
registration.register_type_data::<ReflectComponent, Self>();
registration
}
#[inline(never)]
fn register_type_dependencies(registry:
&mut bevy_reflect::TypeRegistry) {
<WindowRef as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
<ImageRenderTarget as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
<ManualTextureViewHandle as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
<UVec2 as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
}
}
impl bevy_reflect::Typed for RenderTarget where {
#[inline]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(||
{
bevy_reflect::TypeInfo::Enum(bevy_reflect::enums::EnumInfo::new::<Self>(&[bevy_reflect::enums::VariantInfo::Tuple(bevy_reflect::enums::TupleVariantInfo::new("Window",
&[bevy_reflect::UnnamedField::new::<WindowRef>(0usize)])),
bevy_reflect::enums::VariantInfo::Tuple(bevy_reflect::enums::TupleVariantInfo::new("Image",
&[bevy_reflect::UnnamedField::new::<ImageRenderTarget>(0usize)])),
bevy_reflect::enums::VariantInfo::Tuple(bevy_reflect::enums::TupleVariantInfo::new("TextureView",
&[bevy_reflect::UnnamedField::new::<ManualTextureViewHandle>(0usize)])),
bevy_reflect::enums::VariantInfo::Struct(bevy_reflect::enums::StructVariantInfo::new("None",
&[bevy_reflect::NamedField::new::<UVec2>("size")]))]))
})
}
}
#[allow(deprecated, reason =
"derives on a deprecated type shouldn't be considered a usage")]
impl bevy_reflect::TypePath for RenderTarget where {
fn type_path() -> &'static str {
"bevy_camera::camera::RenderTarget"
}
fn short_type_path() -> &'static str { "RenderTarget" }
fn type_ident() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("RenderTarget")
}
fn crate_name() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera".split(':').next().unwrap())
}
fn module_path() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera")
}
}
impl bevy_reflect::Reflect for RenderTarget where {
#[inline]
fn into_any(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn ::core::any::Any> {
self
}
#[inline]
fn as_any(&self) -> &dyn ::core::any::Any { self }
#[inline]
fn as_any_mut(&mut self) -> &mut dyn ::core::any::Any { self }
#[inline]
fn into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect> {
self
}
#[inline]
fn as_reflect(&self) -> &dyn bevy_reflect::Reflect { self }
#[inline]
fn as_reflect_mut(&mut self) -> &mut dyn bevy_reflect::Reflect {
self
}
#[inline]
fn set(&mut self,
value:
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>)
->
::core::result::Result<(),
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>> {
*self = <dyn bevy_reflect::Reflect>::take(value)?;
::core::result::Result::Ok(())
}
}
#[allow(non_upper_case_globals)]
const _: () =
{
static __INVENTORY: ::inventory::Node =
::inventory::Node {
value: &{
bevy_reflect::__macro_exports::auto_register::AutomaticReflectRegistrations(<RenderTarget
as
bevy_reflect::__macro_exports::auto_register::RegisterForReflection>::__register)
},
next: ::inventory::__private::UnsafeCell::new(::inventory::__private::Option::None),
};
#[link_section = ".text.startup"]
unsafe extern "C" fn __ctor() {
unsafe {
::inventory::ErasedNode::submit(__INVENTORY.value,
&__INVENTORY)
}
}
#[used]
#[link_section = ".init_array"]
static __CTOR: unsafe extern "C" fn() = __ctor;
};
impl bevy_reflect::enums::Enum for RenderTarget where {
fn field(&self, __name_param: &str)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match self {
RenderTarget::None { size: __value, .. } if
__name_param == "size" =>
::core::option::Option::Some(__value),
_ => ::core::option::Option::None,
}
}
fn field_at(&self, __index_param: usize)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match self {
RenderTarget::Window { 0: __value, .. } if
__index_param == 0usize =>
::core::option::Option::Some(__value),
RenderTarget::Image { 0: __value, .. } if
__index_param == 0usize =>
::core::option::Option::Some(__value),
RenderTarget::TextureView { 0: __value, .. } if
__index_param == 0usize =>
::core::option::Option::Some(__value),
RenderTarget::None { size: __value, .. } if
__index_param == 0usize =>
::core::option::Option::Some(__value),
_ => ::core::option::Option::None,
}
}
fn field_mut(&mut self, __name_param: &str)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match self {
RenderTarget::None { size: __value, .. } if
__name_param == "size" =>
::core::option::Option::Some(__value),
_ => ::core::option::Option::None,
}
}
fn field_at_mut(&mut self, __index_param: usize)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match self {
RenderTarget::Window { 0: __value, .. } if
__index_param == 0usize =>
::core::option::Option::Some(__value),
RenderTarget::Image { 0: __value, .. } if
__index_param == 0usize =>
::core::option::Option::Some(__value),
RenderTarget::TextureView { 0: __value, .. } if
__index_param == 0usize =>
::core::option::Option::Some(__value),
RenderTarget::None { size: __value, .. } if
__index_param == 0usize =>
::core::option::Option::Some(__value),
_ => ::core::option::Option::None,
}
}
fn index_of(&self, __name_param: &str)
-> ::core::option::Option<usize> {
match self {
RenderTarget::None { .. } if __name_param == "size" =>
::core::option::Option::Some(0usize),
_ => ::core::option::Option::None,
}
}
fn name_at(&self, __index_param: usize)
-> ::core::option::Option<&str> {
match self {
RenderTarget::None { .. } if __index_param == 0usize =>
::core::option::Option::Some("size"),
_ => ::core::option::Option::None,
}
}
fn iter_fields(&self) -> bevy_reflect::enums::VariantFieldIter {
bevy_reflect::enums::VariantFieldIter::new(self)
}
#[inline]
fn field_len(&self) -> usize {
match self {
RenderTarget::Window { .. } => 1usize,
RenderTarget::Image { .. } => 1usize,
RenderTarget::TextureView { .. } => 1usize,
RenderTarget::None { .. } => 1usize,
_ => 0,
}
}
#[inline]
fn variant_name(&self) -> &str {
match self {
RenderTarget::Window { .. } => "Window",
RenderTarget::Image { .. } => "Image",
RenderTarget::TextureView { .. } => "TextureView",
RenderTarget::None { .. } => "None",
_ =>
::core::panicking::panic("internal error: entered unreachable code"),
}
}
#[inline]
fn variant_index(&self) -> usize {
match self {
RenderTarget::Window { .. } => 0usize,
RenderTarget::Image { .. } => 1usize,
RenderTarget::TextureView { .. } => 2usize,
RenderTarget::None { .. } => 3usize,
_ =>
::core::panicking::panic("internal error: entered unreachable code"),
}
}
#[inline]
fn variant_type(&self) -> bevy_reflect::enums::VariantType {
match self {
RenderTarget::Window { .. } =>
bevy_reflect::enums::VariantType::Tuple,
RenderTarget::Image { .. } =>
bevy_reflect::enums::VariantType::Tuple,
RenderTarget::TextureView { .. } =>
bevy_reflect::enums::VariantType::Tuple,
RenderTarget::None { .. } =>
bevy_reflect::enums::VariantType::Struct,
_ =>
::core::panicking::panic("internal error: entered unreachable code"),
}
}
fn to_dynamic_enum(&self) -> bevy_reflect::enums::DynamicEnum {
bevy_reflect::enums::DynamicEnum::from_ref::<Self>(self)
}
}
impl bevy_reflect::PartialReflect for RenderTarget where {
#[inline]
fn get_represented_type_info(&self)
-> ::core::option::Option<&'static bevy_reflect::TypeInfo> {
::core::option::Option::Some(<Self as
bevy_reflect::Typed>::type_info())
}
#[inline]
fn try_apply(&mut self,
__value_param: &dyn bevy_reflect::PartialReflect)
-> ::core::result::Result<(), bevy_reflect::ApplyError> {
if let bevy_reflect::ReflectRef::Enum(__value_param) =
bevy_reflect::PartialReflect::reflect_ref(__value_param) {
if bevy_reflect::enums::Enum::variant_name(self) ==
bevy_reflect::enums::Enum::variant_name(__value_param) {
match bevy_reflect::enums::Enum::variant_type(__value_param)
{
bevy_reflect::enums::VariantType::Struct => {
for field in
bevy_reflect::enums::Enum::iter_fields(__value_param) {
let name = field.name().unwrap();
if let ::core::option::Option::Some(v) =
bevy_reflect::enums::Enum::field_mut(self, name) {
bevy_reflect::PartialReflect::try_apply(v, field.value())?;
}
}
}
bevy_reflect::enums::VariantType::Tuple => {
for (index, field) in
::core::iter::Iterator::enumerate(bevy_reflect::enums::Enum::iter_fields(__value_param))
{
if let ::core::option::Option::Some(v) =
bevy_reflect::enums::Enum::field_at_mut(self, index) {
bevy_reflect::PartialReflect::try_apply(v, field.value())?;
}
}
}
_ => {}
}
} else {
match bevy_reflect::enums::Enum::variant_name(__value_param)
{
"Window" => {
*self =
RenderTarget::Window {
0: {
let __0 = __value_param.field_at(0usize);
let __0 =
__0.ok_or(bevy_reflect::ApplyError::MissingEnumField {
variant_name: ::core::convert::Into::into("Window"),
field_name: ::core::convert::Into::into(".0"),
})?;
<WindowRef as
bevy_reflect::FromReflect>::from_reflect(__0).ok_or(bevy_reflect::ApplyError::MismatchedTypes {
from_type: ::core::convert::Into::into(bevy_reflect::DynamicTypePath::reflect_type_path(__0)),
to_type: ::core::convert::Into::into(<WindowRef as
bevy_reflect::TypePath>::type_path()),
})?
},
}
}
"Image" => {
*self =
RenderTarget::Image {
0: {
let __0 = __value_param.field_at(0usize);
let __0 =
__0.ok_or(bevy_reflect::ApplyError::MissingEnumField {
variant_name: ::core::convert::Into::into("Image"),
field_name: ::core::convert::Into::into(".0"),
})?;
<ImageRenderTarget as
bevy_reflect::FromReflect>::from_reflect(__0).ok_or(bevy_reflect::ApplyError::MismatchedTypes {
from_type: ::core::convert::Into::into(bevy_reflect::DynamicTypePath::reflect_type_path(__0)),
to_type: ::core::convert::Into::into(<ImageRenderTarget as
bevy_reflect::TypePath>::type_path()),
})?
},
}
}
"TextureView" => {
*self =
RenderTarget::TextureView {
0: {
let __0 = __value_param.field_at(0usize);
let __0 =
__0.ok_or(bevy_reflect::ApplyError::MissingEnumField {
variant_name: ::core::convert::Into::into("TextureView"),
field_name: ::core::convert::Into::into(".0"),
})?;
<ManualTextureViewHandle as
bevy_reflect::FromReflect>::from_reflect(__0).ok_or(bevy_reflect::ApplyError::MismatchedTypes {
from_type: ::core::convert::Into::into(bevy_reflect::DynamicTypePath::reflect_type_path(__0)),
to_type: ::core::convert::Into::into(<ManualTextureViewHandle
as bevy_reflect::TypePath>::type_path()),
})?
},
}
}
"None" => {
*self =
RenderTarget::None {
size: {
let __size = __value_param.field("size");
let __size =
__size.ok_or(bevy_reflect::ApplyError::MissingEnumField {
variant_name: ::core::convert::Into::into("None"),
field_name: ::core::convert::Into::into("size"),
})?;
<UVec2 as
bevy_reflect::FromReflect>::from_reflect(__size).ok_or(bevy_reflect::ApplyError::MismatchedTypes {
from_type: ::core::convert::Into::into(bevy_reflect::DynamicTypePath::reflect_type_path(__size)),
to_type: ::core::convert::Into::into(<UVec2 as
bevy_reflect::TypePath>::type_path()),
})?
},
}
}
name => {
return ::core::result::Result::Err(bevy_reflect::ApplyError::UnknownVariant {
enum_name: ::core::convert::Into::into(bevy_reflect::DynamicTypePath::reflect_type_path(self)),
variant_name: ::core::convert::Into::into(name),
});
}
}
}
} else {
return ::core::result::Result::Err(bevy_reflect::ApplyError::MismatchedKinds {
from_kind: bevy_reflect::PartialReflect::reflect_kind(__value_param),
to_kind: bevy_reflect::ReflectKind::Enum,
});
}
::core::result::Result::Ok(())
}
fn reflect_kind(&self) -> bevy_reflect::ReflectKind {
bevy_reflect::ReflectKind::Enum
}
fn reflect_ref(&self) -> bevy_reflect::ReflectRef {
bevy_reflect::ReflectRef::Enum(self)
}
fn reflect_mut(&mut self) -> bevy_reflect::ReflectMut {
bevy_reflect::ReflectMut::Enum(self)
}
fn reflect_owned(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
-> bevy_reflect::ReflectOwned {
bevy_reflect::ReflectOwned::Enum(self)
}
#[inline]
fn try_into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>> {
::core::result::Result::Ok(self)
}
#[inline]
fn try_as_reflect(&self)
-> ::core::option::Option<&dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn try_as_reflect_mut(&mut self)
-> ::core::option::Option<&mut dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn into_partial_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
self
}
#[inline]
fn as_partial_reflect(&self)
-> &dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn as_partial_reflect_mut(&mut self)
-> &mut dyn bevy_reflect::PartialReflect {
self
}
fn reflect_hash(&self) -> ::core::option::Option<u64> {
(bevy_reflect::enums::enum_hash)(self)
}
fn reflect_partial_eq(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<bool> {
(bevy_reflect::enums::enum_partial_eq)(self, value)
}
fn reflect_partial_cmp(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<::core::cmp::Ordering> {
(bevy_reflect::enums::enum_partial_cmp)(self, value)
}
#[inline]
fn reflect_clone(&self)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::ReflectCloneError> {
::core::result::Result::Ok(bevy_reflect::__macro_exports::alloc_utils::Box::new(::core::clone::Clone::clone(self)))
}
}
impl bevy_reflect::FromReflect for RenderTarget where {
fn from_reflect(__param0: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<Self> {
if let bevy_reflect::ReflectRef::Enum(__param0) =
bevy_reflect::PartialReflect::reflect_ref(__param0) {
match bevy_reflect::enums::Enum::variant_name(__param0) {
"Window" =>
::core::option::Option::Some(RenderTarget::Window {
0: {
let __0 = __param0.field_at(0usize);
let __0 = __0?;
<WindowRef as bevy_reflect::FromReflect>::from_reflect(__0)?
},
}),
"Image" =>
::core::option::Option::Some(RenderTarget::Image {
0: {
let __0 = __param0.field_at(0usize);
let __0 = __0?;
<ImageRenderTarget as
bevy_reflect::FromReflect>::from_reflect(__0)?
},
}),
"TextureView" =>
::core::option::Option::Some(RenderTarget::TextureView {
0: {
let __0 = __param0.field_at(0usize);
let __0 = __0?;
<ManualTextureViewHandle as
bevy_reflect::FromReflect>::from_reflect(__0)?
},
}),
"None" =>
::core::option::Option::Some(RenderTarget::None {
size: {
let __size = __param0.field("size");
let __size = __size?;
<UVec2 as bevy_reflect::FromReflect>::from_reflect(__size)?
},
}),
name => ::core::option::Option::None,
}
} else { ::core::option::Option::None }
}
}
};Reflect, #[allow(deprecated)]
#[allow(unreachable_code)]
#[automatically_derived]
impl derive_more::core::convert::From<(UVec2)> for RenderTarget {
#[inline]
fn from(value: (UVec2)) -> Self { RenderTarget::None { size: value } }
}From)]
891#[reflect(Clone, Component)]
892pub enum RenderTarget {
893 Window(WindowRef),
895 Image(ImageRenderTarget),
897 TextureView(ManualTextureViewHandle),
900 None {
905 size: UVec2,
907 },
908}
909
910impl RenderTarget {
911 pub fn as_image(&self) -> Option<&Handle<Image>> {
914 if let Self::Image(image_target) = self {
915 Some(&image_target.handle)
916 } else {
917 None
918 }
919 }
920
921 pub fn normalize(&self, primary_window: Option<Entity>) -> Option<NormalizedRenderTarget> {
923 match self {
924 RenderTarget::Window(window_ref) => window_ref
925 .normalize(primary_window)
926 .map(NormalizedRenderTarget::Window),
927 RenderTarget::Image(handle) => Some(NormalizedRenderTarget::Image(handle.clone())),
928 RenderTarget::TextureView(id) => Some(NormalizedRenderTarget::TextureView(*id)),
929 RenderTarget::None { size } => Some(NormalizedRenderTarget::None {
930 width: size.x,
931 height: size.y,
932 }),
933 }
934 }
935}
936
937#[derive(#[automatically_derived]
impl ::core::fmt::Debug for NormalizedRenderTarget {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
match self {
NormalizedRenderTarget::Window(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Window",
&__self_0),
NormalizedRenderTarget::Image(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Image",
&__self_0),
NormalizedRenderTarget::TextureView(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"TextureView", &__self_0),
NormalizedRenderTarget::None { width: __self_0, height: __self_1 }
=>
::core::fmt::Formatter::debug_struct_field2_finish(f, "None",
"width", __self_0, "height", &__self_1),
}
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for NormalizedRenderTarget {
#[inline]
fn clone(&self) -> NormalizedRenderTarget {
match self {
NormalizedRenderTarget::Window(__self_0) =>
NormalizedRenderTarget::Window(::core::clone::Clone::clone(__self_0)),
NormalizedRenderTarget::Image(__self_0) =>
NormalizedRenderTarget::Image(::core::clone::Clone::clone(__self_0)),
NormalizedRenderTarget::TextureView(__self_0) =>
NormalizedRenderTarget::TextureView(::core::clone::Clone::clone(__self_0)),
NormalizedRenderTarget::None { width: __self_0, height: __self_1 }
=>
NormalizedRenderTarget::None {
width: ::core::clone::Clone::clone(__self_0),
height: ::core::clone::Clone::clone(__self_1),
},
}
}
}Clone, const _: () =
{
impl bevy_reflect::GetTypeRegistration for NormalizedRenderTarget
where {
fn get_type_registration() -> bevy_reflect::TypeRegistration {
let mut registration =
bevy_reflect::TypeRegistration::of::<Self>();
registration.insert::<bevy_reflect::ReflectFromPtr>(bevy_reflect::FromType::<Self>::from_type());
registration.insert::<bevy_reflect::ReflectFromReflect>(bevy_reflect::FromType::<Self>::from_type());
registration
}
#[inline(never)]
fn register_type_dependencies(registry:
&mut bevy_reflect::TypeRegistry) {
<NormalizedWindowRef as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
<ImageRenderTarget as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
<ManualTextureViewHandle as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
<u32 as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
}
}
impl bevy_reflect::Typed for NormalizedRenderTarget where {
#[inline]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(||
{
bevy_reflect::TypeInfo::Enum(bevy_reflect::enums::EnumInfo::new::<Self>(&[bevy_reflect::enums::VariantInfo::Tuple(bevy_reflect::enums::TupleVariantInfo::new("Window",
&[bevy_reflect::UnnamedField::new::<NormalizedWindowRef>(0usize)])),
bevy_reflect::enums::VariantInfo::Tuple(bevy_reflect::enums::TupleVariantInfo::new("Image",
&[bevy_reflect::UnnamedField::new::<ImageRenderTarget>(0usize)])),
bevy_reflect::enums::VariantInfo::Tuple(bevy_reflect::enums::TupleVariantInfo::new("TextureView",
&[bevy_reflect::UnnamedField::new::<ManualTextureViewHandle>(0usize)])),
bevy_reflect::enums::VariantInfo::Struct(bevy_reflect::enums::StructVariantInfo::new("None",
&[bevy_reflect::NamedField::new::<u32>("width"),
bevy_reflect::NamedField::new::<u32>("height")]))]))
})
}
}
#[allow(deprecated, reason =
"derives on a deprecated type shouldn't be considered a usage")]
impl bevy_reflect::TypePath for NormalizedRenderTarget where {
fn type_path() -> &'static str {
"bevy_camera::camera::NormalizedRenderTarget"
}
fn short_type_path() -> &'static str { "NormalizedRenderTarget" }
fn type_ident() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("NormalizedRenderTarget")
}
fn crate_name() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera".split(':').next().unwrap())
}
fn module_path() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera")
}
}
impl bevy_reflect::Reflect for NormalizedRenderTarget where {
#[inline]
fn into_any(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn ::core::any::Any> {
self
}
#[inline]
fn as_any(&self) -> &dyn ::core::any::Any { self }
#[inline]
fn as_any_mut(&mut self) -> &mut dyn ::core::any::Any { self }
#[inline]
fn into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect> {
self
}
#[inline]
fn as_reflect(&self) -> &dyn bevy_reflect::Reflect { self }
#[inline]
fn as_reflect_mut(&mut self) -> &mut dyn bevy_reflect::Reflect {
self
}
#[inline]
fn set(&mut self,
value:
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>)
->
::core::result::Result<(),
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>> {
*self = <dyn bevy_reflect::Reflect>::take(value)?;
::core::result::Result::Ok(())
}
}
#[allow(non_upper_case_globals)]
const _: () =
{
static __INVENTORY: ::inventory::Node =
::inventory::Node {
value: &{
bevy_reflect::__macro_exports::auto_register::AutomaticReflectRegistrations(<NormalizedRenderTarget
as
bevy_reflect::__macro_exports::auto_register::RegisterForReflection>::__register)
},
next: ::inventory::__private::UnsafeCell::new(::inventory::__private::Option::None),
};
#[link_section = ".text.startup"]
unsafe extern "C" fn __ctor() {
unsafe {
::inventory::ErasedNode::submit(__INVENTORY.value,
&__INVENTORY)
}
}
#[used]
#[link_section = ".init_array"]
static __CTOR: unsafe extern "C" fn() = __ctor;
};
impl bevy_reflect::enums::Enum for NormalizedRenderTarget where {
fn field(&self, __name_param: &str)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match self {
NormalizedRenderTarget::None { width: __value, .. } if
__name_param == "width" =>
::core::option::Option::Some(__value),
NormalizedRenderTarget::None { height: __value, .. } if
__name_param == "height" =>
::core::option::Option::Some(__value),
_ => ::core::option::Option::None,
}
}
fn field_at(&self, __index_param: usize)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match self {
NormalizedRenderTarget::Window { 0: __value, .. } if
__index_param == 0usize =>
::core::option::Option::Some(__value),
NormalizedRenderTarget::Image { 0: __value, .. } if
__index_param == 0usize =>
::core::option::Option::Some(__value),
NormalizedRenderTarget::TextureView { 0: __value, .. } if
__index_param == 0usize =>
::core::option::Option::Some(__value),
NormalizedRenderTarget::None { width: __value, .. } if
__index_param == 0usize =>
::core::option::Option::Some(__value),
NormalizedRenderTarget::None { height: __value, .. } if
__index_param == 1usize =>
::core::option::Option::Some(__value),
_ => ::core::option::Option::None,
}
}
fn field_mut(&mut self, __name_param: &str)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match self {
NormalizedRenderTarget::None { width: __value, .. } if
__name_param == "width" =>
::core::option::Option::Some(__value),
NormalizedRenderTarget::None { height: __value, .. } if
__name_param == "height" =>
::core::option::Option::Some(__value),
_ => ::core::option::Option::None,
}
}
fn field_at_mut(&mut self, __index_param: usize)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match self {
NormalizedRenderTarget::Window { 0: __value, .. } if
__index_param == 0usize =>
::core::option::Option::Some(__value),
NormalizedRenderTarget::Image { 0: __value, .. } if
__index_param == 0usize =>
::core::option::Option::Some(__value),
NormalizedRenderTarget::TextureView { 0: __value, .. } if
__index_param == 0usize =>
::core::option::Option::Some(__value),
NormalizedRenderTarget::None { width: __value, .. } if
__index_param == 0usize =>
::core::option::Option::Some(__value),
NormalizedRenderTarget::None { height: __value, .. } if
__index_param == 1usize =>
::core::option::Option::Some(__value),
_ => ::core::option::Option::None,
}
}
fn index_of(&self, __name_param: &str)
-> ::core::option::Option<usize> {
match self {
NormalizedRenderTarget::None { .. } if
__name_param == "width" =>
::core::option::Option::Some(0usize),
NormalizedRenderTarget::None { .. } if
__name_param == "height" =>
::core::option::Option::Some(1usize),
_ => ::core::option::Option::None,
}
}
fn name_at(&self, __index_param: usize)
-> ::core::option::Option<&str> {
match self {
NormalizedRenderTarget::None { .. } if
__index_param == 0usize =>
::core::option::Option::Some("width"),
NormalizedRenderTarget::None { .. } if
__index_param == 1usize =>
::core::option::Option::Some("height"),
_ => ::core::option::Option::None,
}
}
fn iter_fields(&self) -> bevy_reflect::enums::VariantFieldIter {
bevy_reflect::enums::VariantFieldIter::new(self)
}
#[inline]
fn field_len(&self) -> usize {
match self {
NormalizedRenderTarget::Window { .. } => 1usize,
NormalizedRenderTarget::Image { .. } => 1usize,
NormalizedRenderTarget::TextureView { .. } => 1usize,
NormalizedRenderTarget::None { .. } => 2usize,
_ => 0,
}
}
#[inline]
fn variant_name(&self) -> &str {
match self {
NormalizedRenderTarget::Window { .. } => "Window",
NormalizedRenderTarget::Image { .. } => "Image",
NormalizedRenderTarget::TextureView { .. } => "TextureView",
NormalizedRenderTarget::None { .. } => "None",
_ =>
::core::panicking::panic("internal error: entered unreachable code"),
}
}
#[inline]
fn variant_index(&self) -> usize {
match self {
NormalizedRenderTarget::Window { .. } => 0usize,
NormalizedRenderTarget::Image { .. } => 1usize,
NormalizedRenderTarget::TextureView { .. } => 2usize,
NormalizedRenderTarget::None { .. } => 3usize,
_ =>
::core::panicking::panic("internal error: entered unreachable code"),
}
}
#[inline]
fn variant_type(&self) -> bevy_reflect::enums::VariantType {
match self {
NormalizedRenderTarget::Window { .. } =>
bevy_reflect::enums::VariantType::Tuple,
NormalizedRenderTarget::Image { .. } =>
bevy_reflect::enums::VariantType::Tuple,
NormalizedRenderTarget::TextureView { .. } =>
bevy_reflect::enums::VariantType::Tuple,
NormalizedRenderTarget::None { .. } =>
bevy_reflect::enums::VariantType::Struct,
_ =>
::core::panicking::panic("internal error: entered unreachable code"),
}
}
fn to_dynamic_enum(&self) -> bevy_reflect::enums::DynamicEnum {
bevy_reflect::enums::DynamicEnum::from_ref::<Self>(self)
}
}
impl bevy_reflect::PartialReflect for NormalizedRenderTarget where {
#[inline]
fn get_represented_type_info(&self)
-> ::core::option::Option<&'static bevy_reflect::TypeInfo> {
::core::option::Option::Some(<Self as
bevy_reflect::Typed>::type_info())
}
#[inline]
fn try_apply(&mut self,
__value_param: &dyn bevy_reflect::PartialReflect)
-> ::core::result::Result<(), bevy_reflect::ApplyError> {
if let bevy_reflect::ReflectRef::Enum(__value_param) =
bevy_reflect::PartialReflect::reflect_ref(__value_param) {
if bevy_reflect::enums::Enum::variant_name(self) ==
bevy_reflect::enums::Enum::variant_name(__value_param) {
match bevy_reflect::enums::Enum::variant_type(__value_param)
{
bevy_reflect::enums::VariantType::Struct => {
for field in
bevy_reflect::enums::Enum::iter_fields(__value_param) {
let name = field.name().unwrap();
if let ::core::option::Option::Some(v) =
bevy_reflect::enums::Enum::field_mut(self, name) {
bevy_reflect::PartialReflect::try_apply(v, field.value())?;
}
}
}
bevy_reflect::enums::VariantType::Tuple => {
for (index, field) in
::core::iter::Iterator::enumerate(bevy_reflect::enums::Enum::iter_fields(__value_param))
{
if let ::core::option::Option::Some(v) =
bevy_reflect::enums::Enum::field_at_mut(self, index) {
bevy_reflect::PartialReflect::try_apply(v, field.value())?;
}
}
}
_ => {}
}
} else {
match bevy_reflect::enums::Enum::variant_name(__value_param)
{
"Window" => {
*self =
NormalizedRenderTarget::Window {
0: {
let __0 = __value_param.field_at(0usize);
let __0 =
__0.ok_or(bevy_reflect::ApplyError::MissingEnumField {
variant_name: ::core::convert::Into::into("Window"),
field_name: ::core::convert::Into::into(".0"),
})?;
<NormalizedWindowRef as
bevy_reflect::FromReflect>::from_reflect(__0).ok_or(bevy_reflect::ApplyError::MismatchedTypes {
from_type: ::core::convert::Into::into(bevy_reflect::DynamicTypePath::reflect_type_path(__0)),
to_type: ::core::convert::Into::into(<NormalizedWindowRef as
bevy_reflect::TypePath>::type_path()),
})?
},
}
}
"Image" => {
*self =
NormalizedRenderTarget::Image {
0: {
let __0 = __value_param.field_at(0usize);
let __0 =
__0.ok_or(bevy_reflect::ApplyError::MissingEnumField {
variant_name: ::core::convert::Into::into("Image"),
field_name: ::core::convert::Into::into(".0"),
})?;
<ImageRenderTarget as
bevy_reflect::FromReflect>::from_reflect(__0).ok_or(bevy_reflect::ApplyError::MismatchedTypes {
from_type: ::core::convert::Into::into(bevy_reflect::DynamicTypePath::reflect_type_path(__0)),
to_type: ::core::convert::Into::into(<ImageRenderTarget as
bevy_reflect::TypePath>::type_path()),
})?
},
}
}
"TextureView" => {
*self =
NormalizedRenderTarget::TextureView {
0: {
let __0 = __value_param.field_at(0usize);
let __0 =
__0.ok_or(bevy_reflect::ApplyError::MissingEnumField {
variant_name: ::core::convert::Into::into("TextureView"),
field_name: ::core::convert::Into::into(".0"),
})?;
<ManualTextureViewHandle as
bevy_reflect::FromReflect>::from_reflect(__0).ok_or(bevy_reflect::ApplyError::MismatchedTypes {
from_type: ::core::convert::Into::into(bevy_reflect::DynamicTypePath::reflect_type_path(__0)),
to_type: ::core::convert::Into::into(<ManualTextureViewHandle
as bevy_reflect::TypePath>::type_path()),
})?
},
}
}
"None" => {
*self =
NormalizedRenderTarget::None {
width: {
let __width = __value_param.field("width");
let __width =
__width.ok_or(bevy_reflect::ApplyError::MissingEnumField {
variant_name: ::core::convert::Into::into("None"),
field_name: ::core::convert::Into::into("width"),
})?;
<u32 as
bevy_reflect::FromReflect>::from_reflect(__width).ok_or(bevy_reflect::ApplyError::MismatchedTypes {
from_type: ::core::convert::Into::into(bevy_reflect::DynamicTypePath::reflect_type_path(__width)),
to_type: ::core::convert::Into::into(<u32 as
bevy_reflect::TypePath>::type_path()),
})?
},
height: {
let __height = __value_param.field("height");
let __height =
__height.ok_or(bevy_reflect::ApplyError::MissingEnumField {
variant_name: ::core::convert::Into::into("None"),
field_name: ::core::convert::Into::into("height"),
})?;
<u32 as
bevy_reflect::FromReflect>::from_reflect(__height).ok_or(bevy_reflect::ApplyError::MismatchedTypes {
from_type: ::core::convert::Into::into(bevy_reflect::DynamicTypePath::reflect_type_path(__height)),
to_type: ::core::convert::Into::into(<u32 as
bevy_reflect::TypePath>::type_path()),
})?
},
}
}
name => {
return ::core::result::Result::Err(bevy_reflect::ApplyError::UnknownVariant {
enum_name: ::core::convert::Into::into(bevy_reflect::DynamicTypePath::reflect_type_path(self)),
variant_name: ::core::convert::Into::into(name),
});
}
}
}
} else {
return ::core::result::Result::Err(bevy_reflect::ApplyError::MismatchedKinds {
from_kind: bevy_reflect::PartialReflect::reflect_kind(__value_param),
to_kind: bevy_reflect::ReflectKind::Enum,
});
}
::core::result::Result::Ok(())
}
fn reflect_kind(&self) -> bevy_reflect::ReflectKind {
bevy_reflect::ReflectKind::Enum
}
fn reflect_ref(&self) -> bevy_reflect::ReflectRef {
bevy_reflect::ReflectRef::Enum(self)
}
fn reflect_mut(&mut self) -> bevy_reflect::ReflectMut {
bevy_reflect::ReflectMut::Enum(self)
}
fn reflect_owned(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
-> bevy_reflect::ReflectOwned {
bevy_reflect::ReflectOwned::Enum(self)
}
#[inline]
fn try_into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>> {
::core::result::Result::Ok(self)
}
#[inline]
fn try_as_reflect(&self)
-> ::core::option::Option<&dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn try_as_reflect_mut(&mut self)
-> ::core::option::Option<&mut dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn into_partial_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
self
}
#[inline]
fn as_partial_reflect(&self)
-> &dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn as_partial_reflect_mut(&mut self)
-> &mut dyn bevy_reflect::PartialReflect {
self
}
fn reflect_hash(&self) -> ::core::option::Option<u64> {
use ::core::hash::{Hash, Hasher};
let mut hasher = bevy_reflect::utility::reflect_hasher();
Hash::hash(&::core::any::Any::type_id(self), &mut hasher);
Hash::hash(self, &mut hasher);
::core::option::Option::Some(Hasher::finish(&hasher))
}
fn reflect_partial_eq(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<bool> {
let value =
<dyn bevy_reflect::PartialReflect>::try_downcast_ref::<Self>(value);
if let ::core::option::Option::Some(value) = value {
::core::option::Option::Some(::core::cmp::PartialEq::eq(self,
value))
} else { ::core::option::Option::Some(false) }
}
fn reflect_partial_cmp(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<::core::cmp::Ordering> {
(bevy_reflect::enums::enum_partial_cmp)(self, value)
}
#[inline]
fn reflect_clone(&self)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::ReflectCloneError> {
::core::result::Result::Ok(bevy_reflect::__macro_exports::alloc_utils::Box::new(::core::clone::Clone::clone(self)))
}
}
impl bevy_reflect::FromReflect for NormalizedRenderTarget where {
fn from_reflect(__param0: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<Self> {
if let bevy_reflect::ReflectRef::Enum(__param0) =
bevy_reflect::PartialReflect::reflect_ref(__param0) {
match bevy_reflect::enums::Enum::variant_name(__param0) {
"Window" =>
::core::option::Option::Some(NormalizedRenderTarget::Window {
0: {
let __0 = __param0.field_at(0usize);
let __0 = __0?;
<NormalizedWindowRef as
bevy_reflect::FromReflect>::from_reflect(__0)?
},
}),
"Image" =>
::core::option::Option::Some(NormalizedRenderTarget::Image {
0: {
let __0 = __param0.field_at(0usize);
let __0 = __0?;
<ImageRenderTarget as
bevy_reflect::FromReflect>::from_reflect(__0)?
},
}),
"TextureView" =>
::core::option::Option::Some(NormalizedRenderTarget::TextureView {
0: {
let __0 = __param0.field_at(0usize);
let __0 = __0?;
<ManualTextureViewHandle as
bevy_reflect::FromReflect>::from_reflect(__0)?
},
}),
"None" =>
::core::option::Option::Some(NormalizedRenderTarget::None {
width: {
let __width = __param0.field("width");
let __width = __width?;
<u32 as bevy_reflect::FromReflect>::from_reflect(__width)?
},
height: {
let __height = __param0.field("height");
let __height = __height?;
<u32 as bevy_reflect::FromReflect>::from_reflect(__height)?
},
}),
name => ::core::option::Option::None,
}
} else { ::core::option::Option::None }
}
}
};Reflect, #[automatically_derived]
impl ::core::cmp::PartialEq for NormalizedRenderTarget {
#[inline]
fn eq(&self, other: &NormalizedRenderTarget) -> bool {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
__self_discr == __arg1_discr &&
match (self, other) {
(NormalizedRenderTarget::Window(__self_0),
NormalizedRenderTarget::Window(__arg1_0)) =>
__self_0 == __arg1_0,
(NormalizedRenderTarget::Image(__self_0),
NormalizedRenderTarget::Image(__arg1_0)) =>
__self_0 == __arg1_0,
(NormalizedRenderTarget::TextureView(__self_0),
NormalizedRenderTarget::TextureView(__arg1_0)) =>
__self_0 == __arg1_0,
(NormalizedRenderTarget::None {
width: __self_0, height: __self_1 },
NormalizedRenderTarget::None {
width: __arg1_0, height: __arg1_1 }) =>
__self_0 == __arg1_0 && __self_1 == __arg1_1,
_ => unsafe { ::core::intrinsics::unreachable() }
}
}
}PartialEq, #[automatically_derived]
impl ::core::cmp::Eq for NormalizedRenderTarget {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<NormalizedWindowRef>;
let _: ::core::cmp::AssertParamIsEq<ImageRenderTarget>;
let _: ::core::cmp::AssertParamIsEq<ManualTextureViewHandle>;
let _: ::core::cmp::AssertParamIsEq<u32>;
}
}Eq, #[automatically_derived]
impl ::core::hash::Hash for NormalizedRenderTarget {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
let __self_discr = ::core::intrinsics::discriminant_value(self);
::core::hash::Hash::hash(&__self_discr, state);
match self {
NormalizedRenderTarget::Window(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
NormalizedRenderTarget::Image(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
NormalizedRenderTarget::TextureView(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
NormalizedRenderTarget::None { width: __self_0, height: __self_1 }
=> {
::core::hash::Hash::hash(__self_0, state);
::core::hash::Hash::hash(__self_1, state)
}
}
}
}Hash, #[automatically_derived]
impl ::core::cmp::PartialOrd for NormalizedRenderTarget {
#[inline]
fn partial_cmp(&self, other: &NormalizedRenderTarget)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
impl ::core::cmp::Ord for NormalizedRenderTarget {
#[inline]
fn cmp(&self, other: &NormalizedRenderTarget) -> ::core::cmp::Ordering {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
match ::core::cmp::Ord::cmp(&__self_discr, &__arg1_discr) {
::core::cmp::Ordering::Equal =>
match (self, other) {
(NormalizedRenderTarget::Window(__self_0),
NormalizedRenderTarget::Window(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(NormalizedRenderTarget::Image(__self_0),
NormalizedRenderTarget::Image(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(NormalizedRenderTarget::TextureView(__self_0),
NormalizedRenderTarget::TextureView(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(NormalizedRenderTarget::None {
width: __self_0, height: __self_1 },
NormalizedRenderTarget::None {
width: __arg1_0, height: __arg1_1 }) =>
match ::core::cmp::Ord::cmp(__self_0, __arg1_0) {
::core::cmp::Ordering::Equal =>
::core::cmp::Ord::cmp(__self_1, __arg1_1),
cmp => cmp,
},
_ => unsafe { ::core::intrinsics::unreachable() }
},
cmp => cmp,
}
}
}Ord, #[allow(deprecated)]
#[allow(unreachable_code)]
#[automatically_derived]
impl derive_more::core::convert::From<(u32, u32)> for NormalizedRenderTarget {
#[inline]
fn from(value: (u32, u32)) -> Self {
NormalizedRenderTarget::None { width: value.0, height: value.1 }
}
}From)]
941#[reflect(Clone, PartialEq, Hash)]
942pub enum NormalizedRenderTarget {
943 Window(NormalizedWindowRef),
945 Image(ImageRenderTarget),
947 TextureView(ManualTextureViewHandle),
950 None {
955 width: u32,
957 height: u32,
959 },
960}
961
962#[derive(
966 #[automatically_derived]
impl ::core::default::Default for ManualTextureViewHandle {
#[inline]
fn default() -> ManualTextureViewHandle {
ManualTextureViewHandle(::core::default::Default::default())
}
}Default,
967 #[automatically_derived]
impl ::core::fmt::Debug for ManualTextureViewHandle {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"ManualTextureViewHandle", &&self.0)
}
}Debug,
968 #[automatically_derived]
impl ::core::clone::Clone for ManualTextureViewHandle {
#[inline]
fn clone(&self) -> ManualTextureViewHandle {
let _: ::core::clone::AssertParamIsClone<u32>;
*self
}
}Clone,
969 #[automatically_derived]
impl ::core::marker::Copy for ManualTextureViewHandle { }Copy,
970 #[automatically_derived]
impl ::core::cmp::PartialEq for ManualTextureViewHandle {
#[inline]
fn eq(&self, other: &ManualTextureViewHandle) -> bool {
self.0 == other.0
}
}PartialEq,
971 #[automatically_derived]
impl ::core::cmp::Eq for ManualTextureViewHandle {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<u32>;
}
}Eq,
972 #[automatically_derived]
impl ::core::hash::Hash for ManualTextureViewHandle {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
::core::hash::Hash::hash(&self.0, state)
}
}Hash,
973 #[automatically_derived]
impl ::core::cmp::PartialOrd for ManualTextureViewHandle {
#[inline]
fn partial_cmp(&self, other: &ManualTextureViewHandle)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd,
974 #[automatically_derived]
impl ::core::cmp::Ord for ManualTextureViewHandle {
#[inline]
fn cmp(&self, other: &ManualTextureViewHandle) -> ::core::cmp::Ordering {
::core::cmp::Ord::cmp(&self.0, &other.0)
}
}Ord,
975 impl bevy_ecs::component::Component for ManualTextureViewHandle where
Self: ::core::marker::Send + ::core::marker::Sync + 'static {
const STORAGE_TYPE: bevy_ecs::component::StorageType =
bevy_ecs::component::StorageType::Table;
type Mutability = bevy_ecs::component::Mutable;
fn register_required_components(_requiree:
bevy_ecs::component::ComponentId,
required_components:
&mut bevy_ecs::component::RequiredComponentsRegistrator) {}
fn clone_behavior() -> bevy_ecs::component::ComponentCloneBehavior {
use bevy_ecs::component::{
DefaultCloneBehaviorBase, DefaultCloneBehaviorViaClone,
};
(&&&bevy_ecs::component::DefaultCloneBehaviorSpecialization::<Self>::default()).default_clone_behavior()
}
fn relationship_accessor()
->
::core::option::Option<bevy_ecs::relationship::ComponentRelationshipAccessor<Self>> {
::core::option::Option::None
}
}Component,
976 const _: () =
{
impl bevy_reflect::GetTypeRegistration for ManualTextureViewHandle
where {
fn get_type_registration() -> bevy_reflect::TypeRegistration {
let mut registration =
bevy_reflect::TypeRegistration::of::<Self>();
registration.insert::<bevy_reflect::ReflectFromPtr>(bevy_reflect::FromType::<Self>::from_type());
registration.insert::<bevy_reflect::ReflectFromReflect>(bevy_reflect::FromType::<Self>::from_type());
registration.register_type_data::<ReflectComponent, Self>();
registration.register_type_data::<ReflectDefault, Self>();
registration
}
#[inline(never)]
fn register_type_dependencies(registry:
&mut bevy_reflect::TypeRegistry) {
<u32 as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
}
}
impl bevy_reflect::Typed for ManualTextureViewHandle where {
#[inline]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(||
{
bevy_reflect::TypeInfo::TupleStruct(bevy_reflect::tuple_struct::TupleStructInfo::new::<Self>(&[bevy_reflect::UnnamedField::new::<u32>(0usize)]))
})
}
}
#[allow(deprecated, reason =
"derives on a deprecated type shouldn't be considered a usage")]
impl bevy_reflect::TypePath for ManualTextureViewHandle where {
fn type_path() -> &'static str {
"bevy_camera::camera::ManualTextureViewHandle"
}
fn short_type_path() -> &'static str { "ManualTextureViewHandle" }
fn type_ident() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("ManualTextureViewHandle")
}
fn crate_name() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera".split(':').next().unwrap())
}
fn module_path() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera")
}
}
impl bevy_reflect::Reflect for ManualTextureViewHandle where {
#[inline]
fn into_any(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn ::core::any::Any> {
self
}
#[inline]
fn as_any(&self) -> &dyn ::core::any::Any { self }
#[inline]
fn as_any_mut(&mut self) -> &mut dyn ::core::any::Any { self }
#[inline]
fn into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect> {
self
}
#[inline]
fn as_reflect(&self) -> &dyn bevy_reflect::Reflect { self }
#[inline]
fn as_reflect_mut(&mut self) -> &mut dyn bevy_reflect::Reflect {
self
}
#[inline]
fn set(&mut self,
value:
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>)
->
::core::result::Result<(),
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>> {
*self = <dyn bevy_reflect::Reflect>::take(value)?;
::core::result::Result::Ok(())
}
}
#[allow(non_upper_case_globals)]
const _: () =
{
static __INVENTORY: ::inventory::Node =
::inventory::Node {
value: &{
bevy_reflect::__macro_exports::auto_register::AutomaticReflectRegistrations(<ManualTextureViewHandle
as
bevy_reflect::__macro_exports::auto_register::RegisterForReflection>::__register)
},
next: ::inventory::__private::UnsafeCell::new(::inventory::__private::Option::None),
};
#[link_section = ".text.startup"]
unsafe extern "C" fn __ctor() {
unsafe {
::inventory::ErasedNode::submit(__INVENTORY.value,
&__INVENTORY)
}
}
#[used]
#[link_section = ".init_array"]
static __CTOR: unsafe extern "C" fn() = __ctor;
};
impl bevy_reflect::tuple_struct::TupleStruct for
ManualTextureViewHandle where {
fn field(&self, index: usize)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match index {
0usize => ::core::option::Option::Some(&self.0),
_ => ::core::option::Option::None,
}
}
fn field_mut(&mut self, index: usize)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match index {
0usize => ::core::option::Option::Some(&mut self.0),
_ => ::core::option::Option::None,
}
}
#[inline]
fn field_len(&self) -> usize { 1usize }
#[inline]
fn iter_fields(&self)
-> bevy_reflect::tuple_struct::TupleStructFieldIter {
bevy_reflect::tuple_struct::TupleStructFieldIter::new(self)
}
fn to_dynamic_tuple_struct(&self)
-> bevy_reflect::tuple_struct::DynamicTupleStruct {
let mut dynamic:
bevy_reflect::tuple_struct::DynamicTupleStruct =
::core::default::Default::default();
dynamic.set_represented_type(bevy_reflect::PartialReflect::get_represented_type_info(self));
dynamic.insert_boxed(bevy_reflect::PartialReflect::to_dynamic(&self.0));
dynamic
}
}
impl bevy_reflect::PartialReflect for ManualTextureViewHandle where {
#[inline]
fn get_represented_type_info(&self)
-> ::core::option::Option<&'static bevy_reflect::TypeInfo> {
::core::option::Option::Some(<Self as
bevy_reflect::Typed>::type_info())
}
#[inline]
fn try_apply(&mut self, value: &dyn bevy_reflect::PartialReflect)
-> ::core::result::Result<(), bevy_reflect::ApplyError> {
if let bevy_reflect::ReflectRef::TupleStruct(struct_value) =
bevy_reflect::PartialReflect::reflect_ref(value) {
for (i, value) in
::core::iter::Iterator::enumerate(bevy_reflect::tuple_struct::TupleStruct::iter_fields(struct_value))
{
if let ::core::option::Option::Some(v) =
bevy_reflect::tuple_struct::TupleStruct::field_mut(self, i)
{
bevy_reflect::PartialReflect::try_apply(v, value)?;
}
}
} else {
return ::core::result::Result::Err(bevy_reflect::ApplyError::MismatchedKinds {
from_kind: bevy_reflect::PartialReflect::reflect_kind(value),
to_kind: bevy_reflect::ReflectKind::TupleStruct,
});
}
::core::result::Result::Ok(())
}
#[inline]
fn reflect_kind(&self) -> bevy_reflect::ReflectKind {
bevy_reflect::ReflectKind::TupleStruct
}
#[inline]
fn reflect_ref(&self) -> bevy_reflect::ReflectRef {
bevy_reflect::ReflectRef::TupleStruct(self)
}
#[inline]
fn reflect_mut(&mut self) -> bevy_reflect::ReflectMut {
bevy_reflect::ReflectMut::TupleStruct(self)
}
#[inline]
fn reflect_owned(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
-> bevy_reflect::ReflectOwned {
bevy_reflect::ReflectOwned::TupleStruct(self)
}
#[inline]
fn try_into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>> {
::core::result::Result::Ok(self)
}
#[inline]
fn try_as_reflect(&self)
-> ::core::option::Option<&dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn try_as_reflect_mut(&mut self)
-> ::core::option::Option<&mut dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn into_partial_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
self
}
#[inline]
fn as_partial_reflect(&self)
-> &dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn as_partial_reflect_mut(&mut self)
-> &mut dyn bevy_reflect::PartialReflect {
self
}
fn reflect_hash(&self) -> ::core::option::Option<u64> {
use ::core::hash::{Hash, Hasher};
let mut hasher = bevy_reflect::utility::reflect_hasher();
Hash::hash(&::core::any::Any::type_id(self), &mut hasher);
Hash::hash(self, &mut hasher);
::core::option::Option::Some(Hasher::finish(&hasher))
}
fn reflect_partial_eq(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<bool> {
let value =
<dyn bevy_reflect::PartialReflect>::try_downcast_ref::<Self>(value);
if let ::core::option::Option::Some(value) = value {
::core::option::Option::Some(::core::cmp::PartialEq::eq(self,
value))
} else { ::core::option::Option::Some(false) }
}
fn reflect_partial_cmp(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<::core::cmp::Ordering> {
(bevy_reflect::tuple_struct::tuple_struct_partial_cmp)(self,
value)
}
fn debug(&self, f: &mut ::core::fmt::Formatter<'_>)
-> ::core::fmt::Result {
::core::fmt::Debug::fmt(self, f)
}
#[inline]
fn reflect_clone(&self)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::ReflectCloneError> {
::core::result::Result::Ok(bevy_reflect::__macro_exports::alloc_utils::Box::new(::core::clone::Clone::clone(self)))
}
}
impl bevy_reflect::FromReflect for ManualTextureViewHandle where {
fn from_reflect(reflect: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<Self> {
if let bevy_reflect::ReflectRef::TupleStruct(__ref_struct) =
bevy_reflect::PartialReflect::reflect_ref(reflect) {
let mut __this =
<Self as ::core::default::Default>::default();
if let ::core::option::Option::Some(__field) =
(||
<u32 as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::tuple_struct::TupleStruct::field(__ref_struct,
0)?))() {
__this.0 = __field;
}
::core::option::Option::Some(__this)
} else { ::core::option::Option::None }
}
}
};Reflect,
977 impl ::core::default::Default for ManualTextureViewHandleTemplate {
fn default() -> Self { Self(::core::default::Default::default()) }
}FromTemplate,
978)]
979#[reflect(Component, Default, Debug, PartialEq, Hash, Clone)]
980pub struct ManualTextureViewHandle(pub u32);
981
982#[derive(#[automatically_derived]
impl ::core::fmt::Debug for ImageRenderTarget {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field2_finish(f,
"ImageRenderTarget", "handle", &self.handle, "scale_factor",
&&self.scale_factor)
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for ImageRenderTarget {
#[inline]
fn clone(&self) -> ImageRenderTarget {
ImageRenderTarget {
handle: ::core::clone::Clone::clone(&self.handle),
scale_factor: ::core::clone::Clone::clone(&self.scale_factor),
}
}
}Clone, const _: () =
{
impl bevy_reflect::GetTypeRegistration for ImageRenderTarget where {
fn get_type_registration() -> bevy_reflect::TypeRegistration {
let mut registration =
bevy_reflect::TypeRegistration::of::<Self>();
registration.insert::<bevy_reflect::ReflectFromPtr>(bevy_reflect::FromType::<Self>::from_type());
registration.insert::<bevy_reflect::ReflectFromReflect>(bevy_reflect::FromType::<Self>::from_type());
registration
}
#[inline(never)]
fn register_type_dependencies(registry:
&mut bevy_reflect::TypeRegistry) {
<Handle<Image> as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
<f32 as
bevy_reflect::__macro_exports::RegisterForReflection>::__register(registry);
}
}
impl bevy_reflect::Typed for ImageRenderTarget where {
#[inline]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(||
{
bevy_reflect::TypeInfo::Struct(bevy_reflect::structs::StructInfo::new::<Self>(&[bevy_reflect::NamedField::new::<Handle<Image>>("handle"),
bevy_reflect::NamedField::new::<f32>("scale_factor")]))
})
}
}
#[allow(deprecated, reason =
"derives on a deprecated type shouldn't be considered a usage")]
impl bevy_reflect::TypePath for ImageRenderTarget where {
fn type_path() -> &'static str {
"bevy_camera::camera::ImageRenderTarget"
}
fn short_type_path() -> &'static str { "ImageRenderTarget" }
fn type_ident() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("ImageRenderTarget")
}
fn crate_name() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera".split(':').next().unwrap())
}
fn module_path() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera")
}
}
impl bevy_reflect::Reflect for ImageRenderTarget where {
#[inline]
fn into_any(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn ::core::any::Any> {
self
}
#[inline]
fn as_any(&self) -> &dyn ::core::any::Any { self }
#[inline]
fn as_any_mut(&mut self) -> &mut dyn ::core::any::Any { self }
#[inline]
fn into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect> {
self
}
#[inline]
fn as_reflect(&self) -> &dyn bevy_reflect::Reflect { self }
#[inline]
fn as_reflect_mut(&mut self) -> &mut dyn bevy_reflect::Reflect {
self
}
#[inline]
fn set(&mut self,
value:
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>)
->
::core::result::Result<(),
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>> {
*self = <dyn bevy_reflect::Reflect>::take(value)?;
::core::result::Result::Ok(())
}
}
#[allow(non_upper_case_globals)]
const _: () =
{
static __INVENTORY: ::inventory::Node =
::inventory::Node {
value: &{
bevy_reflect::__macro_exports::auto_register::AutomaticReflectRegistrations(<ImageRenderTarget
as
bevy_reflect::__macro_exports::auto_register::RegisterForReflection>::__register)
},
next: ::inventory::__private::UnsafeCell::new(::inventory::__private::Option::None),
};
#[link_section = ".text.startup"]
unsafe extern "C" fn __ctor() {
unsafe {
::inventory::ErasedNode::submit(__INVENTORY.value,
&__INVENTORY)
}
}
#[used]
#[link_section = ".init_array"]
static __CTOR: unsafe extern "C" fn() = __ctor;
};
impl bevy_reflect::structs::Struct for ImageRenderTarget where {
fn field(&self, name: &str)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match name {
"handle" => ::core::option::Option::Some(&self.handle),
"scale_factor" =>
::core::option::Option::Some(&self.scale_factor),
_ => ::core::option::Option::None,
}
}
fn field_mut(&mut self, name: &str)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match name {
"handle" => ::core::option::Option::Some(&mut self.handle),
"scale_factor" =>
::core::option::Option::Some(&mut self.scale_factor),
_ => ::core::option::Option::None,
}
}
fn field_at(&self, index: usize)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match index {
0usize => ::core::option::Option::Some(&self.handle),
1usize => ::core::option::Option::Some(&self.scale_factor),
_ => ::core::option::Option::None,
}
}
fn field_at_mut(&mut self, index: usize)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match index {
0usize => ::core::option::Option::Some(&mut self.handle),
1usize =>
::core::option::Option::Some(&mut self.scale_factor),
_ => ::core::option::Option::None,
}
}
fn name_at(&self, index: usize) -> ::core::option::Option<&str> {
match index {
0usize => ::core::option::Option::Some("handle"),
1usize => ::core::option::Option::Some("scale_factor"),
_ => ::core::option::Option::None,
}
}
fn index_of_name(&self, name: &str)
-> ::core::option::Option<usize> {
match name {
"handle" => ::core::option::Option::Some(0usize),
"scale_factor" => ::core::option::Option::Some(1usize),
_ => ::core::option::Option::None,
}
}
fn field_len(&self) -> usize { 2usize }
fn iter_fields(&self) -> bevy_reflect::structs::FieldIter {
bevy_reflect::structs::FieldIter::new(self)
}
fn to_dynamic_struct(&self)
-> bevy_reflect::structs::DynamicStruct {
let mut dynamic: bevy_reflect::structs::DynamicStruct =
::core::default::Default::default();
dynamic.set_represented_type(bevy_reflect::PartialReflect::get_represented_type_info(self));
dynamic.insert_boxed("handle",
bevy_reflect::PartialReflect::to_dynamic(&self.handle));
dynamic.insert_boxed("scale_factor",
bevy_reflect::PartialReflect::to_dynamic(&self.scale_factor));
dynamic
}
}
impl bevy_reflect::PartialReflect for ImageRenderTarget where {
#[inline]
fn get_represented_type_info(&self)
-> ::core::option::Option<&'static bevy_reflect::TypeInfo> {
::core::option::Option::Some(<Self as
bevy_reflect::Typed>::type_info())
}
#[inline]
fn try_apply(&mut self, value: &dyn bevy_reflect::PartialReflect)
-> ::core::result::Result<(), bevy_reflect::ApplyError> {
if let bevy_reflect::ReflectRef::Struct(struct_value) =
bevy_reflect::PartialReflect::reflect_ref(value) {
for (name, value) in
bevy_reflect::structs::Struct::iter_fields(struct_value) {
if let ::core::option::Option::Some(v) =
bevy_reflect::structs::Struct::field_mut(self, name) {
bevy_reflect::PartialReflect::try_apply(v, value)?;
}
}
} else {
return ::core::result::Result::Err(bevy_reflect::ApplyError::MismatchedKinds {
from_kind: bevy_reflect::PartialReflect::reflect_kind(value),
to_kind: bevy_reflect::ReflectKind::Struct,
});
}
::core::result::Result::Ok(())
}
#[inline]
fn reflect_kind(&self) -> bevy_reflect::ReflectKind {
bevy_reflect::ReflectKind::Struct
}
#[inline]
fn reflect_ref(&self) -> bevy_reflect::ReflectRef {
bevy_reflect::ReflectRef::Struct(self)
}
#[inline]
fn reflect_mut(&mut self) -> bevy_reflect::ReflectMut {
bevy_reflect::ReflectMut::Struct(self)
}
#[inline]
fn reflect_owned(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
-> bevy_reflect::ReflectOwned {
bevy_reflect::ReflectOwned::Struct(self)
}
#[inline]
fn try_into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>> {
::core::result::Result::Ok(self)
}
#[inline]
fn try_as_reflect(&self)
-> ::core::option::Option<&dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn try_as_reflect_mut(&mut self)
-> ::core::option::Option<&mut dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn into_partial_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
self
}
#[inline]
fn as_partial_reflect(&self)
-> &dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn as_partial_reflect_mut(&mut self)
-> &mut dyn bevy_reflect::PartialReflect {
self
}
fn reflect_hash(&self) -> ::core::option::Option<u64> {
use ::core::hash::{Hash, Hasher};
let mut hasher = bevy_reflect::utility::reflect_hasher();
Hash::hash(&::core::any::Any::type_id(self), &mut hasher);
Hash::hash(self, &mut hasher);
::core::option::Option::Some(Hasher::finish(&hasher))
}
fn reflect_partial_eq(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<bool> {
let value =
<dyn bevy_reflect::PartialReflect>::try_downcast_ref::<Self>(value);
if let ::core::option::Option::Some(value) = value {
::core::option::Option::Some(::core::cmp::PartialEq::eq(self,
value))
} else { ::core::option::Option::Some(false) }
}
fn reflect_partial_cmp(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<::core::cmp::Ordering> {
(bevy_reflect::structs::struct_partial_cmp)(self, value)
}
#[inline]
fn reflect_clone(&self)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::ReflectCloneError> {
::core::result::Result::Ok(bevy_reflect::__macro_exports::alloc_utils::Box::new(::core::clone::Clone::clone(self)))
}
}
impl bevy_reflect::FromReflect for ImageRenderTarget where {
fn from_reflect(reflect: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<Self> {
if let bevy_reflect::ReflectRef::Struct(__ref_struct) =
bevy_reflect::PartialReflect::reflect_ref(reflect) {
let __this =
Self {
handle: <Handle<Image> as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"handle")?)?,
scale_factor: <f32 as
bevy_reflect::FromReflect>::from_reflect(bevy_reflect::structs::Struct::field(__ref_struct,
"scale_factor")?)?,
};
::core::option::Option::Some(__this)
} else { ::core::option::Option::None }
}
}
};Reflect)]
984#[reflect(Clone, PartialEq, Hash)]
985pub struct ImageRenderTarget {
986 pub handle: Handle<Image>,
988 pub scale_factor: f32,
991}
992
993impl Eq for ImageRenderTarget {}
994
995impl PartialEq for ImageRenderTarget {
996 fn eq(&self, other: &Self) -> bool {
997 self.handle == other.handle && FloatOrd(self.scale_factor) == FloatOrd(other.scale_factor)
998 }
999}
1000
1001impl core::hash::Hash for ImageRenderTarget {
1002 fn hash<H: core::hash::Hasher>(&self, state: &mut H) {
1003 self.handle.hash(state);
1004 FloatOrd(self.scale_factor).hash(state);
1005 }
1006}
1007
1008impl PartialOrd for ImageRenderTarget {
1009 fn partial_cmp(&self, other: &Self) -> Option<core::cmp::Ordering> {
1010 Some(self.cmp(other))
1011 }
1012}
1013
1014impl Ord for ImageRenderTarget {
1015 fn cmp(&self, other: &Self) -> core::cmp::Ordering {
1016 self.handle
1017 .cmp(&other.handle)
1018 .then_with(|| FloatOrd(self.scale_factor).cmp(&FloatOrd(other.scale_factor)))
1019 }
1020}
1021
1022impl From<Handle<Image>> for RenderTarget {
1023 fn from(handle: Handle<Image>) -> Self {
1024 Self::Image(handle.into())
1025 }
1026}
1027
1028impl From<Handle<Image>> for ImageRenderTarget {
1029 fn from(handle: Handle<Image>) -> Self {
1030 Self {
1031 handle,
1032 scale_factor: 1.0,
1033 }
1034 }
1035}
1036
1037impl Default for RenderTarget {
1038 fn default() -> Self {
1039 Self::Window(Default::default())
1040 }
1041}
1042
1043#[derive(impl bevy_ecs::component::Component for CameraMainTextureUsages where
Self: ::core::marker::Send + ::core::marker::Sync + 'static {
const STORAGE_TYPE: bevy_ecs::component::StorageType =
bevy_ecs::component::StorageType::Table;
type Mutability = bevy_ecs::component::Mutable;
fn register_required_components(_requiree:
bevy_ecs::component::ComponentId,
required_components:
&mut bevy_ecs::component::RequiredComponentsRegistrator) {}
fn clone_behavior() -> bevy_ecs::component::ComponentCloneBehavior {
use bevy_ecs::component::{
DefaultCloneBehaviorBase, DefaultCloneBehaviorViaClone,
};
(&&&bevy_ecs::component::DefaultCloneBehaviorSpecialization::<Self>::default()).default_clone_behavior()
}
fn relationship_accessor()
->
::core::option::Option<bevy_ecs::relationship::ComponentRelationshipAccessor<Self>> {
::core::option::Option::None
}
}Component, #[automatically_derived]
impl ::core::clone::Clone for CameraMainTextureUsages {
#[inline]
fn clone(&self) -> CameraMainTextureUsages {
let _: ::core::clone::AssertParamIsClone<TextureUsages>;
*self
}
}Clone, #[automatically_derived]
impl ::core::marker::Copy for CameraMainTextureUsages { }Copy, const _: () =
{
impl bevy_reflect::GetTypeRegistration for CameraMainTextureUsages
where {
fn get_type_registration() -> bevy_reflect::TypeRegistration {
let mut registration =
bevy_reflect::TypeRegistration::of::<Self>();
registration.insert::<bevy_reflect::ReflectFromPtr>(bevy_reflect::FromType::<Self>::from_type());
registration.insert::<bevy_reflect::ReflectFromReflect>(bevy_reflect::FromType::<Self>::from_type());
registration.register_type_data::<ReflectComponent, Self>();
registration.register_type_data::<ReflectDefault, Self>();
registration
}
}
#[allow(deprecated, reason =
"derives on a deprecated type shouldn't be considered a usage")]
impl bevy_reflect::TypePath for CameraMainTextureUsages where {
fn type_path() -> &'static str {
"bevy_camera::camera::CameraMainTextureUsages"
}
fn short_type_path() -> &'static str { "CameraMainTextureUsages" }
fn type_ident() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("CameraMainTextureUsages")
}
fn crate_name() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera".split(':').next().unwrap())
}
fn module_path() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_camera::camera")
}
}
impl bevy_reflect::Typed for CameraMainTextureUsages where {
#[inline]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(||
{
let info = bevy_reflect::OpaqueInfo::new::<Self>();
bevy_reflect::TypeInfo::Opaque(info)
})
}
}
impl bevy_reflect::Reflect for CameraMainTextureUsages where {
#[inline]
fn into_any(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn ::core::any::Any> {
self
}
#[inline]
fn as_any(&self) -> &dyn ::core::any::Any { self }
#[inline]
fn as_any_mut(&mut self) -> &mut dyn ::core::any::Any { self }
#[inline]
fn into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect> {
self
}
#[inline]
fn as_reflect(&self) -> &dyn bevy_reflect::Reflect { self }
#[inline]
fn as_reflect_mut(&mut self) -> &mut dyn bevy_reflect::Reflect {
self
}
#[inline]
fn set(&mut self,
value:
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>)
->
::core::result::Result<(),
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>> {
*self = <dyn bevy_reflect::Reflect>::take(value)?;
::core::result::Result::Ok(())
}
}
#[allow(non_upper_case_globals)]
const _: () =
{
static __INVENTORY: ::inventory::Node =
::inventory::Node {
value: &{
bevy_reflect::__macro_exports::auto_register::AutomaticReflectRegistrations(<CameraMainTextureUsages
as
bevy_reflect::__macro_exports::auto_register::RegisterForReflection>::__register)
},
next: ::inventory::__private::UnsafeCell::new(::inventory::__private::Option::None),
};
#[link_section = ".text.startup"]
unsafe extern "C" fn __ctor() {
unsafe {
::inventory::ErasedNode::submit(__INVENTORY.value,
&__INVENTORY)
}
}
#[used]
#[link_section = ".init_array"]
static __CTOR: unsafe extern "C" fn() = __ctor;
};
impl bevy_reflect::PartialReflect for CameraMainTextureUsages where {
#[inline]
fn get_represented_type_info(&self)
-> ::core::option::Option<&'static bevy_reflect::TypeInfo> {
::core::option::Option::Some(<Self as
bevy_reflect::Typed>::type_info())
}
#[inline]
fn to_dynamic(&self)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
bevy_reflect::__macro_exports::alloc_utils::Box::new(::core::clone::Clone::clone(self))
}
#[inline]
fn try_apply(&mut self, value: &dyn bevy_reflect::PartialReflect)
-> ::core::result::Result<(), bevy_reflect::ApplyError> {
if let ::core::option::Option::Some(value) =
<dyn bevy_reflect::PartialReflect>::try_downcast_ref::<Self>(value)
{
*self = ::core::clone::Clone::clone(value);
return ::core::result::Result::Ok(());
}
::core::result::Result::Err(bevy_reflect::ApplyError::MismatchedTypes {
from_type: ::core::convert::Into::into(bevy_reflect::DynamicTypePath::reflect_type_path(value)),
to_type: ::core::convert::Into::into(<Self as
bevy_reflect::TypePath>::type_path()),
})
}
#[inline]
fn reflect_kind(&self) -> bevy_reflect::ReflectKind {
bevy_reflect::ReflectKind::Opaque
}
#[inline]
fn reflect_ref(&self) -> bevy_reflect::ReflectRef {
bevy_reflect::ReflectRef::Opaque(self)
}
#[inline]
fn reflect_mut(&mut self) -> bevy_reflect::ReflectMut {
bevy_reflect::ReflectMut::Opaque(self)
}
#[inline]
fn reflect_owned(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
-> bevy_reflect::ReflectOwned {
bevy_reflect::ReflectOwned::Opaque(self)
}
#[inline]
fn try_into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>> {
::core::result::Result::Ok(self)
}
#[inline]
fn try_as_reflect(&self)
-> ::core::option::Option<&dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn try_as_reflect_mut(&mut self)
-> ::core::option::Option<&mut dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn into_partial_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
self
}
#[inline]
fn as_partial_reflect(&self)
-> &dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn as_partial_reflect_mut(&mut self)
-> &mut dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn reflect_clone(&self)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::ReflectCloneError> {
::core::result::Result::Ok(bevy_reflect::__macro_exports::alloc_utils::Box::new(::core::clone::Clone::clone(self)))
}
}
impl bevy_reflect::FromReflect for CameraMainTextureUsages where {
fn from_reflect(reflect: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<Self> {
::core::option::Option::Some(::core::clone::Clone::clone(<dyn bevy_reflect::PartialReflect>::try_downcast_ref::<CameraMainTextureUsages>(reflect)?))
}
}
};Reflect)]
1045#[reflect(opaque)]
1046#[reflect(Component, Default, Clone)]
1047pub struct CameraMainTextureUsages(pub TextureUsages);
1048
1049impl Default for CameraMainTextureUsages {
1050 fn default() -> Self {
1051 Self(
1052 TextureUsages::RENDER_ATTACHMENT
1053 | TextureUsages::TEXTURE_BINDING
1054 | TextureUsages::COPY_SRC,
1055 )
1056 }
1057}
1058
1059impl CameraMainTextureUsages {
1060 pub fn with(mut self, usages: TextureUsages) -> Self {
1061 self.0 |= usages;
1062 self
1063 }
1064}
1065
1066#[cfg(test)]
1067mod test {
1068 use bevy_math::{Vec2, Vec3};
1069 use bevy_transform::components::GlobalTransform;
1070
1071 use crate::{
1072 Camera, OrthographicProjection, PerspectiveProjection, Projection, RenderTargetInfo,
1073 Viewport,
1074 };
1075
1076 fn make_camera(mut projection: Projection, physical_size: Vec2) -> Camera {
1077 let viewport = Viewport {
1078 physical_size: physical_size.as_uvec2(),
1079 ..Default::default()
1080 };
1081 let mut camera = Camera {
1082 viewport: Some(viewport.clone()),
1083 ..Default::default()
1084 };
1085 camera.computed.target_info = Some(RenderTargetInfo {
1086 physical_size: viewport.physical_size,
1087 scale_factor: 1.0,
1088 });
1089 projection.update(
1090 viewport.physical_size.x as f32,
1091 viewport.physical_size.y as f32,
1092 );
1093 camera.computed.clip_from_view = projection.get_clip_from_view();
1094 camera
1095 }
1096
1097 #[test]
1098 fn viewport_to_world_orthographic_3d_returns_forward() {
1099 let transform = GlobalTransform::default();
1100 let size = Vec2::new(1600.0, 900.0);
1101 let camera = make_camera(
1102 Projection::Orthographic(OrthographicProjection::default_3d()),
1103 size,
1104 );
1105 let ray = camera.viewport_to_world(&transform, Vec2::ZERO).unwrap();
1106 assert_eq!(ray.direction, transform.forward());
1107 assert!(ray
1108 .origin
1109 .abs_diff_eq(Vec3::new(-size.x * 0.5, size.y * 0.5, 0.0), 1e-4));
1110 let ray = camera.viewport_to_world(&transform, size).unwrap();
1111 assert_eq!(ray.direction, transform.forward());
1112 assert!(ray
1113 .origin
1114 .abs_diff_eq(Vec3::new(size.x * 0.5, -size.y * 0.5, 0.0), 1e-4));
1115 }
1116
1117 #[test]
1118 fn viewport_to_world_orthographic_2d_returns_forward() {
1119 let transform = GlobalTransform::default();
1120 let size = Vec2::new(1600.0, 900.0);
1121 let camera = make_camera(
1122 Projection::Orthographic(OrthographicProjection::default_2d()),
1123 size,
1124 );
1125 let ray = camera.viewport_to_world(&transform, Vec2::ZERO).unwrap();
1126 assert_eq!(ray.direction, transform.forward());
1127 assert!(ray
1128 .origin
1129 .abs_diff_eq(Vec3::new(-size.x * 0.5, size.y * 0.5, 1000.0), 1e-4));
1130 let ray = camera.viewport_to_world(&transform, size).unwrap();
1131 assert_eq!(ray.direction, transform.forward());
1132 assert!(ray
1133 .origin
1134 .abs_diff_eq(Vec3::new(size.x * 0.5, -size.y * 0.5, 1000.0), 1e-4));
1135 }
1136
1137 #[test]
1138 fn viewport_to_world_perspective_center_returns_forward() {
1139 let transform = GlobalTransform::default();
1140 let size = Vec2::new(1600.0, 900.0);
1141 let camera = make_camera(
1142 Projection::Perspective(PerspectiveProjection::default()),
1143 size,
1144 );
1145 let ray = camera.viewport_to_world(&transform, size * 0.5).unwrap();
1146 assert_eq!(ray.direction, transform.forward());
1147 assert_eq!(ray.origin, transform.forward() * 0.1);
1148 }
1149}