diff --git a/experimental/CocoaSampleApp/SampleApp.xib b/experimental/CocoaSampleApp/SampleApp.xib
index 5983ea56e..074d52bbe 100644
--- a/experimental/CocoaSampleApp/SampleApp.xib
+++ b/experimental/CocoaSampleApp/SampleApp.xib
@@ -11,9 +11,9 @@
851
+
-
com.apple.InterfaceBuilder.CocoaPlugin
@@ -58,7 +58,7 @@
- 67239488
- 67110912
+ 68288064
+ 67241216
Text Cell
-
- LucidaGrande
- 13
- 1044
-
+
6
@@ -156,7 +152,11 @@
67239488
272630784
Text
-
+
+ LucidaGrande
+ 13
+ 1044
+
6
@@ -192,7 +192,7 @@
MC41AA
- 25
+ 35
1128267776
@@ -239,11 +239,12 @@
- QSAAAEEgAABB2AAAQdgAAA
+ QSAAAEEgAABCFAAAQhQAAA
{341, 321}
+ YES
NSView
@@ -969,6 +970,15 @@
+
712
+
+
+ toggleKeyEquivalents:
+
+
+
+ 719
+
@@ -2738,6 +2756,7 @@
+
@@ -3396,6 +3415,11 @@
+
+ 718
+
+
+
@@ -3509,7 +3533,7 @@
{74, 862}
{{6, 978}, {478, 20}}
com.apple.InterfaceBuilder.CocoaPlugin
- {{591, 416}, {242, 83}}
+ {{591, 396}, {279, 103}}
com.apple.InterfaceBuilder.CocoaPlugin
{{475, 832}, {234, 43}}
com.apple.InterfaceBuilder.CocoaPlugin
@@ -3631,7 +3655,7 @@
com.apple.InterfaceBuilder.CocoaPlugin
- P4AAAL+AAAAAAAAAxBNAAA
+ P4AAAL+AAAAAAAAAw5+AAA
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
@@ -3640,6 +3664,7 @@
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
+ SkTextFieldCell
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
@@ -3647,6 +3672,7 @@
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
@@ -3678,7 +3704,7 @@
- 712
+ 719
@@ -3745,11 +3771,30 @@
SkOptionsTableView
NSTableView
+
+ toggleKeyEquivalents:
+ id
+
+
+ toggleKeyEquivalents:
+
+ toggleKeyEquivalents:
+ id
+
+
IBProjectSource
../../experimental/CocoaSampleApp/SkOptionsTableView.h
+
+ SkTextFieldCell
+ NSTextFieldCell
+
+ IBProjectSource
+ ../../experimental/CocoaSampleApp/SkTextFieldCell.h
+
+
@@ -3926,7 +3971,7 @@
0
IBCocoaFramework
YES
- ../../out/gyp/SampleAppCocoa.xcodeproj
+ ../../out/gyp/CocoaSampleApp.xcodeproj
3
{9, 8}
diff --git a/experimental/CocoaSampleApp/SkNSView.h b/experimental/CocoaSampleApp/SkNSView.h
index bce8976fe..cd959f1b9 100644
--- a/experimental/CocoaSampleApp/SkNSView.h
+++ b/experimental/CocoaSampleApp/SkNSView.h
@@ -2,8 +2,8 @@
#import
#include "SampleApp.h"
-class SkOSWindow;
class SkEvent;
+class SkOSWindow;
@class SkNSView;
@protocol SkNSViewOptionsDelegate
@@ -18,7 +18,6 @@ class SkEvent;
NSString* fTitle;
SkOSWindow* fWind;
-
NSOpenGLContext* fGLContext;
id fOptionsDelegate;
}
diff --git a/experimental/CocoaSampleApp/SkNSView.mm b/experimental/CocoaSampleApp/SkNSView.mm
index 44b30d6b2..4ce3d3d43 100644
--- a/experimental/CocoaSampleApp/SkNSView.mm
+++ b/experimental/CocoaSampleApp/SkNSView.mm
@@ -1,11 +1,8 @@
#import "SkNSView.h"
#include "SkApplication.h"
#include "SkCanvas.h"
-#include "GrContext.h"
#include "SkCGUtils.h"
#include "SkEvent.h"
-#include "GrGLInterface.h"
-#include "SkGpuDevice.h"
//#define FORCE_REDRAW
@implementation SkNSView
@@ -43,8 +40,8 @@
}
-(BOOL) inLiveResize {
- if (fWind != NULL) {
- NSSize s = [self frame].size;
+ NSSize s = [self frame].size;
+ if (fWind != NULL && fWind->width() != s.width && fWind->height() != s.height) {
fWind->resize(s.width, s.height);
[fGLContext update];
}
@@ -59,27 +56,40 @@
[super dealloc];
}
-- (void)layoutSubviews {
- NSSize rect = self.bounds.size;
- fWind->resize(rect.width, rect.height);
- fWind->inval(NULL);
-}
-
///////////////////////////////////////////////////////////////////////////////
-- (void)drawWithCanvas:(SkCanvas*)canvas {
+- (void)drawSkia {
fRedrawRequestPending = false;
- fWind->draw(canvas);
+ SkCanvas canvas(fWind->getBitmap());
+ fWind->draw(&canvas);
#ifdef FORCE_REDRAW
fWind->inval(NULL);
#endif
}
-- (void)drawRect:(NSRect)dirtyRect {
- SkCanvas canvas(fWind->getBitmap());
- [self drawWithCanvas:&canvas];
- CGContextRef ctx = (CGContextRef)[[NSGraphicsContext currentContext] graphicsPort];
- SkCGDrawBitmap(ctx, fWind->getBitmap(), 0, 0);
+- (void)setSkTitle:(const char *)title {
+ self.fTitle = [NSString stringWithUTF8String:title];
+ [[self window] setTitle:self.fTitle];
+}
+
+- (BOOL)onHandleEvent:(const SkEvent&)evt {
+ return false;
+}
+
+#include "SkOSMenu.h"
+- (void)onAddMenu:(const SkOSMenu*)menu {
+ [self.fOptionsDelegate view:self didAddMenu:menu];
+}
+
+- (void)onUpdateMenu:(const SkOSMenu*)menu {
+ [self.fOptionsDelegate view:self didUpdateMenu:menu];
+}
+
+- (void)postInvalWithRect:(const SkIRect*)r {
+ if (!fRedrawRequestPending) {
+ fRedrawRequestPending = true;
+ [self performSelector:@selector(drawSkia) withObject:nil afterDelay:0];
+ }
}
///////////////////////////////////////////////////////////////////////////////
@@ -121,7 +131,7 @@ static SkKey raw2key(UInt32 raw)
{ SK_Mac1Key, k1_SkKey },
{ SK_Mac2Key, k2_SkKey },
{ SK_Mac3Key, k3_SkKey },
- { SK_Mac4Key, k4_SkKey },
+ { SK_Mac4Key, k4_SkKey },
{ SK_Mac5Key, k5_SkKey },
{ SK_Mac6Key, k6_SkKey },
{ SK_Mac7Key, k7_SkKey },
@@ -179,34 +189,16 @@ static SkKey raw2key(UInt32 raw)
}
}
-///////////////////////////////////////////////////////////////////////////////
-
-- (void)setSkTitle:(const char *)title {
- NSString* text = [NSString stringWithUTF8String:title];
- if ([text length] > 0)
- self.fTitle = text;
- [[self window] setTitle:fTitle];
+- (void)swipeWithEvent:(NSEvent *)event {
+ CGFloat x = [event deltaX];
+ if (x < 0)
+ ((SampleWindow*)fWind)->previousSample();
+ else if (x > 0)
+ ((SampleWindow*)fWind)->nextSample();
+ else
+ ((SampleWindow*)fWind)->showOverview();
}
-- (BOOL)onHandleEvent:(const SkEvent&)evt {
- return false;
-}
-
-#include "SkOSMenu.h"
-- (void)onAddMenu:(const SkOSMenu*)menu {
- [self.fOptionsDelegate view:self didAddMenu:menu];
-}
-
-- (void)onUpdateMenu:(const SkOSMenu*)menu {
- [self.fOptionsDelegate view:self didUpdateMenu:menu];
-}
-
-- (void)postInvalWithRect:(const SkIRect*)r {
- if (!fRedrawRequestPending) {
- fRedrawRequestPending = true;
- [self performSelector:@selector(display) withObject:nil afterDelay:0];
- }
-}
///////////////////////////////////////////////////////////////////////////////
#include
diff --git a/experimental/CocoaSampleApp/SkOSWindow_Mac.mm b/experimental/CocoaSampleApp/SkOSWindow_Mac.mm
index d56aa9bc8..dd94ea399 100644
--- a/experimental/CocoaSampleApp/SkOSWindow_Mac.mm
+++ b/experimental/CocoaSampleApp/SkOSWindow_Mac.mm
@@ -19,7 +19,7 @@ SkOSWindow::~SkOSWindow() {
void SkOSWindow::onHandleInval(const SkIRect& r) {
if (!fInvalEventIsPending) {
fInvalEventIsPending = true;
- (new SkEvent(kINVAL_NSVIEW_EventType))->post(this->getSinkID());
+ (new SkEvent(kINVAL_NSVIEW_EventType, this->getSinkID()))->post();
}
}
diff --git a/experimental/CocoaSampleApp/SkOptionsTableView.h b/experimental/CocoaSampleApp/SkOptionsTableView.h
index d9e77e280..33dc29f35 100644
--- a/experimental/CocoaSampleApp/SkOptionsTableView.h
+++ b/experimental/CocoaSampleApp/SkOptionsTableView.h
@@ -13,16 +13,17 @@
@interface SkOptionsTableView : NSTableView {
NSMutableArray* fItems;
const SkTDArray* fMenus;
+ BOOL fShowKeys;
}
@property (nonatomic, retain) NSMutableArray* fItems;
- (void)registerMenus:(const SkTDArray*)menus;
- (void)updateMenu:(const SkOSMenu*)menu;
- (void)loadMenu:(const SkOSMenu*)menu;
+- (IBAction)toggleKeyEquivalents:(id)sender;
- (NSCell*)createAction;
- (NSCell*)createList:(NSArray*)items current:(int)index;
-- (NSCell*)createSegmented:(NSArray*)items current:(int)index;
- (NSCell*)createSlider:(float)value min:(float)min max:(float)max;
- (NSCell*)createSwitch:(BOOL)state;
- (NSCell*)createTextField:(NSString*)placeHolder;
diff --git a/experimental/CocoaSampleApp/SkOptionsTableView.mm b/experimental/CocoaSampleApp/SkOptionsTableView.mm
index 38b6da6ce..2a0cd3038 100644
--- a/experimental/CocoaSampleApp/SkOptionsTableView.mm
+++ b/experimental/CocoaSampleApp/SkOptionsTableView.mm
@@ -15,6 +15,8 @@
if ((self = [super initWithCoder:coder])) {
self.dataSource = self;
self.delegate = self;
+ fMenus = NULL;
+ fShowKeys = YES;
[self setSelectionHighlightStyle:NSTableViewSelectionHighlightStyleNone];
self.fItems = [NSMutableArray array];
}
@@ -31,6 +33,13 @@
[self updateMenu:menu];
}
+- (IBAction)toggleKeyEquivalents:(id)sender {
+ fShowKeys = !fShowKeys;
+ NSMenuItem* item = (NSMenuItem*)sender;
+ [item setState:fShowKeys];
+ [self reloadData];
+}
+
- (void)registerMenus:(const SkTDArray*)menus {
fMenus = menus;
for (NSUInteger i = 0; i < fMenus->count(); ++i) {
@@ -65,47 +74,53 @@
- (void)loadMenu:(const SkOSMenu*)menu {
for (int i = 0; i < menu->countItems(); ++i) {
const SkOSMenu::Item* item = menu->getItem(i);
- NSString* str;
- int index = 0;
- NSArray* optionstrs = nil;
-
SkOptionItem* option = [[SkOptionItem alloc] init];
option.fItem = item;
- bool state = false;
- SkOSMenu::TriState tristate;
- switch (item->getType()) {
- case SkOSMenu::kAction_Type:
- option.fCell = [self createAction];
- break;
- case SkOSMenu::kList_Type:
- optionstrs = [[NSString stringWithUTF8String:item->getEvent()->findString(SkOSMenu::List_Items_Str)]
- componentsSeparatedByString:[NSString stringWithUTF8String:SkOSMenu::Delimiter]];
- item->getEvent()->findS32(item->getSlotName(), &index);
- option.fCell = [self createList:optionstrs current:index];
- break;
- case SkOSMenu::kSlider_Type:
- SkScalar min, max, value;
- item->getEvent()->findScalar(SkOSMenu::Slider_Min_Scalar, &min);
- item->getEvent()->findScalar(SkOSMenu::Slider_Max_Scalar, &max);
- item->getEvent()->findScalar(item->getSlotName(), &value);
- option.fCell = [self createSlider:value
- min:min
- max:max];
- break;
- case SkOSMenu::kSwitch_Type:
- item->getEvent()->findBool(item->getSlotName(), &state);
- option.fCell = [self createSwitch:(BOOL)state];
- break;
- case SkOSMenu::kTriState_Type:
- item->getEvent()->findS32(item->getSlotName(), (int*)&tristate);
- option.fCell = [self createTriState:[self triStateToNSState:tristate]];
- break;
- case SkOSMenu::kTextField_Type:
- str = [NSString stringWithUTF8String:item->getEvent()->findString(item->getSlotName())];
- option.fCell = [self createTextField:str];
- break;
- default:
- break;
+
+ if (SkOSMenu::kList_Type == item->getType()) {
+ int index = 0, count = 0;
+ SkOSMenu::FindListItemCount(item->getEvent(), &count);
+ NSMutableArray* optionstrs = [[NSMutableArray alloc] initWithCapacity:count];
+ SkString options[count];
+ SkOSMenu::FindListItems(item->getEvent(), options);
+ for (int i = 0; i < count; ++i)
+ [optionstrs addObject:[NSString stringWithUTF8String:options[i].c_str()]];
+ SkOSMenu::FindListIndex(item->getEvent(), item->getSlotName(), &index);
+ option.fCell = [self createList:optionstrs current:index];
+ [optionstrs release];
+ }
+ else {
+ bool state = false;
+ SkString str;
+ SkOSMenu::TriState tristate;
+ switch (item->getType()) {
+ case SkOSMenu::kAction_Type:
+ option.fCell = [self createAction];
+ break;
+ case SkOSMenu::kSlider_Type:
+ SkScalar min, max, value;
+ SkOSMenu::FindSliderValue(item->getEvent(), item->getSlotName(), &value);
+ SkOSMenu::FindSliderMin(item->getEvent(), &min);
+ SkOSMenu::FindSliderMax(item->getEvent(), &max);
+ option.fCell = [self createSlider:value
+ min:min
+ max:max];
+ break;
+ case SkOSMenu::kSwitch_Type:
+ SkOSMenu::FindSwitchState(item->getEvent(), item->getSlotName(), &state);
+ option.fCell = [self createSwitch:(BOOL)state];
+ break;
+ case SkOSMenu::kTriState_Type:
+ SkOSMenu::FindTriState(item->getEvent(), item->getSlotName(), &tristate);
+ option.fCell = [self createTriState:[self triStateToNSState:tristate]];
+ break;
+ case SkOSMenu::kTextField_Type:
+ SkOSMenu::FindText(item->getEvent(),item->getSlotName(), &str);
+ option.fCell = [self createTextField:[NSString stringWithUTF8String:str.c_str()]];
+ break;
+ default:
+ break;
+ }
}
[fItems addObject:option];
[option release];
@@ -118,8 +133,14 @@
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
int columnIndex = [tableView columnWithIdentifier:[tableColumn identifier]];
- if (columnIndex == 0)
- return [NSString stringWithUTF8String:((SkOptionItem*)[fItems objectAtIndex:row]).fItem->getLabel()];
+ if (columnIndex == 0) {
+ const SkOSMenu::Item* item = ((SkOptionItem*)[fItems objectAtIndex:row]).fItem;
+ NSString* label = [NSString stringWithUTF8String:item->getLabel()];
+ if (fShowKeys)
+ return [NSString stringWithFormat:@"%@ (%c)", label, item->getKeyEquivalent()];
+ else
+ return label;
+ }
else
return nil;
}
@@ -151,7 +172,6 @@
[cell setFloatValue:[storedCell floatValue]];
break;
case SkOSMenu::kSwitch_Type:
- [cell setTitle:storedCell.title];
[cell setState:[(NSButtonCell*)storedCell state]];
break;
case SkOSMenu::kTextField_Type:
@@ -159,7 +179,6 @@
[cell setStringValue:[storedCell stringValue]];
break;
case SkOSMenu::kTriState_Type:
- [cell setTitle:storedCell.title];
[cell setState:[(NSButtonCell*)storedCell state]];
break;
default:
@@ -226,19 +245,6 @@
return cell;
}
-- (NSCell*)createSegmented:(NSArray*)items current:(int)index {
- NSSegmentedCell* cell = [[[NSSegmentedCell alloc] init] autorelease];
- [cell setSegmentStyle:NSSegmentStyleSmallSquare];
- [cell setSegmentCount:[items count]];
- NSUInteger i = 0;
- for (NSString* label in items) {
- [cell setLabel:label forSegment:i];
- ++i;
- }
- [cell setSelectedSegment:index];
- return cell;
-}
-
- (NSCell*)createSlider:(float)value min:(float)min max:(float)max {
NSSliderCell* cell = [[[NSSliderCell alloc] init] autorelease];
[cell setFloatValue:value];
@@ -249,8 +255,8 @@
- (NSCell*)createSwitch:(BOOL)state {
NSButtonCell* cell = [[[NSButtonCell alloc] init] autorelease];
- [cell setTitle:(state) ? @"On" : @"Off"];
[cell setState:state];
+ [cell setTitle:@""];
[cell setButtonType:NSSwitchButton];
return cell;
}
@@ -265,15 +271,10 @@
- (NSCell*)createTriState:(NSCellStateValue)state {
NSButtonCell* cell = [[[NSButtonCell alloc] init] autorelease];
- if (NSOnState == state)
- [cell setTitle:@"On"];
- else if (NSOffState == state)
- [cell setTitle:@"Off"];
- else
- [cell setTitle:@"Mixed"];
[cell setAllowsMixedState:TRUE];
+ [cell setTitle:@""];
[cell setState:(NSInteger)state];
[cell setButtonType:NSSwitchButton];
return cell;
}
-@end
+@end
\ No newline at end of file
diff --git a/experimental/CocoaSampleApp/main.m b/experimental/CocoaSampleApp/main.m
index 55fa1da67..cba864a86 100644
--- a/experimental/CocoaSampleApp/main.m
+++ b/experimental/CocoaSampleApp/main.m
@@ -2,6 +2,7 @@
int main(int argc, char *argv[])
{
+ signal(SIGPIPE, SIG_IGN);
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = NSApplicationMain(argc, (const char **)argv);
[pool release];
diff --git a/experimental/DrawingBoard/SampleDrawingClient.cpp b/experimental/DrawingBoard/SampleDrawingClient.cpp
new file mode 100644
index 000000000..9885d518f
--- /dev/null
+++ b/experimental/DrawingBoard/SampleDrawingClient.cpp
@@ -0,0 +1,250 @@
+#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"
+
+#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 = SkFloatToScalar(2.5);
+ fAA = false;
+ fPaletteVisible = true;
+ fSync = false;
+ fVector = false;
+ }
+ ~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;
+ SkCanvas bufferCanvas(fBase);
+ SkCanvas* tempCanvas;
+ while (fTotalBytesRead < fData.count()) {
+ if (fVector)
+ tempCanvas = canvas;
+ else
+ tempCanvas = &bufferCanvas;
+ SkGPipeReader reader(tempCanvas);
+ SkGPipeReader::Status 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);
+ reader.playback(fBuffer.begin() + totalBytesRead,
+ fBuffer.count() - totalBytesRead,
+ &bytesRead);
+
+ 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 fData;
+ SkTDArray 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
new file mode 100644
index 000000000..6542b5889
--- /dev/null
+++ b/experimental/DrawingBoard/SampleDrawingServer.cpp
@@ -0,0 +1,200 @@
+#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
- 536
+ 650
@@ -3630,9 +3973,20 @@
SampleWindow
SkNSWindow
+
+ fView
+ SkNSView
+
+
+ fView
+
+ fView
+ SkNSView
+
+
IBProjectSource
- SampleWindow.h
+ ../../experimental/SimpleCocoaApp/SampleWindow.h
@@ -3651,7 +4005,7 @@
IBProjectSource
- SimpleCocoaAppDelegate.h
+ ../../experimental/SimpleCocoaApp/SimpleCocoaAppDelegate.h
@@ -3659,31 +4013,28 @@
NSView
IBProjectSource
- SkNSView.h
+ ../../experimental/SimpleCocoaApp/SkNSView.h
SkNSWindow
NSWindow
-
- fView
- SkNSView
-
-
- fView
-
- fView
- SkNSView
-
-
IBProjectSource
- SkNSWindow.h
+ ../../experimental/SimpleCocoaApp/SkNSWindow.h
YES
+
+ NSActionCell
+ NSCell
+
+ IBFrameworkSource
+ AppKit.framework/Headers/NSActionCell.h
+
+
NSApplication
NSResponder
@@ -3735,6 +4086,30 @@
AppKit.framework/Headers/NSBrowser.h
+
+ NSButton
+ NSControl
+
+ IBFrameworkSource
+ AppKit.framework/Headers/NSButton.h
+
+
+
+ NSButtonCell
+ NSActionCell
+
+ IBFrameworkSource
+ AppKit.framework/Headers/NSButtonCell.h
+
+
+
+ NSCell
+ NSObject
+
+ IBFrameworkSource
+ AppKit.framework/Headers/NSCell.h
+
+
NSControl
NSView
@@ -3872,6 +4247,14 @@
AppKit.framework/Headers/NSDocumentController.h
+
+ NSDrawer
+ NSResponder
+
+ IBFrameworkSource
+ AppKit.framework/Headers/NSDrawer.h
+
+
NSFontManager
NSObject
@@ -3880,14 +4263,6 @@
AppKit.framework/Headers/NSFontManager.h
-
- NSFormatter
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSFormatter.h
-
-
NSMatrix
NSControl
@@ -4032,133 +4407,7 @@
NSObject
IBFrameworkSource
- Foundation.framework/Headers/NSArchiver.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSClassDescription.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSError.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSFileManager.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueCoding.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueObserving.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyedArchiver.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSObject.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSObjectScripting.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSPortCoder.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSRunLoop.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSScriptClassDescription.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSScriptKeyValueCoding.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSScriptObjectSpecifiers.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSScriptWhoseTests.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSThread.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURL.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURLConnection.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURLDownload.h
+ PrintCore.framework/Headers/PDEPluginInterface.h
@@ -4176,6 +4425,30 @@
AppKit.framework/Headers/NSResponder.h
+
+ NSScrollView
+ NSView
+
+ IBFrameworkSource
+ AppKit.framework/Headers/NSScrollView.h
+
+
+
+ NSScroller
+ NSControl
+
+ IBFrameworkSource
+ AppKit.framework/Headers/NSScroller.h
+
+
+
+ NSTableColumn
+ NSObject
+
+ IBFrameworkSource
+ AppKit.framework/Headers/NSTableColumn.h
+
+
NSTableView
NSControl
@@ -4189,6 +4462,14 @@
AppKit.framework/Headers/NSText.h
+
+ NSTextFieldCell
+ NSActionCell
+
+ IBFrameworkSource
+ AppKit.framework/Headers/NSTextFieldCell.h
+
+
NSTextView
NSText
@@ -4222,10 +4503,7 @@
NSWindow
-
- IBFrameworkSource
- AppKit.framework/Headers/NSDrawer.h
-
+
NSWindow
@@ -4246,16 +4524,12 @@
0
IBCocoaFramework
-
- com.apple.InterfaceBuilder.CocoaPlugin.macosx
-
-
com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3
YES
- ../SimpleCocoaApp.xcodeproj
+ ../../../out/gyp/SimpleCocoaApp.xcodeproj
3
YES
diff --git a/experimental/SkEventNotifier.mm b/experimental/SkEventNotifier.mm
index 5e93b13f8..f4f8a637f 100644
--- a/experimental/SkEventNotifier.mm
+++ b/experimental/SkEventNotifier.mm
@@ -2,7 +2,6 @@
#include "SkEvent.h"
#define SkEventClass @"SkEvenClass"
@implementation SkEventNotifier
-//Overwritten from NSObject
- (id)init {
self = [super init];
if (self) {
@@ -44,9 +43,12 @@
@end
////////////////////////////////////////////////////////////////////////////////
void SkEvent::SignalNonEmptyQueue() {
- //post a SkEventClass event to the default notification center
- [[NSNotificationCenter defaultCenter] postNotificationName:SkEventClass
- object:nil];
+ //post a SkEventClass event to the default notification queue
+ NSNotification* notification = [NSNotification notificationWithName:SkEventClass object:nil];
+ [[NSNotificationQueue defaultQueue] enqueueNotification:notification
+ postingStyle:NSPostWhenIdle
+ coalesceMask:NSNotificationNoCoalescing
+ forModes:nil];
}
void SkEvent::SignalQueueTimer(SkMSec delay) {
diff --git a/experimental/iOSSampleApp/Shared/SkAlertPrompt.h b/experimental/iOSSampleApp/Shared/SkAlertPrompt.h
deleted file mode 100644
index 51a1a5b1f..000000000
--- a/experimental/iOSSampleApp/Shared/SkAlertPrompt.h
+++ /dev/null
@@ -1,18 +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.
- */
-
-#import
-
-
-@interface SkAlertPrompt : UIAlertView {
- UITextField *textField;
-}
-@property (nonatomic, retain) UITextField *textField;
-
-- (NSString*)enteredText;
-
-@end
diff --git a/experimental/iOSSampleApp/Shared/SkAlertPrompt.m b/experimental/iOSSampleApp/Shared/SkAlertPrompt.m
deleted file mode 100644
index be0adf520..000000000
--- a/experimental/iOSSampleApp/Shared/SkAlertPrompt.m
+++ /dev/null
@@ -1,49 +0,0 @@
-//
-// SkAlertPrompt.m
-// iOSSampleApp
-//
-// Created by Yang Su on 7/6/11.
-// Copyright 2011 Google Inc.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-#import "SkAlertPrompt.h"
-
-@implementation SkAlertPrompt
-@synthesize textField;
-
-- (id)initWithTitle:(NSString *)title
- message:(NSString *)message
- delegate:(id)delegate
- cancelButtonTitle:(NSString *)cancelButtonTitle
- otherButtonTitles:(NSString *)okayButtonTitle,... {
- if (self = [super initWithTitle:title
- message:message
- delegate:delegate
- cancelButtonTitle:cancelButtonTitle
- otherButtonTitles:okayButtonTitle, nil]) {
- self.textField = [[UITextField alloc]
- initWithFrame:CGRectMake(12, 45, 260, 25)];
- [self.textField setBackgroundColor:[UIColor whiteColor]];
- textField.borderStyle = UITextBorderStyleLine;
- [self addSubview:self.textField];
- }
- return self;
-}
-
-- (void)show {
- [textField becomeFirstResponder];
- [super show];
-}
-
-- (NSString *)enteredText {
- return textField.text;
-}
-
-- (void)dealloc {
- [textField release];
- [super dealloc];
-}
-
-@end
diff --git a/experimental/iOSSampleApp/Shared/SkOptionsTableViewController.h b/experimental/iOSSampleApp/Shared/SkOptionsTableViewController.h
index 9c715aaa7..2c9f39180 100644
--- a/experimental/iOSSampleApp/Shared/SkOptionsTableViewController.h
+++ b/experimental/iOSSampleApp/Shared/SkOptionsTableViewController.h
@@ -36,7 +36,7 @@
- (UITableViewCell*)createSlider:(NSString*)title min:(float)min max:(float)max default:(float)value;
- (UITableViewCell*)createSwitch:(NSString*)title default:(BOOL)state;
- (UITableViewCell*)createTriState:(NSString*)title default:(int)index;
-- (UITableViewCell*)createTextField:(NSString*)title default:(const char*)value;
+- (UITableViewCell*)createTextField:(NSString*)title default:(NSString*)value;
- (UITableViewCell*)createList:(NSString*)title default:(NSString*)value;
@end
diff --git a/experimental/iOSSampleApp/Shared/SkOptionsTableViewController.mm b/experimental/iOSSampleApp/Shared/SkOptionsTableViewController.mm
index 46a7b29b7..29f2c7e9f 100644
--- a/experimental/iOSSampleApp/Shared/SkOptionsTableViewController.mm
+++ b/experimental/iOSSampleApp/Shared/SkOptionsTableViewController.mm
@@ -70,22 +70,22 @@
const SkOSMenu::Item* item = menu->getItem(i);
NSString* title = [NSString stringWithUTF8String:item->getLabel()];
- int index = 0;
- NSArray* optionstrs = nil;
if (SkOSMenu::kList_Type == item->getType()) {
+ int value = 0;
SkOptionListItem* List = [[SkOptionListItem alloc] init];
- //List.fCmdID = item->fOSCmd;
- //List.getEvent() = item->getEvent();
+
List.fItem = item;
List.fOptions = [[SkOptionListController alloc] initWithStyle:UITableViewStyleGrouped];
- NSArray* optionstrs = [[NSString stringWithUTF8String:item->getEvent()->findString(SkOSMenu::List_Items_Str)]
- componentsSeparatedByString:[NSString stringWithUTF8String:SkOSMenu::Delimiter]];
- for (NSString* optionstr in optionstrs) {
- [List.fOptions addOption:optionstr];
- }
- item->getEvent()->findS32(item->getSlotName(), &index);
- List.fOptions.fSelectedIndex = index;
+ int count = 0;
+ SkOSMenu::FindListItemCount(item->getEvent(), &count);
+ SkString options[count];
+ SkOSMenu::FindListItems(item->getEvent(), options);
+ for (int i = 0; i < count; ++i)
+ [List.fOptions addOption:[NSString stringWithUTF8String:options[i].c_str()]];
+ SkOSMenu::FindListIndex(item->getEvent(), item->getSlotName(), &value);
+
+ List.fOptions.fSelectedIndex = value;
List.fCell = [self createList:title
default:[List.fOptions getSelectedOption]];
List.fOptions.fParentCell = List.fCell;
@@ -95,32 +95,36 @@
else {
SkOptionItem* option = [[SkOptionItem alloc] init];
option.fItem = item;
+
bool state = false;
+ SkString str;
+ SkOSMenu::TriState tristate;
switch (item->getType()) {
case SkOSMenu::kAction_Type:
option.fCell = [self createAction:title];
break;
case SkOSMenu::kSwitch_Type:
- item->getEvent()->findBool(item->getSlotName(), &state);
+ SkOSMenu::FindSwitchState(item->getEvent(), item->getSlotName(), &state);
option.fCell = [self createSwitch:title default:(BOOL)state];
break;
case SkOSMenu::kSlider_Type:
SkScalar min, max, value;
- item->getEvent()->findScalar(SkOSMenu::Slider_Min_Scalar, &min);
- item->getEvent()->findScalar(SkOSMenu::Slider_Max_Scalar, &max);
- item->getEvent()->findScalar(item->getSlotName(), &value);
+ SkOSMenu::FindSliderValue(item->getEvent(), item->getSlotName(), &value);
+ SkOSMenu::FindSliderMin(item->getEvent(), &min);
+ SkOSMenu::FindSliderMax(item->getEvent(), &max);
option.fCell = [self createSlider:title
min:min
max:max
default:value];
break;
case SkOSMenu::kTriState_Type:
- item->getEvent()->findS32(item->getSlotName(), &index);
- option.fCell = [self createTriState:title default:index];
+ SkOSMenu::FindTriState(item->getEvent(), item->getSlotName(), &tristate);
+ option.fCell = [self createTriState:title default:(int)tristate];
break;
case SkOSMenu::kTextField_Type:
+ SkOSMenu::FindText(item->getEvent(), item->getSlotName(), &str);
option.fCell = [self createTextField:title
- default:item->getEvent()->findString(item->getSlotName())];
+ default:[NSString stringWithUTF8String:str.c_str()]];
break;
default:
break;
@@ -225,7 +229,7 @@
}
- (UITableViewCell*)createTextField:(NSString*)title
- default:(const char*)value {
+ default:(NSString*)value {
UITableViewCell* cell = [[[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleValue1
reuseIdentifier:nil] autorelease];
@@ -236,7 +240,7 @@
textField.adjustsFontSizeToFitWidth = YES;
textField.textAlignment = UITextAlignmentRight;
textField.textColor = cell.detailTextLabel.textColor;
- textField.placeholder = [NSString stringWithUTF8String:value];
+ textField.placeholder = value;
textField.returnKeyType = UIReturnKeyDone;
[textField addTarget:self
action:@selector(valueChanged:)
@@ -280,7 +284,7 @@
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
- id item = [fItems objectAtIndex:indexPath.row];
+ id item = [fItems objectAtIndex:[self convertPathToIndex:indexPath]];
if ([item isKindOfClass:[SkOptionListItem class]]) {
SkOptionListItem* list = (SkOptionListItem*)item;
diff --git a/experimental/iOSSampleApp/Shared/SkUIDetailViewController.mm b/experimental/iOSSampleApp/Shared/SkUIDetailViewController.mm
index 95aa88e6c..f4976b56c 100644
--- a/experimental/iOSSampleApp/Shared/SkUIDetailViewController.mm
+++ b/experimental/iOSSampleApp/Shared/SkUIDetailViewController.mm
@@ -1,7 +1,6 @@
#import "SkAlertPrompt.h"
#import "SkUIDetailViewController.h"
#include "SampleApp.h"
-#include "SkApplication.h"
#include "SkCGUtils.h"
#include "SkData.h"
#include "SkOSMenu.h"
@@ -19,10 +18,23 @@
[self createButtons];
+ UISwipeGestureRecognizer* swipe = [[UISwipeGestureRecognizer alloc]
+ initWithTarget:self
+ action:@selector(handleSwipe:)];
+ [self.navigationController.navigationBar addGestureRecognizer:swipe];
+ [swipe release];
+ swipe = [[UISwipeGestureRecognizer alloc]
+ initWithTarget:self
+ action:@selector(handleSwipe:)];
+ swipe.direction = UISwipeGestureRecognizerDirectionLeft;
+ [self.navigationController.navigationBar addGestureRecognizer:swipe];
+ [swipe release];
+
fOptionsController = [[SkOptionsTableViewController alloc]
initWithStyle:UITableViewStyleGrouped];
fSkUIView.fOptionsDelegate = fOptionsController;
[fOptionsController registerMenus:fWind->getMenus()];
+
}
- (void)createButtons {
@@ -62,6 +74,13 @@
[toolbar release];
}
+- (void)handleSwipe:(UISwipeGestureRecognizer *)sender {
+ if (UISwipeGestureRecognizerDirectionRight == sender.direction)
+ fWind->previousSample();
+ else
+ fWind->nextSample();
+}
+
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES; // Overriden to allow auto rotation for any direction
}
@@ -71,7 +90,6 @@
[fOptionsButton release];
[fPopOverController release];
[fOptionsController release];
- application_term();
[super dealloc];
}
diff --git a/experimental/iOSSampleApp/Shared/SkUIView.h b/experimental/iOSSampleApp/Shared/SkUIView.h
index 76d660daa..49f7e1608 100644
--- a/experimental/iOSSampleApp/Shared/SkUIView.h
+++ b/experimental/iOSSampleApp/Shared/SkUIView.h
@@ -15,7 +15,8 @@
#include "SkMatrix.h"
#include "FlingState.h"
#include "SampleApp.h"
-#include "SkiOSDeviceManager.h"
+
+class SkiOSDeviceManager;
class SkOSWindow;
class SkEvent;
struct FPSState;
@@ -30,7 +31,7 @@ struct FPSState;
@interface SkUIView : UIView {
BOOL fRedrawRequestPending;
-
+
struct {
EAGLContext* fContext;
GLuint fRenderbuffer;
diff --git a/experimental/iOSSampleApp/Shared/SkUIView.mm b/experimental/iOSSampleApp/Shared/SkUIView.mm
index d60763ec2..c6f1e22cd 100644
--- a/experimental/iOSSampleApp/Shared/SkUIView.mm
+++ b/experimental/iOSSampleApp/Shared/SkUIView.mm
@@ -15,71 +15,82 @@
#include "GrGLInterface.h"
#include "SkGpuDevice.h"
#include "SkCGUtils.h"
-
-SkiOSDeviceManager::SkiOSDeviceManager() {
- fGrContext = NULL;
- fGrRenderTarget = NULL;
- usingGL = false;
-}
-
-SkiOSDeviceManager::~SkiOSDeviceManager() {
- SkSafeUnref(fGrContext);
- SkSafeUnref(fGrRenderTarget);
-}
-
-void SkiOSDeviceManager::init(SampleWindow* win) {
- win->attachGL();
- if (NULL == fGrContext) {
-#ifdef USE_GL_1
- fGrContext = GrContext::Create(kOpenGL_Fixed_GrEngine, NULL);
-#else
- fGrContext = GrContext::Create(kOpenGL_Shaders_GrEngine, NULL);
-#endif
- }
- fGrRenderTarget = SkGpuDevice::Current3DApiRenderTarget();
- if (NULL == fGrContext) {
- SkDebugf("Failed to setup 3D");
- win->detachGL();
- }
-}
-bool SkiOSDeviceManager::supportsDeviceType(SampleWindow::DeviceType dType) {
- switch (dType) {
- case SampleWindow::kRaster_DeviceType:
- case SampleWindow::kPicture_DeviceType: // fallthru
- return true;
- case SampleWindow::kGPU_DeviceType:
- return NULL != fGrContext;
- default:
- return false;
- }
-}
-bool SkiOSDeviceManager::prepareCanvas(SampleWindow::DeviceType dType,
- SkCanvas* canvas,
- SampleWindow* win) {
- if (SampleWindow::kGPU_DeviceType == dType) {
- canvas->setDevice(new SkGpuDevice(fGrContext, fGrRenderTarget))->unref();
- usingGL = true;
- }
- else {
- //The clip needs to be applied with a device attached to the canvas
- canvas->setBitmapDevice(win->getBitmap());
+class SkiOSDeviceManager : public SampleWindow::DeviceManager {
+public:
+ SkiOSDeviceManager() {
+ fGrContext = NULL;
+ fGrRenderTarget = NULL;
usingGL = false;
}
- return true;
-}
-
-void SkiOSDeviceManager::publishCanvas(SampleWindow::DeviceType dType,
- SkCanvas* canvas,
- SampleWindow* win) {
- if (SampleWindow::kGPU_DeviceType == dType) {
- fGrContext->flush();
+ virtual ~SkiOSDeviceManager() {
+ SkSafeUnref(fGrContext);
+ SkSafeUnref(fGrRenderTarget);
}
- else {
- //CGContextRef cg = UIGraphicsGetCurrentContext();
- //SkCGDrawBitmap(cg, win->getBitmap(), 0, 0);
+
+ virtual void init(SampleWindow* win) {
+ win->attachGL();
+ if (NULL == fGrContext) {
+#ifdef USE_GL_1
+ fGrContext = GrContext::Create(kOpenGL_Fixed_GrEngine, NULL);
+#else
+ fGrContext = GrContext::Create(kOpenGL_Shaders_GrEngine, NULL);
+#endif
+ }
+ fGrRenderTarget = SkGpuDevice::Current3DApiRenderTarget();
+ if (NULL == fGrContext) {
+ SkDebugf("Failed to setup 3D");
+ win->detachGL();
+ }
+ }
+
+ virtual bool supportsDeviceType(SampleWindow::DeviceType dType) {
+ switch (dType) {
+ case SampleWindow::kRaster_DeviceType:
+ case SampleWindow::kPicture_DeviceType: // fallthru
+ return true;
+ case SampleWindow::kGPU_DeviceType:
+ return NULL != fGrContext;
+ default:
+ return false;
+ }
}
- win->presentGL();
-}
+ virtual bool prepareCanvas(SampleWindow::DeviceType dType,
+ SkCanvas* canvas,
+ SampleWindow* win) {
+ if (SampleWindow::kGPU_DeviceType == dType) {
+ canvas->setDevice(new SkGpuDevice(fGrContext, fGrRenderTarget))->unref();
+ usingGL = true;
+ }
+ else {
+ //The clip needs to be applied with a device attached to the canvas
+ canvas->setBitmapDevice(win->getBitmap());
+ usingGL = false;
+ }
+ return true;
+ }
+ virtual void publishCanvas(SampleWindow::DeviceType dType,
+ SkCanvas* canvas,
+ SampleWindow* win) {
+ if (SampleWindow::kGPU_DeviceType == dType) {
+ fGrContext->flush();
+ }
+ else {
+ //CGContextRef cg = UIGraphicsGetCurrentContext();
+ //SkCGDrawBitmap(cg, win->getBitmap(), 0, 0);
+ }
+ win->presentGL();
+ }
+
+ virtual void windowSizeChanged(SampleWindow* win) {}
+
+ bool isUsingGL() { return usingGL; }
+
+ virtual GrContext* getGrContext() { return fGrContext; }
+private:
+ bool usingGL;
+ GrContext* fGrContext;
+ GrRenderTarget* fGrRenderTarget;
+};
////////////////////////////////////////////////////////////////////////////////
@implementation SkUIView
@@ -90,17 +101,8 @@ void SkiOSDeviceManager::publishCanvas(SampleWindow::DeviceType dType,
#include "SkEvent.h"
#include "SkWindow.h"
-static float gScreenScale = 1;
-
#define kREDRAW_UIVIEW_GL "sk_redraw_uiview_gl_iOS"
-static const float SCALE_FOR_ZOOM_LENS = 4.0;
-#define Y_OFFSET_FOR_ZOOM_LENS 200
-#define SIZE_FOR_ZOOM_LENS 250
-
-static const float MAX_ZOOM_SCALE = 4.0;
-static const float MIN_ZOOM_SCALE = 2.0 / MAX_ZOOM_SCALE;
-
extern bool gDoTraceDraw;
#define DO_TRACE_DRAW_MAX 100
@@ -171,6 +173,16 @@ static FPSState gFPS;
- (id)initWithMyDefaults {
fRedrawRequestPending = false;
fFPSState = new FPSState;
+
+ //Add gesture recognizer for single taps. Taps on the right half of the view
+ //will cause SampleApp to go to the next sample, taps on the left will go to
+ //the previous sample
+ UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc]
+ initWithTarget:self
+ action:@selector(handleTap:)];
+ [self addGestureRecognizer:tap];
+ [tap release];
+
#ifdef USE_GL_1
fGL.fContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1];
#else
@@ -227,6 +239,7 @@ static FPSState gFPS;
fWind = new SampleWindow(self, NULL, NULL, fDevManager);
application_init();
fWind->resize(self.frame.size.width, self.frame.size.height, SKWIND_CONFIG);
+
return self;
}
@@ -258,11 +271,6 @@ static FPSState gFPS;
- (void)layoutSubviews {
int W, H;
- gScreenScale = [UIScreen mainScreen].scale;
-
- if ([self respondsToSelector:@selector(setContentScaleFactor:)]) {
- self.contentScaleFactor = gScreenScale;
- }
// Allocate color buffer backing based on the current layer size
glBindRenderbuffer(GL_RENDERBUFFER, fGL.fRenderbuffer);
@@ -400,6 +408,15 @@ static FPSState gFPS;
}
}
+- (void)handleTap:(UISwipeGestureRecognizer *)sender {
+// CGPoint loc = [sender locationInView:self];
+// if (loc.x > self.bounds.size.width/2)
+// ((SampleWindow*)fWind)->nextSample();
+// else
+// ((SampleWindow*)fWind)->previousSample();
+}
+
+
///////////////////////////////////////////////////////////////////////////////
- (void)setSkTitle:(const char *)title {
diff --git a/experimental/iOSSampleApp/Shared/SkiOSDeviceManager.h b/experimental/iOSSampleApp/Shared/SkiOSDeviceManager.h
deleted file mode 100644
index da4975cd2..000000000
--- a/experimental/iOSSampleApp/Shared/SkiOSDeviceManager.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef SkiOSDeviceManager_DEFINED
-#define SkiOSDeviceManager_DEFINED
-#include "SampleApp.h"
-#include "SkCanvas.h"
-#include "GrContext.h"
-#include "GrGLInterface.h"
-#include "SkGpuDevice.h"
-#include "SkCGUtils.h"
-#include "GrContext.h"
-class SkiOSDeviceManager : public SampleWindow::DeviceManager {
-public:
- SkiOSDeviceManager();
- virtual ~SkiOSDeviceManager();
-
- virtual void init(SampleWindow* win);
-
- virtual bool supportsDeviceType(SampleWindow::DeviceType dType);
- virtual bool prepareCanvas(SampleWindow::DeviceType dType,
- SkCanvas* canvas,
- SampleWindow* win);
- virtual void publishCanvas(SampleWindow::DeviceType dType,
- SkCanvas* canvas,
- SampleWindow* win);
-
- virtual void windowSizeChanged(SampleWindow* win) {}
-
- bool isUsingGL() { return usingGL; }
-
- virtual GrContext* getGrContext() { return fGrContext; }
-private:
- bool usingGL;
- GrContext* fGrContext;
- GrRenderTarget* fGrRenderTarget;
-};
-
-#endif
\ No newline at end of file
diff --git a/experimental/iOSSampleApp/iOSSampleApp.xcodeproj/project.pbxproj b/experimental/iOSSampleApp/iOSSampleApp.xcodeproj/project.pbxproj
index 5911c623e..d1fcab1ab 100755
--- a/experimental/iOSSampleApp/iOSSampleApp.xcodeproj/project.pbxproj
+++ b/experimental/iOSSampleApp/iOSSampleApp.xcodeproj/project.pbxproj
@@ -429,23 +429,25 @@
260EF18513AFD62E0064D447 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 260EF18413AFD62E0064D447 /* CoreText.framework */; };
260EF2B013AFDBD30064D447 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
263BE75813CCC7BF00CCE991 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 263BE75713CCC7BF00CCE991 /* QuartzCore.framework */; };
+ 26591EB913EB16EB000DA8A8 /* TransitionView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26591EB813EB16EB000DA8A8 /* TransitionView.cpp */; };
265C7DE313D75752008329F6 /* SkOptionListController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 265C7DE213D75752008329F6 /* SkOptionListController.mm */; };
- 265C816C13D77860008329F6 /* SampleDrawingClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 265C816A13D77860008329F6 /* SampleDrawingClient.cpp */; };
2662AB7013BD067900CDE7E9 /* SkiOSSampleApp-Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 2662AB6F13BD067900CDE7E9 /* SkiOSSampleApp-Debug.xcconfig */; };
2662AB7613BD0C0D00CDE7E9 /* SkiOSSampleApp-Release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 2662AB7513BD0C0D00CDE7E9 /* SkiOSSampleApp-Release.xcconfig */; };
2662AB7813BD0C1E00CDE7E9 /* SkiOSSampleApp-Base.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 2662AB7713BD0C1E00CDE7E9 /* SkiOSSampleApp-Base.xcconfig */; };
2663AC9413D5D8D400C20488 /* SkOptionsTableViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2663AC9313D5D8D400C20488 /* SkOptionsTableViewController.mm */; };
26677D6613B4C548009319B8 /* SkData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26677D6513B4C548009319B8 /* SkData.cpp */; };
26811E7913DEFAE8001A1609 /* SkBitSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26811E7813DEFAE8001A1609 /* SkBitSet.cpp */; };
- 26811E8613DEFC33001A1609 /* SampleDrawingServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 265C816B13D77860008329F6 /* SampleDrawingServer.cpp */; };
- 268F31FE13CDE72D003A1EF2 /* SkSockets.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 268F31FA13CDE726003A1EF2 /* SkSockets.cpp */; };
+ 268C50D613F022820003FF9A /* SkColorPalette.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 268C50D213F022820003FF9A /* SkColorPalette.cpp */; };
+ 268C50D713F022820003FF9A /* SkNetPipeController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 268C50D413F022820003FF9A /* SkNetPipeController.cpp */; };
+ 268C50DA13F022AF0003FF9A /* SampleDrawingClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 268C50D813F022AF0003FF9A /* SampleDrawingClient.cpp */; };
+ 268C50DB13F022AF0003FF9A /* SampleDrawingServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 268C50D913F022AF0003FF9A /* SampleDrawingServer.cpp */; };
+ 268C50DF13F0230C0003FF9A /* SampleNetPipeReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 268C50DC13F0230C0003FF9A /* SampleNetPipeReader.cpp */; };
+ 268C50E013F0230C0003FF9A /* SkSockets.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 268C50DD13F0230C0003FF9A /* SkSockets.cpp */; };
26962B2313CDF6A00039B1FB /* SkOSFile_iOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 260EE8BB13AFA7790064D447 /* SkOSFile_iOS.mm */; };
26962C8013CE256E0039B1FB /* SkUIDetailViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 26962C7913CE256E0039B1FB /* SkUIDetailViewController.mm */; };
26962C8113CE256E0039B1FB /* SkUIRootViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 26962C7B13CE256E0039B1FB /* SkUIRootViewController.mm */; };
26962CA413CE265C0039B1FB /* SkOSWindow_iOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 26962CA313CE265C0039B1FB /* SkOSWindow_iOS.mm */; };
26962CAB13CE268A0039B1FB /* SampleApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26962CA913CE268A0039B1FB /* SampleApp.cpp */; };
- 26962CEC13CE293A0039B1FB /* SkColorPalette.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26962CE813CE293A0039B1FB /* SkColorPalette.cpp */; };
- 26962CED13CE293A0039B1FB /* SkNetPipeController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26962CEA13CE293A0039B1FB /* SkNetPipeController.cpp */; };
26962D4F13CE2D780039B1FB /* GrGLDefaultInterface_iOS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26962D4E13CE2D780039B1FB /* GrGLDefaultInterface_iOS.cpp */; };
26A8AFF313E05D7000A3C111 /* GrResourceCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26A8AFF113E05D7000A3C111 /* GrResourceCache.cpp */; };
26E0E40A13B4E67800866555 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 260EE9D113AFA7850064D447 /* OpenGLES.framework */; };
@@ -1325,10 +1327,9 @@
260EE9D113AFA7850064D447 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
260EF18413AFD62E0064D447 /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; };
263BE75713CCC7BF00CCE991 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
+ 26591EB813EB16EB000DA8A8 /* TransitionView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TransitionView.cpp; sourceTree = ""; };
265C7DE113D75752008329F6 /* SkOptionListController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkOptionListController.h; path = Shared/SkOptionListController.h; sourceTree = ""; };
265C7DE213D75752008329F6 /* SkOptionListController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = SkOptionListController.mm; path = Shared/SkOptionListController.mm; sourceTree = ""; };
- 265C816A13D77860008329F6 /* SampleDrawingClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SampleDrawingClient.cpp; sourceTree = ""; };
- 265C816B13D77860008329F6 /* SampleDrawingServer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SampleDrawingServer.cpp; sourceTree = ""; };
2662AB6F13BD067900CDE7E9 /* SkiOSSampleApp-Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "SkiOSSampleApp-Debug.xcconfig"; sourceTree = ""; };
2662AB7513BD0C0D00CDE7E9 /* SkiOSSampleApp-Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "SkiOSSampleApp-Release.xcconfig"; sourceTree = ""; };
2662AB7713BD0C1E00CDE7E9 /* SkiOSSampleApp-Base.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "SkiOSSampleApp-Base.xcconfig"; sourceTree = ""; };
@@ -1336,11 +1337,17 @@
2663AC9313D5D8D400C20488 /* SkOptionsTableViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = SkOptionsTableViewController.mm; path = Shared/SkOptionsTableViewController.mm; sourceTree = ""; };
26677D6413B4C53E009319B8 /* SkData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkData.h; path = core/SkData.h; sourceTree = ""; };
26677D6513B4C548009319B8 /* SkData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkData.cpp; path = core/SkData.cpp; sourceTree = ""; };
- 266CB66113CF56E30011139A /* SkiOSDeviceManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkiOSDeviceManager.h; path = Shared/SkiOSDeviceManager.h; sourceTree = ""; };
26811E7813DEFAE8001A1609 /* SkBitSet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkBitSet.cpp; path = ../../src/pdf/SkBitSet.cpp; sourceTree = SOURCE_ROOT; };
26811E7A13DEFAF7001A1609 /* SkBitSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkBitSet.h; path = ../../include/pdf/SkBitSet.h; sourceTree = SOURCE_ROOT; };
- 268F31FA13CDE726003A1EF2 /* SkSockets.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkSockets.cpp; path = ../SkSockets.cpp; sourceTree = ""; };
- 268F31FB13CDE726003A1EF2 /* SkSockets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkSockets.h; path = ../SkSockets.h; sourceTree = ""; };
+ 268C50D213F022820003FF9A /* SkColorPalette.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkColorPalette.cpp; path = ../DrawingBoard/SkColorPalette.cpp; sourceTree = SOURCE_ROOT; };
+ 268C50D313F022820003FF9A /* SkColorPalette.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkColorPalette.h; path = ../DrawingBoard/SkColorPalette.h; sourceTree = SOURCE_ROOT; };
+ 268C50D413F022820003FF9A /* SkNetPipeController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkNetPipeController.cpp; path = ../DrawingBoard/SkNetPipeController.cpp; sourceTree = SOURCE_ROOT; };
+ 268C50D513F022820003FF9A /* SkNetPipeController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkNetPipeController.h; path = ../DrawingBoard/SkNetPipeController.h; sourceTree = SOURCE_ROOT; };
+ 268C50D813F022AF0003FF9A /* SampleDrawingClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleDrawingClient.cpp; path = ../DrawingBoard/SampleDrawingClient.cpp; sourceTree = SOURCE_ROOT; };
+ 268C50D913F022AF0003FF9A /* SampleDrawingServer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleDrawingServer.cpp; path = ../DrawingBoard/SampleDrawingServer.cpp; sourceTree = SOURCE_ROOT; };
+ 268C50DC13F0230C0003FF9A /* SampleNetPipeReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleNetPipeReader.cpp; path = ../Networking/SampleNetPipeReader.cpp; sourceTree = SOURCE_ROOT; };
+ 268C50DD13F0230C0003FF9A /* SkSockets.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkSockets.cpp; path = ../Networking/SkSockets.cpp; sourceTree = SOURCE_ROOT; };
+ 268C50DE13F0230C0003FF9A /* SkSockets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkSockets.h; path = ../Networking/SkSockets.h; sourceTree = SOURCE_ROOT; };
26962C7813CE256E0039B1FB /* SkUIDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkUIDetailViewController.h; path = Shared/SkUIDetailViewController.h; sourceTree = ""; };
26962C7913CE256E0039B1FB /* SkUIDetailViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = SkUIDetailViewController.mm; path = Shared/SkUIDetailViewController.mm; sourceTree = ""; };
26962C7A13CE256E0039B1FB /* SkUIRootViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkUIRootViewController.h; path = Shared/SkUIRootViewController.h; sourceTree = ""; };
@@ -1351,10 +1358,6 @@
26962CA513CE26730039B1FB /* SkOSWindow_iOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkOSWindow_iOS.h; path = ../../include/views/SkOSWindow_iOS.h; sourceTree = SOURCE_ROOT; };
26962CA913CE268A0039B1FB /* SampleApp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleApp.cpp; path = ../../samplecode/SampleApp.cpp; sourceTree = SOURCE_ROOT; };
26962CAA13CE268A0039B1FB /* SampleApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SampleApp.h; path = ../../samplecode/SampleApp.h; sourceTree = SOURCE_ROOT; };
- 26962CE813CE293A0039B1FB /* SkColorPalette.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkColorPalette.cpp; path = Shared/DrawingBoard/SkColorPalette.cpp; sourceTree = ""; };
- 26962CE913CE293A0039B1FB /* SkColorPalette.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkColorPalette.h; path = Shared/DrawingBoard/SkColorPalette.h; sourceTree = ""; };
- 26962CEA13CE293A0039B1FB /* SkNetPipeController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkNetPipeController.cpp; path = Shared/DrawingBoard/SkNetPipeController.cpp; sourceTree = ""; };
- 26962CEB13CE293A0039B1FB /* SkNetPipeController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkNetPipeController.h; path = Shared/DrawingBoard/SkNetPipeController.h; sourceTree = ""; };
26962D4E13CE2D780039B1FB /* GrGLDefaultInterface_iOS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GrGLDefaultInterface_iOS.cpp; path = ../../gpu/src/ios/GrGLDefaultInterface_iOS.cpp; sourceTree = SOURCE_ROOT; };
26A8AFF113E05D7000A3C111 /* GrResourceCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GrResourceCache.cpp; sourceTree = ""; };
26A8AFF213E05D7000A3C111 /* GrResourceCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GrResourceCache.h; sourceTree = ""; };
@@ -1456,8 +1459,7 @@
260E002313B11F5B0064D447 /* samplecode */ = {
isa = PBXGroup;
children = (
- 265C816A13D77860008329F6 /* SampleDrawingClient.cpp */,
- 265C816B13D77860008329F6 /* SampleDrawingServer.cpp */,
+ 26591EB813EB16EB000DA8A8 /* TransitionView.cpp */,
260E002413B11F5B0064D447 /* ClockFaceView.cpp */,
260E002513B11F5B0064D447 /* OverView.cpp */,
260E002613B11F5B0064D447 /* SampleAARects.cpp */,
@@ -2715,7 +2717,6 @@
children = (
26FB98D113D0C87000ACBEA0 /* SkUIView.h */,
26FB98D213D0C87000ACBEA0 /* SkUIView.mm */,
- 266CB66113CF56E30011139A /* SkiOSDeviceManager.h */,
26962D4E13CE2D780039B1FB /* GrGLDefaultInterface_iOS.cpp */,
26962CA513CE26730039B1FB /* SkOSWindow_iOS.h */,
26962CA313CE265C0039B1FB /* SkOSWindow_iOS.mm */,
@@ -2740,10 +2741,12 @@
26962CE713CE29120039B1FB /* DrawingBoard */ = {
isa = PBXGroup;
children = (
- 26962CE813CE293A0039B1FB /* SkColorPalette.cpp */,
- 26962CE913CE293A0039B1FB /* SkColorPalette.h */,
- 26962CEA13CE293A0039B1FB /* SkNetPipeController.cpp */,
- 26962CEB13CE293A0039B1FB /* SkNetPipeController.h */,
+ 268C50D813F022AF0003FF9A /* SampleDrawingClient.cpp */,
+ 268C50D913F022AF0003FF9A /* SampleDrawingServer.cpp */,
+ 268C50D213F022820003FF9A /* SkColorPalette.cpp */,
+ 268C50D313F022820003FF9A /* SkColorPalette.h */,
+ 268C50D413F022820003FF9A /* SkNetPipeController.cpp */,
+ 268C50D513F022820003FF9A /* SkNetPipeController.h */,
);
name = DrawingBoard;
sourceTree = "";
@@ -2751,8 +2754,9 @@
26F67B2A13CB3564005DDCD2 /* Networking */ = {
isa = PBXGroup;
children = (
- 268F31FA13CDE726003A1EF2 /* SkSockets.cpp */,
- 268F31FB13CDE726003A1EF2 /* SkSockets.h */,
+ 268C50DC13F0230C0003FF9A /* SampleNetPipeReader.cpp */,
+ 268C50DD13F0230C0003FF9A /* SkSockets.cpp */,
+ 268C50DE13F0230C0003FF9A /* SkSockets.h */,
);
name = Networking;
sourceTree = "";
@@ -3339,27 +3343,29 @@
26F548E913B91980007CC564 /* SkBitmapProcState_opts_arm.cpp in Sources */,
26F548EC13B91980007CC564 /* SkBlitRow_opts_none.cpp in Sources */,
26F548ED13B91980007CC564 /* SkUtils_opts_none.cpp in Sources */,
- 268F31FE13CDE72D003A1EF2 /* SkSockets.cpp in Sources */,
26962B2313CDF6A00039B1FB /* SkOSFile_iOS.mm in Sources */,
26962C8013CE256E0039B1FB /* SkUIDetailViewController.mm in Sources */,
26962C8113CE256E0039B1FB /* SkUIRootViewController.mm in Sources */,
26962CA413CE265C0039B1FB /* SkOSWindow_iOS.mm in Sources */,
26962CAB13CE268A0039B1FB /* SampleApp.cpp in Sources */,
- 26962CEC13CE293A0039B1FB /* SkColorPalette.cpp in Sources */,
- 26962CED13CE293A0039B1FB /* SkNetPipeController.cpp in Sources */,
26962D4F13CE2D780039B1FB /* GrGLDefaultInterface_iOS.cpp in Sources */,
26FB98D313D0C87000ACBEA0 /* SkUIView.mm in Sources */,
2663AC9413D5D8D400C20488 /* SkOptionsTableViewController.mm in Sources */,
265C7DE313D75752008329F6 /* SkOptionListController.mm in Sources */,
- 265C816C13D77860008329F6 /* SampleDrawingClient.cpp in Sources */,
26811E7913DEFAE8001A1609 /* SkBitSet.cpp in Sources */,
- 26811E8613DEFC33001A1609 /* SampleDrawingServer.cpp in Sources */,
26A8AFF313E05D7000A3C111 /* GrResourceCache.cpp in Sources */,
26FB125E13E70310001AFF6D /* SkEventNotifier.mm in Sources */,
26FB129313E704AE001AFF6D /* GrGLTexture.cpp in Sources */,
26FB129413E704B0001AFF6D /* GrContext.cpp in Sources */,
26FB12B013E70D3B001AFF6D /* GrGLRenderTarget.cpp in Sources */,
26FB12B413E70D51001AFF6D /* GrRenderTarget.cpp in Sources */,
+ 26591EB913EB16EB000DA8A8 /* TransitionView.cpp in Sources */,
+ 268C50D613F022820003FF9A /* SkColorPalette.cpp in Sources */,
+ 268C50D713F022820003FF9A /* SkNetPipeController.cpp in Sources */,
+ 268C50DA13F022AF0003FF9A /* SampleDrawingClient.cpp in Sources */,
+ 268C50DB13F022AF0003FF9A /* SampleDrawingServer.cpp in Sources */,
+ 268C50DF13F0230C0003FF9A /* SampleNetPipeReader.cpp in Sources */,
+ 268C50E013F0230C0003FF9A /* SkSockets.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -3397,7 +3403,7 @@
isa = XCBuildConfiguration;
baseConfigurationReference = 2662AB6F13BD067900CDE7E9 /* SkiOSSampleApp-Debug.xcconfig */;
buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
GCC_C_LANGUAGE_STANDARD = c99;
GCC_OPTIMIZATION_LEVEL = 0;
diff --git a/gyp/CocoaSampleApp.gyp b/gyp/CocoaSampleApp.gyp
index 90711a88b..8286f8cc4 100644
--- a/gyp/CocoaSampleApp.gyp
+++ b/gyp/CocoaSampleApp.gyp
@@ -53,6 +53,7 @@
'../samplecode/SampleDegenerateTwoPtRadials.cpp',
'../samplecode/SampleDither.cpp',
'../samplecode/SampleDitherBitmap.cpp',
+ '../samplecode/SampleDrawBitmap.cpp',
'../samplecode/SampleDrawLooper.cpp',
'../samplecode/SampleEffects.cpp',
'../samplecode/SampleEmboss.cpp',
@@ -117,6 +118,24 @@
# Dependencies for the pipe code in SampleApp
'../src/pipe/SkGPipeRead.cpp',
'../src/pipe/SkGPipeWrite.cpp',
+
+ # DrawingBoard
+ '../experimental/DrawingBoard/SkColorPalette.h',
+ '../experimental/DrawingBoard/SkColorPalette.cpp',
+ '../experimental/DrawingBoard/SkNetPipeController.h',
+ '../experimental/DrawingBoard/SkNetPipeController.cpp',
+ '../experimental/DrawingBoard/SampleDrawingClient.cpp',
+ '../experimental/DrawingBoard/SampleDrawingServer.cpp',
+
+ # Networking
+ '../experimental/Networking/SampleNetPipeReader.cpp',
+ '../experimental/Networking/SkSockets.cpp',
+ '../experimental/Networking/SkSockets.h',
+
+ # Transition
+ '../src/utils/SkInterpolator.cpp',
+ '../include/utils/SkInterpolator.h',
+ '../samplecode/TransitionView.cpp',
],
'sources!': [
'../samplecode/SampleSkLayer.cpp', #relies on SkMatrix44 which doesn't compile
@@ -163,14 +182,12 @@
'../experimental/CocoaSampleApp/SampleAppDelegate.mm',
'../experimental/CocoaSampleApp/SkNSView.h',
'../experimental/CocoaSampleApp/SkNSView.mm',
- '../experimental/CocoaSampleApp/SkOSWindow_Mac.h',
- '../experimental/CocoaSampleApp/SkOSWindow_Mac.mm',
'../experimental/CocoaSampleApp/SkOptionsTableView.h',
'../experimental/CocoaSampleApp/SkOptionsTableView.mm',
+ '../experimental/CocoaSampleApp/SkOSWindow_Mac.h',
+ '../experimental/CocoaSampleApp/SkOSWindow_Mac.mm',
'../experimental/CocoaSampleApp/SkTextFieldCell.h',
'../experimental/CocoaSampleApp/SkTextFieldCell.m',
- '../experimental/SkSockets.h',
- '../experimental/SkSockets.cpp',
'../experimental/SkEventNotifier.h',
'../experimental/SkEventNotifier.mm',
],
@@ -181,6 +198,10 @@
'$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework',
'$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
],
+ 'libraries!': [
+ '$(SDKROOT)/System/Library/Frameworks/Carbon.framework',
+ '$(SDKROOT)/System/Library/Frameworks/AGL.framework',
+ ],
},
'xcode_settings' : {
'INFOPLIST_FILE' : '../experimental/CocoaSampleApp/SampleApp-Info.plist',
@@ -189,48 +210,6 @@
'../experimental/CocoaSampleApp/SampleApp.xib',
],
}],
- [ 'skia_os == "ios"', {
- # TODO: This doesn't build properly yet, but it's getting there.
- 'sources!': [
- '../samplecode/SampleDecode.cpp',
- ],
- 'sources': [
- '../experimental/iOSSampleApp/SkIOSNotifier.mm',
- '../experimental/iOSSampleApp/SkTime_iOS.mm',
- '../experimental/iOSSampleApp/SkUIDetailViewController.mm',
- '../experimental/iOSSampleApp/SkUIRootViewController.mm',
- '../experimental/iOSSampleApp/SkUIView_shell.mm',
-
- '../experimental/iOSSampleApp/iOSSampleApp_Prefix.pch',
- '../experimental/iOSSampleApp/Shared/main.m',
- '../experimental/iOSSampleApp/iPad/AppDelegate_iPad.mm',
- '../experimental/iOSSampleApp/iPad/SkUISplitViewController.mm',
- '../experimental/iOSSampleApp/iPhone/AppDelegate_iPhone.mm',
- '../experimental/iOSSampleApp/iPhone/SkUINavigationController.mm',
-
- '../src/utils/ios/SkOSWindow_iOS.mm',
- '../src/utils/ios/SkImageDecoder_iOS.mm',
- '../src/utils/ios/SkStream_NSData.mm',
- '../src/utils/ios/SkOSFile_iOS.mm',
-
- '../src/utils/mac/SkCreateCGImageRef.cpp',
- '../experimental/iOSSampleApp/SkiOSSampleApp-Debug.xcconfig',
- '../experimental/iOSSampleApp/SkiOSSampleApp-Release.xcconfig',
- ],
- 'include_dirs' : [
- '../experimental/iOSSampleApp',
- '../experimental/iOSSampleApp/iPad',
- '../experimental/iOSSampleApp/iPhone',
- '../include/utils/ios',
- '../../gpu/include',
- ],
- 'xcode_config_file': '../experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig',
- 'mac_bundle_resources' : [
- '../experimental/iOSSampleApp/iPad/MainWindow_iPad.xib',
- '../experimental/iOSSampleApp/iPhone/MainWindow_iPhone.xib',
- ],
- }],
-
],
'msvs_settings': {
'VCLinkerTool': {
diff --git a/src/utils/ios/SkOSWindow_iOS.mm b/src/utils/ios/SkOSWindow_iOS.mm
index 2f28b5159..06b313d21 100755
--- a/src/utils/ios/SkOSWindow_iOS.mm
+++ b/src/utils/ios/SkOSWindow_iOS.mm
@@ -21,7 +21,7 @@ SkOSWindow::~SkOSWindow() {
void SkOSWindow::onHandleInval(const SkIRect& r) {
if (!fInvalEventIsPending) {
fInvalEventIsPending = true;
- (new SkEvent(kINVAL_UIVIEW_EventType))->post(this->getSinkID());
+ (new SkEvent(kINVAL_UIVIEW_EventType, this->getSinkID()))->post();
}
}