Reputation: 847
In my old Activity based solution the setup looks like this:
glSurfaceView = new GLSurfaceView(this);
registerForContextMenu(glSurfaceView);
if (supportsEs2) {
glSurfaceView.setEGLContextClientVersion(2);
renderer = new GLRenderer(context);
glSurfaceView.setRenderer(renderer);
rendererSet = true;
}
else {
Toast.makeText(context, "This device does not support OpenGL ES 2.0.",Toast.LENGTH_LONG).show();
return;
}
setContentView(glSurfaceView);
So assuming that I want the same behavior, how can I use the renderer in a Fragment?
Here is my very basic fragment:
public class SketchBoardFragment extends Fragment{
public SketchBoardFragment(){}
public static SketchBoardFragment newInstance(){
SketchBoardFragment fragment = new SketchBoardFragment();
return fragment;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_sketch_board,container,false);
return rootView;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
((MainActivity)activity).onSectionAttached(1);
}
}
Thanks in advance.
Upvotes: 2
Views: 2463
Reputation: 847
The naive solutions seems to be working:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
/*View rootView = inflater.inflate(R.layout.fragment_sketch_board,container,false);
return rootView;*/
GLSurfaceView glSurfaceView = new GLSurfaceView(getActivity());
GLRenderer renderer = new GLRenderer();
glSurfaceView.setEGLContextClientVersion(2);
glSurfaceView.setRenderer(renderer);
return glSurfaceView;
}
Upvotes: 3