* Set AppSettings.setRenderer() to LWJGL_OpenGL_ANY to choose renderer based on capabilities of video card.
git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@7385 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
This commit is contained in:
parent
cfb647f743
commit
1a3823b6aa
@ -48,6 +48,7 @@ public class AppSettings extends HashMap<String, Object> {
|
|||||||
public static final String LWJGL_OPENGL1 = "LWJGL-OPENGL1",
|
public static final String LWJGL_OPENGL1 = "LWJGL-OPENGL1",
|
||||||
LWJGL_OPENGL2 = "LWJGL-OpenGL2",
|
LWJGL_OPENGL2 = "LWJGL-OpenGL2",
|
||||||
LWJGL_OPENGL3 = "LWJGL-OpenGL3",
|
LWJGL_OPENGL3 = "LWJGL-OpenGL3",
|
||||||
|
LWJGL_OPENGL_ANY = "LWJGL-OpenGL-Any",
|
||||||
JOGL = "JOGL",
|
JOGL = "JOGL",
|
||||||
NULL = "NULL";
|
NULL = "NULL";
|
||||||
public static final String LWJGL_OPENAL = "LWJGL";
|
public static final String LWJGL_OPENAL = "LWJGL";
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.jme3.renderer.lwjgl;
|
package com.jme3.renderer.lwjgl;
|
||||||
|
|
||||||
|
import org.lwjgl.opengl.GL14;
|
||||||
import com.jme3.math.FastMath;
|
import com.jme3.math.FastMath;
|
||||||
import com.jme3.renderer.GL1Renderer;
|
import com.jme3.renderer.GL1Renderer;
|
||||||
import com.jme3.shader.Shader;
|
import com.jme3.shader.Shader;
|
||||||
@ -518,7 +519,7 @@ public class LwjglGL1Renderer implements GL1Renderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check sizes if graphics card doesn't support NPOT
|
// Check sizes if graphics card doesn't support NPOT
|
||||||
// if (!GLContext.getCapabilities().GL_ARB_texture_non_power_of_two){
|
if (!GLContext.getCapabilities().GL_ARB_texture_non_power_of_two){
|
||||||
if (img.getWidth() != 0 && img.getHeight() != 0){
|
if (img.getWidth() != 0 && img.getHeight() != 0){
|
||||||
if (!FastMath.isPowerOfTwo(img.getWidth())
|
if (!FastMath.isPowerOfTwo(img.getWidth())
|
||||||
|| !FastMath.isPowerOfTwo(img.getHeight())
|
|| !FastMath.isPowerOfTwo(img.getHeight())
|
||||||
@ -529,14 +530,18 @@ public class LwjglGL1Renderer implements GL1Renderer {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// }
|
}
|
||||||
|
|
||||||
if (!img.hasMipmaps() && mips) {
|
if (!img.hasMipmaps() && mips) {
|
||||||
// No pregenerated mips available,
|
// No pregenerated mips available,
|
||||||
// generate from base level if required
|
// generate from base level if required
|
||||||
// glTexParameteri(target, GL_GENERATE_MIPMAP, GL_TRUE);
|
|
||||||
// TODO: Generate mipmaps here
|
// Check if hardware mips are supported
|
||||||
|
if (GLContext.getCapabilities().OpenGL14){
|
||||||
|
glTexParameteri(target, GL14.GL_GENERATE_MIPMAP, GL_TRUE);
|
||||||
|
}else{
|
||||||
MipMapGenerator.generateMipMaps(img);
|
MipMapGenerator.generateMipMaps(img);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -115,11 +115,21 @@ public abstract class LwjglContext implements JmeContext {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void initContextFirstTime(){
|
protected void initContextFirstTime(){
|
||||||
|
if (settings.getRenderer().equals(AppSettings.LWJGL_OPENGL2)
|
||||||
|
|| settings.getRenderer().equals(AppSettings.LWJGL_OPENGL3)){
|
||||||
|
renderer = new LwjglRenderer();
|
||||||
|
}else if (settings.getRenderer().equals(AppSettings.LWJGL_OPENGL1)){
|
||||||
|
renderer = new LwjglGL1Renderer();
|
||||||
|
}else if (settings.getRenderer().equals(AppSettings.LWJGL_OPENGL_ANY)){
|
||||||
|
// Choose an appropriate renderer based on capabilities
|
||||||
if (GLContext.getCapabilities().OpenGL20){
|
if (GLContext.getCapabilities().OpenGL20){
|
||||||
renderer = new LwjglRenderer();
|
renderer = new LwjglRenderer();
|
||||||
}else{
|
}else{
|
||||||
renderer = new LwjglGL1Renderer();
|
renderer = new LwjglGL1Renderer();
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
throw new UnsupportedOperationException("Unsupported renderer: " + settings.getRenderer());
|
||||||
|
}
|
||||||
|
|
||||||
// Init renderer
|
// Init renderer
|
||||||
if (renderer instanceof LwjglRenderer){
|
if (renderer instanceof LwjglRenderer){
|
||||||
@ -154,14 +164,6 @@ public abstract class LwjglContext implements JmeContext {
|
|||||||
public void internalCreate(){
|
public void internalCreate(){
|
||||||
timer = new LwjglTimer();
|
timer = new LwjglTimer();
|
||||||
|
|
||||||
// if (settings.getRenderer().equals(AppSettings.LWJGL_OPENGL2)
|
|
||||||
// || settings.getRenderer().equals(AppSettings.LWJGL_OPENGL3)){
|
|
||||||
// renderer = new LwjglRenderer();
|
|
||||||
// }else if (settings.getRenderer().equals(AppSettings.LWJGL_OPENGL1)){
|
|
||||||
// renderer = new LwjglGL1Renderer();
|
|
||||||
// }else{
|
|
||||||
// throw new UnsupportedOperationException("Unsupported renderer: " + settings.getRenderer());
|
|
||||||
// }
|
|
||||||
synchronized (createdLock){
|
synchronized (createdLock){
|
||||||
created.set(true);
|
created.set(true);
|
||||||
createdLock.notifyAll();
|
createdLock.notifyAll();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user