move SkMallocPixelRef into its own .cpp file, rather than embedding it
inside SkBitmap.cpp. core_files.mk updated, but if your build does not reference that, you will need to add SkMallocPixelRef.cpp to your list git-svn-id: http://skia.googlecode.com/svn/trunk@597 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
parent
ce4e53a234
commit
49099b2536
@ -377,56 +377,6 @@ SkGpuTexture* SkBitmap::getTexture() const {
|
|||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
SkMallocPixelRef::SkMallocPixelRef(void* storage, size_t size,
|
|
||||||
SkColorTable* ctable) {
|
|
||||||
SkASSERT(storage);
|
|
||||||
fStorage = storage;
|
|
||||||
fSize = size;
|
|
||||||
fCTable = ctable;
|
|
||||||
ctable->safeRef();
|
|
||||||
}
|
|
||||||
|
|
||||||
SkMallocPixelRef::~SkMallocPixelRef() {
|
|
||||||
SkSafeUnref(fCTable);
|
|
||||||
sk_free(fStorage);
|
|
||||||
}
|
|
||||||
|
|
||||||
void* SkMallocPixelRef::onLockPixels(SkColorTable** ct) {
|
|
||||||
*ct = fCTable;
|
|
||||||
return fStorage;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SkMallocPixelRef::onUnlockPixels() {
|
|
||||||
// nothing to do
|
|
||||||
}
|
|
||||||
|
|
||||||
void SkMallocPixelRef::flatten(SkFlattenableWriteBuffer& buffer) const {
|
|
||||||
this->INHERITED::flatten(buffer);
|
|
||||||
|
|
||||||
buffer.write32(fSize);
|
|
||||||
buffer.writePad(fStorage, fSize);
|
|
||||||
if (fCTable) {
|
|
||||||
buffer.writeBool(true);
|
|
||||||
fCTable->flatten(buffer);
|
|
||||||
} else {
|
|
||||||
buffer.writeBool(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SkMallocPixelRef::SkMallocPixelRef(SkFlattenableReadBuffer& buffer) : INHERITED(buffer, NULL) {
|
|
||||||
fSize = buffer.readU32();
|
|
||||||
fStorage = sk_malloc_throw(fSize);
|
|
||||||
buffer.read(fStorage, fSize);
|
|
||||||
if (buffer.readBool()) {
|
|
||||||
fCTable = SkNEW_ARGS(SkColorTable, (buffer));
|
|
||||||
} else {
|
|
||||||
fCTable = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static SkPixelRef::Registrar reg("SkMallocPixelRef",
|
|
||||||
SkMallocPixelRef::Create);
|
|
||||||
|
|
||||||
/** We explicitly use the same allocator for our pixels that SkMask does,
|
/** We explicitly use the same allocator for our pixels that SkMask does,
|
||||||
so that we can freely assign memory allocated by one class to the other.
|
so that we can freely assign memory allocated by one class to the other.
|
||||||
*/
|
*/
|
||||||
|
56
src/core/SkMallocPixelRef.cpp
Normal file
56
src/core/SkMallocPixelRef.cpp
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
#include "SkMallocPixelRef.h"
|
||||||
|
#include "SkBitmap.h"
|
||||||
|
#include "SkFlattenable.h"
|
||||||
|
|
||||||
|
SkMallocPixelRef::SkMallocPixelRef(void* storage, size_t size,
|
||||||
|
SkColorTable* ctable) {
|
||||||
|
if (NULL == storage) {
|
||||||
|
storage = sk_malloc_throw(size);
|
||||||
|
}
|
||||||
|
fStorage = storage;
|
||||||
|
fSize = size;
|
||||||
|
fCTable = ctable;
|
||||||
|
ctable->safeRef();
|
||||||
|
}
|
||||||
|
|
||||||
|
SkMallocPixelRef::~SkMallocPixelRef() {
|
||||||
|
SkSafeUnref(fCTable);
|
||||||
|
sk_free(fStorage);
|
||||||
|
}
|
||||||
|
|
||||||
|
void* SkMallocPixelRef::onLockPixels(SkColorTable** ct) {
|
||||||
|
*ct = fCTable;
|
||||||
|
return fStorage;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SkMallocPixelRef::onUnlockPixels() {
|
||||||
|
// nothing to do
|
||||||
|
}
|
||||||
|
|
||||||
|
void SkMallocPixelRef::flatten(SkFlattenableWriteBuffer& buffer) const {
|
||||||
|
this->INHERITED::flatten(buffer);
|
||||||
|
|
||||||
|
buffer.write32(fSize);
|
||||||
|
buffer.writePad(fStorage, fSize);
|
||||||
|
if (fCTable) {
|
||||||
|
buffer.writeBool(true);
|
||||||
|
fCTable->flatten(buffer);
|
||||||
|
} else {
|
||||||
|
buffer.writeBool(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SkMallocPixelRef::SkMallocPixelRef(SkFlattenableReadBuffer& buffer) : INHERITED(buffer, NULL) {
|
||||||
|
fSize = buffer.readU32();
|
||||||
|
fStorage = sk_malloc_throw(fSize);
|
||||||
|
buffer.read(fStorage, fSize);
|
||||||
|
if (buffer.readBool()) {
|
||||||
|
fCTable = SkNEW_ARGS(SkColorTable, (buffer));
|
||||||
|
} else {
|
||||||
|
fCTable = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static SkPixelRef::Registrar reg("SkMallocPixelRef",
|
||||||
|
SkMallocPixelRef::Create);
|
||||||
|
|
@ -47,6 +47,7 @@ SOURCE := \
|
|||||||
SkGraphics.cpp \
|
SkGraphics.cpp \
|
||||||
SkLineClipper.cpp \
|
SkLineClipper.cpp \
|
||||||
SkMMapStream.cpp \
|
SkMMapStream.cpp \
|
||||||
|
SkMallocPixelRef.cpp \
|
||||||
SkMask.cpp \
|
SkMask.cpp \
|
||||||
SkMaskFilter.cpp \
|
SkMaskFilter.cpp \
|
||||||
SkMath.cpp \
|
SkMath.cpp \
|
||||||
|
@ -131,6 +131,7 @@
|
|||||||
00F043FC10B445F50049C54C /* SkEdgeBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00F043F910B445F50049C54C /* SkEdgeBuilder.cpp */; };
|
00F043FC10B445F50049C54C /* SkEdgeBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00F043F910B445F50049C54C /* SkEdgeBuilder.cpp */; };
|
||||||
00F043FD10B445F50049C54C /* SkEdgeClipper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00F043FA10B445F50049C54C /* SkEdgeClipper.cpp */; };
|
00F043FD10B445F50049C54C /* SkEdgeClipper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00F043FA10B445F50049C54C /* SkEdgeClipper.cpp */; };
|
||||||
00F043FE10B445F50049C54C /* SkLineClipper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00F043FB10B445F50049C54C /* SkLineClipper.cpp */; };
|
00F043FE10B445F50049C54C /* SkLineClipper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00F043FB10B445F50049C54C /* SkLineClipper.cpp */; };
|
||||||
|
27CE2BE912393D1D00CF4BB7 /* SkMallocPixelRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 27CE2BE812393D1D00CF4BB7 /* SkMallocPixelRef.cpp */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
@ -258,6 +259,7 @@
|
|||||||
00F043F910B445F50049C54C /* SkEdgeBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkEdgeBuilder.cpp; path = ../../src/core/SkEdgeBuilder.cpp; sourceTree = SOURCE_ROOT; };
|
00F043F910B445F50049C54C /* SkEdgeBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkEdgeBuilder.cpp; path = ../../src/core/SkEdgeBuilder.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
00F043FA10B445F50049C54C /* SkEdgeClipper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkEdgeClipper.cpp; path = ../../src/core/SkEdgeClipper.cpp; sourceTree = SOURCE_ROOT; };
|
00F043FA10B445F50049C54C /* SkEdgeClipper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkEdgeClipper.cpp; path = ../../src/core/SkEdgeClipper.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
00F043FB10B445F50049C54C /* SkLineClipper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkLineClipper.cpp; path = ../../src/core/SkLineClipper.cpp; sourceTree = SOURCE_ROOT; };
|
00F043FB10B445F50049C54C /* SkLineClipper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkLineClipper.cpp; path = ../../src/core/SkLineClipper.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
|
27CE2BE812393D1D00CF4BB7 /* SkMallocPixelRef.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkMallocPixelRef.cpp; path = ../../src/core/SkMallocPixelRef.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
D2AAC046055464E500DB518D /* libcore.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libcore.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
D2AAC046055464E500DB518D /* libcore.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libcore.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
@ -302,6 +304,7 @@
|
|||||||
08FB7795FE84155DC02AAC07 /* src */ = {
|
08FB7795FE84155DC02AAC07 /* src */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
27CE2BE812393D1D00CF4BB7 /* SkMallocPixelRef.cpp */,
|
||||||
00F043F910B445F50049C54C /* SkEdgeBuilder.cpp */,
|
00F043F910B445F50049C54C /* SkEdgeBuilder.cpp */,
|
||||||
00F043FA10B445F50049C54C /* SkEdgeClipper.cpp */,
|
00F043FA10B445F50049C54C /* SkEdgeClipper.cpp */,
|
||||||
00F043FB10B445F50049C54C /* SkLineClipper.cpp */,
|
00F043FB10B445F50049C54C /* SkLineClipper.cpp */,
|
||||||
@ -620,6 +623,7 @@
|
|||||||
00F043FC10B445F50049C54C /* SkEdgeBuilder.cpp in Sources */,
|
00F043FC10B445F50049C54C /* SkEdgeBuilder.cpp in Sources */,
|
||||||
00F043FD10B445F50049C54C /* SkEdgeClipper.cpp in Sources */,
|
00F043FD10B445F50049C54C /* SkEdgeClipper.cpp in Sources */,
|
||||||
00F043FE10B445F50049C54C /* SkLineClipper.cpp in Sources */,
|
00F043FE10B445F50049C54C /* SkLineClipper.cpp in Sources */,
|
||||||
|
27CE2BE912393D1D00CF4BB7 /* SkMallocPixelRef.cpp in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user