diff options
4 files changed, 44 insertions, 3 deletions
diff --git a/ardor3d-core/src/main/java/com/ardor3d/renderer/RenderContext.java b/ardor3d-core/src/main/java/com/ardor3d/renderer/RenderContext.java index 83f3392..ef522a3 100644 --- a/ardor3d-core/src/main/java/com/ardor3d/renderer/RenderContext.java +++ b/ardor3d-core/src/main/java/com/ardor3d/renderer/RenderContext.java @@ -41,7 +41,7 @@ public class RenderContext { RenderState.StateType.class); protected final LineRecord _lineRecord = new LineRecord(); - protected final RendererRecord _rendererRecord = new RendererRecord(); + protected final RendererRecord _rendererRecord = createRendererRecord(); /** Basically this object represents the sharable portion of a GL context... Textures, displayLists, etc. */ protected final Object _glContextRep; @@ -64,6 +64,11 @@ public class RenderContext { _glContextRep = (shared == null) ? new Object() : shared._glContextRep; } + protected RendererRecord createRendererRecord() { + final RendererRecord rendererRecord = new RendererRecord(); + return rendererRecord; + } + protected void setupRecords() { for (final RenderState.StateType type : RenderState.StateType.values()) { _stateRecords.put(type, RenderState.createState(type).createStateRecord()); diff --git a/ardor3d-jogl/src/main/java/com/ardor3d/framework/jogl/JoglCanvasRenderer.java b/ardor3d-jogl/src/main/java/com/ardor3d/framework/jogl/JoglCanvasRenderer.java index 9c3b304..843970c 100644 --- a/ardor3d-jogl/src/main/java/com/ardor3d/framework/jogl/JoglCanvasRenderer.java +++ b/ardor3d-jogl/src/main/java/com/ardor3d/framework/jogl/JoglCanvasRenderer.java @@ -38,6 +38,7 @@ import com.ardor3d.renderer.ContextManager; import com.ardor3d.renderer.RenderContext; import com.ardor3d.renderer.Renderer; import com.ardor3d.renderer.jogl.JoglContextCapabilities; +import com.ardor3d.renderer.jogl.JoglRenderContext; import com.ardor3d.renderer.jogl.JoglRenderer; import com.ardor3d.util.Ardor3dException; @@ -143,7 +144,7 @@ public class JoglCanvasRenderer implements CanvasRenderer { } final ContextCapabilities caps = createContextCapabilities(); - _currentContext = new RenderContext(_context, caps, sharedContext); + _currentContext = new JoglRenderContext(_context, caps, sharedContext); ContextManager.addContext(_context, _currentContext); ContextManager.switchContext(_context); diff --git a/ardor3d-jogl/src/main/java/com/ardor3d/renderer/jogl/JoglPbufferTextureRenderer.java b/ardor3d-jogl/src/main/java/com/ardor3d/renderer/jogl/JoglPbufferTextureRenderer.java index a33664a..edfe5b5 100644 --- a/ardor3d-jogl/src/main/java/com/ardor3d/renderer/jogl/JoglPbufferTextureRenderer.java +++ b/ardor3d-jogl/src/main/java/com/ardor3d/renderer/jogl/JoglPbufferTextureRenderer.java @@ -279,7 +279,7 @@ public class JoglPbufferTextureRenderer extends AbstractPbufferTextureRenderer { final JoglContextCapabilities contextCaps = new JoglContextCapabilities(_pbuffer.getGL()); ContextManager.addContext(_context, - new RenderContext(_context, contextCaps, ContextManager.getCurrentContext())); + new JoglRenderContext(_context, contextCaps, ContextManager.getCurrentContext())); } catch (final Exception e) { logger.logp(Level.SEVERE, this.getClass().toString(), "initPbuffer()", "Exception", e); diff --git a/ardor3d-jogl/src/main/java/com/ardor3d/renderer/jogl/JoglRenderContext.java b/ardor3d-jogl/src/main/java/com/ardor3d/renderer/jogl/JoglRenderContext.java new file mode 100644 index 0000000..6bf2aeb --- /dev/null +++ b/ardor3d-jogl/src/main/java/com/ardor3d/renderer/jogl/JoglRenderContext.java @@ -0,0 +1,35 @@ +/** + * Copyright (c) 2008-2010 Ardor Labs, Inc. + * + * This file is part of Ardor3D. + * + * Ardor3D is free software: you can redistribute it and/or modify it + * under the terms of its license which may be found in the accompanying + * LICENSE file or at <http://www.ardor3d.com/LICENSE>. + */ + +package com.ardor3d.renderer.jogl; + +import com.ardor3d.renderer.ContextCapabilities; +import com.ardor3d.renderer.RenderContext; +import com.ardor3d.renderer.state.record.RendererRecord; + +public class JoglRenderContext extends RenderContext { + + public JoglRenderContext(final Object key, final ContextCapabilities caps) { + this(key, caps, null); + } + + public JoglRenderContext(final Object key, final ContextCapabilities caps, final RenderContext shared) { + super(key, caps, shared); + } + + @Override + protected RendererRecord createRendererRecord() { + // TODO create a renderer record that performs glMatrixMode, glOrtho, glPushMatrix, glLoadMatrix, glPopMatrix, + // glMultMatrixf and glLoadMatrixf. Use PMVMatrix in a delegate + final RendererRecord rendererRecord = new RendererRecord(); + return rendererRecord; + } + +} |