i know guys who is run gl.3.3 context on Intell HD 3000 with GL .3.1.
this guys make
Code: Select all
internalformat = GL_RG32F;
format = GL_RG;
typ = GL_FLOAT;
Code: Select all
internalformat = GL_RG32F;
format = GL_RG;
typ = GL_FLOAT;
if (mOwnsGLContext)
{
const int attribList[] =
{
WGL_CONTEXT_MAJOR_VERSION_ARB, 3,
WGL_CONTEXT_MINOR_VERSION_ARB, 3,
#if OGRE_DEBUG_MODE
WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_DEBUG_BIT_ARB,
#endif
WGL_CONTEXT_PROFILE_MASK_ARB, WGL_CONTEXT_CORE_PROFILE_BIT_ARB,
0, 0
};
// New context is shared with previous one
mGlrc = wglCreateContextAttribsARB( mHDC, old_context, attribList );
if (!mGlrc)
{
OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR,
"wglCreateContextAttribsARB failed: " + translateWGLError(),
"Win32Window::create");
}
}
if (!wglMakeCurrent(mHDC, mGlrc))
{
OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR,
"wglMakeCurrent failed: " + translateWGLError(),
"Win32Window::create");
}
// Do not change vsync if the external window has the OpenGL control
if (!mIsExternalGLControl) {
// Don't use wglew as if this is the first window, we won't have initialised yet
PFNWGLSWAPINTERVALEXTPROC _wglSwapIntervalEXT =
(PFNWGLSWAPINTERVALEXTPROC)wglGetProcAddress("wglSwapIntervalEXT");
if (_wglSwapIntervalEXT)
_wglSwapIntervalEXT(mVSync? mVSyncInterval : 0);
}
if (old_context && old_context != mGlrc)
{
// Restore old context
if (!wglMakeCurrent(old_hdc, old_context))
OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "wglMakeCurrent() failed", "Win32Window::create");
}
// Create RenderSystem context
mContext = new Win32Context(mHDC, mGlrc);