Goodbye, OpenGL1
This commit is contained in:
parent
c2b9b8a2e1
commit
4717e7006f
@ -1,85 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2009-2012 jMonkeyEngine
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are
|
|
||||||
* met:
|
|
||||||
*
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
*
|
|
||||||
* * Neither the name of 'jMonkeyEngine' nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
||||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
||||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
||||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
package com.jme3.material;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fixed function binding is used to specify a binding for a {@link MatParam}
|
|
||||||
* in case that shaders are not supported on the system.
|
|
||||||
*
|
|
||||||
* @author Kirill Vainer
|
|
||||||
*/
|
|
||||||
public enum FixedFuncBinding {
|
|
||||||
/**
|
|
||||||
* Specifies the material ambient color.
|
|
||||||
* Same as GL_AMBIENT for OpenGL.
|
|
||||||
*/
|
|
||||||
MaterialAmbient,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Specifies the material diffuse color.
|
|
||||||
* Same as GL_DIFFUSE for OpenGL.
|
|
||||||
*/
|
|
||||||
MaterialDiffuse,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Specifies the material specular color.
|
|
||||||
* Same as GL_SPECULAR for OpenGL
|
|
||||||
*/
|
|
||||||
MaterialSpecular,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Specifies the color of the object.
|
|
||||||
* <p>
|
|
||||||
* Used only for non-lit materials.
|
|
||||||
*/
|
|
||||||
Color,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Specifies the material shininess value.
|
|
||||||
*
|
|
||||||
* Same as GL_SHININESS for OpenGL.
|
|
||||||
*/
|
|
||||||
MaterialShininess,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Use vertex color as an additional diffuse color, if lighting is enabled.
|
|
||||||
* If lighting is disabled, vertex color is modulated with
|
|
||||||
* {@link #Color material color}.
|
|
||||||
*/
|
|
||||||
UseVertexColor,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the alpha threshold to discard pixels.
|
|
||||||
* @see RenderState#setAlphaFallOff
|
|
||||||
*/
|
|
||||||
AlphaTestFallOff
|
|
||||||
}
|
|
@ -34,7 +34,6 @@ package com.jme3.material;
|
|||||||
import com.jme3.asset.TextureKey;
|
import com.jme3.asset.TextureKey;
|
||||||
import com.jme3.export.*;
|
import com.jme3.export.*;
|
||||||
import com.jme3.math.*;
|
import com.jme3.math.*;
|
||||||
import com.jme3.renderer.GL1Renderer;
|
|
||||||
import com.jme3.renderer.Renderer;
|
import com.jme3.renderer.Renderer;
|
||||||
import com.jme3.shader.VarType;
|
import com.jme3.shader.VarType;
|
||||||
import com.jme3.texture.Texture;
|
import com.jme3.texture.Texture;
|
||||||
@ -53,17 +52,15 @@ public class MatParam implements Savable, Cloneable {
|
|||||||
protected String name;
|
protected String name;
|
||||||
protected String prefixedName;
|
protected String prefixedName;
|
||||||
protected Object value;
|
protected Object value;
|
||||||
protected FixedFuncBinding ffBinding;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new material parameter. For internal use only.
|
* Create a new material parameter. For internal use only.
|
||||||
*/
|
*/
|
||||||
public MatParam(VarType type, String name, Object value, FixedFuncBinding ffBinding) {
|
public MatParam(VarType type, String name, Object value) {
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.prefixedName = "m_" + name;
|
this.prefixedName = "m_" + name;
|
||||||
this.value = value;
|
this.value = value;
|
||||||
this.ffBinding = ffBinding;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -72,15 +69,6 @@ public class MatParam implements Savable, Cloneable {
|
|||||||
public MatParam() {
|
public MatParam() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the fixed function binding.
|
|
||||||
*
|
|
||||||
* @return the fixed function binding.
|
|
||||||
*/
|
|
||||||
public FixedFuncBinding getFixedFuncBinding() {
|
|
||||||
return ffBinding;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the material parameter type.
|
* Returns the material parameter type.
|
||||||
*
|
*
|
||||||
@ -146,9 +134,6 @@ public class MatParam implements Savable, Cloneable {
|
|||||||
if (techDef.isUsingShaders()) {
|
if (techDef.isUsingShaders()) {
|
||||||
technique.updateUniformParam(getPrefixedName(), getVarType(), getValue());
|
technique.updateUniformParam(getPrefixedName(), getVarType(), getValue());
|
||||||
}
|
}
|
||||||
if (ffBinding != null && r instanceof GL1Renderer) {
|
|
||||||
((GL1Renderer) r).setFixedFuncBinding(ffBinding, getValue());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -290,7 +275,6 @@ When arrays can be inserted in J3M files
|
|||||||
OutputCapsule oc = ex.getCapsule(this);
|
OutputCapsule oc = ex.getCapsule(this);
|
||||||
oc.write(type, "varType", null);
|
oc.write(type, "varType", null);
|
||||||
oc.write(name, "name", null);
|
oc.write(name, "name", null);
|
||||||
oc.write(ffBinding, "ff_binding", null);
|
|
||||||
if (value instanceof Savable) {
|
if (value instanceof Savable) {
|
||||||
Savable s = (Savable) value;
|
Savable s = (Savable) value;
|
||||||
oc.write(s, "value_savable", null);
|
oc.write(s, "value_savable", null);
|
||||||
@ -311,7 +295,6 @@ When arrays can be inserted in J3M files
|
|||||||
type = ic.readEnum("varType", VarType.class, null);
|
type = ic.readEnum("varType", VarType.class, null);
|
||||||
name = ic.readString("name", null);
|
name = ic.readString("name", null);
|
||||||
prefixedName = "m_" + name;
|
prefixedName = "m_" + name;
|
||||||
ffBinding = ic.readEnum("ff_binding", FixedFuncBinding.class, null);
|
|
||||||
switch (getVarType()) {
|
switch (getVarType()) {
|
||||||
case Boolean:
|
case Boolean:
|
||||||
value = ic.readBoolean("value_bool", false);
|
value = ic.readBoolean("value_bool", false);
|
||||||
@ -346,9 +329,6 @@ When arrays can be inserted in J3M files
|
|||||||
if (this.value != other.value && (this.value == null || !this.value.equals(other.value))) {
|
if (this.value != other.value && (this.value == null || !this.value.equals(other.value))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (this.ffBinding != other.ffBinding) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -358,7 +338,6 @@ When arrays can be inserted in J3M files
|
|||||||
hash = 59 * hash + (this.type != null ? this.type.hashCode() : 0);
|
hash = 59 * hash + (this.type != null ? this.type.hashCode() : 0);
|
||||||
hash = 59 * hash + (this.name != null ? this.name.hashCode() : 0);
|
hash = 59 * hash + (this.name != null ? this.name.hashCode() : 0);
|
||||||
hash = 59 * hash + (this.value != null ? this.value.hashCode() : 0);
|
hash = 59 * hash + (this.value != null ? this.value.hashCode() : 0);
|
||||||
hash = 59 * hash + (this.ffBinding != null ? this.ffBinding.hashCode() : 0);
|
|
||||||
return hash;
|
return hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,13 +48,13 @@ public class MatParamTexture extends MatParam {
|
|||||||
private ColorSpace colorSpace;
|
private ColorSpace colorSpace;
|
||||||
|
|
||||||
public MatParamTexture(VarType type, String name, Texture texture, int unit) {
|
public MatParamTexture(VarType type, String name, Texture texture, int unit) {
|
||||||
super(type, name, texture, null);
|
super(type, name, texture);
|
||||||
this.texture = texture;
|
this.texture = texture;
|
||||||
this.unit = unit;
|
this.unit = unit;
|
||||||
}
|
}
|
||||||
|
|
||||||
public MatParamTexture(VarType type, String name, Texture texture, int unit, ColorSpace colorSpace) {
|
public MatParamTexture(VarType type, String name, Texture texture, int unit, ColorSpace colorSpace) {
|
||||||
super(type, name, texture, null);
|
super(type, name, texture);
|
||||||
this.texture = texture;
|
this.texture = texture;
|
||||||
this.unit = unit;
|
this.unit = unit;
|
||||||
this.colorSpace = colorSpace;
|
this.colorSpace = colorSpace;
|
||||||
|
@ -480,7 +480,7 @@ public class Material implements CloneableSmartAsset, Cloneable, Savable {
|
|||||||
MatParam val = getParam(name);
|
MatParam val = getParam(name);
|
||||||
if (val == null) {
|
if (val == null) {
|
||||||
MatParam paramDef = def.getMaterialParam(name);
|
MatParam paramDef = def.getMaterialParam(name);
|
||||||
paramValues.put(name, new MatParam(type, name, value, paramDef.getFixedFuncBinding()));
|
paramValues.put(name, new MatParam(type, name, value));
|
||||||
} else {
|
} else {
|
||||||
val.setValue(value);
|
val.setValue(value);
|
||||||
}
|
}
|
||||||
@ -1089,10 +1089,15 @@ public class Material implements CloneableSmartAsset, Cloneable, Savable {
|
|||||||
for (int i = 0; i < size; i++) {
|
for (int i = 0; i < size; i++) {
|
||||||
Uniform u = uniforms.getValue(i);
|
Uniform u = uniforms.getValue(i);
|
||||||
if (!u.isSetByCurrentMaterial()) {
|
if (!u.isSetByCurrentMaterial()) {
|
||||||
|
if (u.getName().charAt(0) != 'g') {
|
||||||
|
// Don't reset world globals!
|
||||||
|
// The benefits gained from this are very minimal
|
||||||
|
// and cause lots of matrix -> FloatBuffer conversions.
|
||||||
u.clearValue();
|
u.clearValue();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called by {@link RenderManager} to render the geometry by
|
* Called by {@link RenderManager} to render the geometry by
|
||||||
|
@ -119,10 +119,9 @@ public class MaterialDef {
|
|||||||
* @param type Type of the parameter
|
* @param type Type of the parameter
|
||||||
* @param name Name of the parameter
|
* @param name Name of the parameter
|
||||||
* @param value Default value of the parameter
|
* @param value Default value of the parameter
|
||||||
* @param ffBinding Fixed function binding for the parameter
|
|
||||||
*/
|
*/
|
||||||
public void addMaterialParam(VarType type, String name, Object value, FixedFuncBinding ffBinding) {
|
public void addMaterialParam(VarType type, String name, Object value) {
|
||||||
matParams.put(name, new MatParam(type, name, value, ffBinding));
|
matParams.put(name, new MatParam(type, name, value));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,57 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2009-2012 jMonkeyEngine
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are
|
|
||||||
* met:
|
|
||||||
*
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
*
|
|
||||||
* * Neither the name of 'jMonkeyEngine' nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
||||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
||||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
||||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
package com.jme3.renderer;
|
|
||||||
|
|
||||||
import com.jme3.material.FixedFuncBinding;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Renderer sub-interface that is used for non-shader based renderers.
|
|
||||||
* <p>
|
|
||||||
* The <code>GL1Renderer</code> provides a single call,
|
|
||||||
* {@link #setFixedFuncBinding(com.jme3.material.FixedFuncBinding, java.lang.Object) }
|
|
||||||
* which allows to set fixed functionality state.
|
|
||||||
*
|
|
||||||
* @author Kirill Vainer
|
|
||||||
*/
|
|
||||||
public interface GL1Renderer extends Renderer {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the fixed functionality state.
|
|
||||||
* <p>
|
|
||||||
* See {@link FixedFuncBinding} for various values that
|
|
||||||
* can be set.
|
|
||||||
*
|
|
||||||
* @param ffBinding The binding to set
|
|
||||||
* @param val The value
|
|
||||||
*/
|
|
||||||
public void setFixedFuncBinding(FixedFuncBinding ffBinding, Object val);
|
|
||||||
}
|
|
@ -56,13 +56,6 @@ public final class AppSettings extends HashMap<String, Object> {
|
|||||||
|
|
||||||
private static final AppSettings defaults = new AppSettings(false);
|
private static final AppSettings defaults = new AppSettings(false);
|
||||||
|
|
||||||
/**
|
|
||||||
* Use LWJGL as the display system and force using the OpenGL1.1 renderer.
|
|
||||||
*
|
|
||||||
* @see AppSettings#setRenderer(java.lang.String)
|
|
||||||
*/
|
|
||||||
public static final String LWJGL_OPENGL1 = "LWJGL-OPENGL1";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Use LWJGL as the display system and force using the OpenGL2.0 renderer.
|
* Use LWJGL as the display system and force using the OpenGL2.0 renderer.
|
||||||
* <p>
|
* <p>
|
||||||
@ -87,17 +80,6 @@ public final class AppSettings extends HashMap<String, Object> {
|
|||||||
*/
|
*/
|
||||||
public static final String LWJGL_OPENGL3 = "LWJGL-OpenGL3";
|
public static final String LWJGL_OPENGL3 = "LWJGL-OpenGL3";
|
||||||
|
|
||||||
/**
|
|
||||||
* Use LWJGL as the display system and allow the context
|
|
||||||
* to choose an appropriate renderer based on system capabilities.
|
|
||||||
* <p>
|
|
||||||
* If the GPU supports OpenGL2 or later, then the OpenGL2.0 renderer will
|
|
||||||
* be used, otherwise, the OpenGL1.1 renderer is used.
|
|
||||||
*
|
|
||||||
* @see AppSettings#setRenderer(java.lang.String)
|
|
||||||
*/
|
|
||||||
public static final String LWJGL_OPENGL_ANY = "LWJGL-OpenGL-Any";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Use the LWJGL OpenAL based renderer for audio capabilities.
|
* Use the LWJGL OpenAL based renderer for audio capabilities.
|
||||||
*
|
*
|
||||||
|
@ -221,7 +221,6 @@ public class J3MLoader implements AssetLoader {
|
|||||||
private void readParam(String statement) throws IOException{
|
private void readParam(String statement) throws IOException{
|
||||||
String name;
|
String name;
|
||||||
String defaultVal = null;
|
String defaultVal = null;
|
||||||
FixedFuncBinding ffBinding = null;
|
|
||||||
ColorSpace colorSpace = null;
|
ColorSpace colorSpace = null;
|
||||||
|
|
||||||
String[] split = statement.split("-");
|
String[] split = statement.split("-");
|
||||||
@ -251,12 +250,7 @@ public class J3MLoader implements AssetLoader {
|
|||||||
// get content inside parentheses
|
// get content inside parentheses
|
||||||
int endParen = statement.indexOf(")", startParen);
|
int endParen = statement.indexOf(")", startParen);
|
||||||
String bindingStr = statement.substring(startParen+1, endParen).trim();
|
String bindingStr = statement.substring(startParen+1, endParen).trim();
|
||||||
try {
|
// don't care about bindingStr
|
||||||
ffBinding = FixedFuncBinding.valueOf(bindingStr);
|
|
||||||
} catch (IllegalArgumentException ex){
|
|
||||||
throw new IOException("FixedFuncBinding '" +
|
|
||||||
split[1] + "' does not exist!");
|
|
||||||
}
|
|
||||||
statement = statement.substring(0, startParen);
|
statement = statement.substring(0, startParen);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -282,7 +276,7 @@ public class J3MLoader implements AssetLoader {
|
|||||||
if(type.isTextureType()){
|
if(type.isTextureType()){
|
||||||
materialDef.addMaterialParamTexture(type, name, colorSpace);
|
materialDef.addMaterialParamTexture(type, name, colorSpace);
|
||||||
}else{
|
}else{
|
||||||
materialDef.addMaterialParam(type, name, defaultValObj, ffBinding);
|
materialDef.addMaterialParam(type, name, defaultValObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -35,9 +35,8 @@ package com.jme3.system.lwjgl;
|
|||||||
import com.jme3.input.lwjgl.JInputJoyInput;
|
import com.jme3.input.lwjgl.JInputJoyInput;
|
||||||
import com.jme3.input.lwjgl.LwjglKeyInput;
|
import com.jme3.input.lwjgl.LwjglKeyInput;
|
||||||
import com.jme3.input.lwjgl.LwjglMouseInput;
|
import com.jme3.input.lwjgl.LwjglMouseInput;
|
||||||
import com.jme3.math.FastMath;
|
|
||||||
import com.jme3.renderer.Renderer;
|
import com.jme3.renderer.Renderer;
|
||||||
import com.jme3.renderer.lwjgl.LwjglGL1Renderer;
|
import com.jme3.renderer.RendererException;
|
||||||
import com.jme3.renderer.lwjgl.LwjglRenderer;
|
import com.jme3.renderer.lwjgl.LwjglRenderer;
|
||||||
import com.jme3.system.AppSettings;
|
import com.jme3.system.AppSettings;
|
||||||
import com.jme3.system.JmeContext;
|
import com.jme3.system.JmeContext;
|
||||||
@ -199,30 +198,19 @@ public abstract class LwjglContext implements JmeContext {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void initContextFirstTime(){
|
protected void initContextFirstTime(){
|
||||||
|
if (!GLContext.getCapabilities().OpenGL20) {
|
||||||
|
throw new RendererException("OpenGL 2.0 or higher is " +
|
||||||
|
"required for jMonkeyEngine");
|
||||||
|
}
|
||||||
|
|
||||||
if (settings.getRenderer().equals(AppSettings.LWJGL_OPENGL2)
|
if (settings.getRenderer().equals(AppSettings.LWJGL_OPENGL2)
|
||||||
|| settings.getRenderer().equals(AppSettings.LWJGL_OPENGL3)) {
|
|| settings.getRenderer().equals(AppSettings.LWJGL_OPENGL3)) {
|
||||||
renderer = new LwjglRenderer();
|
renderer = new LwjglRenderer();
|
||||||
}else if (settings.getRenderer().equals(AppSettings.LWJGL_OPENGL1)){
|
((LwjglRenderer) renderer).initialize();
|
||||||
renderer = new LwjglGL1Renderer();
|
|
||||||
}else if (settings.getRenderer().equals(AppSettings.LWJGL_OPENGL_ANY)){
|
|
||||||
// Choose an appropriate renderer based on capabilities
|
|
||||||
if (GLContext.getCapabilities().OpenGL20){
|
|
||||||
renderer = new LwjglRenderer();
|
|
||||||
}else{
|
|
||||||
renderer = new LwjglGL1Renderer();
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
throw new UnsupportedOperationException("Unsupported renderer: " + settings.getRenderer());
|
throw new UnsupportedOperationException("Unsupported renderer: " + settings.getRenderer());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Init renderer
|
|
||||||
if (renderer instanceof LwjglRenderer){
|
|
||||||
((LwjglRenderer)renderer).initialize();
|
|
||||||
}else if (renderer instanceof LwjglGL1Renderer){
|
|
||||||
((LwjglGL1Renderer)renderer).initialize();
|
|
||||||
}else{
|
|
||||||
assert false;
|
|
||||||
}
|
|
||||||
renderer.setMainFrameBufferSrgb(settings.getGammaCorrection());
|
renderer.setMainFrameBufferSrgb(settings.getGammaCorrection());
|
||||||
renderer.setLinearizeSrgbImages(settings.getGammaCorrection());
|
renderer.setLinearizeSrgbImages(settings.getGammaCorrection());
|
||||||
|
|
||||||
|
@ -25,9 +25,6 @@ public class SceneApplication extends SimpleApplication {
|
|||||||
super(new StatsAppState());
|
super(new StatsAppState());
|
||||||
AppSettings newSetting = new AppSettings(true);
|
AppSettings newSetting = new AppSettings(true);
|
||||||
newSetting.setFrameRate(30);
|
newSetting.setFrameRate(30);
|
||||||
if ("true".equals(NbPreferences.forModule(Installer.class).get("use_opengl_1", "false"))) {
|
|
||||||
newSetting.setRenderer(AppSettings.LWJGL_OPENGL1);
|
|
||||||
}
|
|
||||||
newSetting.setCustomRenderer(AwtPanelsContext.class);
|
newSetting.setCustomRenderer(AwtPanelsContext.class);
|
||||||
setSettings(newSetting);
|
setSettings(newSetting);
|
||||||
setPauseOnLostFocus(false);
|
setPauseOnLostFocus(false);
|
||||||
|
@ -144,9 +144,6 @@ public class SceneApplication extends Application implements LookupProvider {
|
|||||||
try {
|
try {
|
||||||
AppSettings newSetting = new AppSettings(true);
|
AppSettings newSetting = new AppSettings(true);
|
||||||
newSetting.setFrameRate(30);
|
newSetting.setFrameRate(30);
|
||||||
if ("true".equals(NbPreferences.forModule(Installer.class).get("use_opengl_1", "false"))) {
|
|
||||||
newSetting.setRenderer(AppSettings.LWJGL_OPENGL1);
|
|
||||||
}
|
|
||||||
if (!useCanvas) {
|
if (!useCanvas) {
|
||||||
newSetting.setCustomRenderer(AwtPanelsContext.class);
|
newSetting.setCustomRenderer(AwtPanelsContext.class);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user