Hallo,
der IF-Zweig wird ja dann ausgeführt wenn kein Indexbuffer vorhanden ist. Das bedeutet, das die Indizierung der Vertices direkt von der Grafikkarte übernommen wird. Wenn diese Funktionalität von der
OpenGL ES Definition her nicht gegeben ist, so musst du wohl oder übel vor dem Zeichnen selbst einen Array mit den Indexdaten, abhängig vom Parameter "DrawMode" erstellen.
Wie du die Indices je nach "DrawMode" verteilen musst, ist zum Beispiel
hier beschrieben.
Außerdem wäre es natürlich sinnvoll den generierten Indexarray zwischenzuspeichern und nur bei einer Änderung der DrawModes oder der Vertexdaten neu zu erstellen.
Edit:
Moment... Da du ja auch bei glDrawElements den "DrawMode" einstellen kannst, sollte es eigentlich genügen, einen neuen Indexarray der die Zahlen 0..n-1 (n für Anzahl der Vertices) enthält erstellst.