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, Rect, URect, UVec2, Vec2, Vec3, Vec3A};
14use bevy_reflect::prelude::*;
15use bevy_shape::Ray3d;
16use bevy_transform::components::{GlobalTransform, Transform};
17use bevy_window::{NormalizedWindowRef, WindowRef};
18use core::ops::Range;
19use derive_more::derive::From;
20use thiserror::Error;
21use wgpu_types::{BlendState, TextureUsages};
22
23#[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 as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.insert(<bevy_reflect::ReflectFromReflect as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.register_type_data_with::<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(never)]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(#[inline(never)] ||
{
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)
->
::core::result::Result<bevy_reflect::structs::DynamicStruct,
bevy_reflect::ReflectCloneError> {
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)?);
::core::result::Result::Ok(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) -> Self {
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)]
62#[reflect(Default, Clone)]
63pub struct Viewport {
64 pub physical_position: UVec2,
67 pub physical_size: UVec2,
70 pub depth: Range<f32>,
72}
73
74impl Default for Viewport {
75 fn default() -> Self {
76 Self {
77 physical_position: Default::default(),
78 physical_size: UVec2::new(1, 1),
79 depth: 0.0..1.0,
80 }
81 }
82}
83
84impl Viewport {
85 pub fn clamp_to_size(&mut self, size: UVec2) {
93 if self.physical_size.x + self.physical_position.x > size.x {
96 if self.physical_position.x < size.x {
97 self.physical_size.x = size.x - self.physical_position.x;
98 } else if size.x > 0 {
99 self.physical_position.x = size.x - 1;
100 self.physical_size.x = 1;
101 } else {
102 self.physical_position.x = 0;
103 self.physical_size.x = 0;
104 }
105 }
106 if self.physical_size.y + self.physical_position.y > size.y {
107 if self.physical_position.y < size.y {
108 self.physical_size.y = size.y - self.physical_position.y;
109 } else if size.y > 0 {
110 self.physical_position.y = size.y - 1;
111 self.physical_size.y = 1;
112 } else {
113 self.physical_position.y = 0;
114 self.physical_size.y = 0;
115 }
116 }
117 }
118
119 pub fn from_viewport_and_override(
120 viewport: Option<&Self>,
121 main_pass_resolution_override: Option<&MainPassResolutionOverride>,
122 ) -> Option<Self> {
123 if let Some(override_size) = main_pass_resolution_override {
124 let mut vp = viewport.map_or_else(Self::default, Self::clone);
125 vp.physical_size = **override_size;
126 Some(vp)
127 } else {
128 viewport.cloned()
129 }
130 }
131}
132
133#[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 as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.insert(<bevy_reflect::ReflectFromReflect as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.register_type_data_with::<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(never)]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(#[inline(never)] ||
{
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)
->
::core::result::Result<bevy_reflect::tuple_struct::DynamicTupleStruct,
bevy_reflect::ReflectCloneError> {
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)?);
::core::result::Result::Ok(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)]
144#[reflect(Component)]
145pub struct MainPassResolutionOverride(pub UVec2);
146
147#[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]#[doc(hidden)]unsafe impl ::core::clone::TrivialClone
for SubCameraView {
}
#[automatically_derived]impl ::core::clone::Clone for SubCameraView {
#[inline]
fn clone(&self) -> Self {
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 as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.insert(<bevy_reflect::ReflectFromReflect as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.register_type_data_with::<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(never)]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(#[inline(never)] ||
{
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)
->
::core::result::Result<bevy_reflect::structs::DynamicStruct,
bevy_reflect::ReflectCloneError> {
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)?);
::core::result::Result::Ok(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::marker::StructuralPartialEq for
SubCameraView {
}
#[automatically_derived]impl ::core::cmp::PartialEq for SubCameraView {
#[inline]
fn eq(&self, other: &Self) -> bool {
self.full_size == other.full_size && self.offset == other.offset &&
self.size == other.size
}
}PartialEq)]
176#[reflect(Clone, PartialEq, Default)]
177pub struct SubCameraView {
178 pub full_size: UVec2,
180 pub offset: Vec2,
182 pub size: UVec2,
184}
185
186impl Default for SubCameraView {
187 fn default() -> Self {
188 Self {
189 full_size: UVec2::new(1, 1),
190 offset: Vec2::new(0., 0.),
191 size: UVec2::new(1, 1),
192 }
193 }
194}
195
196#[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 as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.insert(<bevy_reflect::ReflectFromReflect as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
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(never)]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(#[inline(never)] ||
{
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)
->
::core::result::Result<bevy_reflect::structs::DynamicStruct,
bevy_reflect::ReflectCloneError> {
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)?);
::core::result::Result::Ok(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) -> Self {
RenderTargetInfo {
physical_size: ::core::clone::Clone::clone(&self.physical_size),
scale_factor: ::core::clone::Clone::clone(&self.scale_factor),
}
}
}Clone)]
198pub struct RenderTargetInfo {
199 pub physical_size: UVec2,
201 pub scale_factor: f32,
206}
207
208impl Default for RenderTargetInfo {
209 fn default() -> Self {
210 Self {
211 physical_size: Default::default(),
212 scale_factor: 1.,
213 }
214 }
215}
216
217#[derive(#[automatically_derived]impl ::core::default::Default for ComputedCameraValues
{
#[inline]
fn default() -> Self {
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 as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.insert(<bevy_reflect::ReflectFromReflect as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
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(never)]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(#[inline(never)] ||
{
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)
->
::core::result::Result<bevy_reflect::structs::DynamicStruct,
bevy_reflect::ReflectCloneError> {
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)?);
::core::result::Result::Ok(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) -> Self {
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)]
219pub struct ComputedCameraValues {
220 pub clip_from_view: Mat4,
221 pub target_info: Option<RenderTargetInfo>,
222 pub old_viewport_size: Option<UVec2>,
224 pub old_sub_camera_view: Option<SubCameraView>,
225}
226
227#[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]#[doc(hidden)]unsafe impl ::core::clone::TrivialClone
for Exposure {
}
#[automatically_derived]impl ::core::clone::Clone for Exposure {
#[inline]
fn clone(&self) -> Self {
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 as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.insert(<bevy_reflect::ReflectFromReflect as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.register_type_data_with::<ReflectComponent, Self,
_>(());
registration.register_type_data_with::<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(never)]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(#[inline(never)] ||
{
let info = bevy_reflect::OpaqueInfo::new::<Self>();
bevy_reflect::TypeInfo::Opaque(bevy_reflect::OpaqueInfo::new::<Self>())
})
}
}
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)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>,
bevy_reflect::ReflectCloneError> {
::core::result::Result::Ok(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)]
231#[reflect(opaque)]
232#[reflect(Component, Default, Clone)]
233pub struct Exposure {
234 pub ev100: f32,
236}
237
238impl Exposure {
239 pub const SUNLIGHT: Self = Self {
240 ev100: Self::EV100_SUNLIGHT,
241 };
242 pub const OVERCAST: Self = Self {
243 ev100: Self::EV100_OVERCAST,
244 };
245 pub const INDOOR: Self = Self {
246 ev100: Self::EV100_INDOOR,
247 };
248 pub const BLENDER: Self = Self {
253 ev100: Self::EV100_BLENDER,
254 };
255
256 pub const EV100_SUNLIGHT: f32 = 15.0;
257 pub const EV100_OVERCAST: f32 = 12.0;
258 pub const EV100_INDOOR: f32 = 7.0;
259
260 pub const EV100_BLENDER: f32 = 9.7;
265
266 pub fn from_physical_camera(physical_camera_parameters: PhysicalCameraParameters) -> Self {
267 Self {
268 ev100: physical_camera_parameters.ev100(),
269 }
270 }
271
272 #[inline]
275 pub fn exposure(&self) -> f32 {
276 ops::exp2(-self.ev100) / 1.2
277 }
278}
279
280impl Default for Exposure {
281 fn default() -> Self {
282 Self::BLENDER
283 }
284}
285
286#[derive(#[automatically_derived]#[doc(hidden)]unsafe impl ::core::clone::TrivialClone
for PhysicalCameraParameters {
}
#[automatically_derived]impl ::core::clone::Clone for PhysicalCameraParameters
{
#[inline]
fn clone(&self) -> Self {
let _: ::core::clone::AssertParamIsClone<f32>;
*self
}
}Clone, #[automatically_derived]impl ::core::marker::Copy for PhysicalCameraParameters
{
}Copy)]
289pub struct PhysicalCameraParameters {
290 pub aperture_f_stops: f32,
292 pub shutter_speed_s: f32,
294 pub sensitivity_iso: f32,
296 pub sensor_height: f32,
305}
306
307impl PhysicalCameraParameters {
308 pub fn ev100(&self) -> f32 {
310 ops::log2(
311 self.aperture_f_stops * self.aperture_f_stops * 100.0
312 / (self.shutter_speed_s * self.sensitivity_iso),
313 )
314 }
315}
316
317impl Default for PhysicalCameraParameters {
318 fn default() -> Self {
319 Self {
320 aperture_f_stops: 1.0,
321 shutter_speed_s: 1.0 / 125.0,
322 sensitivity_iso: 100.0,
323 sensor_height: 0.01866,
324 }
325 }
326}
327
328#[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 { }Eq, #[automatically_derived]impl ::core::marker::StructuralPartialEq for
ViewportConversionError {
}
#[automatically_derived]impl ::core::cmp::PartialEq for
ViewportConversionError {
#[inline]
fn eq(&self, other: &Self) -> bool {
::core::intrinsics::discriminant_value(self) ==
::core::intrinsics::discriminant_value(other)
}
}PartialEq, #[automatically_derived]impl ::core::marker::Copy for ViewportConversionError
{
}Copy, #[automatically_derived]#[doc(hidden)]unsafe impl ::core::clone::TrivialClone
for ViewportConversionError {
}
#[automatically_derived]impl ::core::clone::Clone for ViewportConversionError
{
#[inline]
fn clone(&self) -> Self { *self }
}Clone, #[allow(unused_qualifications)]
#[automatically_derived]
impl ::thiserror::__private21::Error for ViewportConversionError { }
#[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)]
332pub enum ViewportConversionError {
333 #[error("pre-computed size of viewport not available")]
342 NoViewportSize,
343 #[error("computed coordinate beyond `Camera`'s near plane")]
347 PastNearPlane,
348 #[error("computed coordinate beyond `Camera`'s far plane")]
352 PastFarPlane,
353 #[error("found NaN while computing NDC")]
357 InvalidData,
358}
359
360#[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 as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.insert(<bevy_reflect::ReflectFromReflect as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.register_type_data_with::<ReflectComponent, Self,
_>(());
registration.register_type_data_with::<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(never)]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(#[inline(never)] ||
{
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)
->
::core::result::Result<bevy_reflect::structs::DynamicStruct,
bevy_reflect::ReflectCloneError> {
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)?);
::core::result::Result::Ok(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) -> Self {
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)]
376#[reflect(Component, Default, Debug, Clone)]
377#[require(
378 Frustum,
379 CameraMainTextureUsages,
380 VisibleEntities,
381 Transform,
382 Visibility,
383 RenderTarget
384)]
385pub struct Camera {
386 pub viewport: Option<Viewport>,
388 pub order: isize,
390 pub is_active: bool,
393 pub computed: ComputedCameraValues,
395 pub output_mode: CameraOutputMode,
398 pub msaa_writeback: MsaaWriteback,
401 pub clear_color: ClearColorConfig,
403 pub invert_culling: bool,
412 pub sub_camera_view: Option<SubCameraView>,
414}
415
416impl Default for Camera {
417 fn default() -> Self {
418 Self {
419 is_active: true,
420 order: 0,
421 viewport: None,
422 computed: Default::default(),
423 output_mode: Default::default(),
424 msaa_writeback: MsaaWriteback::default(),
425 clear_color: Default::default(),
426 invert_culling: false,
427 sub_camera_view: None,
428 }
429 }
430}
431
432impl Camera {
433 #[inline]
435 pub fn to_logical(&self, physical_size: UVec2) -> Option<Vec2> {
436 let scale = self.computed.target_info.as_ref()?.scale_factor;
437 Some(physical_size.as_vec2() / scale)
438 }
439
440 #[inline]
444 pub fn physical_viewport_rect(&self) -> Option<URect> {
445 let min = self
446 .viewport
447 .as_ref()
448 .map(|v| v.physical_position)
449 .unwrap_or(UVec2::ZERO);
450 let max = min + self.physical_viewport_size()?;
451 Some(URect { min, max })
452 }
453
454 #[inline]
458 pub fn logical_viewport_rect(&self) -> Option<Rect> {
459 let URect { min, max } = self.physical_viewport_rect()?;
460 Some(Rect {
461 min: self.to_logical(min)?,
462 max: self.to_logical(max)?,
463 })
464 }
465
466 #[inline]
480 pub fn logical_viewport_size(&self) -> Option<Vec2> {
481 self.viewport
482 .as_ref()
483 .and_then(|v| self.to_logical(v.physical_size))
484 .or_else(|| self.logical_target_size())
485 }
486
487 #[inline]
493 pub fn physical_viewport_size(&self) -> Option<UVec2> {
494 self.viewport
495 .as_ref()
496 .map(|v| v.physical_size)
497 .or_else(|| self.physical_target_size())
498 }
499
500 #[inline]
504 pub fn logical_target_size(&self) -> Option<Vec2> {
505 self.computed
506 .target_info
507 .as_ref()
508 .and_then(|t| self.to_logical(t.physical_size))
509 }
510
511 #[inline]
516 pub fn physical_target_size(&self) -> Option<UVec2> {
517 self.computed.target_info.as_ref().map(|t| t.physical_size)
518 }
519
520 #[inline]
521 pub fn target_scaling_factor(&self) -> Option<f32> {
522 self.computed
523 .target_info
524 .as_ref()
525 .map(|t: &RenderTargetInfo| t.scale_factor)
526 }
527
528 #[inline]
530 pub fn clip_from_view(&self) -> Mat4 {
531 self.computed.clip_from_view
532 }
533
534 fn world_to_viewport_core(
541 &self,
542 camera_transform: &GlobalTransform,
543 world_position: Vec3,
544 ) -> Result<(Vec2, f32), ViewportConversionError> {
545 let target_rect = self
546 .logical_viewport_rect()
547 .ok_or(ViewportConversionError::NoViewportSize)?;
548 let mut ndc_space_coords = self
549 .world_to_ndc(camera_transform, world_position)
550 .ok_or(ViewportConversionError::InvalidData)?;
551 if ndc_space_coords.z < 0.0 {
553 return Err(ViewportConversionError::PastFarPlane);
554 }
555 if ndc_space_coords.z > 1.0 {
556 return Err(ViewportConversionError::PastNearPlane);
557 }
558
559 let depth = ndc_space_coords.z;
560
561 ndc_space_coords.y = -ndc_space_coords.y;
563
564 let viewport_position =
566 (ndc_space_coords.truncate() + Vec2::ONE) / 2.0 * target_rect.size() + target_rect.min;
567 Ok((viewport_position, depth))
568 }
569
570 #[doc(alias = "world_to_screen")]
580 pub fn world_to_viewport(
581 &self,
582 camera_transform: &GlobalTransform,
583 world_position: Vec3,
584 ) -> Result<Vec2, ViewportConversionError> {
585 Ok(self
586 .world_to_viewport_core(camera_transform, world_position)?
587 .0)
588 }
589
590 #[doc(alias = "world_to_screen_with_depth")]
600 pub fn world_to_viewport_with_depth(
601 &self,
602 camera_transform: &GlobalTransform,
603 world_position: Vec3,
604 ) -> Result<Vec3, ViewportConversionError> {
605 let result = self.world_to_viewport_core(camera_transform, world_position)?;
606 let depth = -self.depth_ndc_to_view_z(result.1);
608 Ok(result.0.extend(depth))
609 }
610
611 pub fn viewport_to_world(
649 &self,
650 camera_transform: &GlobalTransform,
651 viewport_position: Vec2,
652 ) -> Result<Ray3d, ViewportConversionError> {
653 let ndc_xy = self.viewport_to_ndc(viewport_position)?;
654
655 let ndc_point_near = ndc_xy.extend(1.0).into();
656 let ndc_point_far = ndc_xy.extend(f32::EPSILON).into();
658 let view_from_clip = self.computed.clip_from_view.inverse();
659 let world_from_view = camera_transform.affine();
660 let view_point_near = view_from_clip.project_point3a(ndc_point_near);
664 let view_point_far = view_from_clip.project_point3a(ndc_point_far);
665 let view_dir = view_point_far - view_point_near;
666 let origin = world_from_view.transform_point3a(view_point_near).into();
667 let direction = world_from_view.transform_vector3a(view_dir).into();
668
669 Dir3::new(direction)
671 .map_err(|_| ViewportConversionError::InvalidData)
672 .map(|direction| Ray3d { origin, direction })
673 }
674
675 pub fn viewport_to_world_2d(
711 &self,
712 camera_transform: &GlobalTransform,
713 viewport_position: Vec2,
714 ) -> Result<Vec2, ViewportConversionError> {
715 let ndc = self.viewport_to_ndc(viewport_position)?;
716
717 let world_near_plane = self
718 .ndc_to_world(camera_transform, ndc.extend(1.))
719 .ok_or(ViewportConversionError::InvalidData)?;
720
721 Ok(world_near_plane.truncate())
722 }
723
724 pub fn world_to_ndc<V: Into<Vec3A> + From<Vec3A>>(
738 &self,
739 camera_transform: &GlobalTransform,
740 world_point: V,
741 ) -> Option<V> {
742 let view_from_world = camera_transform.affine().inverse();
743 let view_point = view_from_world.transform_point3a(world_point.into());
744 let ndc_point = self.computed.clip_from_view.project_point3a(view_point);
745
746 (!ndc_point.is_nan()).then_some(ndc_point.into())
747 }
748
749 pub fn ndc_to_world<V: Into<Vec3A> + From<Vec3A>>(
765 &self,
766 camera_transform: &GlobalTransform,
767 ndc_point: V,
768 ) -> Option<V> {
769 let view_point = self
772 .computed
773 .clip_from_view
774 .inverse()
775 .project_point3a(ndc_point.into());
776 let world_point = camera_transform.affine().transform_point3a(view_point);
777
778 (!world_point.is_nan()).then_some(world_point.into())
779 }
780
781 pub fn depth_ndc_to_view_z(&self, ndc_depth: f32) -> f32 {
786 let near = self.clip_from_view().w_axis.z; -near / ndc_depth
788 }
789
790 pub fn depth_ndc_to_view_z_2d(&self, ndc_depth: f32) -> f32 {
795 -(self.clip_from_view().w_axis.z - ndc_depth) / self.clip_from_view().z_axis.z
796 }
798
799 pub fn viewport_to_ndc(
801 &self,
802 viewport_position: Vec2,
803 ) -> Result<Vec2, ViewportConversionError> {
804 let target_rect = self
805 .logical_viewport_rect()
806 .ok_or(ViewportConversionError::NoViewportSize)?;
807 let rect_relative = (viewport_position - target_rect.min) / target_rect.size();
808 let mut ndc = rect_relative * 2. - Vec2::ONE;
809 ndc.y = -ndc.y;
811 Ok(ndc)
812 }
813}
814
815#[derive(#[automatically_derived]#[doc(hidden)]unsafe impl ::core::clone::TrivialClone
for ShadowLodOrigin {
}
#[automatically_derived]impl ::core::clone::Clone for ShadowLodOrigin {
#[inline]
fn clone(&self) -> Self { *self }
}Clone, #[automatically_derived]impl ::core::marker::Copy for ShadowLodOrigin { }Copy, #[automatically_derived]impl ::core::default::Default for ShadowLodOrigin {
#[inline]
fn default() -> Self { 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 as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.insert(<bevy_reflect::ReflectFromReflect as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.register_type_data_with::<ReflectDefault, Self,
_>(());
registration.register_type_data_with::<ReflectComponent, Self,
_>(());
registration
}
#[inline(never)]
fn register_type_dependencies(registry:
&mut bevy_reflect::TypeRegistry) {}
}
impl bevy_reflect::Typed for ShadowLodOrigin where {
#[inline(never)]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(#[inline(never)] ||
{
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)
->
::core::result::Result<bevy_reflect::structs::DynamicStruct,
bevy_reflect::ReflectCloneError> {
let mut dynamic: bevy_reflect::structs::DynamicStruct =
::core::default::Default::default();
dynamic.set_represented_type(bevy_reflect::PartialReflect::get_represented_type_info(self));
::core::result::Result::Ok(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)]
856#[reflect(Clone, Default, Component)]
857#[require(Transform)]
858pub struct ShadowLodOrigin;
859
860#[derive(#[automatically_derived]impl ::core::fmt::Debug for CameraOutputMode {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
match self {
Self::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),
Self::Skip => ::core::fmt::Formatter::write_str(f, "Skip"),
}
}
}Debug, #[automatically_derived]#[doc(hidden)]unsafe impl ::core::clone::TrivialClone
for CameraOutputMode {
}
#[automatically_derived]impl ::core::clone::Clone for CameraOutputMode {
#[inline]
fn clone(&self) -> Self {
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 as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.insert(<bevy_reflect::ReflectFromReflect as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
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(never)]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(#[inline(never)] ||
{
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::unreachable_default_msg(),
}
}
#[inline]
fn variant_index(&self) -> usize {
match self {
CameraOutputMode::Write { .. } => 0usize,
CameraOutputMode::Skip { .. } => 1usize,
_ => ::core::panicking::unreachable_default_msg(),
}
}
#[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::unreachable_default_msg(),
}
}
fn to_dynamic_enum(&self)
->
::core::result::Result<bevy_reflect::enums::DynamicEnum,
bevy_reflect::ReflectCloneError> {
bevy_reflect::enums::DynamicEnum::try_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)]
862pub enum CameraOutputMode {
863 Write {
865 blend_state: Option<BlendState>,
868 clear_color: ClearColorConfig,
870 },
871 Skip,
878}
879
880impl Default for CameraOutputMode {
881 fn default() -> Self {
882 CameraOutputMode::Write {
883 blend_state: None,
884 clear_color: ClearColorConfig::Default,
885 }
886 }
887}
888
889#[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, impl bevy_ecs::template::FromTemplate for RenderTarget {
type Template = RenderTargetTemplate;
}
impl ::core::marker::Unpin for RenderTarget where
for<'a> [()]: bevy_ecs::template::SpecializeFromTemplate {}
#[allow(missing_docs)]
pub enum RenderTargetTemplate {
Window(<WindowRef as bevy_ecs::template::FromTemplate>::Template),
Image(<ImageRenderTarget as bevy_ecs::template::FromTemplate>::Template),
TextureView(<ManualTextureViewHandle as
bevy_ecs::template::FromTemplate>::Template),
None {
size: <UVec2 as bevy_ecs::template::FromTemplate>::Template,
},
}
impl bevy_ecs::template::Template for RenderTargetTemplate {
type Output = RenderTarget;
fn build_template(&self,
context: &mut bevy_ecs::template::TemplateContext)
-> bevy_ecs::error::Result<Self::Output> {
bevy_ecs::error::Result::Ok(match self {
RenderTargetTemplate::Window(t0) => {
RenderTarget::Window(t0.build_template(context)?)
}
RenderTargetTemplate::Image(t0) => {
RenderTarget::Image(t0.build_template(context)?)
}
RenderTargetTemplate::TextureView(t0) => {
RenderTarget::TextureView(t0.build_template(context)?)
}
RenderTargetTemplate::None { size } => {
RenderTarget::None { size: size.build_template(context)? }
}
})
}
fn clone_template(&self) -> Self {
match self {
RenderTargetTemplate::Window(t0) => {
RenderTargetTemplate::Window(bevy_ecs::template::Template::clone_template(t0))
}
RenderTargetTemplate::Image(t0) => {
RenderTargetTemplate::Image(bevy_ecs::template::Template::clone_template(t0))
}
RenderTargetTemplate::TextureView(t0) => {
RenderTargetTemplate::TextureView(bevy_ecs::template::Template::clone_template(t0))
}
RenderTargetTemplate::None { size } => {
RenderTargetTemplate::None {
size: bevy_ecs::template::Template::clone_template(size),
}
}
}
}
}
impl ::core::default::Default for RenderTargetTemplate {
fn default() -> Self { Self::Window(::core::default::Default::default()) }
}FromTemplate, #[automatically_derived]impl ::core::fmt::Debug for RenderTarget {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
match self {
Self::Window(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Window",
&__self_0),
Self::Image(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Image",
&__self_0),
Self::TextureView(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"TextureView", &__self_0),
Self::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) -> Self {
match self {
Self::Window(__self_0) =>
RenderTarget::Window(::core::clone::Clone::clone(__self_0)),
Self::Image(__self_0) =>
RenderTarget::Image(::core::clone::Clone::clone(__self_0)),
Self::TextureView(__self_0) =>
RenderTarget::TextureView(::core::clone::Clone::clone(__self_0)),
Self::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 as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.insert(<bevy_reflect::ReflectFromReflect as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.register_type_data_with::<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(never)]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(#[inline(never)] ||
{
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::unreachable_default_msg(),
}
}
#[inline]
fn variant_index(&self) -> usize {
match self {
RenderTarget::Window { .. } => 0usize,
RenderTarget::Image { .. } => 1usize,
RenderTarget::TextureView { .. } => 2usize,
RenderTarget::None { .. } => 3usize,
_ => ::core::panicking::unreachable_default_msg(),
}
}
#[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::unreachable_default_msg(),
}
}
fn to_dynamic_enum(&self)
->
::core::result::Result<bevy_reflect::enums::DynamicEnum,
bevy_reflect::ReflectCloneError> {
bevy_reflect::enums::DynamicEnum::try_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<(WindowRef)> for RenderTarget {
#[inline]
fn from(value: (WindowRef)) -> Self { RenderTarget::Window(value) }
}
#[allow(deprecated)]
#[allow(unreachable_code)]
#[automatically_derived]
impl derive_more::core::convert::From<(ImageRenderTarget)> for RenderTarget {
#[inline]
fn from(value: (ImageRenderTarget)) -> Self { RenderTarget::Image(value) }
}
#[allow(deprecated)]
#[allow(unreachable_code)]
#[automatically_derived]
impl derive_more::core::convert::From<(ManualTextureViewHandle)> for
RenderTarget {
#[inline]
fn from(value: (ManualTextureViewHandle)) -> Self {
RenderTarget::TextureView(value)
}
}
#[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)]
892#[reflect(Clone, Component)]
893pub enum RenderTarget {
894 #[default]
896 Window(WindowRef),
897 Image(ImageRenderTarget),
899 TextureView(ManualTextureViewHandle),
902 None {
907 size: UVec2,
909 },
910}
911
912impl RenderTarget {
913 pub fn as_image(&self) -> Option<&Handle<Image>> {
916 if let Self::Image(image_target) = self {
917 Some(&image_target.handle)
918 } else {
919 None
920 }
921 }
922
923 pub fn normalize(&self, primary_window: Option<Entity>) -> Option<NormalizedRenderTarget> {
925 match self {
926 RenderTarget::Window(window_ref) => window_ref
927 .normalize(primary_window)
928 .map(NormalizedRenderTarget::Window),
929 RenderTarget::Image(handle) => Some(NormalizedRenderTarget::Image(handle.clone())),
930 RenderTarget::TextureView(id) => Some(NormalizedRenderTarget::TextureView(*id)),
931 RenderTarget::None { size } => Some(NormalizedRenderTarget::None {
932 width: size.x,
933 height: size.y,
934 }),
935 }
936 }
937}
938
939#[derive(#[automatically_derived]impl ::core::fmt::Debug for NormalizedRenderTarget {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
match self {
Self::Window(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Window",
&__self_0),
Self::Image(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Image",
&__self_0),
Self::TextureView(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"TextureView", &__self_0),
Self::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) -> Self {
match self {
Self::Window(__self_0) =>
NormalizedRenderTarget::Window(::core::clone::Clone::clone(__self_0)),
Self::Image(__self_0) =>
NormalizedRenderTarget::Image(::core::clone::Clone::clone(__self_0)),
Self::TextureView(__self_0) =>
NormalizedRenderTarget::TextureView(::core::clone::Clone::clone(__self_0)),
Self::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 as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.insert(<bevy_reflect::ReflectFromReflect as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
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(never)]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(#[inline(never)] ||
{
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::unreachable_default_msg(),
}
}
#[inline]
fn variant_index(&self) -> usize {
match self {
NormalizedRenderTarget::Window { .. } => 0usize,
NormalizedRenderTarget::Image { .. } => 1usize,
NormalizedRenderTarget::TextureView { .. } => 2usize,
NormalizedRenderTarget::None { .. } => 3usize,
_ => ::core::panicking::unreachable_default_msg(),
}
}
#[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::unreachable_default_msg(),
}
}
fn to_dynamic_enum(&self)
->
::core::result::Result<bevy_reflect::enums::DynamicEnum,
bevy_reflect::ReflectCloneError> {
bevy_reflect::enums::DynamicEnum::try_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::marker::StructuralPartialEq for
NormalizedRenderTarget {
}
#[automatically_derived]impl ::core::cmp::PartialEq for NormalizedRenderTarget
{
#[inline]
fn eq(&self, other: &Self) -> bool {
::core::intrinsics::discriminant_value(self) ==
::core::intrinsics::discriminant_value(other) &&
match (self, other) {
(Self::Window(__self_0), Self::Window(__arg1_0)) =>
__self_0 == __arg1_0,
(Self::Image(__self_0), Self::Image(__arg1_0)) =>
__self_0 == __arg1_0,
(Self::TextureView(__self_0), Self::TextureView(__arg1_0)) =>
__self_0 == __arg1_0,
(Self::None { width: __self_0, height: __self_1 },
Self::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) {
::core::hash::Hash::hash(&::core::intrinsics::discriminant_value(self),
state);
match self {
Self::Window(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
Self::Image(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
Self::TextureView(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
Self::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: &Self)
-> ::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: &Self) -> ::core::cmp::Ordering {
match (self, other) {
(Self::Window(__self_0), Self::Window(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(Self::Image(__self_0), Self::Image(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(Self::TextureView(__self_0), Self::TextureView(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(Self::None { width: __self_0, height: __self_1 }, Self::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,
},
_ =>
::core::cmp::Ord::cmp(&::core::intrinsics::discriminant_value(self),
&::core::intrinsics::discriminant_value(other)),
}
}
}Ord, #[allow(deprecated)]
#[allow(unreachable_code)]
#[automatically_derived]
impl derive_more::core::convert::From<(NormalizedWindowRef)> for
NormalizedRenderTarget {
#[inline]
fn from(value: (NormalizedWindowRef)) -> Self {
NormalizedRenderTarget::Window(value)
}
}
#[allow(deprecated)]
#[allow(unreachable_code)]
#[automatically_derived]
impl derive_more::core::convert::From<(ImageRenderTarget)> for
NormalizedRenderTarget {
#[inline]
fn from(value: (ImageRenderTarget)) -> Self {
NormalizedRenderTarget::Image(value)
}
}
#[allow(deprecated)]
#[allow(unreachable_code)]
#[automatically_derived]
impl derive_more::core::convert::From<(ManualTextureViewHandle)> for
NormalizedRenderTarget {
#[inline]
fn from(value: (ManualTextureViewHandle)) -> Self {
NormalizedRenderTarget::TextureView(value)
}
}
#[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)]
943#[reflect(Clone, PartialEq, Hash)]
944pub enum NormalizedRenderTarget {
945 Window(NormalizedWindowRef),
947 Image(ImageRenderTarget),
949 TextureView(ManualTextureViewHandle),
952 None {
957 width: u32,
959 height: u32,
961 },
962}
963
964#[derive(
968 #[automatically_derived]impl ::core::default::Default for
ManualTextureViewHandle {
#[inline]
fn default() -> Self {
ManualTextureViewHandle(::core::default::Default::default())
}
}Default,
969 #[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,
970 #[automatically_derived]#[doc(hidden)]unsafe impl ::core::clone::TrivialClone
for ManualTextureViewHandle {
}
#[automatically_derived]impl ::core::clone::Clone for ManualTextureViewHandle
{
#[inline]
fn clone(&self) -> Self {
let _: ::core::clone::AssertParamIsClone<u32>;
*self
}
}Clone,
971 #[automatically_derived]impl ::core::marker::Copy for ManualTextureViewHandle
{
}Copy,
972 #[automatically_derived]impl ::core::marker::StructuralPartialEq for
ManualTextureViewHandle {
}
#[automatically_derived]impl ::core::cmp::PartialEq for
ManualTextureViewHandle {
#[inline]
fn eq(&self, other: &Self) -> bool { self.0 == other.0 }
}PartialEq,
973 #[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,
974 #[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,
975 #[automatically_derived]impl ::core::cmp::PartialOrd for
ManualTextureViewHandle {
#[inline]
fn partial_cmp(&self, other: &Self)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd,
976 #[automatically_derived]impl ::core::cmp::Ord for ManualTextureViewHandle {
#[inline]
fn cmp(&self, other: &Self) -> ::core::cmp::Ordering {
::core::cmp::Ord::cmp(&self.0, &other.0)
}
}Ord,
977 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,
978 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 as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.insert(<bevy_reflect::ReflectFromReflect as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.register_type_data_with::<ReflectComponent, Self,
_>(());
registration.register_type_data_with::<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(never)]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(#[inline(never)] ||
{
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)
->
::core::result::Result<bevy_reflect::tuple_struct::DynamicTupleStruct,
bevy_reflect::ReflectCloneError> {
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)?);
::core::result::Result::Ok(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,
979 impl bevy_ecs::template::FromTemplate for ManualTextureViewHandle {
type Template = ManualTextureViewHandleTemplate;
}
impl ::core::marker::Unpin for ManualTextureViewHandle where
for<'a> [()]: bevy_ecs::template::SpecializeFromTemplate {}
#[allow(missing_docs)]
pub struct ManualTextureViewHandleTemplate(pub <u32 as
bevy_ecs::template::FromTemplate>::Template);
impl bevy_ecs::template::Template for ManualTextureViewHandleTemplate {
type Output = ManualTextureViewHandle;
fn build_template(&self,
context: &mut bevy_ecs::template::TemplateContext)
-> bevy_ecs::error::Result<Self::Output> {
bevy_ecs::error::Result::Ok(ManualTextureViewHandle(self.0.build_template(context)?))
}
fn clone_template(&self) -> Self {
Self(bevy_ecs::template::Template::clone_template(&self.0))
}
}
impl ::core::default::Default for ManualTextureViewHandleTemplate {
fn default() -> Self { Self(::core::default::Default::default()) }
}FromTemplate,
980)]
981#[reflect(Component, Default, Debug, PartialEq, Hash, Clone)]
982pub struct ManualTextureViewHandle(pub u32);
983
984#[derive(impl bevy_ecs::template::FromTemplate for ImageRenderTarget {
type Template = ImageRenderTargetTemplate;
}
impl ::core::marker::Unpin for ImageRenderTarget where
for<'a> [()]: bevy_ecs::template::SpecializeFromTemplate {}
#[allow(missing_docs)]
pub struct ImageRenderTargetTemplate {
pub handle: <Handle<Image> as bevy_ecs::template::FromTemplate>::Template,
pub scale_factor: <f32 as bevy_ecs::template::FromTemplate>::Template,
}
impl bevy_ecs::template::Template for ImageRenderTargetTemplate {
type Output = ImageRenderTarget;
fn build_template(&self,
context: &mut bevy_ecs::template::TemplateContext)
-> bevy_ecs::error::Result<Self::Output> {
bevy_ecs::error::Result::Ok(ImageRenderTarget {
handle: self.handle.build_template(context)?,
scale_factor: self.scale_factor.build_template(context)?,
})
}
fn clone_template(&self) -> Self {
Self {
handle: bevy_ecs::template::Template::clone_template(&self.handle),
scale_factor: bevy_ecs::template::Template::clone_template(&self.scale_factor),
}
}
}
impl ::core::default::Default for ImageRenderTargetTemplate {
fn default() -> Self {
Self {
handle: ::core::default::Default::default(),
scale_factor: ::core::default::Default::default(),
}
}
}FromTemplate, #[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) -> Self {
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 as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.insert(<bevy_reflect::ReflectFromReflect as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
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(never)]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(#[inline(never)] ||
{
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)
->
::core::result::Result<bevy_reflect::structs::DynamicStruct,
bevy_reflect::ReflectCloneError> {
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)?);
::core::result::Result::Ok(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)]
986#[reflect(Clone, PartialEq, Hash)]
987pub struct ImageRenderTarget {
988 pub handle: Handle<Image>,
990 pub scale_factor: f32,
993}
994
995impl Eq for ImageRenderTarget {}
996
997impl PartialEq for ImageRenderTarget {
998 fn eq(&self, other: &Self) -> bool {
999 self.handle == other.handle && FloatOrd(self.scale_factor) == FloatOrd(other.scale_factor)
1000 }
1001}
1002
1003impl core::hash::Hash for ImageRenderTarget {
1004 fn hash<H: core::hash::Hasher>(&self, state: &mut H) {
1005 self.handle.hash(state);
1006 FloatOrd(self.scale_factor).hash(state);
1007 }
1008}
1009
1010impl PartialOrd for ImageRenderTarget {
1011 fn partial_cmp(&self, other: &Self) -> Option<core::cmp::Ordering> {
1012 Some(self.cmp(other))
1013 }
1014}
1015
1016impl Ord for ImageRenderTarget {
1017 fn cmp(&self, other: &Self) -> core::cmp::Ordering {
1018 self.handle
1019 .cmp(&other.handle)
1020 .then_with(|| FloatOrd(self.scale_factor).cmp(&FloatOrd(other.scale_factor)))
1021 }
1022}
1023
1024impl From<Handle<Image>> for RenderTarget {
1025 fn from(handle: Handle<Image>) -> Self {
1026 Self::Image(handle.into())
1027 }
1028}
1029
1030impl From<Handle<Image>> for ImageRenderTarget {
1031 fn from(handle: Handle<Image>) -> Self {
1032 Self {
1033 handle,
1034 scale_factor: 1.0,
1035 }
1036 }
1037}
1038
1039impl Default for RenderTarget {
1040 fn default() -> Self {
1041 Self::Window(Default::default())
1042 }
1043}
1044
1045#[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]#[doc(hidden)]unsafe impl ::core::clone::TrivialClone
for CameraMainTextureUsages {
}
#[automatically_derived]impl ::core::clone::Clone for CameraMainTextureUsages
{
#[inline]
fn clone(&self) -> Self {
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 as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.insert(<bevy_reflect::ReflectFromReflect as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.register_type_data_with::<ReflectComponent, Self,
_>(());
registration.register_type_data_with::<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(never)]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(#[inline(never)] ||
{
let info = bevy_reflect::OpaqueInfo::new::<Self>();
bevy_reflect::TypeInfo::Opaque(bevy_reflect::OpaqueInfo::new::<Self>())
})
}
}
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)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>,
bevy_reflect::ReflectCloneError> {
::core::result::Result::Ok(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)]
1047#[reflect(opaque)]
1048#[reflect(Component, Default, Clone)]
1049pub struct CameraMainTextureUsages(pub TextureUsages);
1050
1051impl Default for CameraMainTextureUsages {
1052 fn default() -> Self {
1053 Self(
1054 TextureUsages::RENDER_ATTACHMENT
1055 | TextureUsages::TEXTURE_BINDING
1056 | TextureUsages::COPY_SRC,
1057 )
1058 }
1059}
1060
1061impl CameraMainTextureUsages {
1062 pub fn with(mut self, usages: TextureUsages) -> Self {
1063 self.0 |= usages;
1064 self
1065 }
1066}
1067
1068#[cfg(test)]
1069mod test {
1070 use bevy_math::{Vec2, Vec3};
1071 use bevy_scene::bsn;
1072 use bevy_transform::components::GlobalTransform;
1073 use bevy_window::WindowRef;
1074
1075 use crate::{
1076 Camera, OrthographicProjection, PerspectiveProjection, Projection, RenderTarget,
1077 RenderTargetInfo, Viewport,
1078 };
1079
1080 fn make_camera(mut projection: Projection, physical_size: Vec2) -> Camera {
1081 let viewport = Viewport {
1082 physical_size: physical_size.as_uvec2(),
1083 ..Default::default()
1084 };
1085 let mut camera = Camera {
1086 viewport: Some(viewport.clone()),
1087 ..Default::default()
1088 };
1089 camera.computed.target_info = Some(RenderTargetInfo {
1090 physical_size: viewport.physical_size,
1091 scale_factor: 1.0,
1092 });
1093 projection.update(
1094 viewport.physical_size.x as f32,
1095 viewport.physical_size.y as f32,
1096 );
1097 camera.computed.clip_from_view = projection.get_clip_from_view();
1098 camera
1099 }
1100
1101 #[test]
1102 fn viewport_to_world_orthographic_3d_returns_forward() {
1103 let transform = GlobalTransform::default();
1104 let size = Vec2::new(1600.0, 900.0);
1105 let camera = make_camera(
1106 Projection::Orthographic(OrthographicProjection::default_3d()),
1107 size,
1108 );
1109 let ray = camera.viewport_to_world(&transform, Vec2::ZERO).unwrap();
1110 assert_eq!(ray.direction, transform.forward());
1111 assert!(ray
1112 .origin
1113 .abs_diff_eq(Vec3::new(-size.x * 0.5, size.y * 0.5, 0.0), 1e-4));
1114 let ray = camera.viewport_to_world(&transform, size).unwrap();
1115 assert_eq!(ray.direction, transform.forward());
1116 assert!(ray
1117 .origin
1118 .abs_diff_eq(Vec3::new(size.x * 0.5, -size.y * 0.5, 0.0), 1e-4));
1119 }
1120
1121 #[test]
1122 fn viewport_to_world_orthographic_2d_returns_forward() {
1123 let transform = GlobalTransform::default();
1124 let size = Vec2::new(1600.0, 900.0);
1125 let camera = make_camera(
1126 Projection::Orthographic(OrthographicProjection::default_2d()),
1127 size,
1128 );
1129 let ray = camera.viewport_to_world(&transform, Vec2::ZERO).unwrap();
1130 assert_eq!(ray.direction, transform.forward());
1131 assert!(ray
1132 .origin
1133 .abs_diff_eq(Vec3::new(-size.x * 0.5, size.y * 0.5, 1000.0), 1e-4));
1134 let ray = camera.viewport_to_world(&transform, size).unwrap();
1135 assert_eq!(ray.direction, transform.forward());
1136 assert!(ray
1137 .origin
1138 .abs_diff_eq(Vec3::new(size.x * 0.5, -size.y * 0.5, 1000.0), 1e-4));
1139 }
1140
1141 #[test]
1142 fn viewport_to_world_perspective_center_returns_forward() {
1143 let transform = GlobalTransform::default();
1144 let size = Vec2::new(1600.0, 900.0);
1145 let camera = make_camera(
1146 Projection::Perspective(PerspectiveProjection::default()),
1147 size,
1148 );
1149 let ray = camera.viewport_to_world(&transform, size * 0.5).unwrap();
1150 assert_eq!(ray.direction, transform.forward());
1151 assert_eq!(ray.origin, transform.forward() * 0.1);
1152 }
1153
1154 #[test]
1155 fn render_target_in_bsn() {
1156 let _ = bsn! {
1157 RenderTarget::Window(WindowRef::default())
1158 };
1159 }
1160}