Subversion Repositories Kolibri OS

Rev

Rev 954 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
808 serge 1
 
883 serge 2
 
1002 serge 3
883 serge 4
 
5
 
1002 serge 6
#define SRV_GETVERSION  0
7
 
8
9
 
10
 
877 serge 11
#include 
808 serge 12
 
877 serge 13
#include 
14
15
#include "pci.h"
876 serge 16
 
881 serge 17
#include "syscall.h"
18
 
877 serge 19
#include "radeon_reg.h"
20
 
881 serge 21
#include "ati2d.h"
22
 
808 serge 23
24
RHD_t rhd __attribute__ ((aligned (128)));    /* reduce cache lock */
25
 
883 serge 26
static clip_t  clip;
808 serge 27
 
28
static local_pixmap_t scr_pixmap;
29
 
876 serge 30
int Init3DEngine(RHDPtr info);
815 serge 31
 
885 serge 32
int __stdcall srv_2d(ioctl_t *io);
876 serge 33
 
877 serge 34
u32_t __stdcall drvEntry(int action)
808 serge 35
 
877 serge 36
    RHDPtr rhdPtr;
808 serge 37
    u32_t retval;
885 serge 38
39
    int i;
808 serge 40
 
885 serge 41
    if(action != 1)
808 serge 42
 
885 serge 43
44
    if(!dbg_open("/rd/1/drivers/ati2d.log"))
808 serge 45
 
885 serge 46
        printf("Can't open /rd/1/drivers/ati2d.log\nExit\n");
47
        return 0;
48
    }
49
    if( GetScreenBpp() != 32)
50
    {
51
        dbgprintf("32 bpp dispaly mode required !\nExit\t");
52
        return 0;
53
    }
54
55
    if((rhdPtr=FindPciDevice())==NULL)
808 serge 56
 
885 serge 57
        dbgprintf("Device not found\n");
58
        return 0;
59
    };
60
61
    for(i=0;i<6;i++)
808 serge 62
 
885 serge 63
        if(rhd.memBase[i])
64
           dbgprintf("Memory base_%d 0x%x size 0x%x\n",
65
                     i,rhd.memBase[i],(1<
66
    };
67
    for(i=0;i<6;i++)
68
    {
69
      if(rhd.ioBase[i])
70
        dbgprintf("Io base_%d 0x%x size 0x%x\n",
71
                  i,rhd.ioBase[i],(1<
72
    };
73
    if(!RHDPreInit())
74
        return 0;
75
76
    R5xx2DInit();
808 serge 77
 
885 serge 78
#if !R300_PIO
877 serge 79
 
1002 serge 80
    Init3DEngine(&rhd);
81
 
885 serge 82
#endif
808 serge 83
 
1002 serge 84
    retval = RegService("HDRAW", srv_2d);
808 serge 85
 
885 serge 86
87
    return retval;
808 serge 88
 
885 serge 89
808 serge 90
91
 
92
 
879 serge 93
  u32_t *inp;
808 serge 94
  u32_t *outp;
877 serge 95
96
  inp = io->input;
808 serge 97
 
98
99
  switch(io->io_code)
100
 
101
    case SRV_GETVERSION:
102
      if(io->out_size==4)
103
      {
104
        *outp = API_VERSION;
105
        return 0;
106
      }
107
      break;
108
109
      case PX_CREATE:
110
 
877 serge 111
          return CreatePixmap((pixmap_t*)inp);
112
        break;
113
114
      case PX_DESTROY:
115
 
116
          return DestroyPixmap((pixmap_t*)inp);
117
        break;
118
119
      case PX_CLEAR:
120
 
879 serge 121
          return ClearPixmap((io_clear_t*)inp);
122
        break;
123
124
      case PX_DRAW_RECT:
125
 
877 serge 126
          return DrawRect((io_draw_t*)inp);
878 serge 127
        break;
879 serge 128
808 serge 129
      case PX_FILL_RECT:
130
 
877 serge 131
          return FillRect((io_fill_t*)inp);
879 serge 132
        break;
133
810 serge 134
      case PX_LINE:
877 serge 135
 
885 serge 136
          return Line((io_draw_t*)inp);
137
        break;
138
139
      case PX_BLIT:
140
 
877 serge 141
          return Blit((io_blit_t*)inp);
142
        break;
879 serge 143
877 serge 144
     case  PX_BLIT_TRANSPARENT:
145
 
146
          return BlitTransparent((io_blit_t*)inp);
879 serge 147
        break;
148
877 serge 149
      case PX_BLIT_ALPHA:
150
 
885 serge 151
          return RadeonComposite((io_blit_t*)inp);
954 serge 152
        break;
885 serge 153
808 serge 154
    default:
155
 
156
  };
157
  return ERR_PARAM;
158
}
159
160
161
 
162
 
163
#include "ati_mem.c"
164
165
#include "init_cp.c"
166
 
883 serge 167
808 serge 168
#include "clip.inc"
876 serge 169
 
170
#include "accel_2d.inc"
877 serge 171
#include "init_3d.inc"
808 serge 172
#include "blend.inc"
885 serge 173
>
174
>
808 serge 175
 
176