1 /* $NetBSD: tx3912videovar.h,v 1.5 2000/05/08 21:57:58 uch Exp $ */ 2 3 /*- 4 * Copyright (c) 1999, 2000 UCHIYAMA Yasushi. All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 1. Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 2. Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * 3. The name of the author may not be used to endorse or promote products 15 * derived from this software without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29 int tx3912video_init __P((paddr_t, paddr_t *)); 30 31 /* 32 * 8bpp CLUT 33 */ 34 #define TX3912VIDEO_RGB24TOINDEX(rgb) \ 35 ((((((rgb) >> 16) & 0xff) >> 5) << 5) | \ 36 (((((rgb) >> 8) & 0xff) >> 5) << 2) | \ 37 ((((rgb) & 0xff) >> 6))) 38 39 /* system color */ 40 #define TX3912VIDEO_BLACK TX3912VIDEO_RGB24TOINDEX(0x000000) 41 #define TX3912VIDEO_RED TX3912VIDEO_RGB24TOINDEX(0xff0000) 42 #define TX3912VIDEO_GREEN TX3912VIDEO_RGB24TOINDEX(0x00ff00) 43 #define TX3912VIDEO_YELLOW TX3912VIDEO_RGB24TOINDEX(0xffff00) 44 #define TX3912VIDEO_BLUE TX3912VIDEO_RGB24TOINDEX(0x0000ff) 45 #define TX3912VIDEO_MAGENTA TX3912VIDEO_RGB24TOINDEX(0xff00ff) 46 #define TX3912VIDEO_CYAN TX3912VIDEO_RGB24TOINDEX(0x00ffff) 47 #define TX3912VIDEO_WHITE TX3912VIDEO_RGB24TOINDEX(0xffffff) 48 #define TX3912VIDEO_DARK_BLACK TX3912VIDEO_RGB24TOINDEX(0x000000) 49 #define TX3912VIDEO_DARK_RED TX3912VIDEO_RGB24TOINDEX(0x800000) 50 #define TX3912VIDEO_DARK_GREEN TX3912VIDEO_RGB24TOINDEX(0x008000) 51 #define TX3912VIDEO_DARK_YELLOW TX3912VIDEO_RGB24TOINDEX(0x808000) 52 #define TX3912VIDEO_DARK_BLUE TX3912VIDEO_RGB24TOINDEX(0x000080) 53 #define TX3912VIDEO_DARK_MAGENTA TX3912VIDEO_RGB24TOINDEX(0x800080) 54 #define TX3912VIDEO_DARK_CYAN TX3912VIDEO_RGB24TOINDEX(0x008080) 55 #define TX3912VIDEO_DARK_WHITE TX3912VIDEO_RGB24TOINDEX(0x808080) 56 57 /* 58 * Y = 0.2990 * R + 0.5870 * G + 0.1140 * B 59 * U = -0.1690 * R - 0.3316 * G + 0.5000 * B 60 * V = 0.5000 * R - 0.4186 * G - 0.0813 * B 61 */ 62 63 /* 64 * debug functions. 65 */ 66 void tx3912video_calibration_pattern __P((void)); 67 void tx3912video_line __P((int, int, int, int)); 68 void tx3912video_dot __P((int, int)); 69