diff --git a/experimental/PdfViewer/SkPdfGraphicsState.cpp b/experimental/PdfViewer/SkPdfGraphicsState.cpp
new file mode 100644
index 0000000..3e7f7a8
--- /dev/null
+++ b/experimental/PdfViewer/SkPdfGraphicsState.cpp
@@ -0,0 +1,43 @@
+#include "SkPdfGraphicsState.h"
+#include "SkPdfNativeTokenizer.h"
+
+#include "SkDashPathEffect.h"
+
+SkPdfContext::SkPdfContext(SkPdfNativeDoc* doc)
+    : fPdfDoc(doc)
+    , fTmpPageAllocator(new SkPdfAllocator()) {
+}
+
+SkPdfContext::~SkPdfContext() {
+    delete fTmpPageAllocator;
+}
+
+void SkPdfGraphicsState::applyGraphicsState(SkPaint* paint, bool stroking) {
+    if (stroking) {
+        fStroking.applyGraphicsState(paint);
+    } else {
+        fNonStroking.applyGraphicsState(paint);
+    }
+
+    // TODO(edisonn): get this from pdfContext->options,
+    // or pdfContext->addPaintOptions(&paint);
+    paint->setAntiAlias(true);
+
+    // TODO(edisonn): miter, ...
+    if (stroking) {
+        paint->setStrokeWidth(SkDoubleToScalar(fLineWidth));
+        // TODO(edisonn): perf, two sets of allocs, create SkDashPathEffect constr that takes ownership
+        // of the intervals
+        if (fDashArrayLength > 0) {
+            paint->setPathEffect(new SkDashPathEffect(fDashArray, fDashArrayLength, fDashPhase))->unref();
+        }
+    }
+
+    // TODO(edisonn): NYI multiple blend modes
+    if (fBlendModesLength == 1 && fBlendModes[0] != SkXfermode::kSrc_Mode) {
+        paint->setXfermodeMode(fBlendModes[0]);
+    }
+
+    //paint->setStrokeMiter(SkDoubleToScalar(fMiterLimit));
+    // TODO(edisonn): impl cap and join
+}
