aboutsummaryrefslogtreecommitdiffhomepage
path: root/samplecode/SampleApp.cpp
diff options
context:
space:
mode:
authorGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-04-03 18:03:03 +0000
committerGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-04-03 18:03:03 +0000
commit5f017a4ab001baf1b9f433a9b02c6e01f93a97a1 (patch)
treefd7fa56d58f333f65cde7db61ec3944206d49384 /samplecode/SampleApp.cpp
parent86bb9b73a00d16eb13a6db13c5d2f775040caf13 (diff)
Fix GL attach/detach in Mac SampleApp
Review URL: http://codereview.appspot.com/5984043/ git-svn-id: http://skia.googlecode.com/svn/trunk@3587 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'samplecode/SampleApp.cpp')
-rw-r--r--samplecode/SampleApp.cpp23
1 files changed, 15 insertions, 8 deletions
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index 92c9e6c984..ad0bdaaec2 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -139,7 +139,8 @@ public:
: fCurContext(NULL)
, fCurIntf(NULL)
, fCurRenderTarget(NULL)
- , fBackend(kNone_BackEndType) {
+ , fBackend(kNone_BackEndType)
+ , fMSAASampleCount(0) {
}
virtual ~DefaultDeviceManager() {
@@ -148,7 +149,7 @@ public:
SkSafeUnref(fCurRenderTarget);
}
- virtual void setUpBackend(SampleWindow* win) {
+ virtual void setUpBackend(SampleWindow* win, int msaaSampleCount) {
SkASSERT(kNone_BackEndType == fBackend);
fBackend = kNone_BackEndType;
@@ -175,11 +176,12 @@ public:
break;
}
- bool result = win->attach(fBackend);
+ bool result = win->attach(fBackend, msaaSampleCount);
if (!result) {
SkDebugf("Failed to initialize GL");
return;
}
+ fMSAASampleCount = msaaSampleCount;
SkASSERT(NULL == fCurIntf);
switch (win->getDeviceType()) {
@@ -287,7 +289,7 @@ public:
virtual void windowSizeChanged(SampleWindow* win) {
if (fCurContext) {
- win->attach(fBackend);
+ win->attach(fBackend, fMSAASampleCount);
GrPlatformRenderTargetDesc desc;
desc.fWidth = SkScalarRound(win->width());
@@ -313,6 +315,7 @@ private:
GrRenderTarget* fCurRenderTarget;
SkOSWindow::SkBackEndTypes fBackend;
+ int fMSAASampleCount;
typedef SampleWindow::DeviceManager INHERITED;
};
@@ -645,9 +648,10 @@ static inline SampleWindow::DeviceType cycle_devicetype(SampleWindow::DeviceType
}
static void usage(const char * argv0) {
- SkDebugf("%s [--slide sampleName] [-i resourcePath]\n", argv0);
+ SkDebugf("%s [--slide sampleName] [-i resourcePath] [-msaa=<samplecnt>]\n", argv0);
SkDebugf(" sampleName: sample at which to start.\n");
SkDebugf(" resourcePath: directory that stores image resources.\n");
+ SkDebugf(" msaa: request multisampling with the given sample count.\n");
}
SampleWindow::SampleWindow(void* hwnd, int argc, char** argv, DeviceManager* devManager) : INHERITED(hwnd) {
@@ -663,6 +667,7 @@ SampleWindow::SampleWindow(void* hwnd, int argc, char** argv, DeviceManager* dev
const char* resourcePath = NULL;
fCurrIndex = -1;
+ fMSAASampleCount = 0;
const char* const commandName = argv[0];
char* const* stop = argv + argc;
@@ -680,7 +685,9 @@ SampleWindow::SampleWindow(void* hwnd, int argc, char** argv, DeviceManager* dev
fprintf(stderr, "Unknown sample \"%s\"\n", *argv);
}
}
- }
+ } else if (1 == sscanf(*argv, "--msaa=%d", &fMSAASampleCount) &&
+ fMSAASampleCount >= 0) {
+ }
else {
usage(commandName);
}
@@ -820,7 +827,7 @@ SampleWindow::SampleWindow(void* hwnd, int argc, char** argv, DeviceManager* dev
devManager->ref();
fDevManager = devManager;
}
- fDevManager->setUpBackend(this);
+ fDevManager->setUpBackend(this, fMSAASampleCount);
// If another constructor set our dimensions, ensure that our
// onSizeChange gets called.
@@ -1671,7 +1678,7 @@ void SampleWindow::setDeviceType(DeviceType type) {
fDeviceType = type;
- fDevManager->setUpBackend(this);
+ fDevManager->setUpBackend(this, fMSAASampleCount);
this->updateTitle();
this->inval(NULL);