diff --git a/gyp/SampleApp.gyp b/gyp/SampleApp.gyp index f49499a62..0b2e4cae2 100644 --- a/gyp/SampleApp.gyp +++ b/gyp/SampleApp.gyp @@ -65,7 +65,6 @@ '../samplecode/SampleEmboss.cpp', '../samplecode/SampleEmptyPath.cpp', '../samplecode/SampleEncode.cpp', - '../samplecode/SampleExtractAlpha.cpp', '../samplecode/SampleFillType.cpp', '../samplecode/SampleFilter.cpp', '../samplecode/SampleFilter2.cpp', diff --git a/samplecode/SampleAnimator.cpp b/samplecode/SampleAnimator.cpp index 57e3dbde4..09742a01b 100644 --- a/samplecode/SampleAnimator.cpp +++ b/samplecode/SampleAnimator.cpp @@ -127,8 +127,8 @@ bool SkAnimatorView::decodeStream(SkStream* stream) { #include "SkTime.h" void SkAnimatorView::onDraw(SkCanvas* canvas) { + canvas->drawColor(SK_ColorWHITE); if (fAnimator) { - canvas->drawColor(SK_ColorWHITE); fAnimator->draw(canvas, 0); #if 0 canvas->save(); diff --git a/samplecode/SampleExtractAlpha.cpp b/samplecode/SampleExtractAlpha.cpp deleted file mode 100644 index 9ae56ce40..000000000 --- a/samplecode/SampleExtractAlpha.cpp +++ /dev/null @@ -1,97 +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. - */ -#include "SampleCode.h" -#include "SkColorPriv.h" -#include "SkGradientShader.h" -#include "SkView.h" -#include "SkCanvas.h" -#include "SkUtils.h" - -static SkBitmap make_bitmap() { - SkBitmap bm; - SkColorTable* ctable = new SkColorTable(256); - - SkPMColor* c = ctable->lockColors(); - for (int i = 0; i < 256; i++) { - c[i] = SkPackARGB32(255 - i, 0, 0, 0); - } - ctable->unlockColors(true); - bm.setConfig(SkBitmap::kIndex8_Config, 256, 256); - bm.allocPixels(ctable); - ctable->unref(); - - bm.lockPixels(); - const float cx = bm.width() * 0.5f; - const float cy = bm.height() * 0.5f; - for (int y = 0; y < bm.height(); y++) { - float dy = y - cy; - dy *= dy; - uint8_t* p = bm.getAddr8(0, y); - for (int x = 0; x < 256; x++) { - float dx = x - cx; - dx *= dx; - float d = (dx + dy) / (cx/2); - int id = (int)d; - if (id > 255) { - id = 255; - } - p[x] = id; - } - } - bm.unlockPixels(); - return bm; -} - -class ExtractAlphaView : public SampleView { - SkBitmap fBM8; - SkBitmap fBM32; - SkBitmap fBM4; -public: - ExtractAlphaView() { - fBM8 = make_bitmap(); - fBM8.copyTo(&fBM32, SkBitmap::kARGB_8888_Config); - fBM8.copyTo(&fBM4, SkBitmap::kARGB_4444_Config); - - this->setBGColor(0xFFDDDDDD); - } - -protected: - // overrides from SkEventSink - virtual bool onQuery(SkEvent* evt) { - if (SampleCode::TitleQ(*evt)) { - SampleCode::TitleR(evt, "DitherBitmap"); - return true; - } - return this->INHERITED::onQuery(evt); - } - - virtual void onDrawContent(SkCanvas* canvas) { - SkPaint paint; - paint.setAntiAlias(true); - paint.setStyle(SkPaint::kStroke_Style); - - SkMatrix matrix; - matrix.setScale(3.55f, 80.f); - canvas->setMatrix(matrix); - - paint.setStrokeWidth(0.0588f); - canvas->drawLine(10, 5, 30, 4.8f, paint); - - paint.setStrokeWidth(0.06f); - canvas->drawLine(20, 5, 40, 4.8f, paint); - } - -private: - typedef SampleView INHERITED; -}; - -////////////////////////////////////////////////////////////////////////////// - -static SkView* MyFactory() { return new ExtractAlphaView; } -static SkViewRegister reg(MyFactory); - diff --git a/src/utils/mac/SampleAppDelegate.mm b/src/utils/mac/SampleAppDelegate.mm index c54a8a30c..91dcada88 100644 --- a/src/utils/mac/SampleAppDelegate.mm +++ b/src/utils/mac/SampleAppDelegate.mm @@ -5,6 +5,7 @@ -(void) applicationDidFinishLaunching:(NSNotification *)aNotification { //Load specified skia views after launching fView.fOptionsDelegate = fOptions; + [fWindow setAcceptsMouseMovedEvents:YES]; [fOptions registerMenus:fView.fWind->getMenus()]; } diff --git a/src/utils/mac/SkNSView.h b/src/utils/mac/SkNSView.h index 5ae7ad583..87c2727d1 100644 --- a/src/utils/mac/SkNSView.h +++ b/src/utils/mac/SkNSView.h @@ -35,6 +35,7 @@ class SkEvent; - (id)initWithDefaults; - (void)setUpWindow; +- (void)resizeSkView:(NSSize)newSize; - (void)setSkTitle:(const char*)title; - (void)onAddMenu:(const SkOSMenu*)menu; - (void)onUpdateMenu:(const SkOSMenu*)menu; diff --git a/src/utils/mac/SkNSView.mm b/src/utils/mac/SkNSView.mm index 8e9e30f7d..c498bf5f0 100644 --- a/src/utils/mac/SkNSView.mm +++ b/src/utils/mac/SkNSView.mm @@ -53,17 +53,19 @@ return YES; } -- (void)viewDidEndLiveResize { - NSSize s = [self frame].size; - if (NULL != fWind && fWind->width() != s.width && fWind->height() != s.height) { - fWind->resize(s.width, s.height); - if (nil != fGLContext) { - [fGLContext update]; - glClear(GL_STENCIL_BUFFER_BIT); - } +- (void)resizeSkView:(NSSize)newSize { + if (NULL != fWind && (fWind->width() != newSize.width || fWind->height() != newSize.height)) { + fWind->resize(newSize.width, newSize.height); + glClear(GL_STENCIL_BUFFER_BIT); + [fGLContext update]; } } +- (void) setFrameSize:(NSSize)newSize { + [super setFrameSize:newSize]; + [self resizeSkView:newSize]; +} + - (void)dealloc { delete fWind; self.fGLContext = nil; @@ -71,7 +73,7 @@ [super dealloc]; } -/////////////////////////////////////////////0////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// - (void)drawSkia { fRedrawRequestPending = false; @@ -204,6 +206,14 @@ static SkKey raw2key(UInt32 raw) } } +- (void)mouseMoved:(NSEvent *)event { + NSPoint p = [event locationInWindow]; + if ([self mouse:p inRect:[self bounds]] && NULL != fWind) { + NSPoint loc = [self convertPoint:p fromView:nil]; + fWind->handleClick(loc.x, loc.y, SkView::Click::kMoved_State, self); + } +} + - (void)mouseUp:(NSEvent *)event { NSPoint p = [event locationInWindow]; if ([self mouse:p inRect:[self bounds]] && NULL != fWind) {