package org.andengine.opengl.view; import org.andengine.engine.Engine; import android.content.Context; import android.opengl.GLSurfaceView; import android.util.AttributeSet; /** * (c) 2010 Nicolas Gramlich * (c) 2011 Zynga Inc. * * @author Nicolas Gramlich * @since 11:57:29 - 08.03.2010 */ public class RenderSurfaceView extends GLSurfaceView { // =========================================================== // Constants // =========================================================== // =========================================================== // Fields // =========================================================== private EngineRenderer mEngineRenderer; private ConfigChooser mConfigChooser; // =========================================================== // Constructors // =========================================================== public RenderSurfaceView(final Context pContext) { super(pContext); this.setEGLContextClientVersion(2); } public RenderSurfaceView(final Context pContext, final AttributeSet pAttrs) { super(pContext, pAttrs); this.setEGLContextClientVersion(2); } // =========================================================== // Getter & Setter // =========================================================== public ConfigChooser getConfigChooser() throws IllegalStateException { if(this.mConfigChooser == null) { throw new IllegalStateException(ConfigChooser.class.getSimpleName() + " not yet set."); } return this.mConfigChooser; } // =========================================================== // Methods for/from SuperClass/Interfaces // =========================================================== /** * @see android.view.View#measure(int, int) */ @Override protected void onMeasure(final int pWidthMeasureSpec, final int pHeightMeasureSpec) { if(this.isInEditMode()) { super.onMeasure(pWidthMeasureSpec, pHeightMeasureSpec); return; } this.mEngineRenderer.mEngine.getEngineOptions().getResolutionPolicy().onMeasure(this, pWidthMeasureSpec, pHeightMeasureSpec); } // =========================================================== // Methods // =========================================================== public void setMeasuredDimensionProxy(final int pMeasuredWidth, final int pMeasuredHeight) { this.setMeasuredDimension(pMeasuredWidth, pMeasuredHeight); } public void setRenderer(final Engine pEngine, final IRendererListener pRendererListener) { if(this.mConfigChooser == null) { final boolean multiSampling = pEngine.getEngineOptions().getRenderOptions().isMultiSampling(); this.mConfigChooser = new ConfigChooser(multiSampling); } this.setEGLConfigChooser(this.mConfigChooser); this.setOnTouchListener(pEngine); this.mEngineRenderer = new EngineRenderer(pEngine, this.mConfigChooser, pRendererListener); this.setRenderer(this.mEngineRenderer); } // =========================================================== // Inner and Anonymous Classes // =========================================================== }