рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛
рдЕрдЪреНрдЫреЗ рджрд┐рди, рд╣рдо рдПрдХреНрд╕-рд░реЗ рдСрдХреНрд╕реАрдЬрди рдЗрдВрдЬрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ, рдпрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдПрдХреНрд╕-рд░реЗ рдСрдХреНрд╕реАрдЬрди рдХреЗ рдХрд╛рдВрдЯреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджрд┐рд╕рдВрдмрд░ 2016 рдореЗрдВ, рдПрдХреНрд╕-рд░реЗ рдСрдХреНрд╕реАрдЬрди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реБрдИ рдереАред рдлрд┐рд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдХреЗрд▓реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдкрдиреЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣ рдЗрд╕ рд╕рдордп рдХреНрдпрд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдорд╛рд░реНрдЪ рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛: "рд╕рднреА рдХреЛ x64 рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛?" рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВ, рдпрд╣ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдпрд╛ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрд╕реЗрдВрдмрд▓реА
рдкрд╣рд▓рд╛ рдХрджрдо x64 рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рддрд╣рдд рдкреВрд░реА рдЪреАрдЬрд╝ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рдкреЛрд░реНрдЯ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдореИрдВ рдкрд╣рд▓реА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ ... рдирд╣реАрдВ, Ptr рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдХреЛрдбрд╛рдВрддрд░рдХ рдЖрд╡реЗрд╖рдг ...
__forceinline void fsincos( const float angle , float &sine , float &cosine ) { __asm { fld DWORD PTR [angle] fsincos mov eax , DWORD PTR [cosine] fstp DWORD PTR [eax] mov eax , DWORD PTR [sine] fstp DWORD PTR [eax] } }
рдЗрд╕ рдХреЛрдб рдХреА рд╕реБрдВрджрд░рддрд╛ рдЕрдиреБрдХреВрд▓рди рдереА, рд▓реЗрдХрд┐рди x64 рдореЗрдВ MSBuilder рдиреЗ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдФрд░ рдЕрднреА рднреА рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдХреЛрдб рдХреЛ рдЬреНрдпрд╛рджрд╛рддрд░ std analogues рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдРрд╕реЗ рд╕реНрдерд╛рди рдереЗ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдЖрдВрддрд░рд┐рдХ рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ:
__asm pause;
рдЗрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
_mm_pause();
рдЗрдВрдЬрди рдореЗрдВ рднреА, рдХрднреА-рдХрднреА рдореВрд▓ рдХреЛрдб рдкрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдПрдирд╛рд▓реЙрдЧ рд╣реЛрддреЗ рдереЗ (рдкреНрд░рд╢рдВрд╕рд╛ рд╕реАрдкреАрдпреВрдЖрдИрдбреА рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рд╣реЛ)ред рд▓реЗрдХрд┐рди рдРрд╕реА рдЬрдЧрд╣реЗрдВ рдереАрдВ рдЬрд┐рдирд╕реЗ рдЖрдкрдХреЛ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MMX рдирд┐рд░реНрджреЗрд╢ рдЧреБрдордирд╛рдореА рдореЗрдВ рдбреВрдм рдЧрдП рд╣реИрдВред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЙрдиреНрд╣реЗрдВ рдХрд╣реАрдВ рднреА рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдмрд╕ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдмреЗрдХрд╛рд░ рд╣реЛ рдЧрдпрд╛ред
рд╕рдВрдЪрд╛рд▓рдиреАрдпрддрд╛
рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкрд░ рд╕рднреА рд╕рдВрдкрд╛рджрди рдХреЗ рдмрд╛рдж, рдЕрдЧрд▓рд╛ рдЪрд░рдг рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рд╣реИ: рдпрд╣ рд╕рдм рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ?
рдкрд╣рд▓рд╛ рдЧрджреНрджрд╛рд░ LJJIT рдерд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, LuaJIT рдиреЗ x64 рдореЗрдВ рдХреЗрд╡рд▓ рд╕рдВрд╕реНрдХрд░рдг 2.0.5 рдХреЗ рд╕рд╛рде рдареАрдХ (рдЕрдЪреНрдЫрд╛, рд▓рдЧрднрдЧ ...) рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдФрд░ рд╡реЗ рдЫреЛрдЯреЗ рдЕрдВрдХреЛрдВ рд╕реЗ рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрди рдХреА рдЫреЛрдЯреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВред рд▓реЗрдХрд┐рди, рддрдм рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рдерд╛ рдФрд░ рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦреА рдереА рд╡рд╣ рдереА LuaJIT рдФрд░ рд▓реБрдврд╝рдХреА рд╣реБрдИ рд╡реИрдирд┐рд▓рд╛ рд▓реБрдЖ 5.1ред рд╣рд╛рдВ, рдЗрд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЧрдИ, рд▓реЗрдХрд┐рди рдЧрддрд┐ ... рдпрд╛рдж рд░рдЦреЗрдВ, рд╣рдо рд╢реЛрдХ рдХрд░рддреЗ рд╣реИрдВред рдмрд╛рдж рдореЗрдВ рдордВрдЪ рдкрд░ рдореБрдЭреЗ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдЖрдк LuaJIT 2.0.4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рд╣рд╛рдВ, рдЗрд╕рд╕реЗ рдорджрдж рдорд┐рд▓реА, рдореИрдВрдиреЗ рдЦреЗрд▓ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рдореБрдЦреНрдп рдореЗрдиреВ рдореЗрдВ рдЬрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛!
рд▓реЗрдХрд┐рди ... рдЦреБрд╢реА рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдереА ... рдСрдлрд╕реЗрдЯ, рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ xrCDB рдХреЛ рдирдорд╕реНрдХрд╛рд░ред рдЦреЗрд▓ рдиреЗ рд╕реНрддрд░ рдХреЛ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛, рд╕рд╛рдордЧреНрд░реА рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдЙрдбрд╝ рдЧрдИ рдФрд░ рдЗрдВрдЬрди рдХреЛ рдпрд╣ рдмрд╣реБрдд рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛ред рдХреБрдЫ рджрд┐рдиреЛрдВ рдХреЗ рдмрд╛рдж, рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд░рд╛рд╢ рд╣реЛ рдЧрдпрд╛ рдФрд░ рдЙрд╕рдиреЗ рдЙрдкрдирд╛рдо рдЧрд┐рдкрд░рд┐рдпрди рдХреЗ рддрд╣рдд рдПрдХ рдЕрдзрд┐рдХ рдЕрдиреБрднрд╡реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕реЗ рдорджрдж рдорд╛рдВрдЧрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдирдХреА рднрд╛рдЧреАрджрд╛рд░реА рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдореЗрд░рд╛ рд╕рдкрдирд╛ рд╕рд┐рд░реНрдл рд╕рд▓рд╛рд╣ рдерд╛ред рд▓реЗрдХрд┐рди, рдЗрд╕ рддрд░рд╣, рдореБрдЭреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рдЕрдиреБрднрд╡реА рдбреЗрд╡рд▓рдкрд░ рдорд┐рд▓рд╛ред рдЙрд╕реА рдХреНрд╖рдг рд╕реЗ, рдПрдХ рдЯреАрдо рдХрд╛ рдЧрдарди рд╣реБрдЖред
рдЕрдЧрд▓реА рд╕рдорд╕реНрдпрд╛ OPCODE рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдереЗред рдореБрдЭреЗ рд╕рднреА udwords (рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд int) рдХреЛ uqwords (рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд▓рдВрдмреЗ рд╕рдордп) рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ рдерд╛ред рдХреЗрд╡рд▓ рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдбрд┐рдмрдЧрд░ рдХреЗ рддрд╣рдд рд▓рдЧрднрдЧ 4 рдШрдВрдЯреЗ рдмрд┐рддрд╛рдиреЗ рдкрдбрд╝реЗред
рд▓реЗрдХрд┐рди, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдерд╛ред рдпрд╣ рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреА рдмрд╛рд░реА рдереАред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ:
union { u32 dummy;
X32 рдореЗрдВ рдРрд╕рд╛ рдХреЛрдб рдЬрд╛рджреВ #pragma pack(4)
рджреНрд╡рд╛рд░рд╛ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди x64 рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдпрд╣ рдирд╣реАрдВ рдмрдЪрд╛ред рд╕рдВрд░реЗрдЦрдг рдХреА рдмрд╛рд░реА рдЖрдИ, рдПрдХ рдбрд┐рдмрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдорд╛рдиреНрдп рдереЗ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рд╣рдордиреЗ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдФрд░ рдХрдирд╡рд░реНрдЯрд░ рдХреЛ рд╡реИрдз рдмрдирд╛рдпрд╛ред рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдирд┐рдореНрди рд░реВрдк рд╣реИ:
union { size_t dummy; struct { size_t material:14;
рдФрд░ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдЗрд╕ рддрд░рд╣ рдерд╛:
... if (rebuildTrisRequired) { TRI_DEPRECATED* realT = reinterpret_cast<TRI_DEPRECATED*> (T); for (int triIter = 0; triIter < tris_count; ++triIter) { TRI_DEPRECATED& oldTri = realT[triIter]; TRI& newTri = tris[triIter]; newTri = oldTri; } } else { std::memcpy(tris, T, tris_count * sizeof(TRI)); } ...
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХреЙрд▓ рдХреЗ рднрд╛рдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдзреНрд╡рдЬ рдХреЗ рдХрд╛рд░рдг рдмрджрд▓рдирд╛ рдкрдбрд╝рд╛, рд▓реЗрдХрд┐рди рдЦреЗрд▓ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред
рд▓реЗрдХрд┐рди, рд╕рдордп рдХреЗ рд╕рд╛рде, рдХрдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдЖрдИ:
real_ptr = malloc( sizeof( Particle ) * ( max_particles + 1 ) ); particles = (Particle*)((DWORD)real_ptr + (64 - ((DWORD)real_ptr & 63)));
рдЗрд╕ рдХреЛрдб рд╕реЗ рдореВрд▓ рдХрдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реБрдИред рд╡реЗ рдмрд╣реБрдд рд╕рд░рд▓ рдереЗ рдФрд░ рдЪреБрдкрдЪрд╛рдк рдЙрдирдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рд╕реНрдореГрддрд┐ рдореЗрдВ рдлрд┐рдЯ рдереЗред рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдФрд░ рд░рдВрдЧреАрди рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде, рдЬреЛ рдореЙрдбрдореЗрдХрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдереЗ, рд╕реНрдореГрддрд┐ рд╕реЗ рдкреНрд░рд╕реНрдерд╛рди рдЖрдП рдереЗред x64 рдФрд░ рдореЗрдореЛрд░реА рд╕реЗ рдХреНрд░реИрд╢, рдРрд╕рд╛ рдХреИрд╕реЗ?! рдХреЛрдб рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреНрд░рд╕реНрдерд╛рди рдЪрд▓реЗ рдЧрдП рд╣реИрдВ:
particles = alloc<Particle>(max_particles);
рдЦреЗрд▓ рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ
рдкрд╣рд▓реА рд╕рдорд╕реНрдпрд╛, рдлрд┐рд░ рд╕реЗ, LuaJIT рдереА

рд╕реНрдорд╛рд░реНрдЯ рдХрд╡рд░ рдХреЗ рд▓рд┐рдП рдпреВрдЬрд░рдбреЗрдЯрд╛ рдиреЗ рдЙрдбрд╝рд╛рди рднрд░реАред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд▓рдЧрднрдЧ рдмрд╣реБрдд рд╣реА рдЕрдВрддрд┐рдо рд░реВрдк рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдмрд╕ рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП LuaJIT 2.0.5 рд╕реЗ рд╕рдВрдкрд╛рджрди рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред
рдЕрдЧрд▓реА рд╕рдорд╕реНрдпрд╛: рдЭрд╛рдВрдХрд┐рдпреЛрдВ рдХреА рднреМрддрд┐рдХреА рдФрд░ рдЧрдгрдирд╛ред control87
рдореЗрдВ infinity
рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП control87
рдФрд░ control87
рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ... рдЖрдЗрдЯрдо рдХреЗ рдЧрд┐рд░рдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдереА, рддреАрди рд╕реЗ рдПрдХ рдмрд╛рд░ рд╡реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЧрд┐рд░ рдЧрдПред рдХрднреА-рдХрднреА рд╡реЗ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ, рдХрднреА-рдХрднреА рдЯреЗрд░реНрд░рд╛рди рдХреЗ рдиреАрдЪреЗ рдЙрдбрд╝ рдЧрдПред рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ рдПрдХ рдЪрд░ рдореЗрдВ рдереА, рдЬрд┐рд╕реЗ рдореВрд▓реНрдп рдЕрдирдВрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕реНрдерд┐рддрд┐ FLT_MAX рджреНрд╡рд╛рд░рд╛ рддрдп рдХреА рдЧрдИ рдереА, рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдиред
surface.mu = dInfinty
рдЕрдВрддрд┐рдо рд╕рдорд╕реНрдпрд╛ рдХрдгреЛрдВ рдХреА рдЧрддрд┐ рдереАред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ:
DWORD angle = 0xFFFFFFFF; ... if (angle != *((DWORD*)&m.rot.x)) { angle = *((DWORD*)&m.rot.x); fsincos(angle, sina, cosa); }
рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, x64 рдореЗрдВ 0xFFFFFFFF рдХрд╛ рдПрдХ рдЕрд▓рдЧ рдЕрд░реНрде рд╣реИ рдЬрдм рдПрдХ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ fsincos рдореЗрдВ рдПрдХ рдбрдмрд▓ рд╕рдордХрдХреНрд╖ рд╣реИ, рдФрд░ x64 рджреЛрд╣рд░рд╛ рдбреЗрдЯрд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИред рдФрд░ рджреЛрд╣рд░реЗ рдореВрд▓реНрдп рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред рддреИрд░рдиреЗ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рд╕реНрдерд┐рддрд┐ рдмрдЪ рдЧрдИред
DWORD angle = 0xFFFFFFFF; ... if (angle != *((DWORD*)&m.rot.x)) { angle = *((DWORD*)&m.rot.x);
рдирд┐рд╖реНрдХрд░реНрд╖
рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рдд рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ: x64 рдореЗрдВ рдмрдВрджрд░рдЧрд╛рд╣ рдмрд╣реБрдд рдХреБрдЫ рдирдпрд╛ рдЬреНрдЮрд╛рди рд▓рд╛рдпрд╛ рдЬреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдореИрдВрдиреЗ рдЖрдкрдХреЛ рдХрдИ рдкреЛрд░реНрдЯрд┐рдВрдЧ рдореБрджреНрджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдпрд╛ред рдФрд░ рдлрд┐рд░ рд╕рдм рдХреБрдЫ рдЖрдк рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛ рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рднреА OpenSource рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВред
рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!