bool Basic2DWindowOpenGLDisplayPlugin::internalActivate() { _framerateActions.clear(); _container->addMenuItem(PluginType::DISPLAY_PLUGIN, MENU_PATH(), FULLSCREEN, [this](bool clicked) { if (clicked) { _container->setFullscreen(getFullscreenTarget()); } else { _container->unsetFullscreen(); } }, true, false); return Parent::internalActivate(); }
void Basic2DWindowOpenGLDisplayPlugin::activate() { _framerateActions.clear(); CONTAINER->addMenuItem(MENU_PATH(), FULLSCREEN, [this](bool clicked) { if (clicked) { CONTAINER->setFullscreen(getFullscreenTarget()); } else { CONTAINER->unsetFullscreen(); } }, true, false); CONTAINER->addMenu(FRAMERATE); _framerateActions.push_back( CONTAINER->addMenuItem(FRAMERATE, FRAMERATE_UNLIMITED, [this](bool) { updateFramerate(); }, true, true, FRAMERATE)); _framerateActions.push_back( CONTAINER->addMenuItem(FRAMERATE, FRAMERATE_60, [this](bool) { updateFramerate(); }, true, false, FRAMERATE)); _framerateActions.push_back( CONTAINER->addMenuItem(FRAMERATE, FRAMERATE_50, [this](bool) { updateFramerate(); }, true, false, FRAMERATE)); _framerateActions.push_back( CONTAINER->addMenuItem(FRAMERATE, FRAMERATE_40, [this](bool) { updateFramerate(); }, true, false, FRAMERATE)); _framerateActions.push_back( CONTAINER->addMenuItem(FRAMERATE, FRAMERATE_30, [this](bool) { updateFramerate(); }, true, false, FRAMERATE)); WindowOpenGLDisplayPlugin::activate(); // Vsync detection happens in the parent class activate, so we need to check after that if (_vsyncSupported) { _vsyncAction = CONTAINER->addMenuItem(MENU_PATH(), VSYNC_ON, [this](bool) {}, true, true); } else { _vsyncAction = nullptr; } updateFramerate(); }
void Basic2DWindowOpenGLDisplayPlugin::customizeContext() { #if defined(Q_OS_ANDROID) qreal dpi = getFullscreenTarget()->physicalDotsPerInch(); _virtualPadPixelSize = dpi * VirtualPad::Manager::BASE_DIAMETER_PIXELS / VirtualPad::Manager::DPI; if (!_virtualPadStickTexture) { auto iconPath = PathUtils::resourcesPath() + "images/analog_stick.png"; auto image = QImage(iconPath); if (image.format() != QImage::Format_ARGB32) { image = image.convertToFormat(QImage::Format_ARGB32); } if ((image.width() > 0) && (image.height() > 0)) { image = image.scaled(_virtualPadPixelSize, _virtualPadPixelSize, Qt::KeepAspectRatio); _virtualPadStickTexture = gpu::Texture::createStrict( gpu::Element(gpu::VEC4, gpu::NUINT8, gpu::RGBA), image.width(), image.height(), gpu::Texture::MAX_NUM_MIPS, gpu::Sampler(gpu::Sampler::FILTER_MIN_MAG_MIP_LINEAR)); _virtualPadStickTexture->setSource("virtualPad stick"); auto usage = gpu::Texture::Usage::Builder().withColor().withAlpha(); _virtualPadStickTexture->setUsage(usage.build()); _virtualPadStickTexture->setStoredMipFormat(gpu::Element(gpu::VEC4, gpu::NUINT8, gpu::RGBA)); _virtualPadStickTexture->assignStoredMip(0, image.byteCount(), image.constBits()); _virtualPadStickTexture->setAutoGenerateMips(true); } } if (!_virtualPadStickBaseTexture) { auto iconPath = PathUtils::resourcesPath() + "images/analog_stick_base.png"; auto image = QImage(iconPath); if (image.format() != QImage::Format_ARGB32) { image = image.convertToFormat(QImage::Format_ARGB32); } if ((image.width() > 0) && (image.height() > 0)) { image = image.scaled(_virtualPadPixelSize, _virtualPadPixelSize, Qt::KeepAspectRatio); _virtualPadStickBaseTexture = gpu::Texture::createStrict( gpu::Element(gpu::VEC4, gpu::NUINT8, gpu::RGBA), image.width(), image.height(), gpu::Texture::MAX_NUM_MIPS, gpu::Sampler(gpu::Sampler::FILTER_MIN_MAG_MIP_LINEAR)); _virtualPadStickBaseTexture->setSource("virtualPad base"); auto usage = gpu::Texture::Usage::Builder().withColor().withAlpha(); _virtualPadStickBaseTexture->setUsage(usage.build()); _virtualPadStickBaseTexture->setStoredMipFormat(gpu::Element(gpu::VEC4, gpu::NUINT8, gpu::RGBA)); _virtualPadStickBaseTexture->assignStoredMip(0, image.byteCount(), image.constBits()); _virtualPadStickBaseTexture->setAutoGenerateMips(true); } } if (_virtualPadButtons.size() == 0) { _virtualPadButtons.append(VirtualPadButton( dpi * VirtualPad::Manager::BTN_FULL_PIXELS / VirtualPad::Manager::DPI, PathUtils::resourcesPath() + "images/fly.png", VirtualPad::Manager::Button::JUMP)); _virtualPadButtons.append(VirtualPadButton( dpi * VirtualPad::Manager::BTN_FULL_PIXELS / VirtualPad::Manager::DPI, PathUtils::resourcesPath() + "images/handshake.png", VirtualPad::Manager::Button::HANDSHAKE)); } #endif Parent::customizeContext(); }