Esempio n. 1
1
    @Override
    public void releaseSharedResource(SharedResourceRunner.Resource shared) {
      SharedResource sr = (SharedResource) shared;
      if (DEBUG) {
        System.err.println("Shutdown Shared:");
        System.err.println("Device  : " + sr.device);
        System.err.println("Screen  : " + sr.screen);
        System.err.println("Drawable: " + sr.drawable);
        System.err.println("CTX     : " + sr.context);
        Thread.dumpStack();
      }

      if (null != sr.context) {
        // may cause JVM SIGSEGV, or freeze (ATI fglrx 3-6-beta2 32on64 shared ctx):
        sr.context.destroy(); // will also pull the dummy MutableSurface
        sr.context = null;
      }

      if (null != sr.drawable) {
        // may cause JVM SIGSEGV:
        sr.drawable.setRealized(false);
        sr.drawable = null;
      }

      if (null != sr.screen) {
        sr.screen = null;
      }

      if (null != sr.device) {
        // may cause JVM SIGSEGV:
        sr.device.close();
        sr.device = null;
      }
    }