message: Fix initial width and height of single canvas painter, add virtual layer concept
diff: root.appendChild(domRoot);
  }
  else {
  + if (opts.width != null) {
  + root.width = opts.width;
  + }
  + if (opts.height != null) {
  + root.height = opts.height;
  + }
  // Use canvas width and height directly
  var width = root.width;
  var height = root.height;
  }
  zlevelList.splice(i + 1, 0, zlevel);
  + layersMap[zlevel] = layer;
  +
  + // Vitual layer will not directly show on the screen.
  + // (It can be a WebGL layer and assigned to a ZImage element)
  + // But it still under management of zrender.
  + if (!layer.virtual) {
  if (prevLayer) {
  var prevDom = prevLayer.dom;
  if (prevDom.nextSibling) {
  domRoot.appendChild(layer.dom);
  }
  }
  -
  - layersMap[zlevel] = layer;
  + }
  },
  // Iterate each layer
  