diff options
author | yangsu@google.com <yangsu@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2011-08-02 13:23:15 +0000 |
---|---|---|
committer | yangsu@google.com <yangsu@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2011-08-02 13:23:15 +0000 |
commit | e938b19445155f71197aac003ea914f59645c471 (patch) | |
tree | 794e29733462b91bd20592dc6e9affde5ac04547 /src/utils | |
parent | 5987045388920e5830e7c141c8bfe4205ef6ebf3 (diff) |
iOS SampleApp menu related changes
git-svn-id: http://skia.googlecode.com/svn/trunk@2023 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/utils')
-rwxr-xr-x | src/utils/ios/SkOSWindow_iOS.mm | 164 |
1 files changed, 10 insertions, 154 deletions
diff --git a/src/utils/ios/SkOSWindow_iOS.mm b/src/utils/ios/SkOSWindow_iOS.mm index f076641b27..2f28b51592 100755 --- a/src/utils/ios/SkOSWindow_iOS.mm +++ b/src/utils/ios/SkOSWindow_iOS.mm @@ -1,9 +1,7 @@ #import <UIKit/UIKit.h> -#import <OpenGLES/EAGL.h> -#import <OpenGLES/ES1/gl.h> #include "SkCanvas.h" #include "SkGraphics.h" -#import "SkIOSNotifier.h" +#import "SkEventNotifier.h" #include "SkOSMenu.h" #include "SkTime.h" #include "SkTypes.h" @@ -14,10 +12,10 @@ SkOSWindow::SkOSWindow(void* hWnd) : fHWND(hWnd) { fInvalEventIsPending = false; - fNotifier = [[SkIOSNotifier alloc] init]; + fNotifier = [[SkEventNotifier alloc] init]; } SkOSWindow::~SkOSWindow() { - [(SkIOSNotifier*)fNotifier release]; + [(SkEventNotifier*)fNotifier release]; } void SkOSWindow::onHandleInval(const SkIRect& r) { @@ -48,162 +46,20 @@ void SkOSWindow::onSetTitle(const char title[]) { [(SkUIView*)fHWND setSkTitle:title]; } -void SkOSWindow::onAddMenu(const SkOSMenu* sk_menu) { - +void SkOSWindow::onAddMenu(const SkOSMenu* menu) { + [(SkUIView*)fHWND onAddMenu:menu]; } -/////////////////////////////////////////////////////////////////////////////////////// -/* - #if 1 - static void NonEmptyCallback(CFRunLoopTimerRef timer, void*) { - // printf("------- event queue depth = %d\n", SkEvent::CountEventsOnQueue()); - - if (!SkEvent::ProcessEvent()) { - CFRunLoopTimerInvalidate(timer); - } - } - - void SkEvent::SignalNonEmptyQueue() { - double tinyDelay = 1.0 / 60; - CFRunLoopTimerRef timer; - - timer = CFRunLoopTimerCreate(NULL, - CACurrentMediaTime() + tinyDelay, - tinyDelay, - 0, - 0, - NonEmptyCallback, - NULL); - CFRunLoopAddTimer(CFRunLoopGetCurrent(), - timer, - kCFRunLoopCommonModes); - CFRelease(timer); - } - #elif 1 - #if 0 - #define NONE_EMPTY_CODE(code) code - #else - #define NONE_EMPTY_CODE(code) - #endif - static CFRunLoopSourceRef gNonEmptySource; - static CFRunLoopRef gNoneEmptyRunLoop; - static bool gAlreadySignaled; - - static void signal_nonempty() { - if (!gAlreadySignaled) { - NONE_EMPTY_CODE(printf("--- before resignal\n");) - gAlreadySignaled = true; - CFRunLoopSourceSignal(gNonEmptySource); - CFRunLoopWakeUp(gNoneEmptyRunLoop); - NONE_EMPTY_CODE(printf("--- after resignal\n");) - } - } - - static void NonEmptySourceCallback(void*) { - gAlreadySignaled = false; - NONE_EMPTY_CODE(printf("---- service NonEmptySourceCallback %d\n", SkEvent::CountEventsOnQueue());) - if (SkEvent::ProcessEvent()) { - signal_nonempty(); - } - NONE_EMPTY_CODE(printf("----- after service\n");) - } - - void SkEvent::SignalNonEmptyQueue() { - if (NULL == gNonEmptySource) { - gNoneEmptyRunLoop = CFRunLoopGetMain(); - - CFIndex order = 0; // should this be lower, to not start UIEvents? - CFRunLoopSourceContext context; - sk_bzero(&context, sizeof(context)); - // give it a "unique" info, for the default Hash function - context.info = (void*)NonEmptySourceCallback; - // our perform callback - context.perform = NonEmptySourceCallback; - gNonEmptySource = CFRunLoopSourceCreate(NULL, order, &context); - - CFRunLoopAddSource(gNoneEmptyRunLoop, - gNonEmptySource, - kCFRunLoopCommonModes); - } - signal_nonempty(); - } - #elif 1 - @interface NonEmptyHandler : NSObject {} - - (void)signalNonEmptyQ; - @end - - @implementation NonEmptyHandler - - - (void)callProccessEvent { - // printf("----- callProcessEvent\n"); - if (SkEvent::ProcessEvent()) { - [self signalNonEmptyQ]; - } - } - - - (void)signalNonEmptyQ { - [self performSelectorOnMainThread:@selector(callProccessEvent) withObject:nil waitUntilDone:NO]; - } - - void SkEvent::SignalNonEmptyQueue() { - static id gNonEmptyQueueObject; - if (nil == gNonEmptyQueueObject) { - gNonEmptyQueueObject = [[NonEmptyHandler alloc] init]; - } - [gNonEmptyQueueObject signalNonEmptyQ]; - } - - @end - - #endif - - /////////////////////////////////////////////////////////////////////////////// - - static CFRunLoopTimerRef gTimer; - - static void TimerCallback(CFRunLoopTimerRef timer, void* info) { - gTimer = NULL; - SkEvent::ServiceQueueTimer(); - } - - void SkEvent::SignalQueueTimer(SkMSec delay) - { - //We always release the timer right after we've added it to our RunLoop, - //thus we don't worry about freeing it later: if it fires our callback, - //it gets automatically freed, as it does if we call invalidate() - - if (gTimer) { - // our callback wasn't called, so invalidate it - CFRunLoopTimerInvalidate(gTimer); - gTimer = NULL; - } - - if (delay) { - gTimer = CFRunLoopTimerCreate(NULL, - CACurrentMediaTime() + delay/1000.0, - // CFAbsoluteTimeGetCurrent() + delay/1000.0, - 0, - 0, - 0, - TimerCallback, - NULL); - CFRunLoopAddTimer(CFRunLoopGetCurrent(), - gTimer, - kCFRunLoopCommonModes); - CFRelease(gTimer); - } - } - */ -/////////////////////////////////////////////////////////////////////////////////////// +void SkOSWindow::onUpdateMenu(const SkOSMenu* menu) { + [(SkUIView*)fHWND onUpdateMenu:menu]; +} -bool SkOSWindow::attachGL() -{ +bool SkOSWindow::attachGL() { bool success = true; return success; } -void SkOSWindow::detachGL() { -} +void SkOSWindow::detachGL() {} void SkOSWindow::presentGL() { glFlush(); |