Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions jme3-core/src/main/java/com/jme3/renderer/Renderer.java
Original file line number Diff line number Diff line change
Expand Up @@ -443,5 +443,18 @@ public interface Renderer {
* @return true if the results of the task with the given task id are available.
*/
public boolean isTaskResultAvailable(int taskId);


/**
* Gets the alpha to coverage state.
*
*/
public boolean getAlphaToCoverage();

/**
* Get the default anisotropic filter level for textures.
*
*/
public int getDefaultAnisotropicFilter();

}
13 changes: 13 additions & 0 deletions jme3-core/src/main/java/com/jme3/renderer/opengl/GLRenderer.java
Original file line number Diff line number Diff line change
Expand Up @@ -3136,4 +3136,17 @@ public long getProfilingTime(int taskId) {
public boolean isTaskResultAvailable(int taskId) {
return gl.glGetQueryObjectiv(taskId, GL.GL_QUERY_RESULT_AVAILABLE) == 1;
}
@Override
public boolean getAlphaToCoverage() {
if (caps.contains(Caps.Multisample)) {
return gl.glIsEnabled(GLExt.GL_SAMPLE_ALPHA_TO_COVERAGE_ARB);

}
return false;
}

@Override
public int getDefaultAnisotropicFilter() {
return this.defaultAnisotropicFilter;
}
}
10 changes: 10 additions & 0 deletions jme3-core/src/main/java/com/jme3/system/NullRenderer.java
Original file line number Diff line number Diff line change
Expand Up @@ -212,4 +212,14 @@ public void readFrameBufferWithFormat(FrameBuffer fb, ByteBuffer byteBuf, Image.
@Override
public void setDefaultAnisotropicFilter(int level) {
}

@Override
public boolean getAlphaToCoverage() {
return false;
}

@Override
public int getDefaultAnisotropicFilter() {
return 0;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package jme3test.renderer;
import com.jme3.app.SimpleApplication;

import com.jme3.renderer.lwjgl.LwjglGL;
import com.jme3.renderer.opengl.GL;
import com.jme3.renderer.opengl.GLExt;
import com.jme3.renderer.opengl.GLFbo;
import com.jme3.renderer.opengl.GLRenderer;
import com.jme3.renderer.lwjgl.LwjglGLExt;
import com.jme3.renderer.lwjgl.LwjglGLFboEXT;
import com.jme3.renderer.Caps;

import java.util.EnumSet;

/**
* Simple application to test the getter and setters of AlphaToCoverage and
* DefaultAnisotropicFilter from the GLRenderer class.
*
* Since the app doesn't display anything relevant a stop() has been added
* This starts and closes the app on a successful run
*/
public class TestAlphaToCoverage extends SimpleApplication {

public static void main(String[] args) {
new TestAlphaToCoverage().start();
}

public GL gl = new LwjglGL();
public GLExt glext = new LwjglGLExt();
public GLFbo glfbo = new LwjglGLFboEXT();
private GLRenderer glRenderer= new GLRenderer(gl,glext,glfbo);

public EnumSet<Caps> caps = glRenderer.getCaps();



@Override
public void simpleInitApp() {
glRenderer.setAlphaToCoverage(false);
assert !glRenderer.getAlphaToCoverage();

caps.add(Caps.Multisample);
glRenderer.setAlphaToCoverage(true);
assert glRenderer.getAlphaToCoverage();
glRenderer.setAlphaToCoverage(false);
assert !glRenderer.getAlphaToCoverage();

glRenderer.setDefaultAnisotropicFilter(1);
assert glRenderer.getDefaultAnisotropicFilter() == 1;

stop();
}

}