Oops, the last commit contained a wrong patch. This is the correct one.
This commit is contained in:
parent
2da199da53
commit
3dec8614fe
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=43674
@ -775,21 +775,36 @@ vesa_set_mode(video_adapter_t *adp, int mode)
|
||||
vesa_adp->va_buffer = BIOS_PADDRTOVADDR(info.vi_buffer);
|
||||
vesa_adp->va_buffer_size = info.vi_buffer_size;
|
||||
}
|
||||
bcopy(&info, &adp->va_info, sizeof(adp->va_info));
|
||||
len = vesa_bios_get_line_length();
|
||||
if (len > 0)
|
||||
adp->va_line_width = len;
|
||||
else if (info.vi_flags & V_INFO_GRAPHICS)
|
||||
adp->va_line_width = info.vi_width/8;
|
||||
else
|
||||
adp->va_line_width = info.vi_width;
|
||||
if (len > 0) {
|
||||
vesa_adp->va_line_width = len;
|
||||
} else if (info.vi_flags & V_INFO_GRAPHICS) {
|
||||
switch (info.vi_depth/info.vi_planes) {
|
||||
case 1:
|
||||
vesa_adp->va_line_width = info.vi_width/8;
|
||||
break;
|
||||
case 2:
|
||||
vesa_adp->va_line_width = info.vi_width/4;
|
||||
break;
|
||||
case 4:
|
||||
vesa_adp->va_line_width = info.vi_width/2;
|
||||
break;
|
||||
case 8:
|
||||
default: /* shouldn't happen */
|
||||
vesa_adp->va_line_width = info.vi_width;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
vesa_adp->va_line_width = info.vi_width;
|
||||
}
|
||||
#if VESA_DEBUG > 0
|
||||
printf("vesa_set_mode(): vi_width:%d, len:%d, line_width:%d\n",
|
||||
info.vi_width, len, adp->va_line_width);
|
||||
info.vi_width, len, vesa_adp->va_line_width);
|
||||
#endif
|
||||
bcopy(&info, &vesa_adp->va_info, sizeof(vesa_adp->va_info));
|
||||
|
||||
/* move hardware cursor out of the way */
|
||||
(*vidsw[adp->va_index]->set_hw_cursor)(adp, -1, -1);
|
||||
(*vidsw[vesa_adp->va_index]->set_hw_cursor)(vesa_adp, -1, -1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -853,10 +853,25 @@ update_adapter_info(video_adapter_t *adp, video_info_t *info)
|
||||
adp->va_buffer = BIOS_PADDRTOVADDR(info->vi_buffer);
|
||||
adp->va_buffer_size = info->vi_buffer_size;
|
||||
}
|
||||
if (info->vi_flags & V_INFO_GRAPHICS)
|
||||
adp->va_line_width = info->vi_width/8;
|
||||
else
|
||||
if (info->vi_flags & V_INFO_GRAPHICS) {
|
||||
switch (info->vi_depth/info->vi_planes) {
|
||||
case 1:
|
||||
adp->va_line_width = info->vi_width/8;
|
||||
break;
|
||||
case 2:
|
||||
adp->va_line_width = info->vi_width/4;
|
||||
break;
|
||||
case 4:
|
||||
adp->va_line_width = info->vi_width/2;
|
||||
break;
|
||||
case 8:
|
||||
default: /* shouldn't happen */
|
||||
adp->va_line_width = info->vi_width;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
adp->va_line_width = info->vi_width;
|
||||
}
|
||||
bcopy(info, &adp->va_info, sizeof(adp->va_info));
|
||||
}
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* $Id: vga_isa.c,v 1.1 1999/01/23 16:53:30 dfr Exp $
|
||||
* $Id: vga_isa.c,v 1.2 1999/02/05 11:52:08 yokota Exp $
|
||||
*/
|
||||
|
||||
#include "vga.h"
|
||||
@ -851,10 +851,25 @@ update_adapter_info(video_adapter_t *adp, video_info_t *info)
|
||||
adp->va_buffer = BIOS_PADDRTOVADDR(info->vi_buffer);
|
||||
adp->va_buffer_size = info->vi_buffer_size;
|
||||
}
|
||||
if (info->vi_flags & V_INFO_GRAPHICS)
|
||||
adp->va_line_width = info->vi_width/8;
|
||||
else
|
||||
if (info->vi_flags & V_INFO_GRAPHICS) {
|
||||
switch (info->vi_depth/info->vi_planes) {
|
||||
case 1:
|
||||
adp->va_line_width = info->vi_width/8;
|
||||
break;
|
||||
case 2:
|
||||
adp->va_line_width = info->vi_width/4;
|
||||
break;
|
||||
case 4:
|
||||
adp->va_line_width = info->vi_width/2;
|
||||
break;
|
||||
case 8:
|
||||
default: /* shouldn't happen */
|
||||
adp->va_line_width = info->vi_width;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
adp->va_line_width = info->vi_width;
|
||||
}
|
||||
bcopy(info, &adp->va_info, sizeof(adp->va_info));
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user