Merged commits r11009 to r11012 to gradle restructure branch.
Moved the workaround for GLSL100 into the renderers instead of having it when selecting a technique git-svn-id: https://jmonkeyengine.googlecode.com/svn/branches/gradle-restructure@11019 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
This commit is contained in:
parent
4ac9babeb2
commit
e65d6ea44b
@ -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.
|
||||
|
@ -434,6 +434,17 @@ public class Material implements CloneableSmartAsset, Cloneable, Savable {
|
||||
public Collection<MatParam> getParams() {
|
||||
return paramValues.values();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the ListMap of all parameters set on this material.
|
||||
*
|
||||
* @return a ListMap of all parameters set on this material.
|
||||
*
|
||||
* @see #setParam(java.lang.String, com.jme3.shader.VarType, java.lang.Object)
|
||||
*/
|
||||
public ListMap getParamsMap() {
|
||||
return paramValues;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if setting the parameter given the type and name is allowed.
|
||||
|
@ -34,8 +34,8 @@ package com.jme3.material;
|
||||
import com.jme3.asset.AssetManager;
|
||||
import com.jme3.renderer.Caps;
|
||||
import com.jme3.shader.*;
|
||||
import com.jme3.util.ListMap;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.EnumSet;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
@ -182,12 +182,13 @@ public class Technique /* implements Savable */ {
|
||||
// If the technique was switched, check if the define list changed
|
||||
// based on material parameters.
|
||||
|
||||
Collection<MatParam> params = owner.getParams();
|
||||
|
||||
if (!defines.equalsParams(params,def)) {
|
||||
ListMap params = owner.getParamsMap();
|
||||
|
||||
if (!defines.equalsParams(params, def)) {
|
||||
// Defines were changed, update define list
|
||||
defines.clear();
|
||||
for (MatParam param : params) {
|
||||
for(int i=0;i<params.size();i++) {
|
||||
MatParam param = (MatParam)params.getValue(i);
|
||||
String defineName = def.getShaderParamDefine(param.getName());
|
||||
if (defineName != null) {
|
||||
defines.set(defineName, param.getVarType(), param.getValue());
|
||||
|
@ -34,9 +34,9 @@ package com.jme3.shader;
|
||||
import com.jme3.export.*;
|
||||
import com.jme3.material.MatParam;
|
||||
import com.jme3.material.TechniqueDef;
|
||||
import com.jme3.util.ListMap;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
@ -182,11 +182,12 @@ public class DefineList implements Savable, Cloneable {
|
||||
return defines.equals(other.defines);
|
||||
}
|
||||
|
||||
public boolean equalsParams(Collection<MatParam> params, TechniqueDef def) {
|
||||
|
||||
public boolean equalsParams(ListMap params, TechniqueDef def) {
|
||||
|
||||
int size = 0;
|
||||
|
||||
for (MatParam param : params) {
|
||||
for(int i = 0; i < params.size() ; i++ ) {
|
||||
MatParam param = (MatParam)params.getValue(i);
|
||||
String key = def.getShaderParamDefine(param.getName());
|
||||
if (key != null) {
|
||||
Object val = param.getValue();
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -158,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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user