Design: C++ Array рдХреЛ рдмрд┐рдирд╛ рдХреЙрдкреА рдХрд┐рдП WebGL рдореЗрдВ рдкрд╛рд╕ рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 18 рджрд┐рд╕ре░ 2019  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: WebAssembly/design

WebGL рдХреЗ рд╕рд╛рде WebAssembly рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ 3D рдЧреЗрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдпрджрд┐ рд╣рдо рд╕рд░рдгреА рдХреЛ рдХреЙрдкреА рдХрд┐рдП рдмрд┐рдирд╛ WebGL API рдХреЛ C++ рд╕рд░рдгреА рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдореЗрдВ рд╕рд░рдгреА рдбреЗрдЯрд╛ рдХреЛ WebGLRenderingContext.bufferData() рдкрд░ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ JavaScript ArrayBuffer рдпрд╛ ArrayBufferView рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ C++ array рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдпрджрд┐ рд╣рдо array рдбреЗрдЯрд╛ рдХреЛ рдХреЙрдкреА рдХрд┐рдП рдмрд┐рдирд╛ ArrayBufferView рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╣рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдЬ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред WebGL рдлрд╝рдВрдХреНрд╢рди рдПрдХ ArrayBufferView рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ WebAssembly рдореЗрдореЛрд░реА рдкрд░ рдРрд╕рд╛ рджреГрд╢реНрдп рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ рдЖрдк рдореЗрдореЛрд░реА рдХреЗ ArrayBuffer рдкрд░ рдПрдХ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рд╣реБрдЖ рд╕рд░рдгреА рджреГрд╢реНрдп рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ .subarray рдХрд░рддреЗ рд╣реИрдВ ( рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП , emscripten GL рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ)ред

рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ рдбреЗрдЯрд╛ рд╕реНрдореГрддрд┐ рдореЗрдВ рд╕рдкрд╛рдЯ рд╣реИред C рд╕рд░рдгреА рдпрд╛ C++ std::vector рдХреЗ рд▓рд┐рдП рдпрд╣реА рд╕реНрдерд┐рддрд┐ рд╣реИред рддреЛ рд╡реЗрдмрдЬреАрдПрд▓ рдХреЛ рд╕реА ++ рд╕рд░рдгреА рднреЗрдЬрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЪреАрдЬреЗрдВ рдЖрдЬ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред

рдпрд╣ рдЬреЗрдПрд╕ рдПрдЯреАрдПрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдЙрд╕ рд▓рд┐рдВрдХ рдореЗрдВ рдерд╛ред рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдВ рдХреЛрдИ рдХреЙрдкреА рдирд╣реАрдВ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ! (рдЬреЗрдПрд╕ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рднреА рдПрдХ рдЕрд▓рдЧ рдорд╛рдорд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдФрд░ рд╣рд╛рдВ, рдирдП рдЪрд╢реНрдореЗ рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗ, рдЬреИрд╕реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рдХрд╛рд░, рдЬреИрд╕рд╛ рдХрд┐ @Macil рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред)

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣реЛрд╕реНрдЯ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ, рд╕рдВрджрд░реНрдн, рдФрд░/рдпрд╛ рдЬреАрд╕реА рдкреНрд░рд╕реНрддрд╛рд╡ WebAssembly рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд╕реАрдзреЗ ArrayBufferViews рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗ (рдЬрд┐рд╕реЗ рддрдм WebGL рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред

рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдЬ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред WebGL рдлрд╝рдВрдХреНрд╢рди рдПрдХ ArrayBufferView рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ WebAssembly рдореЗрдореЛрд░реА рдкрд░ рдРрд╕рд╛ рджреГрд╢реНрдп рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ рдЖрдк рдореЗрдореЛрд░реА рдХреЗ ArrayBuffer рдкрд░ рдПрдХ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рд╣реБрдЖ рд╕рд░рдгреА рджреГрд╢реНрдп рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ .subarray рдХрд░рддреЗ рд╣реИрдВ ( рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП , emscripten GL рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ)ред

рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ рдбреЗрдЯрд╛ рд╕реНрдореГрддрд┐ рдореЗрдВ рд╕рдкрд╛рдЯ рд╣реИред C рд╕рд░рдгреА рдпрд╛ C++ std::vector рдХреЗ рд▓рд┐рдП рдпрд╣реА рд╕реНрдерд┐рддрд┐ рд╣реИред рддреЛ рд╡реЗрдмрдЬреАрдПрд▓ рдХреЛ рд╕реА ++ рд╕рд░рдгреА рднреЗрдЬрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЪреАрдЬреЗрдВ рдЖрдЬ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред

рдпрд╣ рдЬреЗрдПрд╕ рдПрдЯреАрдПрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдЙрд╕ рд▓рд┐рдВрдХ рдореЗрдВ рдерд╛ред рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдВ рдХреЛрдИ рдХреЙрдкреА рдирд╣реАрдВ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ! (рдЬреЗрдПрд╕ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рднреА рдПрдХ рдЕрд▓рдЧ рдорд╛рдорд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдФрд░ рд╣рд╛рдВ, рдирдП рдЪрд╢реНрдореЗ рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗ, рдЬреИрд╕реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рдХрд╛рд░, рдЬреИрд╕рд╛ рдХрд┐ @Macil рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред)

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЪрд┐рдВрддрд╛ рдХрд╛ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдмрдВрдж рд╣реЛ рд░рд╣рд╛ рд╣реИред рдХреГрдкрдпрд╛ рдЕрдиреНрдпрдерд╛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

bobOnGitHub picture bobOnGitHub  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghost picture ghost  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dpw picture dpw  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

arunetm picture arunetm  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Artur-A picture Artur-A  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ