Skip to content

sonytruelove/MicroPather-Semantic-Annotation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ΠΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

НиТС прСдставлСно ΠΌΠΎΠ΅ сСмантичСскоС Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MicroPather написаной leethomason Π½Π° Π‘++. Π― надСюсь это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ… всСм ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠΌ.
Below is my semantic annotation of the MicroPather library written by leethomason in C++. I hope this will help everyone understand the techniques used.
https://github.com/leethomason/MicroPather

1.ОписаниС Π±ΠΈΠ±Π»Π΅ΠΎΡ‚Π΅ΠΊΠΈ


MicroPather Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ поиску ΠΏΡƒΡ‚Π΅ΠΉ, Π² Ρ‚ΠΎΠΌ числС A* (astar ΠΈΠ»ΠΈ a-star), написан нСзависимо ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ C++, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄. MicroPather фокусируСтся Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ поиска ΠΏΡƒΡ‚Π΅ΠΉ для Π²ΠΈΠ΄Π΅ΠΎΠΈΠ³Ρ€, Π½ΠΎ являСтся ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ°Ρ‚Π΅Π»Π΅ΠΌ A *. MicroPather ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ с Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ, подходящСй для использования с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΈΠ»ΠΈ Π² коммСрчСских цСлях.

ЦСлями MicroPather ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

 ‒ ΠŸΡ€ΠΎΡΡ‚Π°Ρ интСграция Π² ΠΈΠ³Ρ€Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС.

 ‒ ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ Π² использовании ΠΈ понятный интСрфСйс.

 ‒ БыстродСйствиС

2. ОписаниС Ρ‚Π΅ΠΌΡ‹


Π’ Π²ΠΈΠ΄Π΅ΠΎΠΈΠ³Ρ€Π°Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° поиска ΠΏΡƒΡ‚ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… соврСмСнных ΠΈΠ³Ρ€Π°Ρ…. Каково ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π΅ расстояниС ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ А Π΄ΠΎ Ρ‚ΠΎΡ‡ΠΊΠΈ Π’? Π›ΡŽΠ΄ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ с этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. Π’Ρ‹ СстСствСнным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π΄Π²ΠΈΠ³Π°Π΅Ρ‚Π΅ΡΡŒ, Π½ΠΎ Π΅Π³ΠΎ слоТно Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. A * - это ΠΌΠ΅Ρ‚ΠΎΠ΄ "Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ лошадки" для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡƒΡ‚Π΅Π²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. Он ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ для быстрого поиска Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π° Π½Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π³Ρ€ΡƒΠ±ΠΎΠΉ силы, Π½ΠΎ ΠΎΠ½ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠ΄Π²Π΅Π΄Π΅Ρ‚, Ссли Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΅ΡΡ‚ΡŒ.

A * Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ унивСрсалСн, Ρ‡Π΅ΠΌ просто поиск ΠΏΡƒΡ‚ΠΈ. A * ΠΈ MicroPather ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для поиска Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ ΠΎΠ±Ρ‰Π΅Π³ΠΎ состояния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π³ΠΎΠ»ΠΎΠ²ΠΎΠ»ΠΎΠΌΠΊΠΈ с ΠΊΡƒΠ±ΠΈΠΊΠΎΠΌ Ρ€ΡƒΠ±ΠΈΠΊΠ°.

3. ОписаниС процСсса установки Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ


Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅, эти шаги Ρ‚Π°ΠΊΠΎΠ²Ρ‹: 1. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ MicroPather 2. Π Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ графичСский интСрфСйс 3. Π’Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Ρ€Π΅ΡˆΠ°Ρ‚Π΅Π»Ρ 4. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π•ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 2 Ρ„Π°ΠΉΠ»Π° для micropather: micropather.cpp ΠΈ micropather.h. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π΅Ρ‚ Π½ΠΈ сборки, Π½ΠΈ make, просто Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ эти 2 Ρ„Π°ΠΉΠ»Π° Π² свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Они ΡΠ²Π»ΡΡŽΡ‚ΡΡ стандартными для C++ ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ RTTI. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ создаСтС ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ _DEBUG ΠΈΠ»ΠΈ DEBUG (Π° это Π΄Π΅Π»Π°ΡŽΡ‚ всС), MicroPather Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π² этих Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ…. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования: GitHub - leethomason/MicroPather: MicroPather is a path finder and A* solver (astar or a-star) written in platform independent C++ that can be easily integrated into existing code. MicroPather focuses on being a path finding engine for video games but is a generic A* solver.


Micropather.h

β„–

Идиома

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

1

compile time constant

39,42,45,51,59,62,62,68

DEBUG Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒ с _DEBUG

2

Π—Π°Ρ‰ΠΈΡ‚Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°

26,27,508

-

3

implicit prologue

44,47,61,64,73,76,77

-

4

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ…ΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° этапС компиляции

41-46,49-53,56-69,72-82,86-130,246-255,493-495

-

5

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора

59,60,61,62,72(5-15),75(5-15)

-

6

БистСмныС макросы

62(120-135)

-

7

declare namespace

84

-

8

typedef

74,78,81

-

9

if

12,22,29,30,115,258-261

-

10

while

13,20,21,27

-

11

for

32,367

-

12

switch

19

-

13

break

24,34

-

14

write formatted string to stdout

23

-

15

call

26(5-14),99,102(45-54),105(50-60),118,119,213,214,249,251,252

-

16

string to number

32

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π²Π²ΠΎΠ΄Π°

17

number to string

30

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π²Π²ΠΎΠ΄Π°

18

define generic type

92,93

-

19

constructor

95,274,375,399,451,486

-

20

destructor

96,162,275,376,452

-

21

destroy object

95(8-15),121

-

21

no return value

98,99

-

22

define

98,99-101

-

23

return value

103,106,111(30-40),320(20-30),321(20-30),356,357,371,383(30-40),384(30-40)

-

24

increment and decrement

109,367(40-45)

-

25

overload operator

102,105,266,487

-

26

access control

94,113,264,273,312,350,389,417,485

-

27

unsigned type

81(6-15),111,114(20-30),116,126,127,205(35-44),223,274(30-40,41-48),292,310,319,320,321,322(10-18),335,336,337,339,340,364,365,451(30-41,41-50),503

-

28

allocate heap

117(28-42)

-

29

copy

120

-

30

type size

120(30-50),367(30-45)

-

31

struct definition

138-142,191-195,314-317,351-373,398-406

-

32

float type

141,207,208,219,220,221,223,294,295,361,381(40-50),402,406,463(60-70),474(40-51),500(10-15)

-

33

define class

93,159-186,189,202-267,271-341,348-396,413-508

-

34

define method

98,99-101,108,111,114,170,178,185,205,211,212-216,235-239,240-245,247-254,257-262,278,292-296,299,302,306,310,323,324,363-373,378,379,380,383,384,463,474,479,482,483,489,491

-

35

dynamic dispatch

162,170,178,185

-

36

ЧистыС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

170,178,185

-

37

float limits

214(15-20,24-29),258(30-36,40-46),261(0-26)

-

38

create object

193,222,229,230,497,498,499,500,502,504

-

39

integer type

226,227,302(27-31,32-38),306(20-26,26-31),331,332,380(40-51),381,386,387,394,395,400,401,404,405,463

-

40

boolean type

222,223,356,357,451(50-61)

-

41

name of receiver

215,241

-

42

multiple line comment

1-23,30-38,146-157,409-412,420-450

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ для понимания Π±ΠΈΠ±Π»Π΅ΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π΅Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΉ

43

write-once variable

302(20-26),356(19-30),364,379(20-30,30-40),390,391

-

44

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

320,321,356,357,363,383,384

-

45

bit operators

320(20-24),321(21-25)

-

46

compound assignment

368,369

-

47

ДруТСствСнный класс

415

-

48

enum

418-426

Бостояния Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

49

binary, octal, and hex literals

365

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Hash

Micropather.cpp

β„–

Идиома

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

1

implicit prologue

31,32,40

-

2

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ…ΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° этапС компиляции

26-29,39-41,55-57,83-87,113-115,121-125,132-136,185-189,206-210,241-243,572-575,578-587,559-591,597-656,660-679,797-799,861-867,877-879,882-884,961-963,1065-1071

-

3

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора

206(2-10),223(2-10)

-

4

БистСмныС макросы

653(38-39,41-46),757(19-24),767(20-25),1025(20-25)

-

5

declare namespace

45

-

6

if

95-99,142-145,148-160,395-411,527-549,551-570,732-734,837-849,871,874-885,937-958

-

7

while

93-101,152-153,397-406,435-442,519-523,543-548,793-801,902-960,1012-1052

-

8

for

314-316,556-565,629-633,650-655,691-698,736-746,1056-1064,1066-1069

-

9

break

98,438,441,800

-

10

write formatted string to stdout

84,86,122,124,133,135,188,242,573,580,590,862,865,866

-

11

call

80,81,91,102,117,118,138,791,803,1025,1030,1068

-

12

constructor

50-58,68,203-205,480-491,892-896

-

13

destructor

59,,494-497

-

14

no return value

261,269,393,510,595,789,833

-

15

return value

65,127,317,389,500,733,782,785,968,1073

-

16

increment and decrement

386,388,761,781,784,807,887,1066,1067

-

17

overload operator

69

-

18

access control

49,67,165,196

-

19

unsigned type

321,416,556,560,625,818,1066,1067

-

20

allocate heap

227(10-90),704

-

21

type size

72,310(36-54,55-61)

-

22

float type

840(30-35),845(28-32),1026

-

23

define class

47-74,,163-200,

-

24

define method

61,62,63,65,77-106,130-160,169-181,247-258,261-266,269-305,308-318,373-390,393-411,414-427,456-470,473-478,500-507,510-599,682-686,689-699,702-710,730-747,750-760,763-786,781-811,814-830,833-851,855-969,972-1053

-

25

float limits

91(20-27)

-

26

create object

817,889,890

-

27

integer type

855

-

28

boolean type

65,247

-

29

name of receiver

166(30-35),475(5-10)

-

30

multiple line comment

220-221,323-369,661-678,974-995

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ для понимания Π±ΠΈΠ±Π»Π΅ΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π΅Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΉ

31

write-once variable

68(10-15),69(12-17),197(15-21),198(16-22),625,626

-

32

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

814

-

33

compound assignment

254(15-17),279(14-16),313(9-11),778(12-14)

-

34

ИзмСнСниС повСдСния ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ… сообщСний компилятора

27,28

ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ
ΠΈ
УсСчСниС Π΄Π΅Π±Π°Π³Π΅Ρ€ΠΎΠΌ ΠΈΠΌΠ΅Π½
(НСобходимо для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹
STL ΠΈ MVC)

35

invoke method

54(30-40),56(35-45),96,112,114,123,134,143,144,150,173,229,237,447,448,449,450,513,558,644,646,684,685,758,820,823,859,943,953,956,1047,1050,1054

-

36

struct member access

65(38-45),85(42-47),86(45-50),91(10-14),92(15-21),95(20-25,26-31),97(10-15),100(10-15),102(7-11),111(20-30),117(11-17),118(11-17),119(7-11),123(10-14),124(11-15),134(30-40),135(40-50),138(15-25),142(15-20,25-30,35-40,40-46),144(20-25),148(20-25,26-30,30-35),149(10-15),153(10-14),685,696,772,773,950,951,952,1057(40-45),1059(25-32),1060(27-34)

-

37

ДинамичСскоС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

86(14-21),135(29-41)

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ число с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ 0.1

38

free heap

238-240,715

Β 

39

memset

297,705

(http://cppstudio.com/post/673/)
Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ
Clear() ΠΈ Reset() Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ часто поэтому ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ memset для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ

40

true and false

93,255,397,793,819

-

41

Π―Π²Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ°

732(25-29)\,840(40-45,52-57),845(40-45,52-57)

-

42

GLOUTPUT

798,878,883

?ΠΊΠ°ΠΊ Ρ‚ΠΎ связано с OpenGl?

43

continue

Β 

926,1019,1035

-

44

coalesce

Β 

398(40-41),423(35-36,878(54-55),931(39-40),932(41-42),1028(40-41),1029(42-43),1031(35-36)

-