void AppDelegate::setDesignResolution() { Director* director = Director::getInstance(); EGLView* glView = EGLView::getInstance(); Size frameSize = glView->getFrameSize(); vector<string> searchPath; #if(CC_TARGET_PLATFORM == CC_PLATFORM_IOS) if (frameSize.height > small5Resource.size.height) { log("ipadhd resource selected"); designResolutionSize = largeResource.size; searchPath.push_back(largeResource.directory); director->setContentScaleFactor(MIN(largeResource.size.height/designResolutionSize.height, largeResource.size.width/designResolutionSize.width)); } else if (frameSize.height > mediumResource.size.height) { log("iphone5 resource selected"); designResolutionSize = small5Resource.size; searchPath.push_back(small5Resource.directory); director->setContentScaleFactor(MIN(small5Resource.size.height/designResolutionSize.height, small5Resource.size.width/designResolutionSize.width)); } else if (frameSize.height > smallResource.size.height) { log("ipad resource selected"); designResolutionSize = mediumResource.size; searchPath.push_back(mediumResource.directory); director->setContentScaleFactor(MIN(mediumResource.size.height/designResolutionSize.height, mediumResource.size.width/designResolutionSize.width)); } else if (frameSize.height > small3Resource.size.height) { log("iphone resource selected"); designResolutionSize = smallResource.size; searchPath.push_back(smallResource.directory); director->setContentScaleFactor(MIN(smallResource.size.height/designResolutionSize.height, smallResource.size.width/designResolutionSize.width)); } else { log("iphone3 resource selected"); designResolutionSize = small3Resource.size; searchPath.push_back(small3Resource.directory); director->setContentScaleFactor(MIN(small3Resource.size.height/designResolutionSize.height, small3Resource.size.width/designResolutionSize.width)); } #else log("android resource selected"); designResolutionSize = androidResource.size; searchPath.push_back(androidResource.directory); director->setContentScaleFactor(MIN(androidResource.size.height/designResolutionSize.height, androidResource.size.width/designResolutionSize.width)); #endif // set searching path FileUtils::getInstance()->setSearchPaths(searchPath); }
bool AppDelegate::applicationDidFinishLaunching() { // initialize director Director* pDirector = Director::sharedDirector(); EGLView* pEGLView = EGLView::sharedOpenGLView(); pDirector->setOpenGLView(pEGLView); // Set the design resolution pEGLView->setDesignResolutionSize(designResolutionSize.width, designResolutionSize.height, kResolutionNoBorder); Size frameSize = pEGLView->getFrameSize(); vector<string> searchPath; // In this demo, we select resource according to the frame's height. // If the resource size is different from design resolution size, you need to set contentScaleFactor. // We use the ratio of resource's height to the height of design resolution, // this can make sure that the resource's height could fit for the height of design resolution. // if the frame's height is larger than the height of medium resource size, select large resource. if (frameSize.height > mediumResource.size.height) { searchPath.push_back(largeResource.directory); pDirector->setContentScaleFactor(MIN(largeResource.size.height/designResolutionSize.height, largeResource.size.width/designResolutionSize.width)); } // if the frame's height is larger than the height of small resource size, select medium resource. else if (frameSize.height > smallResource.size.height) { searchPath.push_back(mediumResource.directory); pDirector->setContentScaleFactor(MIN(mediumResource.size.height/designResolutionSize.height, mediumResource.size.width/designResolutionSize.width)); } // if the frame's height is smaller than the height of medium resource size, select small resource. else { searchPath.push_back(smallResource.directory); pDirector->setContentScaleFactor(MIN(smallResource.size.height/designResolutionSize.height, smallResource.size.width/designResolutionSize.width)); } // set searching path FileUtils::sharedFileUtils()->setSearchPaths(searchPath); // turn on display FPS pDirector->setDisplayStats(true); // set FPS. the default value is 1.0/60 if you don't call this pDirector->setAnimationInterval(1.0 / 60); // create a scene. it's an autorelease object Scene *pScene = HelloWorld::scene(); // run pDirector->runWithScene(pScene); return true; }
bool TRenderApplication::applicationDidFinishLaunching(){ Director* director = Director::getInstance(); EGLView* glView = EGLView::getInstance(); director->setOpenGLView(glView); Size FrameSize = glView->getFrameSize(); glView->setDesignResolutionSize(900,600,ResolutionPolicy::NO_BORDER); director->setDisplayStats(false); director->setAnimationInterval(1.0/60); SetFilePath(std::string("..\\resource\\")); Scene* scene = Scene::create(); TBaseObject * worklayer = new TBaseObject; if(worklayer && worklayer->initWithColor(Color4B(0,100,100,255))){ SetWorkScene((int)worklayer); worklayer->setScale(0.35f); worklayer->autorelease(); scene->addChild(worklayer); } scene->setPositionX(-200); scene->setPositionY(100); director->runWithScene(scene); return true; }
void MultiResolution::resolve() { EGLView *eglView = EGLView::getInstance(); Size rsize; const Size fsize = eglView->getFrameSize(); const bool v = fsize.height / fsize.width > 1.0f; const Size size = swap(fsize, v); const Size dsize = swap(Size(960, 640), v); std::vector<std::string> order; ApplicationProtocol::Platform platform = Application::getInstance()->getTargetPlatform(); if(platform == ApplicationProtocol::Platform::OS_IPHONE || platform == ApplicationProtocol::Platform::OS_IPAD) { if(size.height > 768) { rsize.setSize(2048, 1536); order.push_back(names[static_cast<int>(ResolutionType::iPadHD)]); } else if(size.height > 640) { rsize.setSize(1536, 768); order.push_back(names[static_cast<int>(ResolutionType::iPad)]); } else if(size.height > 480) { if(size.width < 1136) rsize.setSize(960, 649); else rsize.setSize(1136, 640); order.push_back(names[static_cast<int>(ResolutionType::iPhoneHD)]); } else { rsize.setSize(480, 320); order.push_back(names[static_cast<int>(ResolutionType::iPhone)]); } } else if(platform == ApplicationProtocol::Platform::OS_ANDROID) { if(size.height > 1200) { rsize.setSize(1200, 800); order.push_back(names[static_cast<int>(ResolutionType::XLarge)]); } else if(size.height > 960) { rsize.setSize(960, 640); order.push_back(names[static_cast<int>(ResolutionType::Large)]); } else if(size.height > 480) { rsize.setSize(720, 480); order.push_back(names[static_cast<int>(ResolutionType::Medium)]); } else { rsize.setSize(568, 320); order.push_back(names[static_cast<int>(ResolutionType::Small)]); } } rsize = swap(rsize, v); Director::getInstance()->setContentScaleFactor(dsize.width / rsize.width); eglView->setDesignResolutionSize(rsize.width, rsize.height,/* kResolutionFixedHeight */ ResolutionPolicy::SHOW_ALL); FileUtils::getInstance()->setSearchPaths(searchPaths); FileUtils::getInstance()->setSearchResolutionsOrder(order); }
void EGLViewEventHandler::OnGLFWMouseMoveCallBack(GLFWwindow* window, double x, double y) { s_mouseX = (float)x; s_mouseY = (float)y; EGLView* eglView = EGLView::getInstance(); if(nullptr == eglView) return; s_mouseX /= eglView->getFrameZoomFactor(); s_mouseY /= eglView->getFrameZoomFactor(); if(s_captured) { if (eglView->getViewPortRect().equals(Rect::ZERO) || eglView->getViewPortRect().containsPoint(Point(s_mouseX,eglView->getFrameSize().height - s_mouseY))) { int id = 0; eglView->handleTouchesMove(1, &id, &s_mouseX, &s_mouseY); } } }