Home | History | Annotate | Download | only in animator
      1 /* libs/graphics/animator/SkDrawTo.cpp
      2 **
      3 ** Copyright 2006, The Android Open Source Project
      4 **
      5 ** Licensed under the Apache License, Version 2.0 (the "License");
      6 ** you may not use this file except in compliance with the License.
      7 ** You may obtain a copy of the License at
      8 **
      9 **     http://www.apache.org/licenses/LICENSE-2.0
     10 **
     11 ** Unless required by applicable law or agreed to in writing, software
     12 ** distributed under the License is distributed on an "AS IS" BASIS,
     13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14 ** See the License for the specific language governing permissions and
     15 ** limitations under the License.
     16 */
     17 
     18 #include "SkDrawTo.h"
     19 #include "SkAnimateMaker.h"
     20 #include "SkCanvas.h"
     21 #include "SkDrawBitmap.h"
     22 
     23 #if SK_USE_CONDENSED_INFO == 0
     24 
     25 const SkMemberInfo SkDrawTo::fInfo[] = {
     26     SK_MEMBER(drawOnce, Boolean),
     27     SK_MEMBER(use, Bitmap)
     28 };
     29 
     30 #endif
     31 
     32 DEFINE_GET_MEMBER(SkDrawTo);
     33 
     34 SkDrawTo::SkDrawTo() : drawOnce(false), use(NULL), fDrawnOnce(false) {
     35 }
     36 
     37 #if 0
     38 SkDrawTo::~SkDrawTo() {
     39     SkASSERT(0);
     40 }
     41 #endif
     42 
     43 bool SkDrawTo::draw(SkAnimateMaker& maker) {
     44     if (fDrawnOnce)
     45         return false;
     46     SkCanvas canvas(use->fBitmap);
     47     SkCanvas* save = maker.fCanvas;
     48     maker.fCanvas = &canvas;
     49     INHERITED::draw(maker);
     50     maker.fCanvas = save;
     51     fDrawnOnce = drawOnce;
     52     return false;
     53 }
     54 
     55 #ifdef SK_DUMP_ENABLED
     56 void SkDrawTo::dump(SkAnimateMaker* maker) {
     57     dumpBase(maker);
     58     dumpAttrs(maker);
     59     if (use)
     60         SkDebugf("use=\"%s\" ", use->id);
     61     dumpDrawables(maker);
     62 }
     63 #endif
     64 
     65