@@ -630,7 +630,10 @@ p5.RendererGL = class RendererGL extends p5.Renderer {
630630 new p5 . RenderBuffer ( 3 , 'lineTangentsOut' , 'lineTangentsOutBuffer' , 'aTangentOut' , this ) ,
631631 new p5 . RenderBuffer ( 1 , 'lineSides' , 'lineSidesBuffer' , 'aSide' , this )
632632 ] ,
633- point : this . GL . createBuffer ( )
633+ point : [
634+ new p5 . RenderBuffer ( 3 , 'vertices' , 'pointVertexBuffer' , 'aPosition' , this , this . _vToNArray ) ,
635+ new p5 . RenderBuffer ( 4 , 'vertexStrokeColors' , 'pointColorBuffer' , 'aVertexColor' , this )
636+ ]
634637 }
635638 } ;
636639
@@ -2010,6 +2013,7 @@ p5.RendererGL = class RendererGL extends p5.Renderer {
20102013 'vec3 getLocalPosition' : '(vec3 position) { return position; }' ,
20112014 'vec3 getWorldPosition' : '(vec3 position) { return position; }' ,
20122015 'float getPointSize' : '(float size) { return size; }' ,
2016+ 'vec4 getVertexColor' : '(vec4 color) { return color; }' ,
20132017 'void afterVertex' : '() {}'
20142018 } ,
20152019 fragment : {
@@ -2361,6 +2365,12 @@ p5.RendererGL = class RendererGL extends p5.Renderer {
23612365 'uPointSize' ,
23622366 this . pointSize * this . _pInst . _pixelDensity
23632367 ) ;
2368+ // Enable per-vertex color for POINTS when available
2369+ const useVertexColor =
2370+ ( this . immediateMode && this . immediateMode . geometry &&
2371+ this . immediateMode . geometry . vertexStrokeColors &&
2372+ this . immediateMode . geometry . vertexStrokeColors . length > 0 ) ;
2373+ pointShader . setUniform ( 'uUseVertexColor' , ! ! useVertexColor ) ;
23642374 }
23652375
23662376 /* Binds a buffer to the drawing context
0 commit comments