Пример #1
0
void HandleZoom::setZoomDirection(int _zoomDirection){
	GLDisplay* glDispaly = getGLDisplay();
	if(glDispaly==0){
		return;
	}
	glDispaly->setZoomDirection(_zoomDirection);
}
Пример #2
0
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();
	}
}
Пример #3
0
void HandleZoom::zoomReset(){
	GLDisplay* glDispaly = getGLDisplay();
	if (glDispaly == 0) {
		return;
	}
	glDispaly->zoomReset();
	changeLineEditValue();
}
Пример #4
0
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));
}
Пример #5
0
    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);


    }
Пример #6
0
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);
}
Пример #7
0
    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, &currentRotation);

            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);
}
Пример #12
0
	//-------------------------------------------------------------------------------------------------//
	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, &currentRotation);
				
				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);
	}