Retrieve display monitor capabilities
Posted: Wed Mar 27, 2019 5:36 am
Hello all,
I have found the wiki and this forum extraordinary helpful on my adventure into the world of OS development. However, looking through both this site and the wider googleverse I have been unable to find the answer to a question I have.
In the kernel I am developing I use VBE in real mode to detect and switch to high resolution video modes before switching to protected mode at boot. The function scans through supported modes and prioritizes the modes by bpp first, then pixel width, then pixel height to determine the "best" mode available
However, it is my understanding that the VBE may return modes that are not supported by the connected display. Right now I just have a hardcoded "maximum width" so only modes with pixel width equal to or below that value will be considered.
I was hoping to find a method to detect supported video modes, or at least pull some capability data, of the monitor that is connected, but I can't seem to find any information on how I may go about that.
Thanks for any assistance!
I have found the wiki and this forum extraordinary helpful on my adventure into the world of OS development. However, looking through both this site and the wider googleverse I have been unable to find the answer to a question I have.
In the kernel I am developing I use VBE in real mode to detect and switch to high resolution video modes before switching to protected mode at boot. The function scans through supported modes and prioritizes the modes by bpp first, then pixel width, then pixel height to determine the "best" mode available
However, it is my understanding that the VBE may return modes that are not supported by the connected display. Right now I just have a hardcoded "maximum width" so only modes with pixel width equal to or below that value will be considered.
I was hoping to find a method to detect supported video modes, or at least pull some capability data, of the monitor that is connected, but I can't seem to find any information on how I may go about that.
Thanks for any assistance!