- Mac SampleApp resize and maximize bug
- Mac SampleApp now accepts/dispatches mouse moved events
- SampleAnimator: moved drawColor outside so the sample draws a background every drawing call
- Removed SampleExtractAlpha from the repository and SampleApp.gyp
http://codereview.appspot.com/5249054/


git-svn-id: http://skia.googlecode.com/svn/trunk@2448 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
suyang1 2011-10-10 16:38:58 +00:00
Родитель 719fd045ab
Коммит bb3f4a8d0a
6 изменённых файлов: 22 добавлений и 108 удалений

Просмотреть файл

@ -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',

Просмотреть файл

@ -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();

Просмотреть файл

@ -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);

Просмотреть файл

@ -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()];
}

Просмотреть файл

@ -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;

Просмотреть файл

@ -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) {