private IDrawTask createTask(
      boolean useDrwaingCache,
      DanmakuTimer timer,
      Context context,
      int width,
      int height,
      IDrawTask.TaskListener taskListener) {
    mDisp = new AndroidDisplayer();
    mDisp.setSize(width, height);
    DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
    mDisp.setDensities(
        displayMetrics.density, displayMetrics.densityDpi, displayMetrics.scaledDensity);
    mDisp.resetSlopPixel(DanmakuGlobalConfig.DEFAULT.scaleTextSize);

    IDrawTask task =
        useDrwaingCache
            ? new CacheManagingDrawTask(
                timer,
                context,
                mDisp,
                taskListener,
                1024 * 1024 * AndroidUtils.getMemoryClass(context) / 3)
            : new DrawTask(timer, context, mDisp, taskListener);
    task.setParser(mParser);
    task.prepare();
    return task;
  }
 private IDrawTask createDrawTask(
     boolean useDrwaingCache,
     DanmakuTimer timer,
     Context context,
     int width,
     int height,
     boolean isHardwareAccelerated,
     IDrawTask.TaskListener taskListener) {
   mDisp = mContext.getDisplayer();
   mDisp.setSize(width, height);
   DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
   mDisp.setDensities(
       displayMetrics.density, displayMetrics.densityDpi, displayMetrics.scaledDensity);
   mDisp.resetSlopPixel(mContext.scaleTextSize);
   mDisp.setHardwareAccelerated(isHardwareAccelerated);
   IDrawTask task =
       useDrwaingCache
           ? new CacheManagingDrawTask(
               timer,
               mContext,
               taskListener,
               1024 * 1024 * AndroidUtils.getMemoryClass(context) / 3)
           : new DrawTask(timer, mContext, taskListener);
   task.setParser(mParser);
   task.prepare();
   obtainMessage(NOTIFY_DISP_SIZE_CHANGED, false).sendToTarget();
   return task;
 }