现在我有我的ApplicationActivity
,这个活动负责管理多个视图(GLSurfaceViews
)。我可以/应该让所有视图将渲染器设置为“全局”渲染器吗?
代码:
public class ApplicationActivity extends Activity
{
private static final String TAG = ApplicationActivity.class.getSimpleName();
private final Stack<Screen> screens = new Stack<Screen>();
private GlRenderer glRenderer;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Log.d(TAG, "Main Activity Created");
setupGraphics();
ChangeScreen(new MainMenu(this, glRenderer)); //Creating a new Screen sets the renderer
}
private void setupGraphics()
{
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
glRenderer = new GlRenderer(this);
}
public void Draw() //Is called by the glRenderer onDrawFrame() { mainActivity.Draw() }
{
}
}
它之间的相同活动切换GLSurfaceViews
,据我所知,我相信该方法setRenderer
设置视图渲染器,然后启动渲染线程(创建一个新线程),但我不想每次在视图之间切换时重新创建线程 - 可能会创建潜在问题。
所以最后我想要一个 Renderer 类只是为了将图形与业务逻辑等分开,但是,我不知道是否可以使用一个 Renderer,而无需再次设置线程?