зеркало из https://github.com/mozilla/moz-skia.git
Bug fixes:
- 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:
Родитель
719fd045ab
Коммит
bb3f4a8d0a
|
@ -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) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче