diff options
| author | Derek Sollenberger <djsollen@google.com> | 2014-06-12 12:31:10 -0400 |
|---|---|---|
| committer | Derek Sollenberger <djsollen@google.com> | 2014-06-17 15:31:43 -0400 |
| commit | 4b0959d8db20c08ab1fed37f397b303af229162b (patch) | |
| tree | b1d6a2a6847437d94d6dec0bb4ab321afa5b3778 /core/jni/android/graphics/AndroidPicture.cpp | |
| parent | 88b00784684d7b706c7b0c4e833b1d67d73358b9 (diff) | |
| download | frameworks_base-4b0959d8db20c08ab1fed37f397b303af229162b.zip frameworks_base-4b0959d8db20c08ab1fed37f397b303af229162b.tar.gz frameworks_base-4b0959d8db20c08ab1fed37f397b303af229162b.tar.bz2 | |
Refactor android.graphics.Picture JNI bindings.
This is the first CL in a series of CLs to refactor the Graphics JNI bindings.
bug: 15672762
Change-Id: I1455fa1330c7426407c06eeaad81ad37a57373b1
Diffstat (limited to 'core/jni/android/graphics/AndroidPicture.cpp')
| -rw-r--r-- | core/jni/android/graphics/AndroidPicture.cpp | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/core/jni/android/graphics/AndroidPicture.cpp b/core/jni/android/graphics/AndroidPicture.cpp deleted file mode 100644 index 5977ab2..0000000 --- a/core/jni/android/graphics/AndroidPicture.cpp +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (C) 2014 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "AndroidPicture.h" -#include "SkCanvas.h" -#include "SkStream.h" - -AndroidPicture::AndroidPicture(const AndroidPicture* src) { - if (NULL != src) { - mWidth = src->width(); - mHeight = src->height(); - if (NULL != src->mPicture.get()) { - mPicture.reset(SkRef(src->mPicture.get())); - } if (NULL != src->mRecorder.get()) { - mPicture.reset(src->makePartialCopy()); - } - } else { - mWidth = 0; - mHeight = 0; - } -} - -SkCanvas* AndroidPicture::beginRecording(int width, int height) { - mPicture.reset(NULL); - mRecorder.reset(new SkPictureRecorder); - mWidth = width; - mHeight = height; - return mRecorder->beginRecording(width, height, NULL, 0); -} - -void AndroidPicture::endRecording() { - if (NULL != mRecorder.get()) { - mPicture.reset(mRecorder->endRecording()); - mRecorder.reset(NULL); - } -} - -int AndroidPicture::width() const { - if (NULL != mPicture.get()) { - SkASSERT(mPicture->width() == mWidth); - SkASSERT(mPicture->height() == mHeight); - } - - return mWidth; -} - -int AndroidPicture::height() const { - if (NULL != mPicture.get()) { - SkASSERT(mPicture->width() == mWidth); - SkASSERT(mPicture->height() == mHeight); - } - - return mHeight; -} - -AndroidPicture* AndroidPicture::CreateFromStream(SkStream* stream) { - AndroidPicture* newPict = new AndroidPicture; - - newPict->mPicture.reset(SkPicture::CreateFromStream(stream)); - if (NULL != newPict->mPicture.get()) { - newPict->mWidth = newPict->mPicture->width(); - newPict->mHeight = newPict->mPicture->height(); - } - - return newPict; -} - -void AndroidPicture::serialize(SkWStream* stream) const { - if (NULL != mRecorder.get()) { - SkAutoTDelete<SkPicture> tempPict(this->makePartialCopy()); - tempPict->serialize(stream); - } else if (NULL != mPicture.get()) { - mPicture->serialize(stream); - } else { - SkPicture empty; - empty.serialize(stream); - } -} - -void AndroidPicture::draw(SkCanvas* canvas) { - if (NULL != mRecorder.get()) { - this->endRecording(); - SkASSERT(NULL != mPicture.get()); - } - if (NULL != mPicture.get()) { - // TODO: remove this const_cast once pictures are immutable - const_cast<SkPicture*>(mPicture.get())->draw(canvas); - } -} - -SkPicture* AndroidPicture::makePartialCopy() const { - SkASSERT(NULL != mRecorder.get()); - - SkPictureRecorder reRecorder; - - SkCanvas* canvas = reRecorder.beginRecording(mWidth, mHeight, NULL, 0); - mRecorder->partialReplay(canvas); - return reRecorder.endRecording(); -} |
