aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/utils
diff options
context:
space:
mode:
authorGravatar yangsu@google.com <yangsu@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-08-02 13:23:15 +0000
committerGravatar yangsu@google.com <yangsu@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-08-02 13:23:15 +0000
commite938b19445155f71197aac003ea914f59645c471 (patch)
tree794e29733462b91bd20592dc6e9affde5ac04547 /src/utils
parent5987045388920e5830e7c141c8bfe4205ef6ebf3 (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-xsrc/utils/ios/SkOSWindow_iOS.mm164
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();