#
015b4086 |
|
20-Oct-2021 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
vesa: live mode patching, nvidia version. Some improvements to allow setting 8, 15, 16 and 32bit modes, and detect the correct mode number after patching the BIOS automatically, instead of hardcoding it. Also move the patching code to a separate file. Fixes #10570. Change-Id: I920f448b59ad7373cb8595d92ce3fa52324be67e Reviewed-on: https://review.haiku-os.org/c/haiku/+/4629 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
9515cd8c |
|
29-Oct-2021 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
vesa: implement live patching for ATI/AMD cards This uses atombios headers to find where in the BIOS the video mode tables is located. Then, we can replace entries in the table (in a RAM copy of the BIOS, of course) and inject any video mode we need. To make the table easy to find, the Atombios headers from the radeon_hd are reused, but no atombios code execution takes place here. Change-Id: If1981b1574822d4ce1e072dd6437a727192ce7cd Reviewed-on: https://review.haiku-os.org/c/haiku/+/4628 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
1005a276 |
|
19-Oct-2021 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
vesa: live BIOS patching for Intel video devices The VESA standard does not define any way for software to set a custom video mode, which means normally we would be constrained to whichever modes the video card manufacturer decided to provide. However, since we run the BIOS in an emulated environment, it is possible (and even quite easy) to patch it and inject any video mode we want, provided we know the format to use and where to put the info in. This approach was used in the NewOS VESA driver, as well as in 915resolution (a tool that predates the availability of native drivers for Linux for Intel videocards). Later on it was also used in Chameleon and Clover, bootloaders that are used for hackintoshes (running MacOS on unsupported hardware). This commit implements full support for Intel cards only, AMD and NVidia will be added later (but there is preliminary code to detect them) Change-Id: I2c528ba18b3863f486da694860a10761efcbfb3f Reviewed-on: https://review.haiku-os.org/c/haiku/+/4624 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
66415cd2 |
|
19-Oct-2021 |
Augustin Cavalier <waddlesplash@gmail.com> |
Remove dumb-framebuffer handling logic from the VESA driver. This reverts commit a0db7ef2729955d83f002b51034f0dedd39b4a0a. This reverts commit 40cdf7d607211c5f27854cd3048ac00e8baf20ab. This reverts commit 2ff22d6734176a2cf93a05c6842f69ef59d27a26. This reverts commit b9eacd390dbdf776561062b324dab4c6f5a0dc80. This partially reverts commit 5ae7ac5fd9957b3ff9faf211fd66976170c21b2c. This was all added in the run-up to the removal of the framebuffer driver, or was added since then to enhance framebuffer-only support in that driver. Change-Id: I32ab8199f22cf6846545ae19e943c98012b2a1d0 Reviewed-on: https://review.haiku-os.org/c/haiku/+/4615 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
a0db7ef2 |
|
10-Apr-2021 |
Maciej Bałuta <maciejbaluta0x539@gmail.com> |
Return "Unsupported" from VESA accelerant mode setting Currently, when trying to change settings in Screen preferences on a system which uses VESA driver on UEFI system, the displayed error message is "Invalid argument". This commit simply changes returned error code to B_UNSUPPORTED, so that in the UI we show "Operation not supported" error. Change-Id: I2a654d6f652c7b24ecd23969e04e477456235aa0 Reviewed-on: https://review.haiku-os.org/c/haiku/+/3858 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
2ff22d67 |
|
19-Jul-2018 |
Jessica Hamilton <jessica.l.hamilton@gmail.com> |
vesa: fix missing display_mode for UEFI. * Broke use of non-standard modes in hrev51207. Code changed when merging framebuffer driver back into vesa driver... Change-Id: I688ae627de23f37ffc8614d8f189593f8833ae3e
|
#
b9eacd39 |
|
11-Jun-2017 |
Jessica Hamilton <jessica.l.hamilton@gmail.com> |
vesa: fold framebuffer driver into vesa driver. * The app_server isn't designed to support two fallback drivers, so on systems using UEFI to boot, the framebuffer driver will often win when other drivers would likely work on those systems.
|
#
e0c25f98 |
|
20-Aug-2016 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
VESA: compare modes by index, instead of contents We only compared the height, width, and depth of modes to decide if the mode was already set. However, at boot, we may have these settings right and other things not properly configured, preventing VESA to set a working mode unless forced from the boot menu. Fixes #12918
|
#
89a406bc |
|
04-Feb-2015 |
Axel Dörfler <axeld@pinc-software.de> |
vesa: don't switch to the current mode. * If a mode change is requested, check if it is equivalent to the current one, and don't do anything in this case.
|
#
34cfa023 |
|
22-Mar-2012 |
François Revol <revol@free.fr> |
Dump actual mode count in vesa_accelerant_mode_count() debug output.
|
#
a96db7dc |
|
25-Oct-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* vesa != intel. *cough* * no functional change git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42921 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fbe9bdf0 |
|
29-Sep-2011 |
Axel Dörfler <axeld@pinc-software.de> |
* Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42782 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
18fe0231 |
|
08-Aug-2011 |
Bruno G. Albuquerque <bga@bug-br.org.br> |
Add initial vesa modes even if EDID information is present. EDID does not include all supported video modes. Fixes #4166. Note that this change will probably show several weird resolution is some configurations. They are all valid resolutions but are not commom so we need a way to filter those out. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42600 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d3d53515 |
|
19-Jul-2011 |
Axel Dörfler <axeld@pinc-software.de> |
* Add the width, and height to fill_display_mode(). This should help with #7751 this time. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42454 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5eed3d98 |
|
16-Jul-2011 |
Bruno G. Albuquerque <bga@bug-br.org.br> |
Fix crash in VESA accelerant. - Keep track of the correct number of initial modes available. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42438 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2ff8a623 |
|
14-Jul-2011 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed coding style violation introduced with the last commit. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42429 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d8c71f47 |
|
14-Jul-2011 |
Axel Dörfler <axeld@pinc-software.de> |
* Only add the VESA modes if there is no EDID available. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42427 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f7d98b09 |
|
13-Jul-2011 |
Axel Dörfler <axeld@pinc-software.de> |
* The VESA accelerant now always makes sure that all supported resolutions are added to the mode list (in 60 Hz, but that doesn't really matter). * It does this by iterating over the modes found, and computes the display_timings from them using the GTF code. * This should help with one of the problems of ticket #7751. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42421 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bb693d77 |
|
14-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added VESA capabilities field to the kernel args. * The vesa driver no longer uses VGA programming if the chip does not support VGA compatibility. * The VESA driver now tries to set the DAC to 8 bits per color gun. * In VESA modes, the driver no longer tries to use VGA programming; introduced the new vesa_set_indexed_colors() that is now used for palette programming. This should fix wrong colors of 8 bit BWindowScreen users with VESA on real hardware (emulators usually didn't mind either way). * Note that the app_server needs to maintain a palette per 8 bit screen, as right now, the colors are garbled after a workspace switch. Stefano, are you looking into that already? git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32347 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3bde1f12 |
|
31-Jul-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* If the VESA accelerant has EDID information, it will now also pass it to create_display_modes(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32020 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bfd4c59b |
|
05-Jun-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added DPMS support to the VESA driver, in case the hardware/BIOS supports it. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30974 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d16ddc57 |
|
03-Jun-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* The boot loader now passes on its EDID info to the kernel, and that will be put into a boot_item in frame_buffer_console_init(). * The VESA driver now supports gettings the EDID information as well; this is necessary now, since the app_server no longer takes over the mode the boot loader had chosen. * Note, we might want to do this via vm86 instead in the future, and remove the kernel part again. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25786 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9f161845 |
|
28-May-2008 |
Axel Dörfler <axeld@pinc-software.de> |
Patch by Jan Klötzke with minor changes by myself: * Use vm86 mode to call the VESA BIOS to do the actual mode switching by providing an ioctl in the vesa driver. * Fix vm86.h. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25680 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6328832f |
|
30-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Changed get_boot_item() API: it now also can retrieve the size of the boot item entry. * The bios_ia32 video platform code now stores the available VESA modes in the new vesa_modes kernel_args field. * When configuring a VESA mode via settings file, it's no longer needed to specify the exact mode - the closest available mode is now used. This should help with bug #1962. * frame_buffer_console_init() now also creates a boot_item for the VESA modes in the kernel_args. * The VESA accelerant now filters the mode list to only contain modes that are actually supported. * Moved non-shared vesa driver data into its own file vesa_private.h. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24675 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
002e8b64 |
|
01-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Now completely initializes the current_mode if it's in the mode list. * The mode list is now created by the common mode list creation code. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24190 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0c6f7795 |
|
19-Dec-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Moved VGA planar mode blitting into the VESA kernel driver. * In grayscale mode, the AccelerantHWInterface now sets the palette correctly. * HWInterface now has a fVGADevice set by AccelerantHWInterface which will be used to talk to the VESA driver. * Completed planar blitting for all 4 planes; we now have a perfect 16 color grayscale mode when you choose "Standard VGA mode" in the boot loader with an unsupported graphics card (such as in Qemu). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19567 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ea228a84 |
|
17-Dec-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Calmed down the VESA accelerant a bit. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19550 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
758b1d0e |
|
12-Nov-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fixes that make Haiku build with gcc 4. Mainly out of the following categories: * Missing includes (like <stdlib.h> and <string.h>). * Linking against $(TARGET_LIBSTDC++) instead of libstdc++.r4.so. * Local variables shadowing parameters. * Default parameters in function definitions (as opposed to function declarations). * All C++ stuff (nothrow, map, set, vector, min, max,...) must be imported explicitly from the std:: namespace now. * "new (sometype)[...]" must read "new sometype[...]", even if sometype is something like "const char *". * __FUNCTION__ is no longer a string literal (but a string expression), i.e. 'printf(__FUNCTION__ ": ...\n")' is invalid code. * A type cast results in a non-lvalue. E.g. "(char *)buffer += bytes" is an invalid expression. * "friend class SomeClass" only works when SomeClass is known before. Otherwise the an inner class with that name is considered as friend. gcc 4 is much pickier about scopes. * gcc 4 is generally stricter with respect to type conversions in C. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14878 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e5b4782b |
|
26-May-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Made some necessary enhancements to class Screen; the app_server also has to care about refresh rates. Also changed Screen::GetMode() (formerly Resolution()) to return all interesting values, so that hopefully no one will call it anymore like RootLayer::SetScreens() did. Greatly improved the horrible RootLayer::SetScreens(). The app_server is now able to deal with failing HWInterface::SetMode() calls; in this case, it will fall back to the hardware's current mode. This now also works correctly in combination with the vesa driver, so that you don't have to compile the app_server with the same resolution you boot in anymore. SetMode() now always returns if it succeeded or not. Renamed RootLayer::fScreenXYResolution to fScreenWidth/Height respectively. Removed the useless DisplayDriver::DisplayMode() method. Added B_GET_DISPLAY_MODE to the required accelerant hooks. Some minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12831 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
93ee2104 |
|
08-Apr-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Added very basic VESA driver. Will be improved in the future (right now it doesn't really do anything, it just passes the initial frame buffer on to the app_server). While it seems to work on real hardware (if you set the video mode to 640x480x32, app_server restriction), under Bochs, the app_server crashes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12273 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
89a406bc520f3c78e4463041994b0c9fa76b3902 |
|
04-Feb-2015 |
Axel Dörfler <axeld@pinc-software.de> |
vesa: don't switch to the current mode. * If a mode change is requested, check if it is equivalent to the current one, and don't do anything in this case.
|
#
34cfa0232750a83afdda9e69bb57314273d9917c |
|
22-Mar-2012 |
François Revol <revol@free.fr> |
Dump actual mode count in vesa_accelerant_mode_count() debug output.
|
#
a96db7dc369e1289059d27dc044f9edf685ca4c6 |
|
25-Oct-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* vesa != intel. *cough* * no functional change git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42921 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fbe9bdf09546aeed1753effae864baf91024bf51 |
|
29-Sep-2011 |
Axel Dörfler <axeld@pinc-software.de> |
* Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42782 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
18fe0231df37b0245159db147a65f429b986220e |
|
08-Aug-2011 |
Bruno G. Albuquerque <bga@bug-br.org.br> |
Add initial vesa modes even if EDID information is present. EDID does not include all supported video modes. Fixes #4166. Note that this change will probably show several weird resolution is some configurations. They are all valid resolutions but are not commom so we need a way to filter those out. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42600 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d3d53515a9e81be00e5c1d6eefa819de0098b2dd |
|
19-Jul-2011 |
Axel Dörfler <axeld@pinc-software.de> |
* Add the width, and height to fill_display_mode(). This should help with #7751 this time. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42454 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5eed3d989274a8689744af60aec0894d94b7d733 |
|
16-Jul-2011 |
Bruno G. Albuquerque <bga@bug-br.org.br> |
Fix crash in VESA accelerant. - Keep track of the correct number of initial modes available. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42438 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2ff8a6237a55cbec6353567fdfdcc2a18acb6044 |
|
14-Jul-2011 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed coding style violation introduced with the last commit. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42429 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d8c71f47c36fb69ce2578ccb221b36f4f97b453b |
|
14-Jul-2011 |
Axel Dörfler <axeld@pinc-software.de> |
* Only add the VESA modes if there is no EDID available. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42427 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f7d98b0923817ad675be677ea2e42ed706f23ff7 |
|
13-Jul-2011 |
Axel Dörfler <axeld@pinc-software.de> |
* The VESA accelerant now always makes sure that all supported resolutions are added to the mode list (in 60 Hz, but that doesn't really matter). * It does this by iterating over the modes found, and computes the display_timings from them using the GTF code. * This should help with one of the problems of ticket #7751. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42421 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bb693d77643c7bc4b2b10847007a94af5e84b953 |
|
14-Aug-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added VESA capabilities field to the kernel args. * The vesa driver no longer uses VGA programming if the chip does not support VGA compatibility. * The VESA driver now tries to set the DAC to 8 bits per color gun. * In VESA modes, the driver no longer tries to use VGA programming; introduced the new vesa_set_indexed_colors() that is now used for palette programming. This should fix wrong colors of 8 bit BWindowScreen users with VESA on real hardware (emulators usually didn't mind either way). * Note that the app_server needs to maintain a palette per 8 bit screen, as right now, the colors are garbled after a workspace switch. Stefano, are you looking into that already? git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32347 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3bde1f121acb9ef50268868839dc01114197a124 |
|
31-Jul-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* If the VESA accelerant has EDID information, it will now also pass it to create_display_modes(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32020 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bfd4c59b639308dc5bc06f8273c4bb0c5e4e4598 |
|
05-Jun-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added DPMS support to the VESA driver, in case the hardware/BIOS supports it. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30974 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d16ddc579cc378b230e7782b82e6007063d1442d |
|
03-Jun-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* The boot loader now passes on its EDID info to the kernel, and that will be put into a boot_item in frame_buffer_console_init(). * The VESA driver now supports gettings the EDID information as well; this is necessary now, since the app_server no longer takes over the mode the boot loader had chosen. * Note, we might want to do this via vm86 instead in the future, and remove the kernel part again. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25786 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9f16184577a3506b927dbc5cfff47ab03500deda |
|
28-May-2008 |
Axel Dörfler <axeld@pinc-software.de> |
Patch by Jan Klötzke with minor changes by myself: * Use vm86 mode to call the VESA BIOS to do the actual mode switching by providing an ioctl in the vesa driver. * Fix vm86.h. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25680 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6328832fba8f149074dbe7502dc0c180ff013263 |
|
30-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Changed get_boot_item() API: it now also can retrieve the size of the boot item entry. * The bios_ia32 video platform code now stores the available VESA modes in the new vesa_modes kernel_args field. * When configuring a VESA mode via settings file, it's no longer needed to specify the exact mode - the closest available mode is now used. This should help with bug #1962. * frame_buffer_console_init() now also creates a boot_item for the VESA modes in the kernel_args. * The VESA accelerant now filters the mode list to only contain modes that are actually supported. * Moved non-shared vesa driver data into its own file vesa_private.h. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24675 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
002e8b64ae70f258a1b923154dfbcccb81bd200c |
|
01-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Now completely initializes the current_mode if it's in the mode list. * The mode list is now created by the common mode list creation code. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24190 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0c6f77951ed2366737266cae1bf0c2f98842e6f5 |
|
19-Dec-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Moved VGA planar mode blitting into the VESA kernel driver. * In grayscale mode, the AccelerantHWInterface now sets the palette correctly. * HWInterface now has a fVGADevice set by AccelerantHWInterface which will be used to talk to the VESA driver. * Completed planar blitting for all 4 planes; we now have a perfect 16 color grayscale mode when you choose "Standard VGA mode" in the boot loader with an unsupported graphics card (such as in Qemu). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19567 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ea228a84f4f3a05ca97944e75452ed11b05b213a |
|
17-Dec-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Calmed down the VESA accelerant a bit. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19550 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
758b1d0e05fe1042cce6e00d194a147802d4f9be |
|
12-Nov-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fixes that make Haiku build with gcc 4. Mainly out of the following categories: * Missing includes (like <stdlib.h> and <string.h>). * Linking against $(TARGET_LIBSTDC++) instead of libstdc++.r4.so. * Local variables shadowing parameters. * Default parameters in function definitions (as opposed to function declarations). * All C++ stuff (nothrow, map, set, vector, min, max,...) must be imported explicitly from the std:: namespace now. * "new (sometype)[...]" must read "new sometype[...]", even if sometype is something like "const char *". * __FUNCTION__ is no longer a string literal (but a string expression), i.e. 'printf(__FUNCTION__ ": ...\n")' is invalid code. * A type cast results in a non-lvalue. E.g. "(char *)buffer += bytes" is an invalid expression. * "friend class SomeClass" only works when SomeClass is known before. Otherwise the an inner class with that name is considered as friend. gcc 4 is much pickier about scopes. * gcc 4 is generally stricter with respect to type conversions in C. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14878 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e5b4782b4ee7663decea60a4385fce3122c2b16d |
|
26-May-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Made some necessary enhancements to class Screen; the app_server also has to care about refresh rates. Also changed Screen::GetMode() (formerly Resolution()) to return all interesting values, so that hopefully no one will call it anymore like RootLayer::SetScreens() did. Greatly improved the horrible RootLayer::SetScreens(). The app_server is now able to deal with failing HWInterface::SetMode() calls; in this case, it will fall back to the hardware's current mode. This now also works correctly in combination with the vesa driver, so that you don't have to compile the app_server with the same resolution you boot in anymore. SetMode() now always returns if it succeeded or not. Renamed RootLayer::fScreenXYResolution to fScreenWidth/Height respectively. Removed the useless DisplayDriver::DisplayMode() method. Added B_GET_DISPLAY_MODE to the required accelerant hooks. Some minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12831 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
93ee21046d225f4f58eeeade87a937b8c10da6f1 |
|
08-Apr-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Added very basic VESA driver. Will be improved in the future (right now it doesn't really do anything, it just passes the initial frame buffer on to the app_server). While it seems to work on real hardware (if you set the video mode to 640x480x32, app_server restriction), under Bochs, the app_server crashes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12273 a95241bf-73f2-0310-859d-f6bbb57e9c96
|