gonzui


Format: Advanced Search

tkernel_2/include/device/screen.hbare sourcepermlink (0.02 seconds)

Search this content:

    1: /*
    2:  *----------------------------------------------------------------------
    3:  *    T-Kernel 2.0 Software Package
    4:  *
    5:  *    Copyright 2011 by Ken Sakamura.
    6:  *    This software is distributed under the latest version of T-License 2.x.
    7:  *----------------------------------------------------------------------
    8:  *
    9:  *    Released by T-Engine Forum(http://www.t-engine.org/) at 2011/05/17.
   10:  *    Modified by T-Engine Forum at 2013/03/02.
   11:  *    Modified by TRON Forum(http://www.tron.org/) at 2015/06/01.
   12:  *
   13:  *----------------------------------------------------------------------
   14:  */
   15: 
   16: /*
   17:  *      screen.h
   18:  *
   19:  *       screen (display) driver
   20:  */
   21: 
   22: #ifndef __DEVICE_SCREEN_H__
   23: #define __DEVICE_SCREEN_H__
   24: 
   25: #include <basic.h>
   26: #include <tk/devmgr.h>
   27: 
   28: #ifdef __cplusplus
   29: extern "C" {
   30: #endif
   31: 
   32: /* SCREEN data number */
   33: typedef enum {
   34:         /* common attribute */
   35:         DN_SCRSPEC     = TDN_DISPSPEC,     /* DEV_SPEC (R) */
   36: 
   37:         /* individual attribute : -100 - -199 are used for general purpose */
   38:         DN_SCRLIST     = -100,             /* TC[]            (R) */
   39:         DN_SCRNO       = -101,               /* W         (RW)*/
   40:         DN_SCRCOLOR    = -102,            /* COLOR[]        (RW)*/
   41:         DN_SCRBMP      = -103,              /* BMP              (R) */
   42: 
   43:         DN_SCRBRIGHT   = -200,           /* W             (RW)*/
   44: 
   45:         DN_SCRUPDFN    = -300,            /* FP             (R) */
   46:         DN_SCRVFREQ    = -301,            /* W              (RW)*/
   47:         DN_SCRADJUST   = -302,           /* ScrAdjust     (RW)*/
   48:         DN_SCRDEVINFO  = -303,          /* ScrDevInfo   (R) */
   49:         DN_SCRMEMCLK   = -304,           /* W             (RW)*/
   50:         DN_SCRUPDRECT  = -305,          /* RECT         (RW)*/
   51:         DN_SCRWRITE    = -306,            /* -              (W) */
   52: 
   53:         DN_SCRXSPEC0   = -500,           /* DEV_SPEC      (R) */
   54: } ScrDataNo;
   55: 
   56: // we use the range from -755 to - 500
   57: #define DN_SCRXSPEC(n)  (DN_SCRXSPEC0 - ((n) & 0xff))
   58: 
   59: /*
   60:         DN_SCRADJUST : monitor adjust parameter
   61: */
   62: typedef struct {
   63:         UH     left;               /* number of blank pixels on the left (multiple of 8)    */
   64:         UH     hsync;              /* number of pixels for horizontal sync (multiple of 8)    */
   65:         UH     right;               /* number of blank pixels on the right (multiple of 8)    */
   66:         UH     top;                /* number of blank pixels at the top                   */
   67:         UH     vsync;              /* number of pixels for vertical sync                     */
   68:         UH     bottom;             /* number of blank pixels at the bottom                    */
   69: } ScrAdjust;
   70: 
   71: /*
   72:         DN_SCRDEVINFO : device information
   73: */
   74: typedef struct {
   75:         UB     name1[32];  /* name-1 (ASCII)                  */
   76:         UB     name2[32];  /* name-2 (ASCII)                  */
   77:         UB     name3[32];  /* name-3 (ASCII)                  */
   78:         void*  framebuf_addr;   /* physical address of framebuffer                */
   79:         W      framebuf_size;       /* framebuffer size         */
   80:         W      mainmem_size;        /* main memory size                     */
   81:         UB     reserved[24];       /* reserved                                    */
   82: } ScrDevInfo;
   83: 
   84: /*
   85:         (tkse/extension/typedef.h)
   86: */
   87: /* color */
   88: #ifndef __color__
   89: #define __color__
   90: typedef UW      COLOR;       /* color */
   91: #endif  /* __color__ */
   92: 
   93: /* point */
   94: #ifndef __pnt__
   95: #define __pnt__
   96: typedef struct point {
   97:         H      x;   /* horizontal coordinate value*/
   98:         H      y;   /* vertical coordinate value */
   99: } PNT;
  100: #endif  /* __pnt__ */
  101: 
  102: /* rectangle */
  103: #ifndef __rect__
  104: #define __rect__
  105: typedef union rect {
  106:         struct _rect {
  107:                 H     left;               /* X coordinate value of left edge */
  108:                 H     top;                /* Y coodinate value of the upper edge. */
  109:                 H     right;              /* X coordinate value of right edge */
  110:                 H     bottom;             /* Y coordinate value of the lower edge */
  111:         } c;
  112:         struct {
  113:                 PNT   lefttop;  /* upper-left corner point */
  114:                 PNT   rightbot; /* lower-right corner point */
  115:         } p;
  116: } RECT;
  117: #endif  /* __rect__ */
  118: 
  119: /*
  120:         (btron/dp.h)
  121: */
  122: /* bitmap */
  123: #ifndef __bmp__
  124: #define __bmp__
  125: #define PLANES          1
  126: 
  127: typedef struct Bitmap {
  128:         UW     planes;                     /* number of planes               */
  129:         UH     pixbits;            /* number of pixel bits           */
  130:         UH     rowbytes;           /* row bytes of a plane          */
  131:         RECT   bounds;                   /* coordinate specification     */
  132:         UB     *baseaddr[PLANES];  /* base addresses                */
  133: } BMP;
  134: #endif  /* __bmp__ */
  135: 
  136: /* device information */
  137: #ifndef __dev_spec__
  138: #define __dev_spec__
  139: typedef struct  {
  140:         H      attr;                /* device attribute */
  141:         H      planes;              /* number of planes */
  142:         H      pixbits;     /* number of bits in a pixel (boundary / effective value) */
  143:         H      hpixels;     /* number of pixels on the horizontal row */
  144:         H      vpixels;     /* number of pixels in the vertical direction */
  145:         H      hres;                /* horizontal resolution */
  146:         H      vres;                /* vertical resolution */
  147:         H      color[4];    /* color information */
  148:         H      resv[6];
  149: }       DEV_SPEC;
  150: 
  151: /* device attributes */
  152: #define DA_CANLOCK      0x4000
  153: #define DA_HAVEBMP      0x2000
  154: #define DA_HAVECMAP     0x0008
  155: #define DA_COLORSYSTEM  0x0007
  156: 
  157: /* Color System */
  158: #define DA_COLOR_MONO   0
  159: #define DA_COLOR_RGB    1
  160: #define DA_COLOR_CMY    2
  161: #endif  /* __dev_spec__ */
  162: 
  163: #ifdef __cplusplus
  164: }
  165: #endif
  166: #endif /* __DEVICE_SCREEN_H__ */