diff options
author | 2012-04-03 18:03:03 +0000 | |
---|---|---|
committer | 2012-04-03 18:03:03 +0000 | |
commit | 5f017a4ab001baf1b9f433a9b02c6e01f93a97a1 (patch) | |
tree | fd7fa56d58f333f65cde7db61ec3944206d49384 /samplecode/SampleApp.cpp | |
parent | 86bb9b73a00d16eb13a6db13c5d2f775040caf13 (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.cpp | 23 |
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); |