content: package com.gamatechno.vrlib.texture;
  
  import com.gamatechno.vrlib.MD360Program;
  
  /**
   * Created by hzqiujiadi on 16/1/25.
   * hzqiujiadi ashqalcn@gmail.com
   *
   * copied from surfaceTexture
   * Created by nitro888 on 15. 4. 5..
   * https://github.com/Nitro888/NitroAction360
   */
  public abstract class MD360Texture {
      private static final int TEXTURE_EMPTY = 0;
      private static final String TAG = "MD360Texture";
      private int mTextureId = TEXTURE_EMPTY;
  
      public MD360Texture() {
      }
  
      // may called from multi thread
      public void create() {
          int glTexture = createTextureId();
  
          if (glTexture != TEXTURE_EMPTY){
              mTextureId = glTexture;
          }
      }
  
      abstract public boolean isReady();
  
      abstract public void destroy();
  
      abstract public void release();
  
      public int getCurrentTextureId(){
          return mTextureId;
      }
  
      final protected boolean isEmpty(int textureId){
          return textureId == TEXTURE_EMPTY;
      }
  
      abstract protected int createTextureId();
  
      abstract public boolean texture(MD360Program program);
  
      public abstract void notifyChanged();
  }
  