MCPcopy Create free account
hub / github.com/EngoEngine/engo / updateBuffer

Method updateBuffer

common/render_shaders_text.go:152–175  ·  view source on GitHub ↗
(ren *RenderComponent, space *SpaceComponent)

Source from the content-addressed store, hash-verified

150}
151
152func (l *textShader) updateBuffer(ren *RenderComponent, space *SpaceComponent) {
153 txt, ok := ren.Drawable.(Text)
154 if !ok {
155 unsupportedType(ren.Drawable)
156 return
157 }
158
159 if len(ren.BufferContent) < 20*len(txt.Text) {
160 ren.BufferContent = make([]float32, 20*len(txt.Text)) // TODO: update this to actual value?
161 }
162 // Reset buffer so artifacts don't occur when txt.Text changes
163 for i := 0; i < len(ren.BufferContent); i++ {
164 ren.BufferContent[i] = 0
165 }
166 if changed := l.generateBufferContent(ren, space, ren.BufferContent); !changed {
167 return
168 }
169
170 if ren.Buffer == nil {
171 ren.Buffer = engo.Gl.CreateBuffer()
172 }
173 engo.Gl.BindBuffer(engo.Gl.ARRAY_BUFFER, ren.Buffer)
174 engo.Gl.BufferData(engo.Gl.ARRAY_BUFFER, ren.BufferContent, engo.Gl.STATIC_DRAW)
175}
176
177func (l *textShader) generateBufferContent(ren *RenderComponent, space *SpaceComponent, buffer []float32) bool {
178 var changed bool

Callers 1

DrawMethod · 0.95

Calls 2

generateBufferContentMethod · 0.95
unsupportedTypeFunction · 0.70

Tested by

no test coverage detected