Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
808 serge 1
 
883 serge 2
 
3
4
 
5
 
877 serge 6
#include 
808 serge 7
 
877 serge 8
#include 
9
10
#include "pci.h"
876 serge 11
 
881 serge 12
#include "syscall.h"
13
 
877 serge 14
#include "radeon_reg.h"
15
 
881 serge 16
#include "ati2d.h"
17
 
808 serge 18
19
RHD_t rhd __attribute__ ((aligned (128)));    /* reduce cache lock */
20
 
883 serge 21
static clip_t  clip;
808 serge 22
 
23
static local_pixmap_t scr_pixmap;
24
 
876 serge 25
static void Init3DEngine(RHDPtr rhdPtr);
815 serge 26
 
877 serge 27
int __stdcall srv_2d(ioctl_t *io);
876 serge 28
 
877 serge 29
u32_t __stdcall drvEntry(int action)
808 serge 30
 
877 serge 31
  RHDPtr rhdPtr;
808 serge 32
  u32_t retval;
33
877 serge 34
  int i;
808 serge 35
 
36
  if(action != 1)
37
 
38
39
  if(!dbg_open("/rd/1/drivers/ati2d.log"))
40
 
879 serge 41
     printf("Can't open /rd/1/drivers/ati2d.log\nExit\n");
808 serge 42
     return 0;
43
  }
44
  if( GetScreenBpp() != 32)
45
  {
878 serge 46
     dbgprintf("32 bpp dispaly mode required !\nExit\t");
47
     return 0;
879 serge 48
  }
878 serge 49
50
  if((rhdPtr=FindPciDevice())==NULL)
808 serge 51
 
52
    dbgprintf("Device not found\n");
53
    return 0;
54
  };
55
56
  for(i=0;i<6;i++)
57
 
58
    if(rhd.memBase[i])
59
      dbgprintf("Memory base_%d 0x%x size 0x%x\n",
60
                i,rhd.memBase[i],(1<
61
  };
62
  for(i=0;i<6;i++)
63
  {
64
    if(rhd.ioBase[i])
65
      dbgprintf("Io base_%d 0x%x size 0x%x\n",
66
                i,rhd.ioBase[i],(1<
67
  };
68
  if(!RHDPreInit())
69
    return 0;
70
71
  R5xx2DInit();
72
 
73
813 serge 74
//  Init3DEngine(&rhd);
877 serge 75
 
868 serge 76
  //init_r500();
808 serge 77
 
78
79
 
80
 
81
82
  return retval;
83
 
84
85
86
 
87
 
88
#define SRV_GETVERSION  0
89
 
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_BLIT:
877 serge 135
 
136
          return Blit((io_blit_t*)inp);
137
        break;
879 serge 138
877 serge 139
     case  PX_BLIT_TRANSPARENT:
140
 
141
          return BlitTransparent((io_blit_t*)inp);
879 serge 142
        break;
143
877 serge 144
      case PX_LINE:
145
 
146
          return Line((io_draw_t*)inp);
876 serge 147
        break;
879 serge 148
808 serge 149
/*
150
 
877 serge 151
      case COMPIZ:
808 serge 152
 
813 serge 153
          return RadeonComposite((blit_t*)inp);
154
        break;
155
*/
156
876 serge 157
    default:
813 serge 158
 
808 serge 159
  };
160
  return ERR_PARAM;
161
}
162
163
164
 
165
 
166
#include "ati_mem.c"
167
168
#include "init_cp.c"
169
 
883 serge 170
808 serge 171
#include "clip.inc"
876 serge 172
 
173
#include "accel_2d.inc"
877 serge 174
//#include "accel_3d.inc"
808 serge 175
>
879 serge 176
>
808 serge 177
 
178