рд░реЗрдХ 2: рд╡рд░реНрдЪреБрдЕрд▓ рдЗрдирд╣реЗрд░рд┐рдЯреЗрдВрд╕

рдПрдХрд╛рдзрд┐рдХ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдЪреАрдЬреЛрдВ рдХреЛ рдХреИрд╕реЗ рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдПрдХ рд▓реЗрдЦред рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдЖрднрд╛рд╕реА рд╡рд┐рд░рд╛рд╕рдд рдХреЛ рдЕрддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреВрд╕рд░реА рдирдЬрд╝рд░ рдореЗрдВ, рддрд░реНрдХ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рдЬрдЯрд┐рд▓рддрд╛ рдХрд╛ рд╕реНрддрд░ рдмрдврд╝рддрд╛ рд░рд╣рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрд╛рд░реНрдп рдЬрд┐рддрдирд╛ рдХрдард┐рди рд╣реЛрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЙрддрдиреА рд╣реА рд╕рд░рд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рд╕рдм рдХреБрдЫ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдШрдЯрдирд╛рдУрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рддрд╛рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХреЗрд╡рд▓ рд╕рд╛рд░ рдЙрдирдореЗрдВ рдмрдирд╛ рд░рд╣реЗред

рдЗрд╕рд▓рд┐рдП, рд╡рд┐рдХрд╕рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд┐рдХрд╛рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЕрдиреНрдп рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЕрдиреНрдп рдиреЗ рджреЛрдиреЛрдВ рдХреЛ рд╕рдВрдпреБрдХреНрдд рдХрд┐рдпрд╛ред рддрджрдиреБрд╕рд╛рд░, рддреАрди рдЖрдзрд╛рд░ рд╡рд░реНрдЧреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдереА
  1. рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп : рдПрдХ рджреГрд╢реНрдпрддрд╛ рдЯреИрдЧ рдФрд░ рдПрдХ рдбреНрд░рд╛рдЗрдВрдЧ рд╡рд┐рдзрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИ
  2. рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдпреЛрдЧреНрдп: рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рд╕рдВрдХреЗрдд рдФрд░ рдПрдХ рд░рд╛рдЬреНрдп рдЕрджреНрдпрддрди рд╡рд┐рдзрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИ
  3. VisualActivity = рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп + рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдпреЛрдЧреНрдп

рдЬреЛ рдореБрд╢реНрдХрд┐рд▓реЗрдВ рд╣реБрдИ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рджреЛ рдФрд░ рдХреГрддреНрд░рд┐рдо рдХрдХреНрд╖рд╛рдПрдВ рдЬреЛрдбрд╝реВрдВрдЧрд╛ред
  1. рдЬрд╕реНрдЯрд╡рд┐рд╡реЗрдмрд▓ : рдмрд╕ рдПрдХ рджреГрд╢реНрдпрдорд╛рди рд╡рд╕реНрддреБ
  2. рдЬрд╕реНрдЯрд╡рд┐рдЬрдмрд▓рдкреНрд▓рд╕рд╡рд┐рдЬреБрдЕрд▓ рдПрдХреНрдЯрд┐рд╡рд┐рдЯреА : рдЬрд╕реНрдЯрдПрд╡рд┐рдЬрд┐рдмрд▓ рд╡рд┐рде рдЕрдкрдбреЗрдЯреЗрдмрд▓ рд╕реНрдЯреЗрдЯ

рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ


рд╕рдорд╕реНрдпрд╛ рддреБрд░рдВрдд рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ - рдЕрдВрддрд┐рдо рд╡рд░реНрдЧ рджреЛ рдмрд╛рд░ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ: рдЬрд╕реНрдЯрд╡рд┐рд╡рд┐рдЬрд╝реБрдЕрд▓ рдПрдВрдб рд╡рд┐рдЬреБрдЕрд▓рдПрдХреНрдЯрд┐рд╡рд┐рдЯреА рдХреЗ рдЬрдирдХ рдХреЗ рд░реВрдк рдореЗрдВред рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

JustVisiblePlusUpdate* object = new JustVisiblePlusUpdate; std::vector<Renderable*> vector_visible; vector_visible.push_back(object); 

рдпрд╣ рдЕрд╕реНрдкрд╖реНрдЯ рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ - рд╕рдВрдХрд▓рдХ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдиреБрд╡рд╛рдВрд╢рд┐рдХ рд╢рд╛рдЦрд╛ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред рд╡рд╣ рдордзреНрдпрд╡рд░реНрддреА рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХрд░рдХреЗ рджрд┐рд╢рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдорджрдж рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ

  JustVisiblePlusUpdate* object = new JustVisiblePlusUpdate; std::vector<Renderable*> vector_visible; vector_visible.push_back(static_cast<VisualActivity*>(object)); 

рд╕рдВрдХрд▓рди рд╕рдлрд▓ рд╣реЛрдЧрд╛, рдХреЗрд╡рд▓ рддреНрд░реБрдЯрд┐ рд░рд╣реЗрдЧреАред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдорд╛рди рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рднрд▓реЗ рд╣реА рдпрд╣ рдХреИрд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реЛред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рдВрд╢рдЬ рд╡рд░реНрдЧ (JustVanishPlusVisualActivity) рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╢рд╛рдЦрд╛ рдХреЗ рд▓рд┐рдП рдореВрд▓ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЕрд▓рдЧ рдЙрджрд╛рд╣рд░рдг рд╣реИред


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реА ++ рдореЗрдВ рд╡реНрдпрдХреНрдд, рд╕рдЪреНрдЪреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐

 (&static_cast<VisualActivity*>(object)->mVisible) != (&static_cast<JustVisible*>(object)->mVisible) 

рдЗрд╕рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдмрд╣реБрд╡рд┐рдз рд╡рд┐рд░рд╛рд╕рдд рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рдереАред рд▓реЗрдХрд┐рди рдЖрднрд╛рд╕реА рдПрдХ рдЪрд╛рдВрджреА рдХреА рдЧреЛрд▓реА рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдЬреЛ рдХрд┐ рдЖрд╡рд╢реНрдпрдХ рдерд╛ ... рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ рд╡рд╣ рд╕рднреА рдЖрдзрд╛рд░ рд╡рд░реНрдЧреЛрдВ рдХреЛ рд╕реМрдВрдкрдиреЗ рдХреЗ рд▓рд┐рдП рдерд╛, рд╡рд╕реНрддреБрддрдГ рд░реЗрдВрдбрд░реЗрдмрд▓ рдФрд░ рдЕрдкрдбреЗрдЯреЗрдмрд▓ , рдФрд░ рдмрд╛рдХреА рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ:

 class VisualActivity : public virtual Updatable, public virtual Renderable ... class JustVisible : public virtual Renderable ... class JustVisiblePlusUpdate : public JustVisible, public VisualActivity 

рд╕рднреА рд╡рд╕реНрддреБрддрдГ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╡рд░реНрдЧреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд╡рдВрд╢рдЬ рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЕрдЧрд░ рдмреЗрд╕ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдирд╣реАрдВ рдереЗред рд▓реЗрдХрд┐рди рдРрд╕реЗ рдбрд┐рдЬрд╛рдЗрдирд░ рдореМрдЬреВрдж рдереЗ, рдФрд░ рдПрдХ рдЖрд╢реНрдЪрд░реНрдп рдерд╛ред рд╡рд╕реНрддреБрддрдГ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рдХрдХреНрд╖рд╛ рдореЗрдВ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдФрд░ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рджреЛрдиреЛрдВ рдерд╛

 class Updatable { public: Updatable() : mActive(true) { } Updatable(bool active) : mActive(active) { } //.... }; 

 class Renderable { public: Renderable() : mVisible(true) { } Renderable(bool visible) : mVisible(visible) { } //.... }; 

рдЕрд╡рд░ рд╢реНрд░реЗрдгреА рдореЗрдВ рдХреЗрд╡рд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реЛрддреЗ рдереЗ

 class VisualActivity : public virtual Updatable, public virtual Renderable { public: VisualActivity(bool visible, bool active) : Renderable(visible) , Updatable(active) { } //.... }; 

 class JustVisible : public virtual Renderable { public: JustVisible(bool visible) : Renderable(visible) { } //.... }; 

 class JustVisiblePlusUpdate : public JustVisible, public VisualActivity { public: JustVisiblePlusUpdate(bool visible, bool active) : JustVisible(visible) , VisualActivity(visible, active) { } //.... }; 

рдФрд░ рдлрд┐рд░ рднреА, рдПрдХ рд╡рд╕реНрддреБ рдмрдирд╛рддреЗ рд╕рдордп

  JustVisiblePlusUpdate* object = new JustVisiblePlusUpdate(false, false); 

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛! рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдпрд╣ рдХреБрдЫ рдЬрдВрдЧрд▓реА рдЬреИрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдЖрдЗрдП рдЗрд╕ рдмрд╛рдд рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдХрд┐ рдпрд╣ рдзрд╛рд░рдгрд╛ рдХрд╣рд╛рдБ рд╕реЗ рдЖрдИ рд╣реИ, рдХрд┐ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп :: Renderable :: Renderable () рдХреЗ рдмрдЬрд╛рдп рдирд┐рд░реНрдорд╛рддрд╛ Renderable :: Renderable (рдмреВрд▓ рджрд┐рдЦрд╛рдИ) рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред


Renderable рдХреЛ рдЪрдорддреНрдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ JustV рдЕрджреГрд╢реНрдп , VisualActivity рдФрд░ JustVawarePlusUpdate рдХреЗ рдмреАрдЪ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдзрд╛рд░рдгрд╛ рдиреЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЬрдиреНрдо рджрд┐рдпрд╛ ред рд▓реЗрдХрд┐рди "рдЪрдорддреНрдХрд╛рд░" рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реНрдордд рдореЗрдВ рдирд╣реАрдВ рдерд╛ред рдЖрдЦрд┐рд░рдХрд╛рд░, рдРрд╕рд╛ рдХреБрдЫ рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛

 class JustVisiblePlusUpdate : public JustVisible, public VisualActivity { public: JustVisiblePlusUpdate(bool active) : JustVisible(true) , VisualActivity(false, active) { } //.... }; 

рдХрдВрдкрд╛рдЗрд▓рд░ рдкрд░рд╕реНрдкрд░ рд╡рд┐рд░реЛрдзреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдмрддрд╛рдирд╛ рдЬрдм рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рд╣реА рдФрд░ рдЧрд▓рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд┐рд░реНрдорд╛рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдХреЛрдИ рднреА рдХреНрд░рдорд╢рдГ рдРрд╕реЗ рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд╡рд╕рд░ рдирд╣реАрдВ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдФрд░ рддрдВрддреНрд░ рдПрдХ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╡рд░реНрдЧ рдЕрдм рдЬрд╕реНрдЯрд╡реЗрдмреНрдпреВрдЕрд▓ рдпрд╛ рд╡рд┐рдЬреБрдЕрд▓ рдПрдХреНрдЯрд┐рд╡рд┐рдЯреА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕реАрдзреЗ рдЬрд╕реНрдЯрд╡рд┐рд▓реЗрдкреНрд▓рд╕ рдпреВрдбреЗрдЯ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддрд╛ рд╣реИред


рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдбрд┐рдлреЙрд▓реНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреНрдпреЛрдВ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ - рд╡рд░реНрдЪреБрдЕрд▓ рдХреНрд▓рд╛рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реНрд╕ рдХреЛ рдЕрдВрддрд┐рдо рд╡рд╛рд░рд┐рд╕реЛрдВ рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рддреНред рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдХреБрдЫ рдРрд╕рд╛ рд╣реЛрдЧрд╛
 class JustVisiblePlusUpdate : public JustVisible, public VisualActivity { public: JustVisiblePlusUpdate(bool visible, bool active) : JustVisible(visible) , VisualActivity(visible, active) , Renderable(visible) , Updatable(active) { } //.... }; 

рд╡рд░реНрдЪреБрдЕрд▓ рдЗрдирд╣реЗрд░рд┐рдЯреЗрдВрд╕ рдореЗрдВ, рдкреНрд░рддреНрдпрдХреНрд╖ рдЕрднрд┐рднрд╛рд╡рдХ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рднреА рд╡рд╕реНрддреБрддрдГ рд╡рд┐рд░рд╛рд╕рдд рд╡рд╛рд▓реЗ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдФрд░ рдПрдХ рдЧреИрд░-рддреБрдЪреНрдЫ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдпрд╛рдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕рдЪреНрдЪрд╛рдИ рдХреА рдкреБрд╖реНрдЯрд┐ рд╣реБрдИ: рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЦреБрд▓реА рд╡рд┐рд░рд╛рд╕рдд рдирд╣реАрдВ ред рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдореВрд▓ VisualActivity рддрдХ рд╕реАрдорд┐рдд, рд░реЗрдВрдбрд░рдЯреЗрдмрд▓ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдиреЗ рдХреБрдЫ рдЕрддрд┐рд░реЗрдХ рдХреЛ рдЬреЛрдбрд╝рд╛, рд▓реЗрдХрд┐рди рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рд╕рдордЧреНрд░ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ - рдЯреНрд░реИрдХрд┐рдВрдЧ рдФрд░ рд╕рднреА рдЖрднрд╛рд╕реА рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд░рд╛рд╕рдд рдорд╛рдорд▓реЛрдВ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рдерд╛ред

Source: https://habr.com/ru/post/In185826/


All Articles