Ejemplo n.º 1
0
def _FlushNormal():
    global _acumVertexCount, _acumDrawsCount

    if not _quadsCount:
        return

    _basicVao.Bind()

    _basicShader.Use()

    textures = _textures[:_lastTexture]
    GL.glBindTextures(0, len(textures), np.asarray(textures, dtype=_NP_UINT))
    GL.glBindTextures(
        14, 2,
        np.asarray([_whiteTexture.ID, _vertexDataTbo.TextureID],
                   dtype=_NP_UINT))

    _instanceDataVbo.TransferData(_lastInstancePos * _GL_FLOAT_SIZE)
    _vertexDataTbo.TransferData(_lastVertexPos * _GL_FLOAT_SIZE)

    GL.glDrawElementsInstanced(GL.GL_TRIANGLES, _quadsCount * INDICES_PER_QUAD,
                               _ibo.Type, None, _quadsCount)

    renderStats.drawsCount += 1
    renderStats.vertexCount += _quadsCount * VERTICES_PER_QUAD
    _ResetCounters()