void HandleZoom::setZoomDirection(int _zoomDirection){ GLDisplay* glDispaly = getGLDisplay(); if(glDispaly==0){ return; } glDispaly->setZoomDirection(_zoomDirection); }
void HandleZoom::setZoomFactors(){ GLDisplay* glDispaly = getGLDisplay(); if (glDispaly == 0) { return; } ZoomLineEdit* zoomLineEditX = mainWnd->getLineEdit_ZoomX(); ZoomLineEdit* zoomLineEditY = mainWnd->getLineEdit_ZoomY(); QString sValueZoomX = zoomLineEditX->text(); QString sValueZoomY = zoomLineEditY->text(); bool okZoomX, okZoomY; int zoomX = sValueZoomX.toInt(&okZoomX, 10); int zoomY = sValueZoomY.toInt(&okZoomY, 10); double zoomFactorX = (double)zoomX/100.0; double zoomFactorY = (double)zoomY/100.0; if(okZoomX&&okZoomY){ glDispaly->setZoomFactorX(zoomFactorX); glDispaly->setZoomFactorY(zoomFactorY); glDispaly->resizeOnWindow(); }else{ changeLineEditValue(); } }
void HandleZoom::zoomReset(){ GLDisplay* glDispaly = getGLDisplay(); if (glDispaly == 0) { return; } glDispaly->zoomReset(); changeLineEditValue(); }
void HandleZoom::changeLineEditValue(){ GLDisplay* glDispaly = getGLDisplay(); if (glDispaly == 0) { return; } int zoomFactorX = (int)(glDispaly->getZoomFactorX() * 100.0); int zoomFactorY = (int)(glDispaly->getZoomFactorY() * 100.0); ZoomLineEdit* zoomLineEditX = mainWnd->getLineEdit_ZoomX(); ZoomLineEdit* zoomLineEditY = mainWnd->getLineEdit_ZoomY(); zoomLineEditX->setText(QString::number(zoomFactorX)); zoomLineEditY->setText(QString::number(zoomFactorY)); }
Win32EGLSupport::Win32EGLSupport() { //RECT windowRect; //GetClientRect(mNativeDisplay, &windowRect); mNativeDisplay = getNativeDisplay(); mGLDisplay = getGLDisplay(); // Video mode possibilities DEVMODE DevMode; DevMode.dmSize = sizeof(DEVMODE); for (DWORD i = 0; EnumDisplaySettings(NULL, i, &DevMode); ++i) { if (DevMode.dmBitsPerPel < 16) continue; mCurrentMode.first.first = DevMode.dmPelsWidth; mCurrentMode.first.second = DevMode.dmPelsHeight; mCurrentMode.second = 0; mOriginalMode = mCurrentMode; mVideoModes.push_back(mCurrentMode); } EGLConfig *glConfigs; int config, nConfigs = 0; glConfigs = chooseGLConfig(NULL, &nConfigs); for (config = 0; config < nConfigs; config++) { int caveat, samples; getGLConfigAttrib(glConfigs[config], EGL_CONFIG_CAVEAT, &caveat); if (caveat != EGL_SLOW_CONFIG) { getGLConfigAttrib(glConfigs[config], EGL_SAMPLES, &samples); mSampleLevels.push_back(StringConverter::toString(samples)); } } free(glConfigs); removeDuplicates(mSampleLevels); }
void HandleZoom::updateZoomBarInfoFromGLDisplay(){ GLDisplay* glDispaly = getGLDisplay(); if (glDispaly == 0) { return; } int zoomFactorX = (int) (glDispaly->getZoomFactorX() * 100.0); int zoomFactorY = (int) (glDispaly->getZoomFactorY() * 100.0); ZoomLineEdit* zoomLineEditX = mainWnd->getLineEdit_ZoomX(); ZoomLineEdit* zoomLineEditY = mainWnd->getLineEdit_ZoomY(); zoomLineEditX->setText(QString::number(zoomFactorX)); zoomLineEditY->setText(QString::number(zoomFactorY)); int zoomDirection = glDispaly->getZoomDirection(); QComboBox *comboBox_ZoomDirection = mainWnd->getComboBox_ZoomDirection(); comboBox_ZoomDirection->setCurrentIndex(zoomDirection); }
AndroidEGLSupport::AndroidEGLSupport() { mNativeDisplay = EGL_DEFAULT_DISPLAY; mGLDisplay = getGLDisplay(); mCurrentMode.first.first = 1280; mCurrentMode.first.second = 800; mCurrentMode.second = 0; mOriginalMode = mCurrentMode; mVideoModes.push_back(mCurrentMode); ConfigOption optOrientation; optOrientation.name = "Orientation"; optOrientation.immutable = false; optOrientation.possibleValues.push_back("Landscape"); optOrientation.possibleValues.push_back("Portrait"); optOrientation.currentValue = optOrientation.possibleValues[0]; mOptions[optOrientation.name] = optOrientation; }
X11EGLSupport::X11EGLSupport() { // A connection that might be shared with the application for GL rendering: mGLDisplay = getGLDisplay(); // A connection that is NOT shared to enable independent event processing: mNativeDisplay = getNativeDisplay(); int dummy = 0; // TODO: Probe video modes mCurrentMode.first.first = DisplayWidth(mNativeDisplay, DefaultScreen(mNativeDisplay)); mCurrentMode.first.second = DisplayHeight(mNativeDisplay, DefaultScreen(mNativeDisplay)); mCurrentMode.second = 0; mOriginalMode = mCurrentMode; mVideoModes.push_back(mCurrentMode); EGLConfig *glConfigs; int config, nConfigs = 0; glConfigs = chooseGLConfig(NULL, &nConfigs); for (config = 0; config < nConfigs; config++) { int caveat, samples; getGLConfigAttrib(glConfigs[config], EGL_CONFIG_CAVEAT, &caveat); if (caveat != EGL_SLOW_CONFIG) { getGLConfigAttrib(glConfigs[config], EGL_SAMPLES, &samples); mSampleLevels.push_back(StringConverter::toString(samples)); } } free(glConfigs); removeDuplicates(mSampleLevels); }
XVisualInfo *X11EGLSupport::getVisualFromFBConfig(::EGLConfig glConfig) { XVisualInfo *vi, tmp; int vid, n; ::EGLDisplay glDisplay; glDisplay = getGLDisplay(); mNativeDisplay = getNativeDisplay(); if (eglGetConfigAttrib(glDisplay, glConfig, EGL_NATIVE_VISUAL_ID, &vid) == EGL_FALSE) { OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Fail to get VISUAL_ID from glConfig", __FUNCTION__); return 0; } EGL_CHECK_ERROR if (vid == 0) { const int screen_number = DefaultScreen(mNativeDisplay); Visual *v = DefaultVisual((Display*)mNativeDisplay, screen_number); vid = XVisualIDFromVisual(v); } tmp.visualid = vid; vi = 0; vi = XGetVisualInfo((Display*)mNativeDisplay, VisualIDMask, &tmp, &n); if (vi == 0) { OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Fail to get X11 VISUAL", __FUNCTION__); return 0; } return vi; }
Win32EGLSupport::Win32EGLSupport() { //RECT windowRect; //GetClientRect(mNativeDisplay, &windowRect); mNativeDisplay = getNativeDisplay(); mGLDisplay = getGLDisplay(); mCurrentMode.first.first = 555; // todo mCurrentMode.first.second = 555; // todo mCurrentMode.second = 0; mOriginalMode = mCurrentMode; mVideoModes.push_back(mCurrentMode); EGLConfig *glConfigs; int config, nConfigs = 0; glConfigs = chooseGLConfig(NULL, &nConfigs); for (config = 0; config < nConfigs; config++) { int caveat, samples; getGLConfigAttrib(glConfigs[config], EGL_CONFIG_CAVEAT, &caveat); if (caveat != EGL_SLOW_CONFIG) { getGLConfigAttrib(glConfigs[config], EGL_SAMPLES, &samples); mSampleLevels.push_back(StringConverter::toString(samples)); } } free(glConfigs); removeDuplicates(mSampleLevels); }
X11EGLSupport::X11EGLSupport() { mNativeDisplay = getNativeDisplay(); mGLDisplay = getGLDisplay(); int dummy; if (XQueryExtension((Display*)mNativeDisplay, "RANDR", &dummy, &dummy, &dummy)) { XRRScreenConfiguration *screenConfig; mRandr = true; screenConfig = XRRGetScreenInfo((Display*)mNativeDisplay, DefaultRootWindow((Display*)mNativeDisplay)); if (screenConfig) { XRRScreenSize *screenSizes; int nSizes = 0; Rotation currentRotation; int currentSizeID = XRRConfigCurrentConfiguration(screenConfig, ¤tRotation); screenSizes = XRRConfigSizes(screenConfig, &nSizes); mCurrentMode.first.first = screenSizes[currentSizeID].width; mCurrentMode.first.second = screenSizes[currentSizeID].height; mCurrentMode.second = XRRConfigCurrentRate(screenConfig); mOriginalMode = mCurrentMode; for (int sizeID = 0; sizeID < nSizes; sizeID++) { short *rates; int nRates = 0; rates = XRRConfigRates(screenConfig, sizeID, &nRates); for (int rate = 0; rate < nRates; rate++) { VideoMode mode; mode.first.first = screenSizes[sizeID].width; mode.first.second = screenSizes[sizeID].height; mode.second = rates[rate]; mVideoModes.push_back(mode); } } XRRFreeScreenConfigInfo(screenConfig); } } else { mCurrentMode.first.first = DisplayWidth((Display*)mNativeDisplay, DefaultScreen(mNativeDisplay)); mCurrentMode.first.second = DisplayHeight((Display*)mNativeDisplay, DefaultScreen(mNativeDisplay)); mCurrentMode.second = 0; mOriginalMode = mCurrentMode; mVideoModes.push_back(mCurrentMode); } EGLConfig *glConfigs; int config, nConfigs = 0; glConfigs = chooseGLConfig(NULL, &nConfigs); for (config = 0; config < nConfigs; config++) { int caveat, samples; getGLConfigAttrib(glConfigs[config], EGL_CONFIG_CAVEAT, &caveat); if (caveat != EGL_SLOW_CONFIG) { getGLConfigAttrib(glConfigs[config], EGL_SAMPLES, &samples); mSampleLevels.push_back(StringConverter::toString(samples)); } } free(glConfigs); removeDuplicates(mSampleLevels); }
//-------------------------------------------------------------------------------------------------// GLXGLSupport::GLXGLSupport() : mGLDisplay(0), mXDisplay(0) { // A connection that might be shared with the application for GL rendering: mGLDisplay = getGLDisplay(); // A connection that is NOT shared to enable independent event processing: mXDisplay = getXDisplay(); int dummy; if (XQueryExtension(mXDisplay, "RANDR", &dummy, &dummy, &dummy)) { XRRScreenConfiguration *screenConfig; screenConfig = XRRGetScreenInfo(mXDisplay, DefaultRootWindow(mXDisplay)); if (screenConfig) { XRRScreenSize *screenSizes; int nSizes = 0; Rotation currentRotation; int currentSizeID = XRRConfigCurrentConfiguration(screenConfig, ¤tRotation); screenSizes = XRRConfigSizes(screenConfig, &nSizes); mCurrentMode.first.first = screenSizes[currentSizeID].width; mCurrentMode.first.second = screenSizes[currentSizeID].height; mCurrentMode.second = XRRConfigCurrentRate(screenConfig); mOriginalMode = mCurrentMode; for(int sizeID = 0; sizeID < nSizes; sizeID++) { short *rates; int nRates = 0; rates = XRRConfigRates(screenConfig, sizeID, &nRates); for (int rate = 0; rate < nRates; rate++) { VideoMode mode; mode.first.first = screenSizes[sizeID].width; mode.first.second = screenSizes[sizeID].height; mode.second = rates[rate]; mVideoModes.push_back(mode); } } XRRFreeScreenConfigInfo(screenConfig); } } else { mCurrentMode.first.first = DisplayWidth(mXDisplay, DefaultScreen(mXDisplay)); mCurrentMode.first.second = DisplayHeight(mXDisplay, DefaultScreen(mXDisplay)); mCurrentMode.second = 0; mOriginalMode = mCurrentMode; mVideoModes.push_back(mCurrentMode); } GLXFBConfig *fbConfigs; int config, nConfigs = 0; fbConfigs = chooseFBConfig(NULL, &nConfigs); for (config = 0; config < nConfigs; config++) { int caveat, samples; getFBConfigAttrib (fbConfigs[config], GLX_CONFIG_CAVEAT, &caveat); if (caveat != GLX_SLOW_CONFIG) { getFBConfigAttrib (fbConfigs[config], GLX_SAMPLES, &samples); mSampleLevels.push_back(StringConverter::toString(samples)); } } XFree (fbConfigs); remove_duplicates(mSampleLevels); }