When preloading sinbad, it fails when it tries to preload a vertexbuffer of Usage.CpuOnly here:
[java]
private int convertUsage(Usage usage) {
switch (usage) {
case Static:
return GL_STATIC_DRAW;
case Dynamic:
return GL_DYNAMIC_DRAW;
case Stream:
return GL_STREAM_DRAW;
default:
throw new UnsupportedOperationException("Unknown usage type.");
}
}
[/java]
java.lang.UnsupportedOperationException: Unknown usage type.
Here is the testcase:
[java]package com.mmm.util.test;
import com.jme3.app.SimpleApplication;
import com.jme3.scene.Spatial;
public class TestPreloadSinbad extends SimpleApplication {
public static void main(String[] args) {
new TestPreloadSinbad().start();
}
@Override
public void simpleInitApp() {
Spatial model = assetManager.loadModel("Models/Sinbad/Sinbad.mesh.xml");
renderManager.preloadScene(model);
}
} [/java]
and possible patch in LwjglRenderer.java:
[java]
# This patch file was generated by NetBeans IDE
# It uses platform neutral UTF-8 encoding and n newlines.
--- Base (BASE)
+++ Locally Modified (Based On LOCAL)
@@ -2011,6 +2011,10 @@
}
public void updateBufferData(VertexBuffer vb) {
+ if (vb.getUsage() == Usage.CpuOnly) {
+ return;
+ }
+
int bufId = vb.getId();
boolean created = false;
if (bufId == -1) {
[/java]