@@ -15,9 +15,8 @@ class Vao {
15
15
16
16
/**
17
17
* WebGL экстеншен, в котором был инициализирован буфер.
18
- * Используется только для удаления vao, подумать хорошо, прежде чем использовать для чего-то ещё.
19
18
*/
20
- this . _ext = null ;
19
+ this . _vaoExt = null ;
21
20
}
22
21
23
22
/**
@@ -26,9 +25,10 @@ class Vao {
26
25
* @param {State } Стейт рендера
27
26
*/
28
27
bind ( state ) {
29
- const ext = state . extensions . OES_vertex_array_object ;
28
+ const vaoExt = state . extensions . OES_vertex_array_object ;
29
+ const instancesExt = state . extensions . ANGLE_instanced_arrays ;
30
30
31
- this . _bind ( state . gl , ext ) ;
31
+ this . _bind ( state . gl , vaoExt , instancesExt ) ;
32
32
33
33
return this ;
34
34
}
@@ -60,17 +60,17 @@ class Vao {
60
60
return this ;
61
61
}
62
62
63
- _bind ( gl , ext ) {
63
+ _bind ( gl , vaoExt , instancesExt ) {
64
64
if ( ! this . _vao ) {
65
- this . _prepare ( gl , ext ) ;
65
+ this . _prepare ( gl , vaoExt , instancesExt ) ;
66
66
} else {
67
67
this . _glBindVertexArray ( this . _vao ) ;
68
68
}
69
69
}
70
70
71
- _prepare ( gl , ext ) {
71
+ _prepare ( gl , vaoExt , instancesExt ) {
72
72
this . _gl = gl ;
73
- this . _ext = ext ;
73
+ this . _vaoExt = vaoExt ;
74
74
75
75
this . _vao = this . _glCreateVertexArray ( ) ;
76
76
this . _glBindVertexArray ( this . _vao ) ;
@@ -84,13 +84,13 @@ class Vao {
84
84
if ( shaderAttribute . index !== true ) {
85
85
gl . enableVertexAttribArray ( shaderAttribute . location ) ;
86
86
}
87
- attributes [ name ] . bind ( gl , shaderAttribute . location , undefined ) ;
87
+ attributes [ name ] . bind ( gl , shaderAttribute . location , instancesExt ) ;
88
88
}
89
89
}
90
90
91
91
_glCreateVertexArray ( ) {
92
92
const gl = this . _gl ;
93
- const ext = this . _ext ;
93
+ const ext = this . _vaoExt ;
94
94
if ( this . _isWebGL2 ( gl ) ) {
95
95
return gl . createVertexArray ( ) ;
96
96
} else if ( ext ) {
@@ -101,7 +101,7 @@ class Vao {
101
101
102
102
_glBindVertexArray ( vao ) {
103
103
const gl = this . _gl ;
104
- const ext = this . _ext ;
104
+ const ext = this . _vaoExt ;
105
105
if ( this . _isWebGL2 ( gl ) ) {
106
106
gl . bindVertexArray ( vao ) ;
107
107
} else if ( ext ) {
@@ -114,7 +114,7 @@ class Vao {
114
114
115
115
_glDeleteVertexArray ( vao ) {
116
116
const gl = this . _gl ;
117
- const ext = this . _ext ;
117
+ const ext = this . _vaoExt ;
118
118
if ( this . _isWebGL2 ( gl ) ) {
119
119
gl . deleteVertexArray ( vao ) ;
120
120
} else if ( ext ) {
0 commit comments