Revert "resources: remove most uses of GetResourcePath()"
This reverts commit 5093a539de
.
Reason for revert: google3 seems broken
Original change's description:
> resources: remove most uses of GetResourcePath()
>
> Going forward, we will standardize on GetResourceAsData(), which will
> make it easier to run tests in environments without access to the
> filesystem.
>
> Also: GetResourceAsData() complains when a resource is missing.
> This is usually an error.
>
> Change-Id: Iaf70b71b0ca5ed8cd1a5538a60ef185ae8736188
> Reviewed-on: https://skia-review.googlesource.com/82642
> Reviewed-by: Hal Canary <halcanary@google.com>
> Commit-Queue: Hal Canary <halcanary@google.com>
TBR=halcanary@google.com,scroggo@google.com
Change-Id: Ic5a7c0167c995a672e6b06dc92abe00564432214
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/83001
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
This commit is contained in:
parent
27372888a5
commit
cca2300559
@ -74,7 +74,8 @@ void ColorCodecBench::onDelayedSetup() {
|
||||
matrix.set3x3(0.30f, 0.31f, 0.28f, 0.32f, 0.33f, 0.29f, 0.27f, 0.30f, 0.30f);
|
||||
fDstSpace = SkColorSpace::MakeRGB(gamma, matrix);
|
||||
} else {
|
||||
sk_sp<SkData> dstData = GetResourceAsData("icc_profiles/HP_ZR30w.icc");
|
||||
sk_sp<SkData> dstData = SkData::MakeFromFileName(
|
||||
GetResourcePath("icc_profiles/HP_ZR30w.icc").c_str());
|
||||
SkASSERT(dstData);
|
||||
fDstSpace = SkColorSpace::MakeICC(dstData->data(), dstData->size());
|
||||
}
|
||||
|
@ -1357,8 +1357,12 @@ int main(int argc, char** argv) {
|
||||
SkTaskGroup::Enabler enabled(FLAGS_threads);
|
||||
gCreateTypefaceDelegate = &create_from_name;
|
||||
|
||||
if (nullptr == GetResourceAsData("images/color_wheel.png")) {
|
||||
info("Some resources are missing. Do you need to set --resourcePath?\n");
|
||||
{
|
||||
SkString testResourcePath = GetResourcePath("images/color_wheel.png");
|
||||
SkFILEStream testResource(testResourcePath.c_str());
|
||||
if (!testResource.isValid()) {
|
||||
info("Some resources are missing. Do you need to set --resourcePath?\n");
|
||||
}
|
||||
}
|
||||
gather_gold();
|
||||
gather_uninteresting_hashes();
|
||||
|
@ -1066,7 +1066,8 @@ Error ColorCodecSrc::draw(SkCanvas* canvas) const {
|
||||
}
|
||||
|
||||
// Load the dst ICC profile. This particular dst is fairly similar to Adobe RGB.
|
||||
sk_sp<SkData> dstData = GetResourceAsData("icc_profiles/HP_ZR30w.icc");
|
||||
sk_sp<SkData> dstData = SkData::MakeFromFileName(
|
||||
GetResourcePath("icc_profiles/HP_ZR30w.icc").c_str());
|
||||
if (!dstData) {
|
||||
return "Cannot read monitor profile. Is the resource path set correctly?";
|
||||
}
|
||||
|
@ -13,7 +13,8 @@
|
||||
#include "SkImagePriv.h"
|
||||
|
||||
sk_sp<SkImage> make_raster_image(const char* path, SkTransferFunctionBehavior behavior) {
|
||||
sk_sp<SkData> resourceData = GetResourceAsData(path);
|
||||
SkString resourcePath = GetResourcePath(path);
|
||||
sk_sp<SkData> resourceData = SkData::MakeFromFileName(resourcePath.c_str());
|
||||
std::unique_ptr<SkCodec> codec = SkCodec::MakeFromData(resourceData);
|
||||
|
||||
SkBitmap bitmap;
|
||||
|
@ -37,13 +37,12 @@ protected:
|
||||
};
|
||||
|
||||
void onOnceBeforeDraw() override {
|
||||
constexpr char path[] = "Cowboy.svg";
|
||||
auto data = GetResourceAsData(path);
|
||||
if (!data) {
|
||||
SkDebugf("file not found: \"%s\"\n", path);
|
||||
fPath = GetResourcePath("Cowboy.svg");
|
||||
SkFILEStream svgStream(fPath.c_str());
|
||||
if (!svgStream.isValid()) {
|
||||
SkDebugf("file not found: \"path\"\n", fPath.c_str());
|
||||
return;
|
||||
}
|
||||
SkMemoryStream svgStream(std::move(data));
|
||||
|
||||
SkDOM xmlDom;
|
||||
if (!xmlDom.build(svgStream)) {
|
||||
|
@ -25,10 +25,11 @@
|
||||
class IdentityScaleView : public SampleView {
|
||||
public:
|
||||
IdentityScaleView(const char imageFilename[]) {
|
||||
if (!DecodeDataToBitmap(GetResourceAsData(imageFilename), &fBM)) {
|
||||
fBM.allocN32Pixels(1, 1);
|
||||
*(fBM.getAddr32(0,0)) = 0xFF0000FF; // red == bad
|
||||
}
|
||||
SkString resourcePath = GetResourcePath(imageFilename);
|
||||
if (!decode_file(resourcePath.c_str(), &fBM)) {
|
||||
fBM.allocN32Pixels(1, 1);
|
||||
*(fBM.getAddr32(0,0)) = 0xFF0000FF; // red == bad
|
||||
}
|
||||
}
|
||||
|
||||
protected:
|
||||
|
@ -24,15 +24,15 @@ public:
|
||||
SubpixelTranslateView(const char imageFilename[],
|
||||
float horizontalVelocity,
|
||||
float verticalVelocity)
|
||||
: fHorizontalVelocity(horizontalVelocity)
|
||||
, fVerticalVelocity(verticalVelocity)
|
||||
{
|
||||
if (!DecodeDataToBitmap(GetResourceAsData(imageFilename), &fBM)) {
|
||||
fBM.allocN32Pixels(1, 1);
|
||||
*(fBM.getAddr32(0,0)) = 0xFF0000FF; // red == bad
|
||||
}
|
||||
fCurPos = SkPoint::Make(0,0);
|
||||
fSize = 200;
|
||||
: fHorizontalVelocity(horizontalVelocity),
|
||||
fVerticalVelocity(verticalVelocity) {
|
||||
SkString resourcePath = GetResourcePath(imageFilename);
|
||||
if (!decode_file(resourcePath.c_str(), &fBM)) {
|
||||
fBM.allocN32Pixels(1, 1);
|
||||
*(fBM.getAddr32(0,0)) = 0xFF0000FF; // red == bad
|
||||
}
|
||||
fCurPos = SkPoint::Make(0,0);
|
||||
fSize = 200;
|
||||
}
|
||||
|
||||
protected:
|
||||
|
@ -846,8 +846,9 @@ private:
|
||||
// Test that the RawCodec works also for not asset stream. This will test the code path using
|
||||
// SkRawBufferedStream instead of SkRawAssetStream.
|
||||
DEF_TEST(Codec_raw_notseekable, r) {
|
||||
constexpr char path[] = "images/dng_with_preview.dng";
|
||||
sk_sp<SkData> data(GetResourceAsData(path));
|
||||
const char* path = "images/dng_with_preview.dng";
|
||||
SkString fullPath(GetResourcePath(path));
|
||||
sk_sp<SkData> data(SkData::MakeFromFileName(fullPath.c_str()));
|
||||
if (!data) {
|
||||
SkDebugf("Missing resource '%s'\n", path);
|
||||
return;
|
||||
@ -864,8 +865,9 @@ DEF_TEST(Codec_raw_notseekable, r) {
|
||||
// Test that even if webp_parse_header fails to peek enough, it will fall back to read()
|
||||
// + rewind() and succeed.
|
||||
DEF_TEST(Codec_webp_peek, r) {
|
||||
constexpr char path[] = "images/baby_tux.webp";
|
||||
auto data = GetResourceAsData(path);
|
||||
const char* path = "images/baby_tux.webp";
|
||||
SkString fullPath(GetResourcePath(path));
|
||||
auto data = SkData::MakeFromFileName(fullPath.c_str());
|
||||
if (!data) {
|
||||
SkDebugf("Missing resource '%s'\n", path);
|
||||
return;
|
||||
@ -1001,7 +1003,8 @@ static void check_color_xform(skiatest::Reporter* r, const char* path) {
|
||||
|
||||
const int dstWidth = subsetWidth / opts.fSampleSize;
|
||||
const int dstHeight = subsetHeight / opts.fSampleSize;
|
||||
sk_sp<SkData> data = GetResourceAsData("icc_profiles/HP_ZR30w.icc");
|
||||
sk_sp<SkData> data = SkData::MakeFromFileName(
|
||||
GetResourcePath("icc_profiles/HP_ZR30w.icc").c_str());
|
||||
sk_sp<SkColorSpace> colorSpace = SkColorSpace::MakeICC(data->data(), data->size());
|
||||
SkImageInfo dstInfo = codec->getInfo().makeWH(dstWidth, dstHeight)
|
||||
.makeColorType(kN32_SkColorType)
|
||||
@ -1383,14 +1386,12 @@ DEF_TEST(Codec_InvalidImages, r) {
|
||||
}
|
||||
|
||||
static void test_invalid_header(skiatest::Reporter* r, const char* path) {
|
||||
auto data = GetResourceAsData(path);
|
||||
if (!data) {
|
||||
return;
|
||||
}
|
||||
std::unique_ptr<SkStreamAsset> stream(new SkMemoryStream(std::move(data)));
|
||||
SkString resourcePath = GetResourcePath(path);
|
||||
auto stream = SkFILEStream::Make(resourcePath.c_str());
|
||||
if (!stream) {
|
||||
return;
|
||||
}
|
||||
|
||||
std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream(std::move(stream)));
|
||||
REPORTER_ASSERT(r, !codec);
|
||||
}
|
||||
|
@ -245,13 +245,14 @@ DEF_TEST(ColorSpace_Serialize, r) {
|
||||
test_serialize(r, SkColorSpace_Base::MakeNamed(SkColorSpace_Base::kAdobeRGB_Named).get(), true);
|
||||
test_serialize(r, SkColorSpace::MakeSRGBLinear().get(), true);
|
||||
|
||||
sk_sp<SkData> monitorData = GetResourceAsData("icc_profiles/HP_ZR30w.icc");
|
||||
sk_sp<SkData> monitorData = SkData::MakeFromFileName(
|
||||
GetResourcePath("icc_profiles/HP_ZR30w.icc").c_str());
|
||||
test_serialize(r, SkColorSpace::MakeICC(monitorData->data(), monitorData->size()).get(), false);
|
||||
monitorData = GetResourceAsData("icc_profiles/HP_Z32x.icc");
|
||||
monitorData = SkData::MakeFromFileName( GetResourcePath("icc_profiles/HP_Z32x.icc").c_str());
|
||||
test_serialize(r, SkColorSpace::MakeICC(monitorData->data(), monitorData->size()).get(), false);
|
||||
monitorData = GetResourceAsData("icc_profiles/upperLeft.icc");
|
||||
monitorData = SkData::MakeFromFileName(GetResourcePath("icc_profiles/upperLeft.icc").c_str());
|
||||
test_serialize(r, SkColorSpace::MakeICC(monitorData->data(), monitorData->size()).get(), false);
|
||||
monitorData = GetResourceAsData("icc_profiles/upperRight.icc");
|
||||
monitorData = SkData::MakeFromFileName(GetResourcePath("icc_profiles/upperRight.icc").c_str());
|
||||
test_serialize(r, SkColorSpace::MakeICC(monitorData->data(), monitorData->size()).get(), false);
|
||||
|
||||
SkColorSpaceTransferFn fn;
|
||||
@ -269,13 +270,14 @@ DEF_TEST(ColorSpace_Serialize, r) {
|
||||
DEF_TEST(ColorSpace_Equals, r) {
|
||||
sk_sp<SkColorSpace> srgb = SkColorSpace::MakeSRGB();
|
||||
sk_sp<SkColorSpace> adobe = SkColorSpace_Base::MakeNamed(SkColorSpace_Base::kAdobeRGB_Named);
|
||||
sk_sp<SkData> data = GetResourceAsData("icc_profiles/HP_ZR30w.icc");
|
||||
sk_sp<SkData> data = SkData::MakeFromFileName(
|
||||
GetResourcePath("icc_profiles/HP_ZR30w.icc").c_str());
|
||||
sk_sp<SkColorSpace> z30 = SkColorSpace::MakeICC(data->data(), data->size());
|
||||
data = GetResourceAsData("icc_profiles/HP_Z32x.icc");
|
||||
data = SkData::MakeFromFileName( GetResourcePath("icc_profiles/HP_Z32x.icc").c_str());
|
||||
sk_sp<SkColorSpace> z32 = SkColorSpace::MakeICC(data->data(), data->size());
|
||||
data = GetResourceAsData("icc_profiles/upperLeft.icc");
|
||||
data = SkData::MakeFromFileName(GetResourcePath("icc_profiles/upperLeft.icc").c_str());
|
||||
sk_sp<SkColorSpace> upperLeft = SkColorSpace::MakeICC(data->data(), data->size());
|
||||
data = GetResourceAsData("icc_profiles/upperRight.icc");
|
||||
data = SkData::MakeFromFileName(GetResourcePath("icc_profiles/upperRight.icc").c_str());
|
||||
sk_sp<SkColorSpace> upperRight = SkColorSpace::MakeICC(data->data(), data->size());
|
||||
|
||||
SkColorSpaceTransferFn fn;
|
||||
|
@ -225,12 +225,12 @@ DEF_TEST(Gif, reporter) {
|
||||
// Regression test for decoding a gif image with sampleSize of 4, which was
|
||||
// previously crashing.
|
||||
DEF_TEST(Gif_Sampled, r) {
|
||||
auto data = GetResourceAsData("images/test640x479.gif");
|
||||
REPORTER_ASSERT(r, data);
|
||||
if (!data) {
|
||||
auto stream = SkFILEStream::Make(GetResourcePath("images/test640x479.gif").c_str());
|
||||
REPORTER_ASSERT(r, stream);
|
||||
if (!stream) {
|
||||
return;
|
||||
}
|
||||
std::unique_ptr<SkStreamAsset> stream(new SkMemoryStream(std::move(data)));
|
||||
|
||||
std::unique_ptr<SkAndroidCodec> codec(SkAndroidCodec::MakeFromStream(std::move(stream)));
|
||||
REPORTER_ASSERT(r, codec);
|
||||
if (!codec) {
|
||||
|
@ -39,7 +39,8 @@ DEF_TEST(ICC_ToXYZD50, r) {
|
||||
0.74519f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f,
|
||||
};
|
||||
|
||||
sk_sp<SkData> data = GetResourceAsData("icc_profiles/HP_ZR30w.icc");
|
||||
sk_sp<SkData> data = SkData::MakeFromFileName(
|
||||
GetResourcePath("icc_profiles/HP_ZR30w.icc").c_str());
|
||||
sk_sp<SkICC> z30 = SkICC::Make(data->data(), data->size());
|
||||
test_to_xyz_d50(r, z30.get(), true, z30Reference);
|
||||
|
||||
@ -48,15 +49,15 @@ DEF_TEST(ICC_ToXYZD50, r) {
|
||||
0.75368f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f,
|
||||
};
|
||||
|
||||
data = GetResourceAsData("icc_profiles/HP_Z32x.icc");
|
||||
data = SkData::MakeFromFileName( GetResourcePath("icc_profiles/HP_Z32x.icc").c_str());
|
||||
sk_sp<SkICC> z32 = SkICC::Make(data->data(), data->size());
|
||||
test_to_xyz_d50(r, z32.get(), true, z32Reference);
|
||||
|
||||
data = GetResourceAsData("icc_profiles/upperLeft.icc");
|
||||
data = SkData::MakeFromFileName(GetResourcePath("icc_profiles/upperLeft.icc").c_str());
|
||||
sk_sp<SkICC> upperLeft = SkICC::Make(data->data(), data->size());
|
||||
test_to_xyz_d50(r, upperLeft.get(), false, z32Reference);
|
||||
|
||||
data = GetResourceAsData("icc_profiles/upperRight.icc");
|
||||
data = SkData::MakeFromFileName(GetResourcePath("icc_profiles/upperRight.icc").c_str());
|
||||
sk_sp<SkICC> upperRight = SkICC::Make(data->data(), data->size());
|
||||
test_to_xyz_d50(r, upperRight.get(), false, z32Reference);
|
||||
}
|
||||
@ -81,19 +82,20 @@ DEF_TEST(ICC_IsNumericalTransferFn, r) {
|
||||
referenceFn.fF = 0.0f;
|
||||
referenceFn.fG = 2.2f;
|
||||
|
||||
sk_sp<SkData> data = GetResourceAsData("icc_profiles/HP_ZR30w.icc");
|
||||
sk_sp<SkData> data = SkData::MakeFromFileName(
|
||||
GetResourcePath("icc_profiles/HP_ZR30w.icc").c_str());
|
||||
sk_sp<SkICC> z30 = SkICC::Make(data->data(), data->size());
|
||||
test_is_numerical_transfer_fn(r, z30.get(), true, referenceFn);
|
||||
|
||||
data = GetResourceAsData("icc_profiles/HP_Z32x.icc");
|
||||
data = SkData::MakeFromFileName( GetResourcePath("icc_profiles/HP_Z32x.icc").c_str());
|
||||
sk_sp<SkICC> z32 = SkICC::Make(data->data(), data->size());
|
||||
test_is_numerical_transfer_fn(r, z32.get(), true, referenceFn);
|
||||
|
||||
data = GetResourceAsData("icc_profiles/upperLeft.icc");
|
||||
data = SkData::MakeFromFileName(GetResourcePath("icc_profiles/upperLeft.icc").c_str());
|
||||
sk_sp<SkICC> upperLeft = SkICC::Make(data->data(), data->size());
|
||||
test_is_numerical_transfer_fn(r, upperLeft.get(), false, referenceFn);
|
||||
|
||||
data = GetResourceAsData("icc_profiles/upperRight.icc");
|
||||
data = SkData::MakeFromFileName(GetResourcePath("icc_profiles/upperRight.icc").c_str());
|
||||
sk_sp<SkICC> upperRight = SkICC::Make(data->data(), data->size());
|
||||
test_is_numerical_transfer_fn(r, upperRight.get(), false, referenceFn);
|
||||
}
|
||||
|
@ -40,13 +40,14 @@ static void test_flatten(skiatest::Reporter* reporter, const SkImageInfo& info)
|
||||
}
|
||||
|
||||
DEF_TEST(ImageInfo_flattening, reporter) {
|
||||
sk_sp<SkData> data = GetResourceAsData("icc_profiles/HP_ZR30w.icc");
|
||||
sk_sp<SkData> data =
|
||||
SkData::MakeFromFileName(GetResourcePath("icc_profiles/HP_ZR30w.icc").c_str());
|
||||
sk_sp<SkColorSpace> space0 = SkColorSpace::MakeICC(data->data(), data->size());
|
||||
data = GetResourceAsData("icc_profiles/HP_Z32x.icc");
|
||||
data = SkData::MakeFromFileName( GetResourcePath("icc_profiles/HP_Z32x.icc").c_str());
|
||||
sk_sp<SkColorSpace> space1 = SkColorSpace::MakeICC(data->data(), data->size());
|
||||
data = GetResourceAsData("icc_profiles/upperLeft.icc");
|
||||
data = SkData::MakeFromFileName(GetResourcePath("icc_profiles/upperLeft.icc").c_str());
|
||||
sk_sp<SkColorSpace> space2 = SkColorSpace::MakeICC(data->data(), data->size());
|
||||
data = GetResourceAsData("icc_profiles/upperRight.icc");
|
||||
data = SkData::MakeFromFileName(GetResourcePath("icc_profiles/upperRight.icc").c_str());
|
||||
sk_sp<SkColorSpace> space3 = SkColorSpace::MakeICC(data->data(), data->size());
|
||||
|
||||
sk_sp<SkColorSpace> spaces[] = {
|
||||
|
@ -32,7 +32,8 @@ static bool is_subset_of(SkData* smaller, SkData* larger) {
|
||||
|
||||
static sk_sp<SkData> load_resource(
|
||||
skiatest::Reporter* r, const char* test, const char* filename) {
|
||||
sk_sp<SkData> data = GetResourceAsData(filename);
|
||||
SkString path(GetResourcePath(filename));
|
||||
sk_sp<SkData> data(SkData::MakeFromFileName(path.c_str()));
|
||||
if (!data) {
|
||||
INFOF(r, "\n%s: Resource '%s' can not be found.\n",
|
||||
test, filename);
|
||||
|
@ -358,8 +358,8 @@ static void serialize_and_compare_typeface(sk_sp<SkTypeface> typeface, const cha
|
||||
static void TestPictureTypefaceSerialization(skiatest::Reporter* reporter) {
|
||||
{
|
||||
// Load typeface from file to test CreateFromFile with index.
|
||||
auto data = GetResourceAsData("fonts/test.ttc");
|
||||
auto typeface = SkTypeface::MakeFromStream(new SkMemoryStream(std::move(data)), 1);
|
||||
SkString filename = GetResourcePath("/fonts/test.ttc");
|
||||
sk_sp<SkTypeface> typeface(SkTypeface::MakeFromFile(filename.c_str(), 1));
|
||||
if (!typeface) {
|
||||
INFOF(reporter, "Could not run fontstream test because test.ttc not found.");
|
||||
} else {
|
||||
@ -369,7 +369,7 @@ static void TestPictureTypefaceSerialization(skiatest::Reporter* reporter) {
|
||||
|
||||
{
|
||||
// Load typeface as stream to create with axis settings.
|
||||
std::unique_ptr<SkStreamAsset> distortable(GetResourceAsStream("fonts/Distortable.ttf"));
|
||||
std::unique_ptr<SkStreamAsset> distortable(GetResourceAsStream("/fonts/Distortable.ttf"));
|
||||
if (!distortable) {
|
||||
INFOF(reporter, "Could not run fontstream test because Distortable.ttf not found.");
|
||||
} else {
|
||||
|
@ -26,26 +26,37 @@ void SetResourcePath(const char* resource) {
|
||||
FLAGS_resourcePath.set(0, resource);
|
||||
}
|
||||
|
||||
|
||||
bool DecodeDataToBitmap(sk_sp<SkData> data, SkBitmap* dst) {
|
||||
std::unique_ptr<SkImageGenerator> gen(SkImageGenerator::MakeFromEncoded(std::move(data)));
|
||||
return gen && dst->tryAllocPixels(gen->getInfo()) &&
|
||||
bool GetResourceAsBitmap(const char* resource, SkBitmap* dst) {
|
||||
SkString resourcePath = GetResourcePath(resource);
|
||||
sk_sp<SkData> resourceData(SkData::MakeFromFileName(resourcePath.c_str()));
|
||||
std::unique_ptr<SkImageGenerator> gen(SkImageGenerator::MakeFromEncoded(resourceData));
|
||||
if (!gen) {
|
||||
return false;
|
||||
}
|
||||
return dst->tryAllocPixels(gen->getInfo()) &&
|
||||
gen->getPixels(gen->getInfo().makeColorSpace(nullptr), dst->getPixels(), dst->rowBytes(),
|
||||
nullptr);
|
||||
}
|
||||
|
||||
sk_sp<SkImage> GetResourceAsImage(const char* resource) {
|
||||
SkString path = GetResourcePath(resource);
|
||||
sk_sp<SkData> resourceData(SkData::MakeFromFileName(path.c_str()));
|
||||
return SkImage::MakeFromEncoded(resourceData);
|
||||
}
|
||||
|
||||
std::unique_ptr<SkStreamAsset> GetResourceAsStream(const char* resource) {
|
||||
auto data = GetResourceAsData(resource);
|
||||
return data ? std::unique_ptr<SkStreamAsset>(new SkMemoryStream(std::move(data)))
|
||||
: nullptr;
|
||||
SkString resourcePath = GetResourcePath(resource);
|
||||
auto stream = SkFILEStream::Make(resourcePath.c_str());
|
||||
if (!stream) {
|
||||
SkDebugf("Resource %s not found.\n", resource);
|
||||
return nullptr;
|
||||
}
|
||||
return std::move(stream);
|
||||
}
|
||||
|
||||
sk_sp<SkData> GetResourceAsData(const char* resource) {
|
||||
auto data = SkData::MakeFromFileName(GetResourcePath(resource).c_str());
|
||||
if (!data) {
|
||||
SkDebugf("Resource \"%s\" not found.\n", resource);
|
||||
}
|
||||
return data;
|
||||
SkString resourcePath = GetResourcePath(resource);
|
||||
return SkData::MakeFromFileName(resourcePath.c_str());
|
||||
}
|
||||
|
||||
sk_sp<SkTypeface> MakeResourceAsTypeface(const char* resource) {
|
||||
|
@ -8,32 +8,22 @@
|
||||
#ifndef Resources_DEFINED
|
||||
#define Resources_DEFINED
|
||||
|
||||
#include "SkImage.h"
|
||||
#include "SkRefCnt.h"
|
||||
#include "SkString.h"
|
||||
|
||||
class SkBitmap;
|
||||
class SkData;
|
||||
class SkImage;
|
||||
class SkStreamAsset;
|
||||
class SkTypeface;
|
||||
|
||||
SkString GetResourcePath(const char* resource = "");
|
||||
|
||||
void SetResourcePath(const char* );
|
||||
|
||||
bool DecodeDataToBitmap(sk_sp<SkData> data, SkBitmap* dst);
|
||||
|
||||
sk_sp<SkData> GetResourceAsData(const char* resource);
|
||||
|
||||
inline bool GetResourceAsBitmap(const char* resource, SkBitmap* dst) {
|
||||
return DecodeDataToBitmap(GetResourceAsData(resource), dst);
|
||||
}
|
||||
|
||||
inline sk_sp<SkImage> GetResourceAsImage(const char* resource) {
|
||||
return SkImage::MakeFromEncoded(GetResourceAsData(resource));
|
||||
}
|
||||
|
||||
bool GetResourceAsBitmap(const char* resource, SkBitmap* dst);
|
||||
sk_sp<SkImage> GetResourceAsImage(const char* resource);
|
||||
std::unique_ptr<SkStreamAsset> GetResourceAsStream(const char* resource);
|
||||
|
||||
sk_sp<SkData> GetResourceAsData(const char* resource);
|
||||
sk_sp<SkTypeface> MakeResourceAsTypeface(const char* resource);
|
||||
|
||||
#endif // Resources_DEFINED
|
||||
|
Loading…
Reference in New Issue
Block a user