aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--bench/benchmain.cpp10
-rw-r--r--experimental/SimpleiOSApp/SimpleApp.mm15
-rw-r--r--experimental/SimpleiOSApp/tool-Info.plist43
-rw-r--r--experimental/iOSSampleApp/Shared/skia_ios.mm4
-rw-r--r--experimental/iOSSampleApp/SkSampleUIView.mm35
-rw-r--r--gm/gmmain.cpp10
-rw-r--r--gyp/apptype_console.gypi49
-rw-r--r--gyp/common_variables.gypi8
-rw-r--r--samplecode/SampleApp.cpp5
-rw-r--r--src/core/SkPaint.cpp3
-rw-r--r--tests/skia_test.cpp10
-rw-r--r--tools/bench_pictures_main.cpp9
-rw-r--r--tools/pinspect.cpp9
-rw-r--r--tools/render_pictures_main.cpp9
-rw-r--r--tools/skdiff_main.cpp9
-rw-r--r--tools/skhello.cpp9
-rw-r--r--tools/skimage_main.cpp9
17 files changed, 205 insertions, 41 deletions
diff --git a/bench/benchmain.cpp b/bench/benchmain.cpp
index dc9b2572bd..eb8c4eda5e 100644
--- a/bench/benchmain.cpp
+++ b/bench/benchmain.cpp
@@ -397,7 +397,8 @@ static void help() {
SkDebugf(" -h|--help : Show this help message.\n");
}
-int main (int argc, char * const argv[]) {
+int tool_main(int argc, char** argv);
+int tool_main(int argc, char** argv) {
#ifdef SK_ENABLE_INST_COUNT
gPrintInstCount = true;
#endif
@@ -907,3 +908,10 @@ int main (int argc, char * const argv[]) {
return 0;
}
+
+#if !defined SK_BUILD_FOR_IOS
+int main(int argc, char * const argv[]) {
+ return tool_main(argc, (char**) argv);
+}
+#endif
+
diff --git a/experimental/SimpleiOSApp/SimpleApp.mm b/experimental/SimpleiOSApp/SimpleApp.mm
index 12dff34ce4..dba8bccafd 100644
--- a/experimental/SimpleiOSApp/SimpleApp.mm
+++ b/experimental/SimpleiOSApp/SimpleApp.mm
@@ -3,6 +3,10 @@
#import "SkWindow.h"
#include "SkGraphics.h"
#include "SkCGUtils.h"
+
+extern void tool_main(int argc, char *argv[]);
+void save_args(int argc, char *argv[]);
+
class SkSampleView : public SkView {
public:
SkSampleView() {
@@ -15,7 +19,7 @@ protected:
SkPaint p;
p.setTextSize(20);
p.setAntiAlias(true);
- canvas->drawText("Hello World!", 13, 50, 30, p);
+ canvas->drawText("finished", 13, 50, 30, p);
SkRect r = {50, 50, 80, 80};
p.setColor(0xAA11EEAA);
canvas->drawRect(r, p);
@@ -34,6 +38,14 @@ void application_term() {
SkEvent::Term();
}
+int saved_argc;
+char** saved_argv;
+
+void save_args(int argc, char *argv[]) {
+ saved_argc = argc;
+ saved_argv = argv;
+}
+
class FillLayout : public SkView::Layout {
protected:
virtual void onLayoutChildren(SkView* parent) {
@@ -46,6 +58,7 @@ protected:
@implementation SimpleApp
- (id)initWithDefaults {
+ (void) tool_main(saved_argc, saved_argv);
if (self = [super initWithDefaults]) {
fWind = new SkOSWindow(self);
fWind->setLayout(new FillLayout, false);
diff --git a/experimental/SimpleiOSApp/tool-Info.plist b/experimental/SimpleiOSApp/tool-Info.plist
new file mode 100644
index 0000000000..6f8c6d8bd1
--- /dev/null
+++ b/experimental/SimpleiOSApp/tool-Info.plist
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleDisplayName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIconFile</key>
+ <string></string>
+ <key>CFBundleIdentifier</key>
+ <string>com.google.${EXECUTABLE_NAME}</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>LSRequiresIPhoneOS</key>
+ <true/>
+ <key>NSMainNibFile</key>
+ <string>MainWindow_iPhone</string>
+ <key>NSMainNibFile~ipad</key>
+ <string>MainWindow_iPad</string>
+ <key>UISupportedInterfaceOrientations</key>
+ <array>
+ <string>UIInterfaceOrientationPortrait</string>
+ </array>
+ <key>UISupportedInterfaceOrientations~ipad</key>
+ <array>
+ <string>UIInterfaceOrientationPortrait</string>
+ <string>UIInterfaceOrientationPortraitUpsideDown</string>
+ <string>UIInterfaceOrientationLandscapeLeft</string>
+ <string>UIInterfaceOrientationLandscapeRight</string>
+ </array>
+</dict>
+</plist>
diff --git a/experimental/iOSSampleApp/Shared/skia_ios.mm b/experimental/iOSSampleApp/Shared/skia_ios.mm
index 4e497867bf..65b3e8a034 100644
--- a/experimental/iOSSampleApp/Shared/skia_ios.mm
+++ b/experimental/iOSSampleApp/Shared/skia_ios.mm
@@ -1,9 +1,13 @@
#import <UIKit/UIKit.h>
#include "SkApplication.h"
+
+extern void save_args(int argc, char *argv[]);
+
int main(int argc, char *argv[]) {
signal(SIGPIPE, SIG_IGN);
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
application_init();
+ save_args(argc, argv);
int retVal = UIApplicationMain(argc, argv, nil, nil);
application_term();
[pool release];
diff --git a/experimental/iOSSampleApp/SkSampleUIView.mm b/experimental/iOSSampleApp/SkSampleUIView.mm
index b71640201d..b08414ec4e 100644
--- a/experimental/iOSSampleApp/SkSampleUIView.mm
+++ b/experimental/iOSSampleApp/SkSampleUIView.mm
@@ -7,15 +7,18 @@
#define FORCE_REDRAW
+#include "SkCanvas.h"
+#include "SkCGUtils.h"
+#include "SampleApp.h"
+
+#if SK_SUPPORT_GPU
//#define USE_GL_1
#define USE_GL_2
-#include "SkCanvas.h"
-#include "GrContext.h"
#include "gl/GrGLInterface.h"
+#include "GrContext.h"
#include "SkGpuDevice.h"
-#include "SkCGUtils.h"
-#include "SampleApp.h"
+#endif
class SkiOSDeviceManager : public SampleWindow::DeviceManager {
public:
@@ -151,9 +154,11 @@ public:
virtual void publishCanvas(SampleWindow::DeviceType dType,
SkCanvas* canvas,
SampleWindow* win) SK_OVERRIDE {
+#if SK_SUPPORT_GPU
if (NULL != fCurContext) {
fCurContext->flush();
}
+#endif
win->present();
}
@@ -219,18 +224,12 @@ private:
#include "SkEvent.h"
#include "SkWindow.h"
-#define kREDRAW_UIVIEW_GL "sk_redraw_uiview_gl_iOS"
-
-extern bool gDoTraceDraw;
-#define DO_TRACE_DRAW_MAX 100
-
struct FPSState {
static const int FRAME_COUNT = 60;
CFTimeInterval fNow0, fNow1;
CFTimeInterval fTime0, fTime1, fTotalTime;
int fFrameCounter;
- int fDrawCounter;
SkString str;
FPSState() {
fTime0 = fTime1 = fTotalTime = 0;
@@ -239,22 +238,10 @@ struct FPSState {
void startDraw() {
fNow0 = CACurrentMediaTime();
-
- if (0 == fDrawCounter && false) {
- gDoTraceDraw = true;
- SkDebugf("\n");
- }
}
void endDraw() {
fNow1 = CACurrentMediaTime();
-
- if (0 == fDrawCounter) {
- gDoTraceDraw = true;
- }
- if (DO_TRACE_DRAW_MAX == ++fDrawCounter) {
- fDrawCounter = 0;
- }
}
void flush(SkOSWindow* hwnd) {
@@ -335,7 +322,7 @@ static FPSState gFPS;
fRasterLayer.opaque = TRUE;
[self.layer addSublayer:fRasterLayer];
- NSMutableDictionary *newActions = [[NSDictionary alloc] initWithObjectsAndKeys:[NSNull null], @"onOrderIn",
+ NSMutableDictionary *newActions = [[NSMutableDictionary alloc] initWithObjectsAndKeys:[NSNull null], @"onOrderIn",
[NSNull null], @"onOrderOut",
[NSNull null], @"sublayers",
[NSNull null], @"contents",
@@ -346,7 +333,7 @@ static FPSState gFPS;
[newActions release];
fDevManager = new SkiOSDeviceManager(fGL.fFramebuffer);
- static char* kDummyArgv = "dummyExecutableName";
+ static char* kDummyArgv = const_cast<char*>("dummyExecutableName");
fWind = new SampleWindow(self, 1, &kDummyArgv, fDevManager);
fWind->resize(self.frame.size.width, self.frame.size.height, SKWIND_CONFIG);
diff --git a/gm/gmmain.cpp b/gm/gmmain.cpp
index 1b56bf1e36..f0de5bdf92 100644
--- a/gm/gmmain.cpp
+++ b/gm/gmmain.cpp
@@ -862,7 +862,8 @@ GrContext* GetGr() { return NULL; }
#endif
}
-int main(int argc, char * const argv[]) {
+int tool_main(int argc, char** argv);
+int tool_main(int argc, char** argv) {
#ifdef SK_ENABLE_INST_COUNT
gPrintInstCount = true;
@@ -1172,3 +1173,10 @@ int main(int argc, char * const argv[]) {
return (0 == testsFailed) ? 0 : -1;
}
+
+#if !defined SK_BUILD_FOR_IOS
+int main(int argc, char * const argv[]) {
+ return tool_main(argc, (char**) argv);
+}
+#endif
+
diff --git a/gyp/apptype_console.gypi b/gyp/apptype_console.gypi
index 229db0d95e..9e280617ad 100644
--- a/gyp/apptype_console.gypi
+++ b/gyp/apptype_console.gypi
@@ -17,6 +17,55 @@
'android_deps.gyp:Android_EntryPoint',
],
}],
+ ['skia_os == "ios"', {
+ 'target_conditions': [
+ ['_type == "executable"', {
+ 'mac_bundle' : 1,
+ }],
+ ],
+ 'include_dirs' : [
+ '../experimental/iOSSampleApp/Shared',
+ '../include/views',
+ '../include/xml',
+ '../include/utils/mac',
+ ],
+ 'sources': [
+ '../src/views/ios/SkOSWindow_iOS.mm',
+ '../src/views/mac/SkEventNotifier.h',
+ '../src/views/mac/SkEventNotifier.mm',
+ '../experimental/iOSSampleApp/iPad/AppDelegate_iPad.h',
+ '../experimental/iOSSampleApp/iPad/AppDelegate_iPad.mm',
+ '../experimental/iOSSampleApp/iPhone/AppDelegate_iPhone.h',
+ '../experimental/iOSSampleApp/iPhone/AppDelegate_iPhone.mm',
+ '../experimental/iOSSampleApp/Shared/SkUIView.h',
+ '../experimental/iOSSampleApp/Shared/SkUIView.mm',
+ '../experimental/iOSSampleApp/Shared/skia_ios.mm',
+ '../experimental/SimpleiOSApp/SimpleApp.h',
+ '../experimental/SimpleiOSApp/SimpleApp.mm',
+ ],
+ 'dependencies': [
+ 'views.gyp:views',
+ 'xml.gyp:xml',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ '<(ios_sdk_dir)<(ios_sdk_version).sdk/System/Library/Frameworks/CoreGraphics.framework',
+ '<(ios_sdk_dir)<(ios_sdk_version).sdk/System/Library/Frameworks/CoreText.framework',
+ '<(ios_sdk_dir)<(ios_sdk_version).sdk/System/Library/Frameworks/Foundation.framework',
+ '<(ios_sdk_dir)<(ios_sdk_version).sdk/System/Library/Frameworks/ImageIO.framework',
+ '<(ios_sdk_dir)<(ios_sdk_version).sdk/System/Library/Frameworks/MobileCoreServices.framework',
+ '<(ios_sdk_dir)<(ios_sdk_version).sdk/System/Library/Frameworks/UIKit.framework',
+ ],
+ },
+ 'xcode_config_file': '../experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig',
+ 'mac_bundle_resources' : [
+ '../experimental/SimpleiOSApp/iPad/MainWindow_iPad.xib',
+ '../experimental/SimpleiOSApp/iPhone/MainWindow_iPhone.xib',
+ ],
+ 'xcode_settings' : {
+ 'INFOPLIST_FILE' : '../experimental/SimpleiOSApp/tool-Info.plist',
+ },
+ }],
],
},
}
diff --git a/gyp/common_variables.gypi b/gyp/common_variables.gypi
index b59bd11779..6a0fc6bd98 100644
--- a/gyp/common_variables.gypi
+++ b/gyp/common_variables.gypi
@@ -69,11 +69,6 @@
}, {
'skia_static_initializers%': 1,
}],
- [ 'skia_arch_type == "x86"', {
- 'ios_sdk_dir%': '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator',
- }, {
- 'ios_sdk_dir%': '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS',
- }],
],
'skia_scalar%': 'float',
@@ -84,7 +79,8 @@
'android_make_apk%': 1,
'skia_nacl%': 0,
'skia_gpu%': 1,
- 'ios_sdk_version%': '5.1',
+ 'ios_sdk_dir%': '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS',
+ 'ios_sdk_version%': '6.0',
'skia_osx_sdkroot%': 'macosx10.6',
},
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index c55a5c0ec0..6c81041980 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -2456,6 +2456,11 @@ void get_preferred_size(int* x, int* y, int* width, int* height) {
*height = 480;
}
+#ifdef SK_BUILD_FOR_IOS
+void save_args(int argc, char *argv[]) {
+}
+#endif
+
// FIXME: this should be in a header
void application_init();
void application_init() {
diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp
index 506db0e9c3..7088a94ac1 100644
--- a/src/core/SkPaint.cpp
+++ b/src/core/SkPaint.cpp
@@ -1718,8 +1718,9 @@ static SkMaskGamma* cachedMaskGamma(SkScalar contrast, SkScalar paintGamma, SkSc
SkAutoMutexAcquire ama(gMaskGammaCacheMutex);
SkSafeUnref(gLinearMaskGamma);
-
+ gLinearMaskGamma = NULL;
SkSafeUnref(gMaskGamma);
+ gMaskGamma = NULL;
SkDEBUGCODE(gContrast = SK_ScalarMin;)
SkDEBUGCODE(gPaintGamma = SK_ScalarMin;)
SkDEBUGCODE(gDeviceGamma = SK_ScalarMin;)
diff --git a/tests/skia_test.cpp b/tests/skia_test.cpp
index 5c80a01fc3..f884a6458b 100644
--- a/tests/skia_test.cpp
+++ b/tests/skia_test.cpp
@@ -106,7 +106,8 @@ private:
bool fAndroidMode;
};
-int main (int argc, char * const argv[]) {
+int tool_main(int argc, char** argv);
+int tool_main(int argc, char** argv) {
#ifdef SK_ENABLE_INST_COUNT
gPrintInstCount = true;
#endif
@@ -188,3 +189,10 @@ int main (int argc, char * const argv[]) {
return (failCount == 0) ? 0 : 1;
}
+
+#if !defined SK_BUILD_FOR_IOS
+int main(int argc, char * const argv[]) {
+ return tool_main(argc, (char**) argv);
+}
+#endif
+
diff --git a/tools/bench_pictures_main.cpp b/tools/bench_pictures_main.cpp
index 7c313cf41d..76d5ad3bd1 100644
--- a/tools/bench_pictures_main.cpp
+++ b/tools/bench_pictures_main.cpp
@@ -443,7 +443,8 @@ static int process_input(const SkString& input,
return failures;
}
-int main(int argc, char* const argv[]) {
+int tool_main(int argc, char** argv);
+int tool_main(int argc, char** argv) {
#ifdef SK_ENABLE_INST_COUNT
gPrintInstCount = true;
#endif
@@ -466,3 +467,9 @@ int main(int argc, char* const argv[]) {
return 1;
}
}
+
+#if !defined SK_BUILD_FOR_IOS
+int main(int argc, char * const argv[]) {
+ return tool_main(argc, (char**) argv);
+}
+#endif
diff --git a/tools/pinspect.cpp b/tools/pinspect.cpp
index 975eda5aec..b82bd332c7 100644
--- a/tools/pinspect.cpp
+++ b/tools/pinspect.cpp
@@ -44,7 +44,8 @@ static void dumpOps(SkPicture* pic) {
canvas.drawPicture(*pic);
}
-int main(int argc, char* const argv[]) {
+int tool_main(int argc, char** argv);
+int tool_main(int argc, char** argv) {
if (argc < 2) {
printf("Usage: pinspect [--dump-ops] filename [filename ...]\n");
return 1;
@@ -69,3 +70,9 @@ int main(int argc, char* const argv[]) {
}
return 0;
}
+
+#if !defined SK_BUILD_FOR_IOS
+int main(int argc, char * const argv[]) {
+ return tool_main(argc, (char**) argv);
+}
+#endif
diff --git a/tools/render_pictures_main.cpp b/tools/render_pictures_main.cpp
index 764bea06a1..55ecf38317 100644
--- a/tools/render_pictures_main.cpp
+++ b/tools/render_pictures_main.cpp
@@ -287,7 +287,8 @@ static void parse_commandline(int argc, char* const argv[], SkTArray<SkString>*
renderer->setDeviceType(deviceType);
}
-int main(int argc, char* const argv[]) {
+int tool_main(int argc, char** argv);
+int tool_main(int argc, char** argv) {
SkAutoGraphics ag;
SkTArray<SkString> inputs;
sk_tools::PictureRenderer* renderer = NULL;
@@ -316,3 +317,9 @@ int main(int argc, char* const argv[]) {
SkDELETE(renderer);
}
+
+#if !defined SK_BUILD_FOR_IOS
+int main(int argc, char * const argv[]) {
+ return tool_main(argc, (char**) argv);
+}
+#endif
diff --git a/tools/skdiff_main.cpp b/tools/skdiff_main.cpp
index 5fbf3ff515..46d4f006a4 100644
--- a/tools/skdiff_main.cpp
+++ b/tools/skdiff_main.cpp
@@ -1270,7 +1270,8 @@ static void usage (char * argv0) {
const int kNoError = 0;
const int kGenericError = -1;
-int main (int argc, char ** argv) {
+int tool_main(int argc, char** argv);
+int tool_main(int argc, char** argv) {
DiffMetricProc diffProc = compute_diff_pmcolor;
int (*sortProc)(const void*, const void*) = compare<CompareDiffMetrics>;
@@ -1446,3 +1447,9 @@ int main (int argc, char ** argv) {
// make sure that we only return 0 when there were no failures.
return (num_failing_results > 255) ? 255 : num_failing_results;
}
+
+#if !defined SK_BUILD_FOR_IOS
+int main(int argc, char * const argv[]) {
+ return tool_main(argc, (char**) argv);
+}
+#endif
diff --git a/tools/skhello.cpp b/tools/skhello.cpp
index 82abf80ba7..465806f8fa 100644
--- a/tools/skhello.cpp
+++ b/tools/skhello.cpp
@@ -14,7 +14,8 @@ static void show_help() {
SkDebugf("usage: skhello [-o out-dir] [-t 'hello']\n default output: skhello.png\n");
}
-int main(int argc, char* const argv[]) {
+int tool_main(int argc, char** argv);
+int tool_main(int argc, char** argv) {
SkAutoGraphics ag;
SkString path("skhello.png");
SkString text("Hello");
@@ -68,3 +69,9 @@ int main(int argc, char* const argv[]) {
}
return !success;
}
+
+#if !defined SK_BUILD_FOR_IOS
+int main(int argc, char * const argv[]) {
+ return tool_main(argc, (char**) argv);
+}
+#endif
diff --git a/tools/skimage_main.cpp b/tools/skimage_main.cpp
index 504bc30204..83f115cbb0 100644
--- a/tools/skimage_main.cpp
+++ b/tools/skimage_main.cpp
@@ -54,7 +54,8 @@ static void make_outname(SkString* dst, const char outDir[], const char src[]) {
dst->append(".png");
}
-int main (int argc, char * const argv[]) {
+int tool_main(int argc, char** argv);
+int tool_main(int argc, char** argv) {
SkAutoGraphics ag;
int i, outDirIndex = 0;
SkString outDir;
@@ -102,3 +103,9 @@ int main (int argc, char * const argv[]) {
return 0;
}
+#if !defined SK_BUILD_FOR_IOS
+int main(int argc, char * const argv[]) {
+ return tool_main(argc, (char**) argv);
+}
+#endif
+