No longer computes a wrong frame buffer size for 15 bit modes.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11347 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2005-02-12 03:12:19 +00:00
parent ec4fd18f03
commit 1252c6cfae
+3 -2
View File
@@ -410,12 +410,13 @@ platform_switch_to_logo(void)
} }
addr_t lastBase = gKernelArgs.frame_buffer.physical_buffer.start; addr_t lastBase = gKernelArgs.frame_buffer.physical_buffer.start;
int32 bytesPerPixel = (modeInfo.bits_per_pixel + 7) / 8;
gKernelArgs.frame_buffer.width = modeInfo.width; gKernelArgs.frame_buffer.width = modeInfo.width;
gKernelArgs.frame_buffer.height = modeInfo.height; gKernelArgs.frame_buffer.height = modeInfo.height;
gKernelArgs.frame_buffer.depth = modeInfo.bits_per_pixel; gKernelArgs.frame_buffer.depth = modeInfo.bits_per_pixel;
gKernelArgs.frame_buffer.physical_buffer.size = gKernelArgs.frame_buffer.width gKernelArgs.frame_buffer.physical_buffer.size = gKernelArgs.frame_buffer.width
* gKernelArgs.frame_buffer.height * (gKernelArgs.frame_buffer.depth / 8); * gKernelArgs.frame_buffer.height * bytesPerPixel;
gKernelArgs.frame_buffer.physical_buffer.start = modeInfo.physical_base; gKernelArgs.frame_buffer.physical_buffer.start = modeInfo.physical_base;
// ToDo: we assume that physical base is constant through the different resolutions // ToDo: we assume that physical base is constant through the different resolutions
@@ -450,7 +451,7 @@ platform_switch_to_logo(void)
// ToDo: this is a temporary hack! // ToDo: this is a temporary hack!
addr_t start = sFrameBuffer + gKernelArgs.frame_buffer.width addr_t start = sFrameBuffer + gKernelArgs.frame_buffer.width
* (gKernelArgs.frame_buffer.height - kHeight - 60) * (gKernelArgs.frame_buffer.height - kHeight - 60)
* (gKernelArgs.frame_buffer.depth/8) + gKernelArgs.frame_buffer.width - kWidth - 40; * bytesPerPixel + gKernelArgs.frame_buffer.width - kWidth - 40;
for (int32 i = 0; i < kHeight; i++) { for (int32 i = 0; i < kHeight; i++) {
memcpy((void *)(start + gKernelArgs.frame_buffer.width * i), memcpy((void *)(start + gKernelArgs.frame_buffer.width * i),
&kImageData[i * kWidth], kWidth); &kImageData[i * kWidth], kWidth);