pub struct SelectTextureForm {
pub choice: TextureChoice,
}Expand description
select-texture-form{form=finest|N} (form required: which stored form is drawn is the program’s choice): every
texture with TextureForms is left with the one form TextureForms::choose takes. Another form than its own
replaces the texture’s core.texture and core.texture_file with every component the form holds
(World::move_components), except the form’s own core.name and core.source, which are left behind, counted:
the bindings and the name stay the texture’s. The other forms are despawned and core.texture_forms removed. The
whole selection is checked before anything changes: an invalid one is an error and leaves the world as it was.
Fields§
§choice: TextureChoiceTrait Implementations§
Source§impl Clone for SelectTextureForm
impl Clone for SelectTextureForm
impl Copy for SelectTextureForm
Source§impl Debug for SelectTextureForm
impl Debug for SelectTextureForm
impl Eq for SelectTextureForm
Source§impl PartialEq for SelectTextureForm
impl PartialEq for SelectTextureForm
Source§impl Pass for SelectTextureForm
impl Pass for SelectTextureForm
Source§fn removes(&self) -> &[&'static str]
fn removes(&self) -> &[&'static str]
A texture kept in another form loses its own texture (and takes the form’s).
Source§fn options(&self) -> Options
fn options(&self) -> Options
The options this instance was made with (printed into the pipeline).
Source§fn modifies(&self) -> &[&'static str]
fn modifies(&self) -> &[&'static str]
Names whose values it edits in place, and resources it writes (replaced, also by removing and inserting again,
or borrowed with
World::resource_mut). The pass manager checks the resources; an in-place edit of a
component’s value on an entity that keeps it (get_mut, or World::insert over the value) is declared here
and not checked: seeing it would take a controlled editing interface, later work. What the gap costs: a pass that
edits a value in place without declaring it here is never named, in any build, and its edit can make what the
declarations say about that name wrong (Pipeline::unfed, Pipeline::check); one that leaves an invalid value there is named at the pass in a build with the
pass checks, and in a release build without them only by the verifier that runs before the writer, which names the
entity but not the pass. Adding a name to an entity, taking one away and despawning are checked entity by entity
against Pass::provides, Pass::removes and Pass::despawns_entities.Source§fn despawns_entities(&self) -> bool
fn despawns_entities(&self) -> bool
Whether it despawns entities. If so, a component name it does not declare in
Pass::removes may disappear
when every entity that held the name before the pass was despawned by it (a dropped placement’s
core.name, a discarded form’s dialect data); a name still held by a surviving entity before the pass must
be declared as ever. Added names are checked as for every pass.fn run(&self, w: &mut World, log: &mut PassLog) -> Result<(), String>
Source§fn may_lack_inputs(&self) -> bool
fn may_lack_inputs(&self) -> bool
Whether a run may skip it in a world (or a part) that holds none of its required names: a lowering whose input
the world may simply not have (a part of only a light has no materials, a read region no lights) opts in;
the step is recorded as skipped (
StepReport::skipped). Required names are prerequisites, so this is false
unless the pass says otherwise: an absent name may be a failed load or a wrong order, and a pass that
summarizes, decides or plans never opts in.Source§fn settings(&self) -> &[Setting]
fn settings(&self) -> &[Setting]
The run settings it reads, which the program states for the run on its manager (its thread count,
crate::parallel::THREADS, PassManager::with_settings): checked with Pass::requires before it runs and
refused where absent, never counted in whether it is skipped (Pass::may_lack_inputs), and stated in its
step’s report.Source§fn approximates(&self) -> &'static str
fn approximates(&self) -> &'static str
What it approximates, in words (empty when it is exact).
Source§fn removes_by_log(&self) -> bool
fn removes_by_log(&self) -> bool
Whether the components it removes are not all known in advance (a hook decides, as
crate::Component::apply_linear does). If so, a component name that disappears is accepted when the pass
recorded it in PassLog::removed as well as when it is declared in Pass::removes; a name that disappears
unrecorded and undeclared is an error as ever, and a resource it removes must be declared as for any pass.Source§fn settles(&self) -> &[&'static str]
fn settles(&self) -> &[&'static str]
Names whose values it brings to their final form (a classifier: every surface classified). A later pass in a
pipeline that provides one of them adds values that never went through this pass: unless a pass after it settles
the name again,
PassManager::run refuses such a pipeline before it runs (Error::SettledThenChanged).
Modifying settled values later is allowed. A modifier must not add
values without declaring them in Pass::provides; the target’s value rules check the result.impl StructuralPartialEq for SelectTextureForm
Auto Trait Implementations§
impl Forget for SelectTextureForm
impl Freeze for SelectTextureForm
impl RefUnwindSafe for SelectTextureForm
impl Send for SelectTextureForm
impl Sync for SelectTextureForm
impl Unpin for SelectTextureForm
impl UnsafeUnpin for SelectTextureForm
impl UnwindSafe for SelectTextureForm
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.