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