0
votes

Basically I have a windows system that does not have a graphics card, and I am trying to execute a .jar file in cmd, which gives the following output:

Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\shattered>java -jar test.jar

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: OpenGL is not supported by the video driver.

I am only somewhat tech literate but the takeaway I got from that was that I needed to get OpenGl. So I did some research and found a few mentions of OpenGl software mode or something but I have no idea of how to go about doing so. Any help would be greatly appreciated, cheers!

And before it is mentioned, I have tried updating the video driver.

2
If you have a video driver, then you most certainly have a graphics card :). Can you share the details of that system? You might need a software compatibility layer, but that won't be nearly as performant, and OpenGL supporting cards (if it's old OpenGL) can be obtained at almost no cost.Bartek Banachewicz
Well I have one, its just the default VGA graphics adaptor, does not support OpenGLSeaCrumbs
IIRC Windows labels devices without proper drivers as Standard VGA Graphics Adapter. How did you try to update the driver? Is that a standard PC motherboard?Bartek Banachewicz
Interesting, this may sound dumb but is it then possible that I have a functional graphics card that just doesn't have drivers? I did it through the device manager, just said that the driver was up to date and the device was operating correctly.SeaCrumbs
@SeaCrumbs yes that's completely possible. If you have any kind of integrated graphics or dedicated graphics from Intel/AMD/Nvidia from within the past 5 years it should undoubtedly have OpenGL capabilitiesAlex

2 Answers

1
votes

First on the "what":

OpenGL is a application programming interface (API) between the graphics facilities of the operating system (which in broad term covers everything between putting windows to the screen down to placing single pixels) and individual programs. The main purpose of OpenGL is providing access to accelerated graphics infrastructure optimized for rasterizing graphics primitives most suitable for 3D image generation.

Now to the "how":

The typical OpenGL implementation ships as part of the drivers of 3D graphics accelerator processors (GPUs). However since (a very old) version of OpenGL, namely OpenGL-1.1, has been specified as part of the Win32 API every version of Windows since Windows 95B and Windows NT-4 includes a fallback software implementation that can be used in case no accelerated OpenGL version is available. However if any version beyond OpenGL-1.1 is required this fallback does not provide it.

However you can substitute the standard OpenGL interface with an advanced software rasterizer implementation: The Mesa project provides a version of their software rasterizer that provides even modern core profile OpenGL. The usual recommendation is to place these substitute opengl32.dll besides the .exe file of the program that requires it; in fact on modern Windows systems with system file protection it's actually impossible to replace the original DLLs without jumping a few hoops. The MSys2 project offers prebuilt versions of substitute DLLs.

Current (as of writing this):

XZ archives can be unpacked with 7-zip.

0
votes

Default VGA/VESA driver is also used for gfx card without propper driver. Such cards usually emulate EGA/VGA/VESA until initialized so windows default driver works for them.

So during boot freeze the screen and look at the PID/VID table of installed devices. from that numbers you can detect which gfx card you really have and look for drivers.

In rare case you really got just EGA/VGA/VESA (which I doubt) in the old MS-DOS times there were OpenGL software drivers even for those. What you need is find OpebGL DLL for your platform like (opengl32.dll) and place it either directly to your executable or into known path like system32 ... In such case you should get at least OpenGL 1.0 support in SW rendering mode

btw if my memory serves well in the old times of win3.11 and win9x this OpenGL32.dll was a part of windows instalation and we got the OpenGL screen savers running on VESA cards natively.