PDA

View Full Version : One Application is showing Version 1.1.0 and other 4.4.0



vishalvaza
05-26-2014, 04:27 AM
Hi,

My PC has following configuration,
1. windows 7 OS
2. GTForce 610 Graphic Card

Now I download one sample application for VBO test purpose.
In that application My OpenGL version shows as 4.4.0

Now I already have an application which is already using openGL lib so that I want to upgrade to VBO for rendering.
but when I update my code same as sample application it shows me a 1.1.0 version. so that I was unable to use VBO.

Help Me.

Ilian Dinev
05-26-2014, 05:21 AM
We need to see the code for context-creation. Somehow you end-up using the Microsoft software renderer.

vishalvaza
05-26-2014, 05:50 AM
I am using wglCreateContext method in both application.
4.4.0 using createWindow function for creating dialog by window programming
1.1.0 using latest MFC code and load openGL in view.

Ilian Dinev
05-26-2014, 06:49 AM
Then something's wrong with the MFC code; e.g choosing indexed 8-bit palette drawing and other obsolete things a modern driver/gpu shouldn't care about. I don't have the MFC code nearby anymore, so I can't see what it's doing.

vishalvaza
05-26-2014, 07:06 AM
I developed application in Visual studio 2008
and created SDI application now i want to use VBO in View Class.

Driver is not an issue because in other application it shows 4.4.0 version.

Ilian Dinev
05-26-2014, 08:12 AM
That's what I also said. MFC is causing the issue by requesting an incredibly-obsolete PixelFormat configuration, that only the ancient GL1.1 software rasterizer supports. You need to fix MFC's code or something.

vishalvaza
05-26-2014, 10:06 AM
Is there any extra setup require to use glext.h file?

Ilian Dinev
05-26-2014, 10:28 AM
Yes, but before you can use extension-loading etc, you need to fix MFC or whatever you're using to create a context, to stop using the 1.1 context.

Aleksandar
05-27-2014, 09:31 AM
Yes, but before you can use extension-loading etc, you need to fix MFC or whatever you're using to create a context, to stop using the 1.1 context.
How come? MFC has nothing with OpenGL.

Vishalvaza, your problem is quite normal for absolute beginner in OpenGL programming for Windows. Namely, Windows natively supports OpenGL only in version 1.1. If you need higher version you have to grab pointers to the functions directly from the driver. So, before going any further read the section Getting Started from the OpenGL Wiki (http://www.opengl.org/wiki/Main_Page).

mhagain
05-27-2014, 01:02 PM
How come? MFC has nothing with OpenGL.

Vishalvaza, your problem is quite normal for absolute beginner in OpenGL programming for Windows. Namely, Windows natively supports OpenGL only in version 1.1. If you need higher version you have to grab pointers to the functions directly from the driver. So, before going any further read the section Getting Started from the OpenGL Wiki (http://www.opengl.org/wiki/Main_Page).

This is actually probably not what's going on.

Even if you don't grab the function pointers, glGetString (GL_VERSION) should still give you the highest version supported by your driver after context creation. If your window can support a hardware-accelerated pixel-format, and if your driver supports hardware-accelerated OpenGL, then this will be 3.x or 4.x on all current and reasonable drivers.

Since the OP has confirmed GL 4.4 support with a different program we're certain that the driver supports GL 4.4 (as it should for a GeForce 610).

What the OP needs to confirm is if the diagnosis of GL 1.1 only being available is coming from a glGetString (GL_VERSION) or from the function pointers not being available. From the previous posts the former seems most likely, which means that Microsoft's software implementation is probably being used. In that case the cause would be something in the window creation code not allowing a hardware-accelerated pixel format. The challenge is to find out what that "something" is, which is why we then need to see the context creation code.

Another possibility is that this is a laptop with NVIDIA Optimus and the Intel gfx card has an OEM driver which doesn't have OpenGL support. The test program uses the NVIDIA (because it exports the NvOptimusEnablement global) but the OP's own program is using the Intel (because it's not exporting the global). A glGetString (GL_VENDOR) can be used to check for that, but again we just need more information from the OP before we can start diagnosing possible causes.

If the OP can post the results of both a glGetString (GL_VERSION) and glGetString (GL_VENDOR) first, we can start making some real recommendations that may actually work. If these indicate GL 4.4 and NVIDIA we will need to see the context creation code. Anything else is just guessing.

vishalvaza
05-27-2014, 11:13 PM
Thanks all for supporting me.
I found the solutions for the same.