рд░реЗрдВрдбрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣рдиреАрдХреЙрдореНрдм рдореЗрдВ рдкреЗрд╢ рдХреА рдЧрдИ рдПрдХ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рд╣реИред рдпрд╣ рднреА рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рд░реЗрдВрдбрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдВрдбреНрд░реЙрдЗрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 2.1 рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рд▓рд╛рдЗрд╡ рд╡реЙрд▓рдкреЗрдкрд░ (рдПрдХреНрд▓реЗрдпрд░) рдЗрд╕ рдкрд░ рд▓рд┐рдЦреЗ рдЧрдП рдереЗ)ред рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп, рдПрдкреАрдЖрдИ рдХрд╛ рдкреВрд░рд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рд╣рдиреАрдХреЙрдореНрдм рдореЗрдВ рдЦреЛрд▓рд╛ рдЧрдпрд╛ рдерд╛ред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдмреНрд▓реЙрдЧ рд╕реЗ рдкрд╣рд▓рд╛ рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ рд▓реЗрдЦ (
рдореВрд▓ рдЕрдиреБрд╡рд╛рдж ) рдиреЗ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЬрд▓реНрдж рд╣реА рдПрдХ рджреВрд╕рд░рд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рд░реЗрдВрдбрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдФрд░ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реЛрдЧрд╛ред рджрд░рдЕрд╕рд▓, рджреЛрдиреЛрдВ рдХрдЯ рдХреЗ рдиреАрдЪреЗред
рдЗрд╕рдХреЗ рдмрд╛рдж, рдПрдВрдбреНрд░реЙрдЗрдб рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЯреАрдо рдХреЗ рдЗрдВрдЬреАрдирд┐рдпрд░ рдЖрд░ред рдЬреЗрд╕рди рд╕реИрдореНрд╕ рдХреА рддрд░рдл рд╕реЗредрд░реЗрдВрдбрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрдкрдиреЗ
рдкрд░рд┐рдЪрдп рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд╕ рддрдХрдиреАрдХ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рджрд┐рдпрд╛ред рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВ "рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ" рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВрдБрдЧрд╛ред рд░реЗрдВрдбрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢рдмреНрджреЛрдВ рдореЗрдВ, "рд╕рдВрдЧрдгрдирд╛" рдХрд╛ рдЕрд░реНрде рд╣реИ, рдбрд╛рд▓реНрд╡рд┐рдХ рдХреЛрдб рд╕реЗ рд░реЗрдВрдбрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рддрдХ рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрд╛ рдХреБрдЫ рдЙрддрд╛рд░-рдЪрдврд╝рд╛рд╡, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдПрдХ рд╣реА рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░, рдпрд╛ рдЕрдиреНрдп (рдХрдИ рдкрд░) рдЪрд▓ рд╕рдХрддрд╛ рд╣реИред
рд░реЗрдВрдбрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд┐рдЬрд╛рдЗрди рд▓рдХреНрд╖реНрдп
рд░реЗрдВрдбрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рддреАрди рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реЗ рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреЗ рдХреНрд░рдо рдореЗрдВ рд╕рдордЭреЗрдВ:
рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА: рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЪрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП, рднрд▓реЗ рд╣реА рдЙрдирдХреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рднрд░рдг рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рднрд┐рдиреНрди рд╣реЛрдВред рдЕрдм ARM рдХрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЖрддрд╛ рд╣реИ - рд╡реАрдПрдлрдПрди рд╕рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдФрд░ рдЙрд╕рдХреЗ рдмрд┐рдирд╛, рдиреАрдпрди рд╕рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдФрд░ рдмрд┐рдирд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд╛рдЙрдВрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рдеред рдПрдЖрд░рдПрдо рдХреЗ рдЕрд▓рд╛рд╡рд╛, x86 рдХреЗ рд╕рдорд╛рди рдЕрдиреНрдп рд╕реАрдкреАрдпреВ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рднреА рд╣реИрдВ, рд╡рд┐рднрд┐рдиреНрди рдЬреАрдкреАрдпреВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдбреАрдПрд╕рдкреА (рдбрд┐рдЬрд┐рдЯрд▓ рд╕рд┐рдЧреНрдирд▓ рдкреНрд░реЛрд╕реЗрд╕рд░) рднреА рд╣реИрдВред
рдкреНрд░рджрд░реНрд╢рди: рджреВрд╕рд░рд╛ рд▓рдХреНрд╖реНрдп рдЙрдЪреНрдЪрддрдо рд╕реНрддрд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ рдЬреЛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рд╕реАрдорд╛рдУрдВ рдХреЗ рд╕рд╛рдеред рд░реЗрдВрдбрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд╛рдкрд┐рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред
рдкреНрд░рдпреЛрдЬреНрдпрддрд╛: рддреАрд╕рд░рд╛ рд▓рдХреНрд╖реНрдп рд╡рд┐рдХрд╛рд╕ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рдерд╛ред рд╣рдордиреЗ "рдЧреНрд▓реВ рдХреЛрдб" рдФрд░ рдЕрдиреНрдп рдЕрдирд╛рд╡рд╢реНрдпрдХ рдбреЗрд╡рд▓рдкрд░ рд▓реЛрдбрд┐рдВрдЧ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рдХрд╛рд╕ рдЪрд░рдгреЛрдВ рдХреЛ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рд╣реИред
рдпреЗ рддреАрди рд▓рдХреНрд╖реНрдп рдбрд┐рдЬрд╛рдЗрди рдХреЛ рд╕реАрдорд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рд╕рдордЭреМрддрд╛ рдХрд░рддреЗ рд╣реИрдВред рдпреЗ рд╡реЛ рдЯреНрд░реЗрдбрдСрдлрд╝ рд╣реИрдВ рдЬреЛ рд░реИрдВрдбрд▓рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдореМрдЬреВрджрд╛ рд╕рдорд╛рдзрд╛рди рдЬреИрд╕реЗ рдбрд╛рд▓реНрд╡рд┐рдХ рдпрд╛ рдПрдирдбреАрдХреЗ рд╕реЗ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред
рдбрд┐рдЬрд╛рдЗрди рдЪрд░рдг рдореЗрдВ рдореБрдЦреНрдп рдирд┐рд░реНрдгрдп
рдкрд╣рд▓рд╛ рдирд┐рд░реНрдгрдп рдЬреЛ рд╣рдореЗрдВ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рдереА, рд╡рд╣ рдереА рд╡рд┐рдХрд╛рд╕ рдХреА рднрд╛рд╖рд╛ред рдЬрдм рдкрд╕рдВрдж рдХрд┐рд╕ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рддреЛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рд▓рдЧрднрдЧ рдЕрд╕реАрдорд┐рдд рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реЗрдбрд░реНрд╕ рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ, C рдФрд░ C ++ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрд▓реЗрдЦреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ, рдЬреИрд╕реЗ рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдХрд╛рд░рдг, рд╣рдореЗрдВ shader рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛ред рд╕рдВрдХреЗрдд рдФрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд╛ рдЕрднрд╛рд╡ рдкреНрд░рдпреЛрдЬреНрдп рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛ рдЧрдпрд╛ рдерд╛ред рджреВрд╕рд░реА рдУрд░, C ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╡рд╛рдВрдЫрдиреАрдп рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рддрдм рдЖрдкрдХреЛ рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛ред рдЧреИрд░-рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдЙрдиреНрдирдд C ++ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЪрд▓рд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдирддреАрдЬрддрди, рд╣рдордиреЗ рд░реЗрдВрдбрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ C99 рдорд╛рдирдХ рдХреЛ рдЖрдзрд╛рд░ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╛рдХреА рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд╣рдо рдЗрд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдордЭрддреЗ рд╣реИрдВ, рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкрд░ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рджреВрд╕рд░рд╛ рдЯреНрд░реЗрдбрдСрдлрд╝ рд░реЗрдВрдбрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рд╣реИред рд╣рдордиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╢реАрди рдХреЛрдб рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ред рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рджреЛ рд╕рдорд╛рдзрд╛рди рд▓рд╛рдЧреВ рдХрд┐рдПред рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг (рдПрдХреНрд▓реЗрдпрд░ рдФрд░ рдЬрд┐рдВрдЬрд░рдмреНрд░реЗрдб рдХреЗ рдмреАрдЪ) рдиреЗ рдореВрд▓ рд╕реНрд░реЛрдд рд╕реА рдХреЛрдб рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ред рдЬрдмрдХрд┐ рдЗрд╕рдиреЗ рдордХреНрдЦреА рдкрд░ рдХреЛрдб рдЬреЗрдирд░реЗрд╢рди рдЬреИрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджрд┐рдП, рдпрд╣ рдПрдХ рдкреНрд░рдпреЛрдЬреНрдп рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛, рдЙрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛, рдЙрд╕реЗ рдЪрд▓рд╛рдирд╛ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдмрд╣реБрдд рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдордЬреЛрд░ рд╕реАрдкреАрдпреВ рдХреЛ рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╕реЗ рд╡рдВрдЪрд┐рдд рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдХреБрдЫ рдЕрдиреБрдХреВрд▓рди рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рдереЗред
рдлрд┐рд░ рд╣рдордиреЗ LLVM (рдПрдХ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдЖрднрд╛рд╕реА рдорд╢реАрди рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛, рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рд╕реНрд╡рддрдВрддреНрд░ рдмрд╛рдпреЛрдЯреЗрдХ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ), рдПрдХ рдРрд╕реЗ рдореЙрдбрд▓ рдкрд░ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рд╣реЛрд╕реНрдЯ (рдЬрд┐рд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓ рд░рд╣реА рд╣реИ) рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрд▓реИрдВрдЧ рдХреЗ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ (рдЬреЛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ) рдЬрд╛рдирддрд╛ рд╣реИ - рдпрд╣ LLVM рд╕рдВрдХрд▓рдХ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордиреЗ рдХрд╛ рдЫреЛрд░ рд╣реИ)ред рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдо рдХрдИ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЕрдиреБрдХреВрд▓рди рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо рдПрд▓рдПрд▓рд╡реАрдПрдо рдмрд╛рдпрдЯреЗрдХреЛрдб рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВред рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдмрд╛рдпреЛрдЯреЗрдХ рд╕реЗ рдорд╢реАрди рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдореЗрдЬрдмрд╛рди рдкрд░ рд╣реЛрддрд╛ рд╣реИ (рдЕрддрд┐рд░рд┐рдХреНрдд рдбрд┐рд╡рд╛рдЗрд╕-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде)ред
рдбрд┐рдЬрд╛рдЗрдирд┐рдВрдЧ рдореЗрдВ рдЖрдЦрд┐рд░реА рдкреНрд░рдореБрдЦ рдЯреНрд░реЗрдб рдереНрд░реЗрдбреНрд╕ рд╢реБрд░реВ рдХрд░рдирд╛ рдерд╛ред рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдХреЗ рдмреАрдЪ рдПрдХ рд╡реНрдпрд╛рдкрд╛рд░ рд╣реИред рдкрд░реНрдпрд╛рдкреНрдд рдЬреНрдЮрд╛рди рдХреЗ рд╕рд╛рде, рдореМрдЬреВрджрд╛ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╕рдорд╛рдзрд╛рди рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдПред рдЕрд╕реАрдорд┐рдд рд╕рдордп рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджреНрдпрдкрд┐ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдФрд░ рдЯреНрдпреВрдирд┐рдВрдЧ рдЦрд░рд╛рдм рдирд╣реАрдВ рд╣реИ, рдХрд╛рдо рдХреА рдХреЛрдИ рднреА рд░рд╛рд╢рд┐ рдЙрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдЧреА рдЬреЛ рдЕрднреА рддрдХ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдбреЗрд╡рд▓рдкрд░ рд╕реЗ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВред рд░рди-рдЯрд╛рдЗрдо рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдзрд┐рдХ рдкреЛрд░реНрдЯреЗрдмрд▓ рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛, рдЬреЛ рдкреАрдХ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдХрд╛рд░рдг рдЕрдзрд┐рдХ рдФрд╕рдд рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рд╣рдорд╛рд░рд╛ рдирдВрдмрд░ рдПрдХ рд▓рдХреНрд╖реНрдп рдерд╛, рд╣рдордиреЗ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЛ рдЪреБрдирд╛ред
рд░рдирдЯрд╛рдЗрдо рдкрд░ рдереНрд░реЗрдбреНрд╕ рдХреА рд╢реБрд░реБрдЖрдд рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдкрд╕рдВрдж рдХрд╛ рджреВрд╕рд░рд╛ рдкреНрд░рднрд╛рд╡ рдбрд╛рдпрдиреЗрдорд┐рдХ рдирд┐рд░реНрдгрдп рдЬрд╣рд╛рдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕рдВрдХреЗрдд рдФрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЗрди рдЪреАрдЬреЛрдВ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдПрдкреАрдЖрдИ рдХреЗ рдХрдо рд╕реЗ рдХрдо рд╕рд╛рдорд╛рдиреНрдп рднрд╛рдЬрдХ рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╣рдордиреЗ рд░рди-рдЯрд╛рдЗрдо рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ рдЪреБрдирд╛ред рдпрд╣ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕рдорд░реНрдерд┐рдд рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреА рд╕рднреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рдкреВрд░реА рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╕реАрдкреАрдпреВ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд╣рдореЗрд╢рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдВрдд рдореЗрдВ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдЪреНрдЫреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдирд┐рд░реНрдорд╛рддрд╛ рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕реЗ рд╣реА рдПрдХ рдирдпрд╛ рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн рдХрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдХрд░рддрд╛ рд╣реИред
рдбрд┐рдЬрд╛рдЗрди рдХреЗ рджреМрд░рд╛рди рдкреНрд░рдпреЛрдЬреНрдп рд╣рдорд╛рд░рд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдерд╛ред рдЕрдзрд┐рдХрд╛рдВрд╢ рдореМрдЬреВрджрд╛ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдФрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рдХреЛрдб рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП "рдЪрд┐рдкрдХреЗ рд╣реБрдП" рддрд░реНрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдРрд╕рд╛ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╡рдг рдФрд░ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реИред рдореЗрдЬрдмрд╛рди рдкрд░ рд░реЗрдВрдбрд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреА "рдПрдХ рд╕рд╛рде рдЪрд┐рдкрдХреЗ рд╣реБрдП" Dalvik рдХреНрд▓рд╛рд╕ рдмрдирд╛рддрд╛ рд╣реИред рдЧреНрд▓реВрдЗрдВрдЧ рдХреНрд▓рд╛рд╕ рдФрд░ рдЙрд╕рдХреЗ рдПрдХреНрд╕реЗрд╕рд░реНрд╕ рдХреЗ рдирд╛рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рд▓рд┐рдП рдЧрдП рд╣реИрдВред рдпрд╣ рджрд╛рд▓реНрд╡рд┐рдХ рд╕реЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг: рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрддрд░
рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╕рднреА рдЯреНрд░реЗрдбрдСрдлрд╝ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдХреИрд╕рд╛ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП? рдЗрд╕ рдореВрд▓ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдПрдХ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ android.graphics.Bitmap рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реЗрдВрдЧреЗ рдФрд░ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдВрдЧреЗ, рдЬреЛ рдЗрд╕реЗ рджреВрд╕рд░реЗ рдмрд┐рдЯрдореИрдк рдкрд░ рдХреЙрдкреА рдХрд░реЗрдЧрд╛, рдЙрд╕реА рд╕рдордп рдЗрд╕реЗ рдореЛрдиреЛрдХреНрд░реЛрдо рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рджреЗрдЧрд╛ред рдЖрдЗрдП рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдЙрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдкрд░ рдЬреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЗрдирд╡реЙрдЗрд╕ рдХрд░рддрд╛ рд╣реИ; HelloCompute SDK рд╕реЗ рдЙрджрд╛рд╣рд░рдг:
private Bitmap mBitmapIn; private Bitmap mBitmapOut; private RenderScript mRS; private Allocation mInAllocation; private Allocation mOutAllocation; private ScriptC_mono mScript; private void createScript() { mRS = RenderScript.create(this); mInAllocation = Allocation.createFromBitmap(mRS, mBitmapIn, Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SCRIPT); mOutAllocation = Allocation.createTyped(mRS, mInAllocation.getType()); mScript = new ScriptC_mono(mRS, getResources(), R.raw.mono); mScript.set_gIn(mInAllocation); mScript.set_gOut(mOutAllocation); mScript.set_gScript(mScript); mScript.invoke_filter(); mOutAllocation.copyTo(mBitmapOut);
рдпрд╣ рд╡рд┐рдзрд┐ рдорд╛рдирддреА рд╣реИ рдХрд┐ рджреЛ рдмрд┐рдЯрдореИрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд┐рд░реНрдорд┐рдд рд╣реИрдВ рдФрд░ рдЙрдирдХрд╛ рдЖрдХрд╛рд░ рдФрд░ рд╕реНрд╡рд░реВрдк рд╕рдорд╛рди рд╣реИред рдкрд╣рд▓реА рдЪреАрдЬ рд░реЗрдВрдбрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдПрдХ рд╕рдВрджрд░реНрдн рд╡рд╕реНрддреБ рд╣реИред рдпрд╣ рдХреЗрдВрджреНрд░реАрдп рд╡рд╕реНрддреБ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рд░реЗрдВрдбрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЛрдб рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдПрдХ mRS рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреА рд╣реИ, рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЬреАрд╡рд┐рдд рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдмрдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрд╕реЗ рдпрд╛ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрдирд╛рдИ рдЧрдИ рдХрд┐рд╕реА рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддрд╛ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЛ рд╡рд┐рдзрд┐рдпрд╛рдБ рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдмрд┐рдЯрдореИрдкреНрд╕ рд╕реЗ рдЖрд╡рдВрдЯрди рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдХрд╛рд░рдг рдмрдирддреА рд╣реИрдВред рд░реЗрдВрдбрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЕрдкрдирд╛ рдореЗрдореЛрд░реА рдПрд▓реЛрдХреЗрдЯрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдореЗрдореЛрд░реА рдХрдИ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдмреАрдЪ рд╕рд╛рдЭрд╛ рдХреА рдЬрд╛рдПрдЧреА рдФрд░ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рд╕реНрдкреЗрд╕ рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм рдЖрд╡рдВрдЯрдирдХрд░реНрддрд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдЙрдкрдпреЛрдЧреЛрдВ рдХреЛ рдХреНрд░рдорд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдЗрдЪреНрдЫрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреА рдореЗрдореЛрд░реА рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░ рд╕рдХреЗред
рдкрд╣рд▓рд╛ createFromBitmap () рд╡рд┐рдзрд┐ рдПрдХ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЙрд╕рдореЗрдВ рдмрд┐рдЯрдореИрдк рдХреА рд╕рд╛рдордЧреНрд░реА рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддрд╛ рд╣реИред рд╕реНрдерд╛рди рд╕реНрдореГрддрд┐ рдХреА рдореВрд▓ рдЗрдХрд╛рдЗрдпрд╛рдБ рд╣реИрдВ рдЬреЛ рд░реЗрдВрдбрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред CreateTyped () рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рджреВрд╕рд░рд╛ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдкрд╣рд▓реЗ рдХреЗ рд╕рдорд╛рди рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд╣рд▓реЗ рд╕реЗ getType () рдЕрдиреБрд░реЛрдз рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдкрд╕ рдЖ рдЧрдИ рд╣реИред рд░реЗрдВрдбрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХрд╛рд░ рд▓реЗрдЖрдЙрдЯ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрдирдкреБрдЯ рдмрд┐рдЯрдореИрдк рдХреА рдКрдВрдЪрд╛рдИ, рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдХрд╛рд░ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред
рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ "mono.rs" рдирд╛рдордХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд▓реЛрдб рдХрд░рддреА рд╣реИ, рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП R.raw.mono рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд╡рдпрдВ рдХреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреИрдХреЗрдЬ (рдПрдкреАрдХреЗ рдореЗрдВ) рдореЗрдВ рдПрдХ рдХрдЪреНрдЪреЗ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрддреНрдкрдиреНрди "рдЧреНрд▓реВрдЗрдВрдЧ" рд╡рд░реНрдЧ, ScriptC_mono рдХреЗ рдирд╛рдо рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред
рдирд┐рдореНрди рд▓рд╛рдЗрдиреЗрдВ "рдЧреНрд▓реВрдЗрдВрдЧ" рд╡рд░реНрдЧ рдХреЗ рдЙрддреНрдкрдиреНрди рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЧреБрдг рд╕реЗрдЯ рдХрд░рддреА рд╣реИрдВред
рдЕрдм рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ invoke_filter () рд╡рд┐рдзрд┐ рдиреЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреБрдЫ рдХрд╛рдо рдХрд┐рдпрд╛ред рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ "mono.rs" рд▓рд┐рдкрд┐ рдХреЗ рдлрд╝рд┐рд▓реНрдЯрд░ () рд╡рд┐рдзрд┐ рдХреЛ рд╣реА рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд╡рд┐рдзрд┐ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрдВрдЧреЗ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдпрд╣рд╛рдВ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдорд╛рди рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдордирд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреЙрд▓ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реИрдВред
рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдмрд┐рдЯрдореИрдк рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддреА рд╣реИред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛрдб рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реИ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдиреЗ рдирд┐рд╖реНрдкрд╛рджрди рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг: рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рдпрд╣рд╛рдБ рд╕реНрд╡рдпрдВ "mono.rs" рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ, рдЬрд┐рд╕реЗ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:
#pragma version(1) #pragma rs java_package_name(com.android.example.hellocompute) rs_allocation gIn; rs_allocation gOut; rs_script gScript; const static float3 gMonoMult = {0.299f, 0.587f, 0.114f}; void root(const uchar4 *v_in, uchar4 *v_out, const void *usrData, uint32_t x, uint32_t y) { float4 f4 = rsUnpackColor8888(*v_in); float3 mono = dot(f4.rgb, gMonoMult); *v_out = rsPackColorTo8888(mono); } void filter() { rsForEach(gScript, gIn, gOut, 0); }
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рд╕рдВрд╢реЛрдзрди рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдЙрддреНрдкрдиреНрди рдЪрд┐рдВрддрдирд╢реАрд▓ рдХреЛрдб рдХреЗ рд╕рдВрдШ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИред
рдЕрдЧрд▓реЗ рддреАрди рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рд╣реИрдВ рдЬреЛ рдирд┐рдпрдВрддреНрд░рдг рдХреЛрдб рдореЗрдВ рдмрдирд╛рдП рдЧрдП рд╣реИрдВред рдЪреМрдерд╛ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдЪрд┐рдВрддрдирд╢реАрд▓ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрдерд┐рд░ рд╣реИред рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рд╕реНрдереИрддрд┐рдХ рд░реВрдк рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рд╣реЛрддрд╛ рд╣реИред
рд░реВрдЯ () рд╡рд┐рдзрд┐ Renderscript рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд╣реИред рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ C. рдореЗрдВ рдореБрдЦреНрдп () рд╡рд┐рдзрд┐ рдХреЗ рд╕рдорд╛рди рд╣реИред рдЬрдм рдХреЛрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рди рдЯрд╛рдЗрдо рдкрд░ рдХреЙрд▓ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреИрд░рд╛рдореАрдЯрд░ рд╣рдорд╛рд░реЗ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рд╕реЗ рдкрд┐рдХреНрд╕реЗрд▓ рд╣реИрдВред рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдЙрд╕ рд╕реНрдерд╛рди рдХреЗ рднреАрддрд░ рдПрдХ рдкрддреЗ рдХреЗ рд╕рд╛рде рднреА рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЗрд╕ рдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЕрдирджреЗрдЦреА рдХреА рдЬрд╛рддреА рд╣реИред
рд░реВрдЯ () рд╡рд┐рдзрд┐ рдореЗрдВ рдХреЛрдб рдХреА рддреАрди рдкрдВрдХреНрддрд┐рдпрд╛рдБ RGBA_8888 рд╕реЗ рдлреНрд▓реЛрдЯ 4 рд╕реЗ рд╡реЗрдХреНрдЯрд░ рдореЗрдВ рдбрд┐рдХрдореНрдкреНрд░реЗрд╕ рдХрд░рддреА рд╣реИрдВред рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЧрдгрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдбреЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рдЬреЛ рдореЛрдиреЛрдХреНрд░реЛрдо рдЪрд┐рддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдиреЗ рд╡рд╛рд▓реЗ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рд╕рд╛рде рдореЛрдиреЛрдХреНрд░реЛрдо рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд╕реНрдХреЗрд▓рд░ рдЙрддреНрдкрд╛рдж рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдбреЙрдЯ рдПрдХ рдирд┐рдпрдорд┐рдд рдлреНрд▓реЛрдЯ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдлреНрд▓реЛрдЯ 3 рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдмрд╕ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ x, y рдФрд░ z рдХреЗ рдорд╛рди рдХреЛ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ, рд╣рдо рдореВрд▓реНрдпреЛрдВ рдХреЛ рдПрдХ рдирд┐рдпрдорд┐рдд 32-рдмрд┐рдЯ рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ рдкреИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╡рд┐рдзрд┐ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рднреА рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ rsPackColorTo8888 рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ рдЬреЛ рдЖрд░рдЬреАрдмреА (рдлреНрд▓реЛрдЯ 3) рдФрд░ рдЖрд░рдЬреАрдмреАрдП (рдлреНрд▓реЛрдЯ 4) рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ () рд╡рд┐рдзрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рдг рдХреЛрдб рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдмрд╕ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рддрддреНрд╡ рдкрд░ рдПрдХ рдЧрдгрдирд╛ рдЪрд▓рд╛рддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЙрдиреНрдЪ рдХреА рдЧрдИ рд╣реИ, рдЕрд░реНрдерд╛рдд, рд░реВрдЯ () рд╡рд┐рдзрд┐ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рджреВрд╕рд░рд╛ рдФрд░ рддреАрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдбреЗрдЯрд╛ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рд╣реИрдВред рдЕрдВрддрд┐рдо рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдХреЛ рд░реВрдЯ () рд╡рд┐рдзрд┐ рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИред
forEach рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╣реЛрдиреЗ рдкрд░ рдХрдИ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдЪрд▓реЗрдЧрд╛ред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, forEach рд╕рдВрдХреНрд░рдордг рдмрд┐рдВрджреБ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ рдЬрд╣рд╛рдВ рдирд┐рдпрдВрддреНрд░рдг рдПрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ рдорд╛рдирдирд╛ тАЛтАЛрдЙрдЪрд┐рдд рд╣реЛрдЧрд╛ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░ () рд╕реАрдкреАрдпреВ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд░реВрдЯ () рдЬреАрдкреАрдпреВ рдпрд╛ рдбреАрдПрд╕рдкреА рдкрд░ред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рд░реЗрдВрдбрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд┐рдЬрд╛рдЗрди рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрддрд╛ рд╣реИ рдФрд░, рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде, рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛред
рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ: рдореБрдЭреЗ рдЙрди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдХреЛрдИ рднреА рдЯрд┐рдкреНрдкрдгреА рд╕реБрдирдХрд░ рдЦреБрд╢реА рд╣реЛрдЧреА, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕ рддрдХрдиреАрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред