Made trunk sync with commit r11019 and commit r11020
git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@11021 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
This commit is contained in:
parent
84aa234446
commit
5d02fe1c20
@ -153,6 +153,11 @@ public class OGLESShaderRenderer implements Renderer {
|
||||
|
||||
powerVr = GLES20.glGetString(GLES20.GL_RENDERER).contains("PowerVR");
|
||||
|
||||
|
||||
//workaround, always assume we support GLSL100
|
||||
//some cards just don't report this correctly
|
||||
caps.add(Caps.GLSL100);
|
||||
|
||||
/*
|
||||
// Fix issue in TestRenderToMemory when GL_FRONT is the main
|
||||
// buffer being used.
|
||||
@ -2302,7 +2307,7 @@ public class OGLESShaderRenderer implements Renderer {
|
||||
}
|
||||
}
|
||||
|
||||
VertexBuffer indices = null;
|
||||
VertexBuffer indices;
|
||||
if (mesh.getNumLodLevels() > 0) {
|
||||
indices = mesh.getLodLevel(lod);
|
||||
} else {
|
||||
@ -2319,7 +2324,7 @@ public class OGLESShaderRenderer implements Renderer {
|
||||
}
|
||||
|
||||
private void renderMeshDefault(Mesh mesh, int lod, int count) {
|
||||
VertexBuffer indices = null;
|
||||
VertexBuffer indices;
|
||||
VertexBuffer interleavedData = mesh.getBuffer(Type.InterleavedData);
|
||||
if (interleavedData != null && interleavedData.isUpdateNeeded()) {
|
||||
updateBufferData(interleavedData);
|
||||
|
@ -893,12 +893,6 @@ public class Material implements CloneableSmartAsset, Cloneable, Savable {
|
||||
// When choosing technique, we choose one that
|
||||
// supports all the caps.
|
||||
EnumSet<Caps> rendererCaps = renderManager.getRenderer().getCaps();
|
||||
|
||||
//workaround, always assume we support GLSL100
|
||||
//some cards just don't report this correctly
|
||||
if( rendererCaps.contains(Caps.GLSL100) == false )
|
||||
rendererCaps.add(Caps.GLSL100);
|
||||
|
||||
if (tech == null) {
|
||||
|
||||
if (name.equals("Default")) {
|
||||
|
@ -138,6 +138,10 @@ public class JoglGL1Renderer implements GL1Renderer {
|
||||
gl12 = true;
|
||||
}
|
||||
|
||||
//workaround, always assume we support GLSL100
|
||||
//some cards just don't report this correctly
|
||||
caps.add(Caps.GLSL100);
|
||||
|
||||
// Default values for certain GL state.
|
||||
gl.getGL2ES1().glShadeModel(GLLightingFunc.GL_SMOOTH);
|
||||
gl.getGL2().glColorMaterial(GL.GL_FRONT_AND_BACK, GLLightingFunc.GL_DIFFUSE);
|
||||
@ -1136,7 +1140,7 @@ public class JoglGL1Renderer implements GL1Renderer {
|
||||
}
|
||||
|
||||
private void renderMeshDefault(Mesh mesh, int lod, int count) {
|
||||
VertexBuffer indices = null;
|
||||
VertexBuffer indices;
|
||||
|
||||
VertexBuffer interleavedData = mesh.getBuffer(Type.InterleavedData);
|
||||
if (interleavedData != null && interleavedData.isUpdateNeeded()) {
|
||||
|
@ -164,6 +164,10 @@ public class JoglRenderer implements Renderer {
|
||||
}
|
||||
}
|
||||
|
||||
//workaround, always assume we support GLSL100
|
||||
//some cards just don't report this correctly
|
||||
caps.add(Caps.GLSL100);
|
||||
|
||||
String versionStr = null;
|
||||
if (caps.contains(Caps.OpenGL20) || gl.isGL2ES2()) {
|
||||
versionStr = gl.glGetString(GL2ES2.GL_SHADING_LANGUAGE_VERSION);
|
||||
|
@ -102,6 +102,10 @@ public class LwjglGL1Renderer implements GL1Renderer {
|
||||
gl12 = true;
|
||||
}
|
||||
|
||||
//workaround, always assume we support GLSL100
|
||||
//some cards just don't report this correctly
|
||||
caps.add(Caps.GLSL100);
|
||||
|
||||
// Default values for certain GL state.
|
||||
glShadeModel(GL_SMOOTH);
|
||||
glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
|
||||
@ -1077,7 +1081,7 @@ public class LwjglGL1Renderer implements GL1Renderer {
|
||||
}
|
||||
|
||||
private void renderMeshDefault(Mesh mesh, int lod, int count) {
|
||||
VertexBuffer indices = null;
|
||||
VertexBuffer indices;
|
||||
|
||||
VertexBuffer interleavedData = mesh.getBuffer(Type.InterleavedData);
|
||||
if (interleavedData != null && interleavedData.isUpdateNeeded()) {
|
||||
|
@ -55,7 +55,9 @@ import com.jme3.texture.Texture;
|
||||
import com.jme3.texture.Texture.WrapAxis;
|
||||
import com.jme3.util.BufferUtils;
|
||||
import com.jme3.util.ListMap;
|
||||
import com.jme3.util.NativeObject;
|
||||
import com.jme3.util.NativeObjectManager;
|
||||
import com.jme3.util.SafeArrayList;
|
||||
import java.nio.*;
|
||||
import java.util.EnumSet;
|
||||
import java.util.List;
|
||||
@ -156,7 +158,11 @@ public class LwjglRenderer implements Renderer {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//workaround, always assume we support GLSL100
|
||||
//some cards just don't report this correctly
|
||||
caps.add(Caps.GLSL100);
|
||||
|
||||
String versionStr = null;
|
||||
if (ctxCaps.OpenGL20) {
|
||||
versionStr = glGetString(GL_SHADING_LANGUAGE_VERSION);
|
||||
@ -480,7 +486,7 @@ public class LwjglRenderer implements Renderer {
|
||||
}
|
||||
|
||||
if (state.isDepthTest() && !context.depthTestEnabled) {
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
glDepthFunc(convertTestFunction(context.depthFunc));
|
||||
context.depthTestEnabled = true;
|
||||
} else if (!state.isDepthTest() && context.depthTestEnabled) {
|
||||
@ -501,9 +507,9 @@ public class LwjglRenderer implements Renderer {
|
||||
context.alphaTestEnabled = false;
|
||||
}
|
||||
if (state.getAlphaFallOff() != context.alphaTestFallOff) {
|
||||
glAlphaFunc(convertTestFunction(context.alphaFunc), context.alphaTestFallOff);
|
||||
glAlphaFunc(convertTestFunction(context.alphaFunc), context.alphaTestFallOff);
|
||||
context.alphaTestFallOff = state.getAlphaFallOff();
|
||||
}
|
||||
}
|
||||
if (state.getAlphaFunc() != context.alphaFunc) {
|
||||
glAlphaFunc(convertTestFunction(state.getAlphaFunc()), context.alphaTestFallOff);
|
||||
context.alphaFunc = state.getAlphaFunc();
|
||||
@ -1766,7 +1772,7 @@ public class LwjglRenderer implements Renderer {
|
||||
if (context.pointSprite) {
|
||||
return; // Attempt to fix glTexParameter crash for some ATI GPUs
|
||||
}
|
||||
|
||||
|
||||
// repeat modes
|
||||
switch (tex.getType()) {
|
||||
case ThreeDimensional:
|
||||
@ -1787,7 +1793,7 @@ public class LwjglRenderer implements Renderer {
|
||||
// R to Texture compare mode
|
||||
if (tex.getShadowCompareMode() != Texture.ShadowCompareMode.Off) {
|
||||
glTexParameteri(target, GL_TEXTURE_COMPARE_MODE, GL_COMPARE_R_TO_TEXTURE);
|
||||
glTexParameteri(target, GL_DEPTH_TEXTURE_MODE, GL_INTENSITY);
|
||||
glTexParameteri(target, GL_DEPTH_TEXTURE_MODE, GL_INTENSITY);
|
||||
if (tex.getShadowCompareMode() == Texture.ShadowCompareMode.GreaterOrEqual) {
|
||||
glTexParameteri(target, GL_TEXTURE_COMPARE_FUNC, GL_GEQUAL);
|
||||
} else {
|
||||
@ -1795,7 +1801,7 @@ public class LwjglRenderer implements Renderer {
|
||||
}
|
||||
}else{
|
||||
//restoring default value
|
||||
glTexParameteri(target, GL_TEXTURE_COMPARE_MODE, GL_NONE);
|
||||
glTexParameteri(target, GL_TEXTURE_COMPARE_MODE, GL_NONE);
|
||||
}
|
||||
tex.compareModeUpdated();
|
||||
}
|
||||
@ -1803,7 +1809,7 @@ public class LwjglRenderer implements Renderer {
|
||||
|
||||
/**
|
||||
* Uploads the given image to the GL driver.
|
||||
*
|
||||
*
|
||||
* @param img The image to upload
|
||||
* @param type How the data in the image argument should be interpreted.
|
||||
* @param unit The texture slot to be used to upload the image, not important
|
||||
@ -1820,7 +1826,7 @@ public class LwjglRenderer implements Renderer {
|
||||
statistics.onNewTexture();
|
||||
}
|
||||
|
||||
// bind texture
|
||||
// bind texture
|
||||
int target = convertTextureType(type, img.getMultiSamples(), -1);
|
||||
if (context.boundTextureUnit != unit) {
|
||||
glActiveTexture(GL_TEXTURE0 + unit);
|
||||
@ -1877,7 +1883,7 @@ public class LwjglRenderer implements Renderer {
|
||||
throw new RendererException("Multisample textures not supported by graphics hardware");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (target == GL_TEXTURE_CUBE_MAP) {
|
||||
// Check max texture size before upload
|
||||
if (img.getWidth() > maxCubeTexSize || img.getHeight() > maxCubeTexSize) {
|
||||
@ -1903,12 +1909,12 @@ public class LwjglRenderer implements Renderer {
|
||||
if (!caps.contains(Caps.TextureArray)) {
|
||||
throw new RendererException("Texture arrays not supported by graphics hardware");
|
||||
}
|
||||
|
||||
|
||||
List<ByteBuffer> data = img.getData();
|
||||
|
||||
|
||||
// -1 index specifies prepare data for 2D Array
|
||||
TextureUtil.uploadTexture(img, target, -1, 0);
|
||||
|
||||
|
||||
for (int i = 0; i < data.size(); i++) {
|
||||
// upload each slice of 2D array in turn
|
||||
// this time with the appropriate index
|
||||
|
Loading…
x
Reference in New Issue
Block a user