anchor.diff:    void updateShadowMap(Scene scene, Camera camera) => _obj.callMethod("updateShadowMap", [ scene._obj, camera._obj ]);
     
     // TODO: renderBufferImmediate
  -  // TODO: renderBufferDirect
  -  // TODO: renderBuffer
  +  
  +  void renderBufferDirect(Camera camera, List<Light> lights, AbstractFog fog, Material material, BufferGeometry geometryGroup, Object3D object)
  +  {
  +    JsObject cameraJS = camera._obj;
  +    JsObject fogJS = fog._obj;
  +    JsObject materialJS = material._obj;
  +    JsObject geometryGroupJS = geometryGroup._obj;
  +    JsObject objectJS = object._obj;
  +    
  +    List<JsObject> lightsJS = [];
  +    
  +    for(int i = 0, l = lights.length; i < l; i++)
  +      lightsJS.add(lights[i]._obj);
  +    
  +    _obj.callMethod("renderBufferDirect", [ cameraJS, new JsObject.jsify(lightsJS), fogJS, materialJS, geometryGroupJS, objectJS ]);
  +  }
  +  
  +  void renderBuffer(Camera camera, List<Light> lights, AbstractFog fog, Material material, Geometry geometryGroup, Object3D object)
  +  {
  +    JsObject cameraJS = camera._obj;
  +    JsObject fogJS = fog._obj;
  +    JsObject materialJS = material._obj;
  +    JsObject geometryGroupJS = geometryGroup._obj;
  +    JsObject objectJS = object._obj;
  +    
  +    List<JsObject> lightsJS = [];
  +    
  +    for(int i = 0, l = lights.length; i < l; i++)
  +      lightsJS.add(lights[i]._obj);
  +    
  +    _obj.callMethod("renderBuffer", [ cameraJS, new JsObject.jsify(lightsJS), fogJS, materialJS, geometryGroupJS, objectJS ]);
  +  }
     
     void render(Scene scene, Camera camera, [WebGLRenderTarget renderTarget, bool forceClear])
     {
  
positive.code:       _obj.callMethod("render", [ scene._obj, camera._obj, renderTarget._obj, forceClear ]);
    }
    
    // TODO: renderImmediateObject
    
    void initWebGLObjects(Scene scene) => _obj.callMethod("initWebGLObjects", [ scene._obj ]);
    
    // TODO: initMaterial
    
    void setFaceCulling(String cullFace, String frontFace) => _obj.callMethod("setFaceCulling", [ cullFace, frontFace ]);
    
  
negative.code:   
    void setBlending(int blending, int blendEquation, int blendSrc, int blendDst) => _obj.callMethod("setBlending", [ blending, blendEquation, blendSrc, blendDst ]);
    
    void setTexture(Texture texture, int slot) => _obj.callMethod("setTexture", [ texture._obj, slot ]);
    
    void setRenderTarget(WebGLRenderTarget renderTarget) => _obj.callMethod("setRenderTarget", [ renderTarget._obj ]);
    
  