Good catch, I didn't notice that call to method 'usesRenderer' in your code snippet. For hardware-accelerated rendering, try this instead:
buffer = new FrameBuffer( width, height, FrameBuffer.SAMPLINGMODE_HARDWARE_ONLY );
buffer.disableRenderer( IRenderer.RENDERER_SOFTWARE );
myCanvas = buffer.enableGLCanvasRenderer();
add( myCanvas, BorderLayout.CENTER);
myCanvas.setVisible( true );
Then switching between software and hardware rendering modes can be done like this:
For software rendering:
buffer.disableRenderer( IRenderer.RENDERER_OPENGL );
buffer.enableRenderer(IRenderer.RENDERER_SOFTWARE );
this.remove( myCanvas );
this.validate();
For hardware-accelerated rendering:
buffer.disableRenderer( IRenderer.RENDERER_SOFTWARE );
myCanvas = buffer.enableGLCanvasRenderer();
this.add( myCanvas, BorderLayout.CENTER);
this.validate();
myCanvas.setVisible( true );
myCanvas.validate();