aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental
diff options
context:
space:
mode:
authorGravatar Brian Osman <brianosman@google.com>2017-11-22 13:23:35 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-11-22 18:59:44 +0000
commit4f99e58252175f01c0b9ca1a5e2fc7acec6acec3 (patch)
tree64458810ed2962bbdcb470a4f199feade2be2b03 /experimental
parentd923a71a113d97dc87b4424c25d5b5019331db24 (diff)
Remove a huge pile of views code
All of this is dead when not using the old SkWindow framework. TBR=reed@google.com Bug: skia: Change-Id: I0f6ab18987a98469bfd367d5bc10967300dfd3ca Reviewed-on: https://skia-review.googlesource.com/75384 Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
Diffstat (limited to 'experimental')
-rw-r--r--experimental/DrawingBoard/SampleDrawingClient.cpp278
-rw-r--r--experimental/DrawingBoard/SampleDrawingServer.cpp222
-rw-r--r--experimental/DrawingBoard/SkColorPalette.cpp195
-rw-r--r--experimental/DrawingBoard/SkColorPalette.h34
-rw-r--r--experimental/DrawingBoard/SkNetPipeController.cpp50
-rw-r--r--experimental/DrawingBoard/SkNetPipeController.h36
-rw-r--r--experimental/Networking/SampleNetPipeReader.cpp129
7 files changed, 0 insertions, 944 deletions
diff --git a/experimental/DrawingBoard/SampleDrawingClient.cpp b/experimental/DrawingBoard/SampleDrawingClient.cpp
deleted file mode 100644
index 542c589030..0000000000
--- a/experimental/DrawingBoard/SampleDrawingClient.cpp
+++ /dev/null
@@ -1,278 +0,0 @@
-#include "SampleCode.h"
-#include "SkView.h"
-#include "SkCanvas.h"
-#include "SkGPipe.h"
-#include "SkSockets.h"
-#include "SkNetPipeController.h"
-#include "SkCornerPathEffect.h"
-#include "SkColorPalette.h"
-#include "SkOSMenu.h"
-
-
-/**
- * Drawing Client
- *
- * A drawing client that allows a user to perform simple brush stokes with
- * a selected color and brush size. The drawing client communicates with a
- * drawing server to send/receive data to/from other clients connected to the
- * same server. The drawing client stores data in fData and fBuffer depending on
- * the data type. Append type means that the drawing data is a completed stroke
- * and Replace type means that the drawing data is in progress and will be
- * replaced by subsequent data. fData and fBuffer are read by a pipe reader and
- * reproduce the drawing. When the client is in a normal state, the data stored
- * on the client and the server should be identical.
- * The drawing client is also able to switch between vector and bitmap drawing.
- * The drawing client also renders the latest drawing stroke locally in order to
- * produce better reponses. This can be disabled by calling
- * controller.disablePlayBack(), which will introduce a lag between the input
- * and the drawing.
- * Note: in order to keep up with the drawing data, the client will try to read
- * a few times each frame in case more than one frame worth of data has been
- * received and render them together. This behavior can be adjusted by tweaking
- * MAX_READ_PER_FRAME or disabled by turning fSync to false
- */
-
-#define MAX_READ_PER_FRAME 5
-
-class DrawingClientView : public SampleView {
-public:
- DrawingClientView() {
- fSocket = NULL;
- fTotalBytesRead = 0;
- fPalette = new SkColorPalette;
- fPalette->setSize(100, 300);
- fPalette->setVisibleP(true);
- this->attachChildToFront(fPalette);
- fPalette->unref();
- fBrushSize = 2.5;
- fAA = false;
- fPaletteVisible = true;
- fSync = true;
- fVector = true;
- }
- ~DrawingClientView() {
- if (fSocket) {
- delete fSocket;
- }
- fData.reset();
- fBuffer.reset();
- }
-
- virtual void requestMenu(SkOSMenu* menu) {
- menu->setTitle("Drawing Client");
- menu->appendTextField("Server IP", "Server IP", this->getSinkID(),
- "IP address or hostname");
- menu->appendSwitch("Vector", "Vector", this->getSinkID(), fVector);
- menu->appendSlider("Brush Size", "Brush Size", this->getSinkID(), 1.0,
- 100.0, fBrushSize);
- menu->appendSwitch("Anti-Aliasing", "AA", this->getSinkID(), fAA);
- menu->appendSwitch("Show Color Palette", "Palette", this->getSinkID(),
- fPaletteVisible);
- menu->appendSwitch("Sync", "Sync", this->getSinkID(), fSync);
- menu->appendAction("Clear", this->getSinkID());
- }
-
-protected:
-
- static void readData(int cid, const void* data, size_t size,
- SkSocket::DataType type, void* context) {
- DrawingClientView* view = (DrawingClientView*)context;
- view->onRead(cid, data, size, type);
- }
-
- void onRead(int cid, const void* data, size_t size, SkSocket::DataType type) {
- if (size > 0) {
- fBuffer.reset();
- if (type == SkSocket::kPipeReplace_type)
- fBuffer.append(size, (const char*)data);
- else if (type == SkSocket::kPipeAppend_type)
- fData.append(size, (const char*)data);
- else {
- //other types of data
- }
- }
- }
-
- bool onQuery(SkEvent* evt) {
- if (SampleCode::TitleQ(*evt)) {
- SampleCode::TitleR(evt, "Drawing Client");
- return true;
- }
-
- return this->INHERITED::onQuery(evt);
- }
-
- bool onEvent(const SkEvent& evt) {;
- if (SkOSMenu::FindSliderValue(evt, "Brush Size", &fBrushSize))
- return true;
-
- SkString s;
- if (SkOSMenu::FindText(evt, "Server IP", &s)) {
- if (NULL != fSocket) {
- delete fSocket;
- }
- fSocket = new SkTCPClient(s.c_str(), 40000);
- fSocket->connectToServer();
- fSocket->suspendWrite();
- SkDebugf("Connecting to %s\n", s.c_str());
- fData.reset();
- fBuffer.reset();
- this->inval(NULL);
- return true;
- }
- if (SkOSMenu::FindSwitchState(evt, "AA", &fAA) ||
- SkOSMenu::FindSwitchState(evt, "Sync", &fSync))
- return true;
- if (SkOSMenu::FindSwitchState(evt, "Vector", &fVector)) {
- this->clearBitmap();
- return true;
- }
- if (SkOSMenu::FindAction(evt, "Clear")) {
- this->clear();
- return true;
- }
- if (SkOSMenu::FindSwitchState(evt, "Palette", &fPaletteVisible)) {
- fPalette->setVisibleP(fPaletteVisible);
- return true;
- }
- return this->INHERITED::onEvent(evt);
- }
-
- virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y) {
- return new Click(this);
- }
-
- virtual bool onClick(SkView::Click* click) {
- switch (click->fState) {
- case SkView::Click::kDown_State:
- fCurrLine.moveTo(click->fCurr);
- fType = SkSocket::kPipeReplace_type;
- if (fSocket)
- fSocket->resumeWrite();
- break;
- case SkView::Click::kMoved_State:
- fCurrLine.lineTo(click->fCurr);
- break;
- case SkView::Click::kUp_State:
- fType = SkSocket::kPipeAppend_type;
- break;
- default:
- break;
- }
- return true;
- }
-
- virtual void onDrawContent(SkCanvas* canvas) {
- if (fSocket) {
- if (fSocket->isConnected()) {
- if (fSync) {
- int count = 0;
- while (fSocket->readPacket(readData, this) > 0 &&
- count < MAX_READ_PER_FRAME)
- ++count;
- }
- else
- fSocket->readPacket(readData, this);
- }
- else
- fSocket->connectToServer();
- }
- size_t bytesRead = 0;
- SkGPipeReader::Status status;
- SkCanvas bufferCanvas(fBase);
- SkCanvas* tempCanvas;
- while (fTotalBytesRead < fData.count()) {
- if (fVector)
- tempCanvas = canvas;
- else
- tempCanvas = &bufferCanvas;
- SkGPipeReader reader(tempCanvas);
- status = reader.playback(fData.begin() + fTotalBytesRead,
- fData.count() - fTotalBytesRead,
- &bytesRead);
- SkASSERT(SkGPipeReader::kError_Status != status);
- fTotalBytesRead += bytesRead;
- }
- if (fVector)
- fTotalBytesRead = 0;
- else
- canvas->drawBitmap(fBase, 0, 0, NULL);
-
- size_t totalBytesRead = 0;
- while (totalBytesRead < fBuffer.count()) {
- SkGPipeReader reader(canvas);
- status = reader.playback(fBuffer.begin() + totalBytesRead,
- fBuffer.count() - totalBytesRead,
- &bytesRead);
- SkASSERT(SkGPipeReader::kError_Status != status);
- totalBytesRead += bytesRead;
- }
-
- SkNetPipeController controller(canvas);
- SkGPipeWriter writer;
- SkCanvas* writerCanvas = writer.startRecording(&controller,
- SkGPipeWriter::kCrossProcess_Flag);
-
- //controller.disablePlayback();
- SkPaint p;
- p.setColor(fPalette->getColor());
- p.setStyle(SkPaint::kStroke_Style);
- p.setStrokeWidth(fBrushSize);
- p.setStrokeCap(SkPaint::kRound_Cap);
- p.setStrokeJoin(SkPaint::kRound_Join);
- p.setAntiAlias(fAA);
- p.setPathEffect(new SkCornerPathEffect(55))->unref();
- writerCanvas->drawPath(fCurrLine, p);
- writer.endRecording();
-
- controller.writeToSocket(fSocket, fType);
- if (fType == SkSocket::kPipeAppend_type && fSocket) {
- fSocket->suspendWrite();
- fCurrLine.reset();
- }
-
- this->inval(NULL);
- }
-
- virtual void onSizeChange() {
- this->INHERITED::onSizeChange();
- fPalette->setLoc(this->width()-100, 0);
- fBase.setConfig(SkBitmap::kARGB_8888_Config, this->width(), this->height());
- fBase.allocPixels(NULL);
- this->clearBitmap();
- }
-
-private:
- void clear() {
- fData.reset();
- fBuffer.reset();
- fCurrLine.reset();
- fTotalBytesRead = 0;
- this->clearBitmap();
- }
- void clearBitmap() {
- fTotalBytesRead = 0;
- fBase.eraseColor(fBGColor);
- }
- SkTDArray<char> fData;
- SkTDArray<char> fBuffer;
- SkBitmap fBase;
- SkPath fCurrLine;
- SkTCPClient* fSocket;
- SkSocket::DataType fType;
- SkColorPalette* fPalette;
- bool fPaletteVisible;
- size_t fTotalBytesRead;
- SkScalar fBrushSize;
- bool fAA;
- bool fSync;
- bool fVector;
-
- typedef SampleView INHERITED;
-};
-
-
-///////////////////////////////////////////////////////////////////////////////
-
-static SkView* MyFactory() { return new DrawingClientView; }
-static SkViewRegister reg(MyFactory);
diff --git a/experimental/DrawingBoard/SampleDrawingServer.cpp b/experimental/DrawingBoard/SampleDrawingServer.cpp
deleted file mode 100644
index fa059fa70a..0000000000
--- a/experimental/DrawingBoard/SampleDrawingServer.cpp
+++ /dev/null
@@ -1,222 +0,0 @@
-#include "SampleCode.h"
-#include "SkView.h"
-#include "SkCanvas.h"
-#include "SkGPipe.h"
-#include "SkSockets.h"
-#include "SkNetPipeController.h"
-#include "SkCornerPathEffect.h"
-#include "SkOSMenu.h"
-#include <map>
-
-/**
- * Drawing Server
- *
- * This simple drawing server can accept connections from multiple drawing
- * clients simultaneously. It accumulates drawing data from each client each
- * frame, stores it in the appropriate place, and then broadcasts incremental
- * changes back to all the clients. Each logical packet, meaning one brush
- * stoke in this case can be of two types, append and replace. Append types are
- * completed strokes ready to be stored in the fData queue and will no longer be
- * modified. Replace types are drawing operations that are still in progress on
- * the client side, so they are appended to fBuffer. The location and size of
- * the buffered data for each client is stored in a map and updated properly.
- * Each time a new replace drawing call is received from a client, its previous
- * buffered data is discarded.
- * Since the Server keeps all the complete drawing data and the latest buffered
- * data, it's able to switch between vector and bitmap drawing
- */
-
-class DrawingServerView : public SampleView {
-public:
- DrawingServerView(){
- fServer = new SkTCPServer(40000);
- fServer->suspendWrite();
- fTotalBytesRead = fTotalBytesWritten = 0;
- fVector = true;
- }
- ~DrawingServerView() {
- delete fServer;
- fData.reset();
- fBuffer.reset();
- fClientMap.clear();
- }
-
- virtual void requestMenu(SkOSMenu* menu) {
- menu->setTitle("Drawing Server");
- menu->appendAction("Clear", this->getSinkID());
- menu->appendSwitch("Vector", "Vector", this->getSinkID(), fVector);
- }
-
-protected:
- static void readData(int cid, const void* data, size_t size,
- SkSocket::DataType type, void* context) {
- DrawingServerView* view = (DrawingServerView*)context;
- view->onRead(cid, data, size, type);
- }
-
- void onRead(int cid, const void* data, size_t size, SkSocket::DataType type) {
- if (NULL == data && size <= 0)
- return;
-
- ClientState* cs;
- std::map<int, ClientState*>::iterator it = fClientMap.find(cid);
- if (it == fClientMap.end()) { //New client
- cs = new ClientState;
- cs->bufferBase = 0;
- cs->bufferSize = 0;
- fClientMap[cid] = cs;
- }
- else {
- cs = it->second;
- }
-
- if (type == SkSocket::kPipeReplace_type) {
- fBuffer.remove(cs->bufferBase, cs->bufferSize);
-
- for (it = fClientMap.begin(); it != fClientMap.end(); ++it) {
- if (cid == it->first)
- continue;
- else {
- if (it->second->bufferBase > cs->bufferBase) {
- it->second->bufferBase -= cs->bufferSize;
- SkASSERT(it->second->bufferBase >= 0);
- }
- }
- }
-
- cs->bufferBase = fBuffer.count();
- cs->bufferSize = size;
- fBuffer.append(size, (const char*)data);
- }
- else if (type == SkSocket::kPipeAppend_type) {
- fData.append(size, (const char*)data);
- fServer->resumeWrite();
- fServer->writePacket(fData.begin() + fTotalBytesWritten,
- fData.count() - fTotalBytesWritten,
- SkSocket::kPipeAppend_type);
- fTotalBytesWritten = fData.count();
- fServer->suspendWrite();
- }
- else {
- //other types of data
- }
- }
-
- bool onQuery(SkEvent* evt) {
- if (SampleCode::TitleQ(*evt)) {
- SampleCode::TitleR(evt, "Drawing Server");
- return true;
- }
- return this->INHERITED::onQuery(evt);
- }
-
- bool onEvent(const SkEvent& evt) {
- if (SkOSMenu::FindAction(evt, "Clear")) {
- this->clear();
- return true;
- }
- if (SkOSMenu::FindSwitchState(evt, "Vector", &fVector)) {
- this->clearBitmap();
- return true;
- }
- return this->INHERITED::onEvent(evt);
- }
-
-
- virtual void onDrawContent(SkCanvas* canvas) {
- if (fCurrMatrix != canvas->getTotalMatrix()) {
- fTotalBytesRead = 0;
- fCurrMatrix = canvas->getTotalMatrix();
- }
-
- fServer->acceptConnections();
- if (fServer->readPacket(readData, this) > 0) {
- fServer->resumeWrite();
- }
- else {
- fServer->suspendWrite();
- }
-
- size_t bytesRead;
- SkGPipeReader::Status stat;
- SkCanvas bufferCanvas(fBase);
- SkCanvas* tempCanvas;
- while (fTotalBytesRead < fData.count()) {
- if (fVector) {
- tempCanvas = canvas;
- } else {
- tempCanvas = &bufferCanvas;
- }
- SkGPipeReader reader(tempCanvas);
- stat = reader.playback(fData.begin() + fTotalBytesRead,
- fData.count() - fTotalBytesRead,
- &bytesRead);
- SkASSERT(SkGPipeReader::kError_Status != stat);
- fTotalBytesRead += bytesRead;
- }
- if (fVector) {
- fTotalBytesRead = 0;
- } else {
- canvas->drawBitmap(fBase, 0, 0, NULL);
- }
-
- size_t totalBytesRead = 0;
- while (totalBytesRead < fBuffer.count()) {
- SkGPipeReader reader(canvas);
- stat = reader.playback(fBuffer.begin() + totalBytesRead,
- fBuffer.count() - totalBytesRead,
- &bytesRead);
- SkASSERT(SkGPipeReader::kError_Status != stat);
- totalBytesRead += bytesRead;
- }
-
- fServer->writePacket(fBuffer.begin(), fBuffer.count(),
- SkSocket::kPipeReplace_type);
-
- this->inval(NULL);
- }
-
- virtual void onSizeChange() {
- this->INHERITED::onSizeChange();
- fBase.setConfig(SkBitmap::kARGB_8888_Config,
- this->width(),
- this->height());
- fBase.allocPixels(NULL);
- this->clearBitmap();
- }
-
-private:
- void clear() {
- fData.reset();
- fBuffer.reset();
- fTotalBytesRead = fTotalBytesWritten = 0;
- fClientMap.clear();
- this->clearBitmap();
- }
- void clearBitmap() {
- fTotalBytesRead = 0;
- fBase.eraseColor(fBGColor);
- }
-
- struct ClientState {
- int bufferBase;
- int bufferSize;
- };
-
- std::map<int, ClientState*> fClientMap;
- SkTDArray<char> fData;
- SkTDArray<char> fBuffer;
- size_t fTotalBytesRead;
- size_t fTotalBytesWritten;
- SkMatrix fCurrMatrix;
- SkBitmap fBase;
- bool fVector;
- SkTCPServer* fServer;
- typedef SampleView INHERITED;
-};
-
-
-///////////////////////////////////////////////////////////////////////////////
-
-static SkView* MyFactory() { return new DrawingServerView; }
-static SkViewRegister reg(MyFactory);
diff --git a/experimental/DrawingBoard/SkColorPalette.cpp b/experimental/DrawingBoard/SkColorPalette.cpp
deleted file mode 100644
index f2776af4ff..0000000000
--- a/experimental/DrawingBoard/SkColorPalette.cpp
+++ /dev/null
@@ -1,195 +0,0 @@
-
-/*
- * Copyright 2011 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-#include "SkView.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkGradientShader.h"
-#include "SkColorPalette.h"
-
-SkColorPalette::SkColorPalette() {
- fSlotRect = SkRect::MakeWH(SkIntToScalar(50), SkIntToScalar(20));
- fGradientRect = SkRect::MakeWH(SkIntToScalar(100), SkIntToScalar(100));
- fSelected = 0;
- fCurrColor = 0xFF000000;
-
- fColors[0] = SK_ColorWHITE;
- fColors[1] = SK_ColorBLACK;
- fColors[2] = SK_ColorRED;
- fColors[3] = SK_ColorGREEN;
- fColors[4] = SK_ColorBLUE;
-}
-
-bool SkColorPalette::onEvent(const SkEvent& evt) {
- return this->INHERITED::onEvent(evt);
-}
-
-void SkColorPalette::onDraw(SkCanvas* canvas) {
- canvas->drawColor(SK_ColorWHITE);
-
- SkPaint paint;
- paint.setAntiAlias(true);
-
- canvas->translate(PalettePadding, PalettePadding);
-
- for (int i = 0; i < PaletteSlots; ++i) {
- if (fSelected == i) {
- paint.setStrokeWidth(SkIntToScalar(3));
- }
- else {
- paint.setStrokeWidth(1);
- }
-
- paint.setStyle(SkPaint::kStroke_Style);
- paint.setColor(SK_ColorBLACK);
- canvas->drawRect(fSlotRect, paint);
- paint.setStyle(SkPaint::kFill_Style);
- paint.setColor(fColors[i]);
- canvas->drawRect(fSlotRect, paint);
- canvas->translate(0, fSlotRect.height() + PalettePadding);
- }
- paint.setStrokeWidth(0);
- canvas->translate(0, PalettePadding);
- SkPoint p = SkPoint::Make(0,0);
- SkPoint q = SkPoint::Make(this->width(), 0);
- SkPoint pts[] = {p, q};
-
- SkColor colors[] = { SK_ColorRED, SK_ColorYELLOW, SK_ColorGREEN,
- SK_ColorCYAN, SK_ColorBLUE, SK_ColorMAGENTA,SK_ColorRED};
- SkScalar colorPositions[] = { 0, 0.2, 0.4, 0.5, 0.6, 0.8, 1.0};
-
-
- SkShader* shader1 = SkGradientShader::CreateLinear(pts, colors, colorPositions,7,
- SkShader::kMirror_TileMode);
- paint.setShader(shader1)->unref();
-
- canvas->drawRect(fGradientRect, paint);
-
- //this->INHERITED::onDraw(canvas);
-}
-
-SkView::Click* SkColorPalette::onFindClickHandler(SkScalar x, SkScalar y) {
- return new Click(this);
-}
-
-bool SkColorPalette::onClick(SkView::Click* click) {
- SkPoint curr = click->fCurr;
- //SkDebugf("click %f %f \n", curr.fX, curr.fY);
- int selected = selectSlot(curr);
- if (selected >= 0) {
- switch (click->fState) {
- case SkView::Click::kDown_State:
- case SkView::Click::kMoved_State:
- case SkView::Click::kUp_State:
- fSelected = selected;
- fCurrColor = fColors[fSelected];
- break;
- default:
- break;
- }
- return true;
- }
- else{
- //account for padding
- curr.fX -= PalettePadding;
- curr.fY -= 2 * PalettePadding + (fSlotRect.height() + PalettePadding) * PaletteSlots;
- if (curr.fX < 0 || curr.fX > fGradientRect.width() ||
- curr.fY < 0 || curr.fY > fGradientRect.height()) {
- return false;
- }
- else {
- switch (click->fState) {
- case SkView::Click::kDown_State:
- case SkView::Click::kMoved_State:
- case SkView::Click::kUp_State:
- fColors[fSelected] = selectColorFromGradient(curr);
- fCurrColor = fColors[fSelected];
- break;
- default:
- break;
- }
- return true;
- }
- }
-}
-
-void SkColorPalette::onSizeChange() {
- fGradientRect = SkRect::MakeWH(this->width() - 2*PalettePadding,
- this->width() - 2*PalettePadding);
- this->INHERITED::onSizeChange();
-}
-
-int SkColorPalette::selectSlot(SkPoint& cursorPosition) {
- //account for padding
- cursorPosition.fX -= PalettePadding;
- cursorPosition.fY -= PalettePadding;
-
- if (cursorPosition.fX < 0 || cursorPosition.fX > fSlotRect.width() ||
- cursorPosition.fY < 0 || cursorPosition.fY > (fSlotRect.height() + PalettePadding) * PaletteSlots) {
- return -1;
- }
- int index = cursorPosition.fY/(fSlotRect.height() + PalettePadding);
- int offset = (int)cursorPosition.fY%((int)fSlotRect.height() + PalettePadding);
- if (offset <= fSlotRect.height()) {
- return index;
- }
- else {
- return -1;
- }
-}
-
-SkColor SkColorPalette::selectColorFromGradient(SkPoint& cursorPosition) {
- float h = cursorPosition.fX/fGradientRect.width();
- float s = 1.0 - cursorPosition.fY/fGradientRect.height();
- float v = 1.0;
- float _h,r,g,b;
- float _1, _2, _3;
- int _i;
-
- _h = h * 6;
- _i = (int)_h;
- _1 = v * (1 - s);
- _2 = v * (1 - s * (_h - _i));
- _3 = v * (1 - s * (1 - (_h - _i)));
-
- if (_i == 0) {
- r = v;
- g = _3;
- b = _1;
- }
- else if (_i == 1) {
- r = _2;
- g = v;
- b = _1;
- }
- else if (_i == 2) {
- r = _1;
- g = v;
- b = _3;
- }
- else if (_i == 3) {
- r = _1;
- g = _2;
- b = v;
- }
- else if (_i == 4) {
- r = _3;
- g = _1;
- b = v;
- }
- else {
- r = v;
- g = _1;
- b = _2;
- };
-
- SkColor retval = 0xFF000000;
- retval += ((int)(r * 255) << 16);
- retval += ((int)(g * 255) << 8);
- retval += (int)(b * 255);
- return retval;
-}
diff --git a/experimental/DrawingBoard/SkColorPalette.h b/experimental/DrawingBoard/SkColorPalette.h
deleted file mode 100644
index 0ee1dd592e..0000000000
--- a/experimental/DrawingBoard/SkColorPalette.h
+++ /dev/null
@@ -1,34 +0,0 @@
-
-/*
- * Copyright 2011 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-#ifndef SkColorPalette_DEFINED
-#define SkColorPalette_DEFINED
-
-#define PaletteSlots 5
-#define PalettePadding 5
-class SkColorPalette : public SkView {
-public:
- SkColorPalette();
- SkColor getColor() { return fCurrColor; }
-protected:
- virtual bool onEvent(const SkEvent& evt);
- virtual void onDraw(SkCanvas* canvas);
- virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y);
- virtual bool onClick(SkView::Click* click);
- virtual void onSizeChange();
-private:
- int selectSlot(SkPoint& cursorPosition);
- SkColor selectColorFromGradient(SkPoint& cursorPosition);
- int fSelected;
- SkRect fGradientRect;
- SkRect fSlotRect;
- SkColor fCurrColor;
- SkColor fColors[PaletteSlots];
- typedef SkView INHERITED;
-};
-
-#endif
diff --git a/experimental/DrawingBoard/SkNetPipeController.cpp b/experimental/DrawingBoard/SkNetPipeController.cpp
deleted file mode 100644
index 3e4ded5cf7..0000000000
--- a/experimental/DrawingBoard/SkNetPipeController.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright 2011 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-#include "SkNetPipeController.h"
-
-SkNetPipeController::SkNetPipeController(SkCanvas* target) : fReader(target) {
- fBlock = NULL;
- fBlockSize = fBytesWritten = 0;
- fPlayback = true;
- fStatus = SkGPipeReader::kDone_Status;
- fTotalWritten = 0;
- fAtomsWritten = 0;
-}
-SkNetPipeController::~SkNetPipeController() {
- sk_free(fBlock);
-}
-
-int SkNetPipeController::writeToSocket(SkSocket* sockfd, SkSocket::DataType type) {
- if (NULL != sockfd && fTotalWritten > 4)
- return sockfd->writePacket(fBlock, fBytesWritten, type);
- else
- return -1;
-}
-
-void* SkNetPipeController::requestBlock(size_t minRequest, size_t* actual) {
- sk_free(fBlock);
-
- fBlockSize = minRequest * 4;
- fBlock = sk_malloc_throw(fBlockSize);
- fBytesWritten = 0;
- *actual = fBlockSize;
- return fBlock;
-}
-
-void SkNetPipeController::notifyWritten(size_t bytes) {
- SkASSERT(fBytesWritten + bytes <= fBlockSize);
-
- if (fPlayback) {
- fStatus = fReader.playback((const char*)fBlock + fBytesWritten, bytes);
- }
-
- SkASSERT(SkGPipeReader::kError_Status != fStatus);
- fBytesWritten += bytes;
- fTotalWritten += bytes;
-
- fAtomsWritten += 1;
-}
diff --git a/experimental/DrawingBoard/SkNetPipeController.h b/experimental/DrawingBoard/SkNetPipeController.h
deleted file mode 100644
index 84b1714057..0000000000
--- a/experimental/DrawingBoard/SkNetPipeController.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2011 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-#ifndef SkNetPipeController_DEFINED
-#define SkNetPipeController_DEFINED
-#include "SkTypes.h"
-#include "SkCanvas.h"
-#include "SkGPipe.h"
-#include "SkSockets.h"
-class SkNetPipeController : public SkGPipeController {
-public:
- SkNetPipeController(SkCanvas* target);
- ~SkNetPipeController();
-
- virtual void* requestBlock(size_t minRequest, size_t* actual);
- virtual void notifyWritten(size_t bytes);
-
- int writeToSocket(SkSocket* sockfd, SkSocket::DataType type);
- void enablePlayback() { fPlayback = true; }
- void disablePlayback() { fPlayback = false; }
-
-private:
- SkGPipeReader fReader;
- bool fPlayback;
- void* fBlock;
- size_t fBlockSize;
- size_t fBytesWritten;
- int fAtomsWritten;
- size_t fTotalWritten;
-
- SkGPipeReader::Status fStatus;
-};
-#endif
diff --git a/experimental/Networking/SampleNetPipeReader.cpp b/experimental/Networking/SampleNetPipeReader.cpp
deleted file mode 100644
index aef5653594..0000000000
--- a/experimental/Networking/SampleNetPipeReader.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-#include "SampleCode.h"
-#include "SkView.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkGPipe.h"
-#include "SkSockets.h"
-#include "SkOSMenu.h"
-
-/**
- * A simple networked pipe reader
- *
- * This view will connect to a user specified server, in this case meaning any
- * Skia app that's has a SkTCPServer set up to broadcast its piped drawing data,
- * received all the data transmitted and attempt to reproduce the drawing calls.
- * This reader will only keep the latest batch of data. In order to keep up with
- * the server, which may be producing data at a much higher rate than the reader
- * is consuming, the reader will attempt multiple reads and only render the
- * latest frame. this behavior can be adjusted by changing MAX_READS_PER_FRAME
- * or disabled by setting fSync to false
- */
-
-#define MAX_READS_PER_FRAME 12
-
-class NetPipeReaderView : public SampleView {
-public:
- NetPipeReaderView() {
- fSocket = NULL;
- fSync = true;
- }
-
- ~NetPipeReaderView() {
- if (fSocket) {
- delete fSocket;
- }
- fDataArray.reset();
- }
- virtual void requestMenu(SkOSMenu* menu) {
- menu->setTitle("Net Pipe Reader");
- menu->appendTextField("Server IP", "Server IP", this->getSinkID(),
- "IP address");
- menu->appendSwitch("Sync", "Sync", this->getSinkID(), fSync);
- }
-
-protected:
- static void readData(int cid, const void* data, size_t size,
- SkSocket::DataType type, void* context) {
- NetPipeReaderView* view = (NetPipeReaderView*)context;
- view->onRead(data, size);
- }
-
- void onRead(const void* data, size_t size) {
- if (size > 0)
- fDataArray.append(size, (const char*)data);
- }
-
- bool onQuery(SkEvent* evt) {
- if (SampleCode::TitleQ(*evt)) {
- SampleCode::TitleR(evt, "Net Pipe Reader");
- return true;
- }
- return this->INHERITED::onQuery(evt);
- }
-
- bool onEvent(const SkEvent& evt) {
- SkString s;
- if (SkOSMenu::FindText(evt, "Server IP", &s)) {
- if (NULL != fSocket) {
- delete fSocket;
- }
- fSocket = new SkTCPClient(s.c_str());
- fSocket->connectToServer();
- SkDebugf("Connecting to %s\n", s.c_str());
- return true;
- }
- if (SkOSMenu::FindSwitchState(evt, "Sync", &fSync))
- return true;
- return this->INHERITED::onEvent(evt);
- }
-
- void onDrawContent(SkCanvas* canvas) {
- if (NULL == fSocket)
- return;
-
- if (fSocket->isConnected()) {
- int dataToRemove = fDataArray.count();
- if (fSync) {
- int numreads = 0;
- while (fSocket->readPacket(readData, this) > 0 &&
- numreads < MAX_READS_PER_FRAME) {
- // at this point, new data has been read and stored, discard
- // old data since it's not needed anymore
- SkASSERT(fDataArray.count() > dataToRemove);
- fDataArray.remove(0, dataToRemove);
- dataToRemove = fDataArray.count();
- ++numreads;
- }
- // clean up if max reads reached
- if (numreads == MAX_READS_PER_FRAME &&
- fDataArray.count() > dataToRemove)
- fDataArray.remove(0, dataToRemove);
- }
- else {
- if (fSocket->readPacket(readData, this) > 0)
- fDataArray.remove(0, dataToRemove);
- }
- }
- else
- fSocket->connectToServer();
-
- SkGPipeReader reader(canvas);
- size_t bytesRead;
- SkGPipeReader::Status fStatus = reader.playback(fDataArray.begin(),
- fDataArray.count(),
- &bytesRead);
- SkASSERT(SkGPipeReader::kError_Status != fStatus);
- this->inval(NULL);
- }
-
-private:
- bool fSync;
- SkTDArray<char> fDataArray;
- SkTCPClient* fSocket;
- typedef SampleView INHERITED;
-};
-
-///////////////////////////////////////////////////////////////////////////////
-
-static SkView* MyFactory() { return new NetPipeReaderView; }
-static SkViewRegister reg(MyFactory);