Updated iOSSampleApp to display FPS and display in OpenGL
git-svn-id: http://skia.googlecode.com/svn/trunk@1879 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/experimental/iOSSampleApp/Shared/DrawingBoard/SkNetPipeController.cpp b/experimental/iOSSampleApp/Shared/DrawingBoard/SkNetPipeController.cpp
new file mode 100644
index 0000000..8b347d8
--- /dev/null
+++ b/experimental/iOSSampleApp/Shared/DrawingBoard/SkNetPipeController.cpp
@@ -0,0 +1,44 @@
+#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;
+}
\ No newline at end of file