Annotation of 43BSDReno/share/man/man4/man4.hp300/grf.4, revision 1.1

1.1     ! root        1: .\" Copyright (c) 1990 The Regents of the University of California.
        !             2: .\" All rights reserved.
        !             3: .\"
        !             4: .\" This code is derived from software contributed to Berkeley by
        !             5: .\" the Systems Programming Group of the University of Utah Computer
        !             6: .\" Science Department.
        !             7: .\"
        !             8: .\" Redistribution and use in source and binary forms are permitted provided
        !             9: .\" that: (1) source distributions retain this entire copyright notice and
        !            10: .\" comment, and (2) distributions including binaries display the following
        !            11: .\" acknowledgement:  ``This product includes software developed by the
        !            12: .\" University of California, Berkeley and its contributors'' in the
        !            13: .\" documentation or other materials provided with the distribution and in
        !            14: .\" all advertising materials mentioning features or use of this software.
        !            15: .\" Neither the name of the University nor the names of its contributors may
        !            16: .\" be used to endorse or promote products derived from this software without
        !            17: .\" specific prior written permission.
        !            18: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
        !            19: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
        !            20: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !            21: .\"
        !            22: .\"    @(#)grf.4       5.1 (Berkeley) 6/29/90
        !            23: .\"
        !            24: .TH GRF 4 "June 29, 1990"
        !            25: .UC 7
        !            26: .SH NAME
        !            27: grf \- HP graphics frame buffer device interface
        !            28: .SH DESCRIPTION
        !            29: This is a generic description of the frame buffer device interface.
        !            30: The devices to which this applies are the 98544, 98545 and 98547
        !            31: Topcat display cards (also known as HP300H devices),
        !            32: the 98548, 98549 and 98550
        !            33: Catseye display cards,
        !            34: the 98700
        !            35: Gatorbox graphics box,
        !            36: the 98720
        !            37: Renaissance graphics box,
        !            38: and the 98730
        !            39: DaVinci graphics box.
        !            40: .PP
        !            41: Use of the devices can be effectively approached from two directions.
        !            42: The first is through HP-UX
        !            43: .I Starbase
        !            44: routines, the second is by direct control in the BSD environment.
        !            45: In order to use the Starbase libraries,
        !            46: code must be compiled in an HP-UX environment, either by doing so on an HP-UX
        !            47: machine and transferring the binaries to the BSD machine, or by compilation
        !            48: with the use of the
        !            49: .IR hpux (1)
        !            50: command.
        !            51: Applications using Starbase libraries have been run successfully
        !            52: on BSD machines using both of these compilation techniques.
        !            53: .PP
        !            54: Direct compilation,
        !            55: such as that used for the X Window System servers, has also been successful.
        !            56: Examples of some frame buffer operations can be found in
        !            57: the device dependent X Window system sources, for example the
        !            58: .I /usr/src/new/X/libhp.fb
        !            59: directory.  These files contain examples of device dependent color map
        !            60: initialization, frame buffer operations, bit moving routines etc.
        !            61: .PP
        !            62: The basic programming of the
        !            63: .IR grf \?
        !            64: devices involves opening the device
        !            65: file, mapping the control registers and frame buffer addresses into user
        !            66: space, and then manipulating the device as the application requires.
        !            67: The address mapping is controlled by an
        !            68: .IR ioctl (2)
        !            69: call to map the device into user space, and an unmap call when finished.
        !            70: The ioctls supported by BSD are:
        !            71: .TP
        !            72: GRFIOCGINFO
        !            73: Get Graphics Info
        !            74: .sp
        !            75: Get info about device, setting the entries in the
        !            76: .I grfinfo
        !            77: structure, as defined in <hpdev/grfioctl.h>:
        !            78: .DS
        !            79: struct grfinfo {
        !            80:        int             gd_id;                  /* HPUX identifier */
        !            81:        caddr_t gd_regaddr;             /* control registers physaddr */
        !            82:        int             gd_regsize;             /* control registers size */
        !            83:        caddr_t gd_fbaddr;              /* frame buffer physaddr */
        !            84:        int             gd_fbsize;              /* frame buffer size */
        !            85:        short   gd_colors;              /* number of colors */
        !            86:        short   gd_planes;              /* number of planes */
        !            87: /* new stuff */
        !            88:        int             gd_fbwidth;             /* frame buffer width */
        !            89:        int             gd_fbheight;            /* frame buffer height */
        !            90:        int             gd_dwidth;              /* displayed part width */
        !            91:        int             gd_dheight;             /* displayed part height */
        !            92:        int             gd_pad[6];              /* for future expansion */
        !            93: };
        !            94: .DE
        !            95: .TP
        !            96: GRFIOCON
        !            97: Graphics On
        !            98: .sp
        !            99: Turn graphics on by enabling CRT output.  The screen will come on, displaying
        !           100: whatever is in the frame buffer, using whatever colormap is in place.
        !           101: .TP
        !           102: GRFIOCOFF
        !           103: Graphics Off
        !           104: .sp
        !           105: Turn graphics off by disabling output to the CRT.  The frame buffer contents
        !           106: are not affected.
        !           107: .TP
        !           108: GRFIOCMAP
        !           109: Map Device to user space
        !           110: .sp
        !           111: Map in control registers and framebuffer space. Once the device file is
        !           112: mapped, the frame buffer structure is accessible.
        !           113: .TP
        !           114: GRFIOCUNMAP
        !           115: Unmap Device
        !           116: .sp
        !           117: Unmap control registers and framebuffer space.
        !           118: .PP
        !           119: For further information about the use of ioctl see the man page.
        !           120: .SH EXAMPLE
        !           121: This short code fragment is an example of opening some graphics device and
        !           122: mapping in the control and frame buffer space:
        !           123: .DS
        !           124: #define GRF_DEV <some_graphics_device>  /* /dev/grfN */
        !           125: {
        !           126:     struct fbstruct *regs;  /*  fbstruct = gboxfb, rboxfb, etc. */
        !           127:     u_char *Addr, frame_buffer;
        !           128:     struct grfinfo gi;
        !           129:     int disp_fd;
        !           130: 
        !           131:       disp_fd = open(GRF_DEV,1);
        !           132:       if (ioctl (disp_fd, GRFIOCGINFO, &gi) < 0) return -1;
        !           133:       (void) ioctl (disp_fd, GRFIOCON, 0);
        !           134: 
        !           135:       Addr = (u_char *) 0;
        !           136:       if (ioctl (disp_fd, GRFIOCMAP, &Addr) < 0) {
        !           137:            (void) ioctl (disp_fd, GRFIOCOFF, 0);
        !           138:            return -1;
        !           139:       }
        !           140:       regs = (fbstruct *) Addr;                       /* Control Registers   */
        !           141:       frame_buffer = (u_char *) Addr + gi.gd_regsize; /* Frame buffer memory */
        !           142: }
        !           143: .DE
        !           144: .SH SEE ALSO
        !           145: ioctl(2), dv(4), gb(4), rb(4), tc(4), hil(4)
        !           146: .SH FILES
        !           147: .ta \w'/dev/*crt*  'u
        !           148: /dev/grf?      BSD interface special files
        !           149: .br
        !           150: /dev/*crt*     HP-UX \fIstarbase\fP interface special files
        !           151: .SH ERRORS
        !           152: .TP 15
        !           153: [ENODEV]
        !           154: no such device.
        !           155: .TP 15
        !           156: [EBUSY]
        !           157: Another process has the device open.
        !           158: .TP 15
        !           159: [EINVAL]
        !           160: Invalid ioctl specification.
        !           161: .SH DIAGNOSTICS
        !           162: None under BSD.
        !           163: .br
        !           164: HP-UX CE.utilities/Crtadjust programs must be used for each specific device.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.