xref: /haiku/headers/private/kernel/boot/platform/generic/video.h (revision 268f99dd7dc4bd7474a8bd2742d3f1ec1de6752a)
10573d397SFrançois Revol /*
20573d397SFrançois Revol  * Copyright 2009, Haiku Inc.
30573d397SFrançois Revol  * All rights reserved. Distributed under the terms of the MIT License.
40573d397SFrançois Revol  */
50573d397SFrançois Revol #ifndef GENERIC_VIDEO_H
60573d397SFrançois Revol #define GENERIC_VIDEO_H
70573d397SFrançois Revol 
80573d397SFrançois Revol 
90573d397SFrançois Revol #include <SupportDefs.h>
100573d397SFrançois Revol 
110573d397SFrançois Revol #ifdef __cplusplus
120573d397SFrançois Revol extern "C" {
130573d397SFrançois Revol #endif
140573d397SFrançois Revol 
150573d397SFrançois Revol /* blit helpers */
160573d397SFrançois Revol 
170573d397SFrançois Revol /* platform code is responsible for setting the palette correctly */
187db9fbfeSFrançois Revol void video_blit_image(addr_t frameBuffer, const uint8 *data,
197db9fbfeSFrançois Revol 	uint16 width, uint16 height, uint16 imageWidth,
200573d397SFrançois Revol 	uint16 left, uint16 top);
210573d397SFrançois Revol 
220573d397SFrançois Revol /* platform code must implement 4bit on its own */
237db9fbfeSFrançois Revol void platform_blit4(addr_t frameBuffer, const uint8 *data,
247db9fbfeSFrançois Revol 	uint16 width, uint16 height, uint16 imageWidth,
257db9fbfeSFrançois Revol 	uint16 left, uint16 top);
267db9fbfeSFrançois Revol void platform_set_palette(const uint8 *palette);
270573d397SFrançois Revol 
280573d397SFrançois Revol 
290573d397SFrançois Revol /* Run Length Encoding splash decompression */
300573d397SFrançois Revol 
310573d397SFrançois Revol void uncompress_24bit_RLE(const uint8 compressed[], uint8 *uncompressed);
320573d397SFrançois Revol void uncompress_8bit_RLE(const uint8 compressed[], uint8 *uncompressed);
330573d397SFrançois Revol 
347db9fbfeSFrançois Revol /* default splash display */
3504cbc258SFredrik Holmqvist status_t video_display_splash(addr_t frameBuffer);
367db9fbfeSFrançois Revol 
370d66d8d4SAugustin Cavalier /* video text console */
38*e8ab10abSAugustin Cavalier class ConsoleNode* video_text_console_init(addr_t frameBuffer);
390d66d8d4SAugustin Cavalier 
400573d397SFrançois Revol #ifdef __cplusplus
410573d397SFrançois Revol }
420573d397SFrançois Revol #endif
430573d397SFrançois Revol 
440573d397SFrançois Revol #endif	/* GENERIC_VIDEO_H */
45