Added a new step in AppProfiler for viewport processors and added method to pass the profiler to all processors.
This commit is contained in:
parent
6a467ecb53
commit
6b33ae470a
@ -33,8 +33,8 @@
|
||||
package com.jme3.app;
|
||||
|
||||
import android.os.Build;
|
||||
import com.jme3.profile.AppProfiler;
|
||||
import com.jme3.profile.AppStep;
|
||||
import com.jme3.profile.*;
|
||||
|
||||
import static com.jme3.profile.AppStep.BeginFrame;
|
||||
import static com.jme3.profile.AppStep.EndFrame;
|
||||
import static com.jme3.profile.AppStep.ProcessAudio;
|
||||
@ -47,7 +47,6 @@ import static com.jme3.profile.AppStep.RenderPreviewViewPorts;
|
||||
import static com.jme3.profile.AppStep.SpatialUpdate;
|
||||
import static com.jme3.profile.AppStep.StateManagerRender;
|
||||
import static com.jme3.profile.AppStep.StateManagerUpdate;
|
||||
import com.jme3.profile.VpStep;
|
||||
import static com.jme3.profile.VpStep.BeginRender;
|
||||
import static com.jme3.profile.VpStep.EndRender;
|
||||
import static com.jme3.profile.VpStep.FlushQueue;
|
||||
@ -164,4 +163,10 @@ public class DefaultAndroidProfiler implements AppProfiler {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void spStep(SpStep step, String... additionalInfo) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -34,6 +34,7 @@ package com.jme3.app.state;
|
||||
import android.graphics.Bitmap;
|
||||
import com.jme3.app.Application;
|
||||
import com.jme3.post.SceneProcessor;
|
||||
import com.jme3.profile.AppProfiler;
|
||||
import com.jme3.renderer.Camera;
|
||||
import com.jme3.renderer.RenderManager;
|
||||
import com.jme3.renderer.Renderer;
|
||||
@ -226,6 +227,7 @@ public class VideoRecorderAppState extends AbstractAppState {
|
||||
private LinkedBlockingQueue<WorkItem> usedItems = new LinkedBlockingQueue<WorkItem>();
|
||||
private MjpegFileWriter writer;
|
||||
private boolean fastMode = true;
|
||||
private AppProfiler prof;
|
||||
|
||||
public void addImage(Renderer renderer, FrameBuffer out) {
|
||||
if (freeItems == null) {
|
||||
@ -313,6 +315,11 @@ public class VideoRecorderAppState extends AbstractAppState {
|
||||
}
|
||||
writer = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setProfiler(AppProfiler profiler) {
|
||||
this.prof = profiler;
|
||||
}
|
||||
}
|
||||
|
||||
public static final class IsoTimer extends com.jme3.system.Timer {
|
||||
|
@ -32,9 +32,7 @@
|
||||
|
||||
package com.jme3.app;
|
||||
|
||||
import com.jme3.profile.AppProfiler;
|
||||
import com.jme3.profile.AppStep;
|
||||
import com.jme3.profile.VpStep;
|
||||
import com.jme3.profile.*;
|
||||
import com.jme3.renderer.ViewPort;
|
||||
import com.jme3.renderer.queue.RenderQueue.Bucket;
|
||||
import com.jme3.scene.Mesh;
|
||||
@ -191,7 +189,13 @@ public class BasicProfiler implements AppProfiler {
|
||||
|
||||
@Override
|
||||
public void vpStep( VpStep step, ViewPort vp, Bucket bucket ) {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void spStep(SpStep step, String... additionalInfo) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -37,6 +37,7 @@ import com.jme3.input.KeyInput;
|
||||
import com.jme3.input.controls.ActionListener;
|
||||
import com.jme3.input.controls.KeyTrigger;
|
||||
import com.jme3.post.SceneProcessor;
|
||||
import com.jme3.profile.AppProfiler;
|
||||
import com.jme3.renderer.Camera;
|
||||
import com.jme3.renderer.RenderManager;
|
||||
import com.jme3.renderer.Renderer;
|
||||
@ -67,6 +68,7 @@ public class ScreenshotAppState extends AbstractAppState implements ActionListen
|
||||
private String shotName;
|
||||
private long shotIndex = 0;
|
||||
private int width, height;
|
||||
private AppProfiler prof;
|
||||
|
||||
/**
|
||||
* Using this constructor, the screenshot files will be written sequentially to the system
|
||||
@ -256,7 +258,12 @@ public class ScreenshotAppState extends AbstractAppState implements ActionListen
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void setProfiler(AppProfiler profiler) {
|
||||
this.prof = profiler;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called by postFrame() once the screen has been captured to outBuf.
|
||||
*/
|
||||
|
@ -33,6 +33,7 @@ package com.jme3.light;
|
||||
|
||||
import com.jme3.bounding.BoundingSphere;
|
||||
import com.jme3.post.SceneProcessor;
|
||||
import com.jme3.profile.AppProfiler;
|
||||
import com.jme3.renderer.RenderManager;
|
||||
import com.jme3.renderer.ViewPort;
|
||||
import com.jme3.renderer.queue.RenderQueue;
|
||||
@ -56,6 +57,7 @@ public class LightProbeBlendingProcessor implements SceneProcessor {
|
||||
private RenderManager renderManager;
|
||||
private LightProbe probe = new LightProbe();
|
||||
private Spatial poi;
|
||||
private AppProfiler prof;
|
||||
|
||||
public LightProbeBlendingProcessor(Spatial poi) {
|
||||
this.poi = poi;
|
||||
@ -177,8 +179,12 @@ public class LightProbeBlendingProcessor implements SceneProcessor {
|
||||
public void setPoi(Spatial poi) {
|
||||
this.poi = poi;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void setProfiler(AppProfiler profiler) {
|
||||
this.prof = profiler;
|
||||
}
|
||||
|
||||
private class BlendFactor implements Comparable<BlendFactor>{
|
||||
|
||||
LightProbe lightProbe;
|
||||
|
@ -85,6 +85,14 @@ public abstract class Filter implements Savable {
|
||||
protected Texture2D renderedTexture;
|
||||
protected Texture2D depthTexture;
|
||||
protected Material passMaterial;
|
||||
protected String name;
|
||||
|
||||
public Pass(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public Pass() {
|
||||
}
|
||||
|
||||
/**
|
||||
* init the pass called internally
|
||||
@ -197,6 +205,11 @@ public abstract class Filter implements Savable {
|
||||
depthTexture.getImage().dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return name == null ? super.toString() : name;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -34,6 +34,7 @@ package com.jme3.post;
|
||||
import com.jme3.asset.AssetManager;
|
||||
import com.jme3.export.*;
|
||||
import com.jme3.material.Material;
|
||||
import com.jme3.profile.*;
|
||||
import com.jme3.renderer.*;
|
||||
import com.jme3.renderer.queue.RenderQueue;
|
||||
import com.jme3.texture.FrameBuffer;
|
||||
@ -56,6 +57,7 @@ import java.util.List;
|
||||
*/
|
||||
public class FilterPostProcessor implements SceneProcessor, Savable {
|
||||
|
||||
public static final String FPP = FilterPostProcessor.class.getSimpleName();
|
||||
private RenderManager renderManager;
|
||||
private Renderer renderer;
|
||||
private ViewPort viewPort;
|
||||
@ -80,6 +82,7 @@ public class FilterPostProcessor implements SceneProcessor, Savable {
|
||||
private int lastFilterIndex = -1;
|
||||
private boolean cameraInit = false;
|
||||
private boolean multiView = false;
|
||||
private AppProfiler prof;
|
||||
|
||||
private Format fbFormat = Format.RGB111110F;
|
||||
|
||||
@ -216,7 +219,6 @@ public class FilterPostProcessor implements SceneProcessor, Savable {
|
||||
r.setFrameBuffer(buff);
|
||||
r.clearBuffers(true, true, true);
|
||||
renderManager.renderGeometry(fsQuad);
|
||||
|
||||
}
|
||||
|
||||
public boolean isInitialized() {
|
||||
@ -224,13 +226,12 @@ public class FilterPostProcessor implements SceneProcessor, Savable {
|
||||
}
|
||||
|
||||
public void postQueue(RenderQueue rq) {
|
||||
|
||||
for (Filter filter : filters.getArray()) {
|
||||
if (filter.isEnabled()) {
|
||||
if (prof != null) prof.spStep(SpStep.ProcPostQueue, FPP, filter.getName());
|
||||
filter.postQueue(rq);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -244,10 +245,12 @@ public class FilterPostProcessor implements SceneProcessor, Savable {
|
||||
boolean msDepth = depthTexture != null && depthTexture.getImage().getMultiSamples() > 1;
|
||||
for (int i = 0; i < filters.size(); i++) {
|
||||
Filter filter = filters.get(i);
|
||||
if (prof != null) prof.spStep(SpStep.ProcPostFrame, FPP, filter.getName());
|
||||
if (filter.isEnabled()) {
|
||||
if (filter.getPostRenderPasses() != null) {
|
||||
for (Iterator<Filter.Pass> it1 = filter.getPostRenderPasses().iterator(); it1.hasNext();) {
|
||||
Filter.Pass pass = it1.next();
|
||||
if (prof != null) prof.spStep(SpStep.ProcPostFrame, FPP, filter.getName(), pass.toString());
|
||||
pass.beforeRender();
|
||||
if (pass.requiresSceneAsTexture()) {
|
||||
pass.getPassMaterial().setTexture("Texture", tex);
|
||||
@ -269,7 +272,7 @@ public class FilterPostProcessor implements SceneProcessor, Savable {
|
||||
renderProcessing(r, pass.getRenderFrameBuffer(), pass.getPassMaterial());
|
||||
}
|
||||
}
|
||||
|
||||
if (prof != null) prof.spStep(SpStep.ProcPostFrame, FPP, filter.getName(), "postFrame");
|
||||
filter.postFrame(renderManager, viewPort, buff, sceneFb);
|
||||
|
||||
Material mat = filter.getMaterial();
|
||||
@ -298,7 +301,9 @@ public class FilterPostProcessor implements SceneProcessor, Savable {
|
||||
tex = filter.getRenderedTexture();
|
||||
|
||||
}
|
||||
if (prof != null) prof.spStep(SpStep.ProcPostFrame, FPP, filter.getName(), "render");
|
||||
renderProcessing(r, buff, mat);
|
||||
if (prof != null) prof.spStep(SpStep.ProcPostFrame, FPP, filter.getName(), "postFilter");
|
||||
filter.postFilter(r, buff);
|
||||
|
||||
if (wantsBilinear) {
|
||||
@ -324,7 +329,6 @@ public class FilterPostProcessor implements SceneProcessor, Savable {
|
||||
if (viewPort != null) {
|
||||
renderManager.setCamera(viewPort.getCamera(), false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void preFrame(float tpf) {
|
||||
@ -351,6 +355,7 @@ public class FilterPostProcessor implements SceneProcessor, Savable {
|
||||
|
||||
for (Filter filter : filters.getArray()) {
|
||||
if (filter.isEnabled()) {
|
||||
if (prof != null) prof.spStep(SpStep.ProcPreFrame, FPP, filter.getName());
|
||||
filter.preFrame(tpf);
|
||||
}
|
||||
}
|
||||
@ -419,6 +424,11 @@ public class FilterPostProcessor implements SceneProcessor, Savable {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setProfiler(AppProfiler profiler) {
|
||||
this.prof = profiler;
|
||||
}
|
||||
|
||||
public void reshape(ViewPort vp, int w, int h) {
|
||||
Camera cam = vp.getCamera();
|
||||
//this has no effect at first init but is useful when resizing the canvas with multi views
|
||||
|
@ -34,6 +34,7 @@ package com.jme3.post;
|
||||
import com.jme3.asset.AssetManager;
|
||||
import com.jme3.material.Material;
|
||||
import com.jme3.math.Vector2f;
|
||||
import com.jme3.profile.AppProfiler;
|
||||
import com.jme3.renderer.*;
|
||||
import com.jme3.renderer.queue.RenderQueue;
|
||||
import com.jme3.texture.FrameBuffer;
|
||||
@ -61,6 +62,7 @@ public class HDRRenderer implements SceneProcessor {
|
||||
private RenderManager renderManager;
|
||||
private ViewPort viewPort;
|
||||
private static final Logger logger = Logger.getLogger(HDRRenderer.class.getName());
|
||||
private AppProfiler prof;
|
||||
|
||||
private Camera fbCam = new Camera(1, 1);
|
||||
|
||||
@ -418,4 +420,9 @@ public class HDRRenderer implements SceneProcessor {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setProfiler(AppProfiler profiler) {
|
||||
this.prof = profiler;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -35,6 +35,7 @@ import com.jme3.asset.AssetManager;
|
||||
import com.jme3.material.Material;
|
||||
import com.jme3.material.RenderState;
|
||||
import com.jme3.material.RenderState.FaceCullMode;
|
||||
import com.jme3.profile.AppProfiler;
|
||||
import com.jme3.renderer.RenderManager;
|
||||
import com.jme3.renderer.ViewPort;
|
||||
import com.jme3.renderer.queue.RenderQueue;
|
||||
@ -51,6 +52,7 @@ public class PreDepthProcessor implements SceneProcessor {
|
||||
private AssetManager assetManager;
|
||||
private Material preDepth;
|
||||
private RenderState forcedRS;
|
||||
private AppProfiler prof;
|
||||
|
||||
public PreDepthProcessor(AssetManager assetManager){
|
||||
this.assetManager = assetManager;
|
||||
@ -96,4 +98,9 @@ public class PreDepthProcessor implements SceneProcessor {
|
||||
vp = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setProfiler(AppProfiler profiler) {
|
||||
this.prof = profiler;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -31,6 +31,7 @@
|
||||
*/
|
||||
package com.jme3.post;
|
||||
|
||||
import com.jme3.profile.AppProfiler;
|
||||
import com.jme3.renderer.RenderManager;
|
||||
import com.jme3.renderer.ViewPort;
|
||||
import com.jme3.renderer.queue.RenderQueue;
|
||||
@ -90,4 +91,11 @@ public interface SceneProcessor {
|
||||
*/
|
||||
public void cleanup();
|
||||
|
||||
/**
|
||||
* Sets a profiler Instance for this processor.
|
||||
*
|
||||
* @param profiler the profiler instance.
|
||||
*/
|
||||
public void setProfiler(AppProfiler profiler);
|
||||
|
||||
}
|
||||
|
@ -57,7 +57,12 @@ public interface AppProfiler {
|
||||
* steps the Bucket parameter will be non-null.
|
||||
*/
|
||||
public void vpStep(VpStep step, ViewPort vp, Bucket bucket);
|
||||
|
||||
|
||||
/**
|
||||
* Called at the beginning of the specified SpStep (SceneProcessor step).
|
||||
* For more detailed steps it is possible to provide additional information as strings, like the name of the processor.
|
||||
*/
|
||||
public void spStep(SpStep step, String... additionalInfo);
|
||||
}
|
||||
|
||||
|
||||
|
13
jme3-core/src/main/java/com/jme3/profile/SpStep.java
Normal file
13
jme3-core/src/main/java/com/jme3/profile/SpStep.java
Normal file
@ -0,0 +1,13 @@
|
||||
package com.jme3.profile;
|
||||
|
||||
/**
|
||||
* Indicates a scene processor-level step within the profiled
|
||||
* frame.
|
||||
* <p>
|
||||
* Created by Nehon on 25/01/2017.
|
||||
*/
|
||||
public enum SpStep {
|
||||
ProcPreFrame,
|
||||
ProcPostQueue,
|
||||
ProcPostFrame,
|
||||
}
|
@ -42,9 +42,11 @@ package com.jme3.profile;
|
||||
public enum VpStep {
|
||||
BeginRender,
|
||||
RenderScene,
|
||||
PreFrame,
|
||||
PostQueue,
|
||||
FlushQueue,
|
||||
PostFrame,
|
||||
ProcEndRender,
|
||||
RenderBucket,
|
||||
EndRender
|
||||
}
|
||||
|
@ -42,9 +42,7 @@ import com.jme3.material.Technique;
|
||||
import com.jme3.material.TechniqueDef;
|
||||
import com.jme3.math.*;
|
||||
import com.jme3.post.SceneProcessor;
|
||||
import com.jme3.profile.AppProfiler;
|
||||
import com.jme3.profile.AppStep;
|
||||
import com.jme3.profile.VpStep;
|
||||
import com.jme3.profile.*;
|
||||
import com.jme3.renderer.queue.GeometryList;
|
||||
import com.jme3.renderer.queue.RenderQueue;
|
||||
import com.jme3.renderer.queue.RenderQueue.Bucket;
|
||||
@ -1070,10 +1068,13 @@ public class RenderManager {
|
||||
}
|
||||
|
||||
if (processors != null) {
|
||||
if (prof != null) prof.vpStep(VpStep.PreFrame, vp, null);
|
||||
for (SceneProcessor proc : processors.getArray()) {
|
||||
if (!proc.isInitialized()) {
|
||||
proc.initialize(this, vp);
|
||||
}
|
||||
proc.setProfiler(this.prof);
|
||||
if (prof != null) prof.spStep(SpStep.ProcPreFrame, proc.getClass().getSimpleName());
|
||||
proc.preFrame(tpf);
|
||||
}
|
||||
}
|
||||
@ -1098,6 +1099,7 @@ public class RenderManager {
|
||||
if (processors != null) {
|
||||
if (prof!=null) prof.vpStep(VpStep.PostQueue, vp, null);
|
||||
for (SceneProcessor proc : processors.getArray()) {
|
||||
if (prof != null) prof.spStep(SpStep.ProcPostQueue, proc.getClass().getSimpleName());
|
||||
proc.postQueue(vp.getQueue());
|
||||
}
|
||||
}
|
||||
@ -1108,14 +1110,16 @@ public class RenderManager {
|
||||
if (processors != null) {
|
||||
if (prof!=null) prof.vpStep(VpStep.PostFrame, vp, null);
|
||||
for (SceneProcessor proc : processors.getArray()) {
|
||||
if (prof != null) prof.spStep(SpStep.ProcPostFrame, proc.getClass().getSimpleName());
|
||||
proc.postFrame(vp.getOutputFrameBuffer());
|
||||
}
|
||||
if (prof != null) prof.vpStep(VpStep.ProcEndRender, vp, null);
|
||||
}
|
||||
//renders the translucent objects queue after processors have been rendered
|
||||
renderTranslucentQueue(vp);
|
||||
// clear any remaining spatials that were not rendered.
|
||||
clearQueue(vp);
|
||||
|
||||
|
||||
if (prof!=null) prof.vpStep(VpStep.EndRender, vp, null);
|
||||
}
|
||||
|
||||
|
@ -44,6 +44,7 @@ import com.jme3.math.Matrix4f;
|
||||
import com.jme3.math.Vector2f;
|
||||
import com.jme3.math.Vector3f;
|
||||
import com.jme3.post.SceneProcessor;
|
||||
import com.jme3.profile.AppProfiler;
|
||||
import com.jme3.renderer.Camera;
|
||||
import com.jme3.renderer.RenderManager;
|
||||
import com.jme3.renderer.Renderer;
|
||||
@ -99,6 +100,7 @@ public abstract class AbstractShadowRenderer implements SceneProcessor, Savable,
|
||||
protected Picture[] dispPic;
|
||||
protected RenderState forcedRenderState = new RenderState();
|
||||
protected Boolean renderBackFacesShadows = true;
|
||||
protected AppProfiler prof;
|
||||
|
||||
/**
|
||||
* true if the fallback material should be used, otherwise false
|
||||
@ -807,6 +809,10 @@ public abstract class AbstractShadowRenderer implements SceneProcessor, Savable,
|
||||
init(assetManager, nbShadowMaps, (int) shadowMapSize);
|
||||
}
|
||||
|
||||
public void setProfiler(AppProfiler profiler) {
|
||||
this.prof = profiler;
|
||||
}
|
||||
|
||||
/**
|
||||
* De-serialize this instance, for example when loading from a J3O file.
|
||||
*
|
||||
|
@ -35,6 +35,7 @@ import com.jme3.asset.AssetManager;
|
||||
import com.jme3.material.Material;
|
||||
import com.jme3.math.Vector3f;
|
||||
import com.jme3.post.SceneProcessor;
|
||||
import com.jme3.profile.AppProfiler;
|
||||
import com.jme3.renderer.Camera;
|
||||
import com.jme3.renderer.RenderManager;
|
||||
import com.jme3.renderer.Renderer;
|
||||
@ -75,7 +76,8 @@ public class BasicShadowRenderer implements SceneProcessor {
|
||||
|
||||
protected GeometryList lightReceivers = new GeometryList(new OpaqueComparator());
|
||||
protected GeometryList shadowOccluders = new GeometryList(new OpaqueComparator());
|
||||
|
||||
private AppProfiler prof;
|
||||
|
||||
/**
|
||||
* Creates a BasicShadowRenderer
|
||||
* @param manager the asset manager
|
||||
@ -221,6 +223,11 @@ public class BasicShadowRenderer implements SceneProcessor {
|
||||
public void cleanup() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setProfiler(AppProfiler profiler) {
|
||||
this.prof = profiler;
|
||||
}
|
||||
|
||||
public void reshape(ViewPort vp, int w, int h) {
|
||||
dispPic.setPosition(w / 20f, h / 20f);
|
||||
dispPic.setWidth(w / 5f);
|
||||
|
@ -38,6 +38,7 @@ import com.jme3.math.Matrix4f;
|
||||
import com.jme3.math.Vector2f;
|
||||
import com.jme3.math.Vector3f;
|
||||
import com.jme3.post.SceneProcessor;
|
||||
import com.jme3.profile.AppProfiler;
|
||||
import com.jme3.renderer.Camera;
|
||||
import com.jme3.renderer.Caps;
|
||||
import com.jme3.renderer.RenderManager;
|
||||
@ -76,6 +77,8 @@ import java.util.List;
|
||||
@Deprecated
|
||||
public class PssmShadowRenderer implements SceneProcessor {
|
||||
|
||||
private AppProfiler prof;
|
||||
|
||||
/**
|
||||
* <code>FilterMode</code> specifies how shadows are filtered
|
||||
* @deprecated use {@link EdgeFilteringMode}
|
||||
@ -725,6 +728,11 @@ public class PssmShadowRenderer implements SceneProcessor {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setProfiler(AppProfiler profiler) {
|
||||
this.prof = profiler;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the length over which the shadow will fade out when using a
|
||||
* shadowZextend
|
||||
|
@ -33,6 +33,7 @@ package com.jme3.app.state;
|
||||
|
||||
import com.jme3.app.Application;
|
||||
import com.jme3.post.SceneProcessor;
|
||||
import com.jme3.profile.AppProfiler;
|
||||
import com.jme3.renderer.Camera;
|
||||
import com.jme3.renderer.RenderManager;
|
||||
import com.jme3.renderer.Renderer;
|
||||
@ -220,6 +221,7 @@ public class VideoRecorderAppState extends AbstractAppState {
|
||||
private LinkedBlockingQueue<WorkItem> freeItems;
|
||||
private LinkedBlockingQueue<WorkItem> usedItems = new LinkedBlockingQueue<WorkItem>();
|
||||
private MjpegFileWriter writer;
|
||||
private AppProfiler prof;
|
||||
|
||||
public void addImage(Renderer renderer, FrameBuffer out) {
|
||||
if (freeItems == null) {
|
||||
@ -298,6 +300,11 @@ public class VideoRecorderAppState extends AbstractAppState {
|
||||
}
|
||||
writer = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setProfiler(AppProfiler profiler) {
|
||||
this.prof = profiler;
|
||||
}
|
||||
}
|
||||
|
||||
public static final class IsoTimer extends com.jme3.system.Timer {
|
||||
|
@ -32,6 +32,7 @@
|
||||
package com.jme3.system.awt;
|
||||
|
||||
import com.jme3.post.SceneProcessor;
|
||||
import com.jme3.profile.AppProfiler;
|
||||
import com.jme3.renderer.RenderManager;
|
||||
import com.jme3.renderer.ViewPort;
|
||||
import com.jme3.renderer.queue.RenderQueue;
|
||||
@ -79,6 +80,7 @@ public class AwtPanel extends Canvas implements SceneProcessor {
|
||||
private int newHeight = 1;
|
||||
private AtomicBoolean reshapeNeeded = new AtomicBoolean(false);
|
||||
private final Object lock = new Object();
|
||||
private AppProfiler prof;
|
||||
|
||||
public AwtPanel(PaintMode paintMode) {
|
||||
this(paintMode, false);
|
||||
@ -333,4 +335,9 @@ public class AwtPanel extends Canvas implements SceneProcessor {
|
||||
@Override
|
||||
public void cleanup() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setProfiler(AppProfiler profiler) {
|
||||
this.prof = profiler;
|
||||
}
|
||||
}
|
||||
|
@ -156,7 +156,7 @@ public class SSAOFilter extends Filter {
|
||||
random.setWrap(Texture.WrapMode.Repeat);
|
||||
ssaoMat.setTexture("RandomMap", random);
|
||||
|
||||
ssaoPass = new Pass() {
|
||||
ssaoPass = new Pass("SSAO pass") {
|
||||
|
||||
@Override
|
||||
public boolean requiresDepthAsTexture() {
|
||||
|
@ -33,6 +33,7 @@ package com.jme3.water;
|
||||
|
||||
import com.jme3.math.Plane;
|
||||
import com.jme3.post.SceneProcessor;
|
||||
import com.jme3.profile.AppProfiler;
|
||||
import com.jme3.renderer.Camera;
|
||||
import com.jme3.renderer.RenderManager;
|
||||
import com.jme3.renderer.ViewPort;
|
||||
@ -50,6 +51,7 @@ public class ReflectionProcessor implements SceneProcessor {
|
||||
private Camera reflectionCam;
|
||||
private FrameBuffer reflectionBuffer;
|
||||
private Plane reflectionClipPlane;
|
||||
private AppProfiler prof;
|
||||
|
||||
/**
|
||||
* Creates a ReflectionProcessor
|
||||
@ -100,6 +102,11 @@ public class ReflectionProcessor implements SceneProcessor {
|
||||
public void cleanup() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setProfiler(AppProfiler profiler) {
|
||||
this.prof = profiler;
|
||||
}
|
||||
|
||||
/**
|
||||
* Internal use only<br>
|
||||
* returns the frame buffer
|
||||
|
@ -35,21 +35,16 @@ import com.jme3.asset.AssetManager;
|
||||
import com.jme3.material.Material;
|
||||
import com.jme3.math.*;
|
||||
import com.jme3.post.SceneProcessor;
|
||||
import com.jme3.renderer.Camera;
|
||||
import com.jme3.renderer.RenderManager;
|
||||
import com.jme3.renderer.Renderer;
|
||||
import com.jme3.renderer.ViewPort;
|
||||
import com.jme3.profile.AppProfiler;
|
||||
import com.jme3.renderer.*;
|
||||
import com.jme3.renderer.queue.RenderQueue;
|
||||
import com.jme3.scene.Geometry;
|
||||
import com.jme3.scene.Spatial;
|
||||
import com.jme3.scene.shape.Quad;
|
||||
import com.jme3.texture.FrameBuffer;
|
||||
import com.jme3.texture.*;
|
||||
import com.jme3.texture.Image.Format;
|
||||
import com.jme3.texture.Texture;
|
||||
import com.jme3.texture.Texture.WrapMode;
|
||||
import com.jme3.texture.Texture2D;
|
||||
import com.jme3.ui.Picture;
|
||||
import com.jme3.util.TempVars;
|
||||
|
||||
/**
|
||||
*
|
||||
@ -125,8 +120,9 @@ public class SimpleWaterProcessor implements SceneProcessor {
|
||||
private float distortionScale = 0.2f;
|
||||
private float distortionMix = 0.5f;
|
||||
private float texScale = 1f;
|
||||
|
||||
|
||||
private AppProfiler prof;
|
||||
|
||||
|
||||
/**
|
||||
* Creates a SimpleWaterProcessor
|
||||
* @param manager the asset manager
|
||||
@ -222,6 +218,11 @@ public class SimpleWaterProcessor implements SceneProcessor {
|
||||
public void cleanup() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setProfiler(AppProfiler profiler) {
|
||||
this.prof = profiler;
|
||||
}
|
||||
|
||||
//debug only : displays maps
|
||||
protected void displayMap(Renderer r, Picture pic, int left) {
|
||||
Camera cam = vp.getCamera();
|
||||
@ -585,6 +586,7 @@ public class SimpleWaterProcessor implements SceneProcessor {
|
||||
|
||||
RenderManager rm;
|
||||
ViewPort vp;
|
||||
private AppProfiler prof;
|
||||
|
||||
public void initialize(RenderManager rm, ViewPort vp) {
|
||||
this.rm = rm;
|
||||
@ -611,5 +613,10 @@ public class SimpleWaterProcessor implements SceneProcessor {
|
||||
|
||||
public void cleanup() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setProfiler(AppProfiler profiler) {
|
||||
this.prof = profiler;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -42,6 +42,7 @@ import com.jme3.audio.AudioRenderer;
|
||||
import com.jme3.input.InputManager;
|
||||
import com.jme3.input.event.KeyInputEvent;
|
||||
import com.jme3.post.SceneProcessor;
|
||||
import com.jme3.profile.AppProfiler;
|
||||
import com.jme3.renderer.RenderManager;
|
||||
import com.jme3.renderer.Renderer;
|
||||
import com.jme3.renderer.ViewPort;
|
||||
@ -71,6 +72,7 @@ public class NiftyJmeDisplay implements SceneProcessor {
|
||||
protected ResourceLocationJme resourceLocation;
|
||||
|
||||
protected int w, h;
|
||||
private AppProfiler prof;
|
||||
|
||||
protected class ResourceLocationJme implements ResourceLocation {
|
||||
|
||||
@ -359,4 +361,9 @@ public class NiftyJmeDisplay implements SceneProcessor {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setProfiler(AppProfiler profiler) {
|
||||
this.prof = profiler;
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user