Skip to content

OPENGL for HXDOS #59

@RUSSTARUS

Description

@RUSSTARUS

Hello Andreas Grech!

I moved this topic to the HX section from VSBHDA Baron-von-Riedesel/VSBHDA#40

Yes I checked OPENGL32.DLL c QUAKE2 today. Yes it works under HXDOS, but of course it is very slow.
It does not always start on the first try under HXDOS.

It is not possible to play even in pure Windows, as it is still without acceleration.
It was important to check only the launch.
I have already said that this is only a software implementation of OPENGL, without hardware acceleration.

I also tested OPENGL on my simple examples (test.exe) using GLUT32.DLL
It doesn't always run the first time under HXDOS.

I found that these tests don't work correctly in HXDOS compared to pure Windows. The GLUT32.DLL library provides
a mouse and keyboard interface and other screen preparation functions. However, it doesn't correctly intercept keyboard and mouse handlers
from the HXDOS kernel. In pure Windows, everything works fine.
QUAKE2 does not use GLUT32.DLL, but it also has problems with keyboard and mouse handlers in OPENGL mode in HXDOS.

It's as if something is slowing down the event handler threads. Even loading map files stops until you move the mouse
and press keys (this can be seen in the interface lines). The algorithm seems to pause until you press a key or move the mouse.

I have prepared the necessary files for you, and you can test and compare the behavior of OPENGL programs yourself. If you wish.

A bit about the OPENGL32.DLL file. It is compiled from the ReactOS project and simplified to avoid unnecessary OS registry checks. It tries to
open the IGLICD32.DLL (standart ICD driver for INTEL video card), and if without success, then OPENGL
software processing based on the MESA project is started. Works as a stub if there is no hardware acceleration. From the IGLICD32.DLL file, it tries to import functions:

DrvCopyContext;
DrvCreateContext;
DrvCreateLayerContext;
DrvDeleteContext;
DrvDescribeLayerPlane;
DrvDescribePixelFormat;
DrvGetLayerPaletteEntries;
DrvGetProcAddress;
DrvReleaseContext;
DrvRealizeLayerPalette;
DrvSetContext;
DrvSetLayerPaletteEntries;
DrvSetPixelFormat;
DrvShareLists;
DrvSwapBuffers;
DrvSwapLayerBuffers;

These are the functions that I will try to implement in the future to communicate with the DRM (Direct Rendering Manager) kernel (which I have already written).
It will work on the HXDOS kernel side. (DGDI32.DLL)

For now, this is just a software implementation of OPENGL32, which works to check the overall picture.

I would like to know from you if it is possible to solve this problem in HXDOS with keyboard and mouse event handlers for OPENGL.
Is this fundamental or not? Is there a way to fix it? What's the matter here?

Ruslan

FILES.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions