Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Unified Diff: experimental/fiddle/fiddle_main.cpp

Issue 1895143002: experimental/fiddle -> tools/fiddle (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « experimental/fiddle/fiddle_main.h ('k') | experimental/fiddle/fiddle_test » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: experimental/fiddle/fiddle_main.cpp
diff --git a/experimental/fiddle/fiddle_main.cpp b/experimental/fiddle/fiddle_main.cpp
deleted file mode 100644
index 3e1570813d0d5d4954bb0aadfa5b44d60fc8cfb3..0000000000000000000000000000000000000000
--- a/experimental/fiddle/fiddle_main.cpp
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright 2015 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include <stdio.h>
-
-#include <GL/osmesa.h>
-
-#include "fiddle_main.h"
-
-// Globals externed in fiddle_main.h
-SkBitmap source;
-sk_sp<SkImage> image;
-
-static void encode_to_base64(const void* data, size_t size, FILE* out) {
- const uint8_t* input = reinterpret_cast<const uint8_t*>(data);
- const uint8_t* end = &input[size];
- static const char codes[] =
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "abcdefghijklmnopqrstuvwxyz0123456789+/";
- while (input != end) {
- uint8_t b = (*input & 0xFC) >> 2;
- fputc(codes[b], out);
- b = (*input & 0x03) << 4;
- ++input;
- if (input == end) {
- fputc(codes[b], out);
- fputs("==", out);
- return;
- }
- b |= (*input & 0xF0) >> 4;
- fputc(codes[b], out);
- b = (*input & 0x0F) << 2;
- ++input;
- if (input == end) {
- fputc(codes[b], out);
- fputc('=', out);
- return;
- }
- b |= (*input & 0xC0) >> 6;
- fputc(codes[b], out);
- b = *input & 0x3F;
- fputc(codes[b], out);
- ++input;
- }
-}
-
-static void dump_output(const sk_sp<SkData>& data,
- const char* name, bool last = true) {
- if (data) {
- printf("\t\"%s\": \"", name);
- encode_to_base64(data->data(), data->size(), stdout);
- fputs(last ? "\"\n" : "\",\n", stdout);
- }
-}
-
-static SkData* encode_snapshot(const sk_sp<SkSurface>& surface) {
- sk_sp<SkImage> img(surface->makeImageSnapshot());
- return img ? img->encode() : nullptr;
-}
-
-static OSMesaContext create_osmesa_context() {
- OSMesaContext osMesaContext =
- OSMesaCreateContextExt(OSMESA_BGRA, 0, 0, 0, nullptr);
- if (osMesaContext != nullptr) {
- static uint32_t buffer[16 * 16];
- OSMesaMakeCurrent(osMesaContext, &buffer, GL_UNSIGNED_BYTE, 16, 16);
- }
- return osMesaContext;
-}
-
-static sk_sp<GrContext> create_mesa_grcontext() {
- if (nullptr == OSMesaGetCurrentContext()) {
- return nullptr;
- }
- auto osmesa_get = [](void* ctx, const char name[]) {
- SkASSERT(nullptr == ctx);
- SkASSERT(OSMesaGetCurrentContext());
- return OSMesaGetProcAddress(name);
- };
- sk_sp<const GrGLInterface> mesa(GrGLAssembleInterface(nullptr, osmesa_get));
- if (!mesa) {
- return nullptr;
- }
- return sk_sp<GrContext>(GrContext::Create(
- kOpenGL_GrBackend,
- reinterpret_cast<intptr_t>(mesa.get())));
-}
-
-int main() {
- const DrawOptions options = GetDrawOptions();
- if (options.source) {
- sk_sp<SkData> data(SkData::NewFromFileName(options.source));
- if (!data) {
- perror(options.source);
- return 1;
- } else {
- image = SkImage::MakeFromEncoded(std::move(data));
- if (!image) {
- perror("Unable to decode the source image.");
- return 1;
- }
- SkAssertResult(image->asLegacyBitmap(
- &source, SkImage::kRO_LegacyBitmapMode));
- }
- }
- sk_sp<SkData> rasterData, gpuData, pdfData, skpData;
- if (options.raster) {
- auto rasterSurface =
- SkSurface::MakeRaster(SkImageInfo::MakeN32Premul(options.size));
- draw(rasterSurface->getCanvas());
- rasterData.reset(encode_snapshot(rasterSurface));
- }
- if (options.gpu) {
- OSMesaContext osMesaContext = create_osmesa_context();
- auto grContext = create_mesa_grcontext();
- if (!grContext) {
- fputs("Unable to get Mesa GrContext.\n", stderr);
- } else {
- auto surface = SkSurface::MakeRenderTarget(
- grContext.get(),
- SkBudgeted::kNo,
- SkImageInfo::MakeN32Premul(options.size));
- if (!surface) {
- fputs("Unable to get render surface.\n", stderr);
- exit(1);
- }
- draw(surface->getCanvas());
- gpuData.reset(encode_snapshot(surface));
- }
- if (osMesaContext) {
- OSMesaDestroyContext(osMesaContext);
- }
- }
- if (options.pdf) {
- SkDynamicMemoryWStream pdfStream;
- sk_sp<SkDocument> document(SkDocument::CreatePDF(&pdfStream));
- draw(document->beginPage(options.size.width(), options.size.height()));
- document->close();
- pdfData.reset(pdfStream.copyToData());
- }
- if (options.skp) {
- SkSize size;
- size = options.size;
- SkPictureRecorder recorder;
- draw(recorder.beginRecording(size.width(), size.height()));
- auto picture = recorder.finishRecordingAsPicture();
- SkDynamicMemoryWStream skpStream;
- picture->serialize(&skpStream);
- skpData.reset(skpStream.copyToData());
- }
-
- printf("{\n");
- dump_output(rasterData, "Raster", !gpuData && !pdfData && !skpData);
- dump_output(gpuData, "Gpu", !pdfData && !skpData);
- dump_output(pdfData, "Pdf", !skpData);
- dump_output(skpData, "Skp");
- printf("}\n");
-
- return 0;
-}
« no previous file with comments | « experimental/fiddle/fiddle_main.h ('k') | experimental/fiddle/fiddle_test » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698