aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2016-08-05 14:50:19 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-08-05 14:50:19 -0700
commit4c1abdcd21d65bb34a6b4aea969ef4485e117e67 (patch)
tree5c40789cd3815eea5a29769750ec03c6d17d75cf /src/core
parent462d0148a5c9433a1f9c26d947a07ca7f70cf09d (diff)
use tmp allocator for images in temp shaders
Diffstat (limited to 'src/core')
-rw-r--r--src/core/SkBitmapProcShader.h17
-rw-r--r--src/core/SkImagePriv.h29
2 files changed, 23 insertions, 23 deletions
diff --git a/src/core/SkBitmapProcShader.h b/src/core/SkBitmapProcShader.h
index edb9864270..4b7447e52e 100644
--- a/src/core/SkBitmapProcShader.h
+++ b/src/core/SkBitmapProcShader.h
@@ -9,9 +9,7 @@
#include "SkImagePriv.h"
#include "SkShader.h"
-#include "SkSmallAllocator.h"
-struct SkBitmapProcState;
class SkBitmapProvider;
class SkBitmapProcLegacyShader : public SkShader {
@@ -25,19 +23,4 @@ private:
typedef SkShader INHERITED;
};
-enum {kSkBlitterContextSize = 3332};
-
-// Commonly used allocator. It currently is only used to allocate up to 3 objects. The total
-// bytes requested is calculated using one of our large shaders, its context size plus the size of
-// an Sk3DBlitter in SkDraw.cpp
-// Note that some contexts may contain other contexts (e.g. for compose shaders), but we've not
-// yet found a situation where the size below isn't big enough.
-typedef SkSmallAllocator<3, kSkBlitterContextSize> SkTBlitterAllocator;
-
-// If alloc is non-nullptr, it will be used to allocate the returned SkShader, and MUST outlive
-// the SkShader.
-sk_sp<SkShader> SkMakeBitmapShader(const SkBitmap& src, SkShader::TileMode, SkShader::TileMode,
- const SkMatrix* localMatrix, SkCopyPixelsMode,
- SkTBlitterAllocator* alloc);
-
#endif
diff --git a/src/core/SkImagePriv.h b/src/core/SkImagePriv.h
index ed40996acd..3077f34367 100644
--- a/src/core/SkImagePriv.h
+++ b/src/core/SkImagePriv.h
@@ -9,19 +9,35 @@
#define SkImagePriv_DEFINED
#include "SkImage.h"
+#include "SkSmallAllocator.h"
#include "SkSurface.h"
-// Call this if you explicitly want to use/share this pixelRef in the image
-extern sk_sp<SkImage> SkMakeImageFromPixelRef(const SkImageInfo&, SkPixelRef*,
- const SkIPoint& pixelRefOrigin,
- size_t rowBytes);
-
enum SkCopyPixelsMode {
kIfMutable_SkCopyPixelsMode, //!< only copy src pixels if they are marked mutable
kAlways_SkCopyPixelsMode, //!< always copy src pixels (even if they are marked immutable)
kNever_SkCopyPixelsMode, //!< never copy src pixels (even if they are marked mutable)
};
+enum {kSkBlitterContextSize = 3332};
+
+// Commonly used allocator. It currently is only used to allocate up to 3 objects. The total
+// bytes requested is calculated using one of our large shaders, its context size plus the size of
+// an Sk3DBlitter in SkDraw.cpp
+// Note that some contexts may contain other contexts (e.g. for compose shaders), but we've not
+// yet found a situation where the size below isn't big enough.
+typedef SkSmallAllocator<3, kSkBlitterContextSize> SkTBlitterAllocator;
+
+// If alloc is non-nullptr, it will be used to allocate the returned SkShader, and MUST outlive
+// the SkShader.
+sk_sp<SkShader> SkMakeBitmapShader(const SkBitmap& src, SkShader::TileMode, SkShader::TileMode,
+ const SkMatrix* localMatrix, SkCopyPixelsMode,
+ SkTBlitterAllocator* alloc);
+
+// Call this if you explicitly want to use/share this pixelRef in the image
+extern sk_sp<SkImage> SkMakeImageFromPixelRef(const SkImageInfo&, SkPixelRef*,
+ const SkIPoint& pixelRefOrigin,
+ size_t rowBytes);
+
/**
* Examines the bitmap to decide if it can share the existing pixelRef, or
* if it needs to make a deep-copy of the pixels.
@@ -40,7 +56,8 @@ enum SkCopyPixelsMode {
* SkImageInfo, or the bitmap's pixels cannot be accessed, this will return
* nullptr.
*/
-extern sk_sp<SkImage> SkMakeImageFromRasterBitmap(const SkBitmap&, SkCopyPixelsMode);
+extern sk_sp<SkImage> SkMakeImageFromRasterBitmap(const SkBitmap&, SkCopyPixelsMode,
+ SkTBlitterAllocator* = nullptr);
// Given an image created from SkNewImageFromBitmap, return its pixelref. This
// may be called to see if the surface and the image share the same pixelref,