Previous 199869 Revisions Next

r32334 Wednesday 24th September, 2014 at 00:03:01 UTC by Barry Rodewald
trident: improved Bresenham line drawing, it now at least draws in the right direction. :)
[src/emu/bus/isa]trident.c

trunk/src/emu/bus/isa/trident.c
r32333r32334
10701070      break;
10711071   case 0x04:
10721072      if(LOG) logerror("Trident: Command: Bresenham Line (Source %i,%i Dest %i,%i Size %i,%i)\n",tri.accel_source_x,tri.accel_source_y,tri.accel_dest_x,tri.accel_dest_y,tri.accel_dim_x,tri.accel_dim_y);
1073      if(LOG) logerror("BLine: Drawflags = %08x FMIX = %02x\n",tri.accel_drawflags,tri.accel_fmix);
10731074      accel_line();
10741075      break;
10751076   case 0x05:
r32333r32334
11331134   }
11341135   sy = tri.accel_source_y;
11351136
1136//   printf("BitBLT: flags=%08x source %i, %i dest %i, %i size %i, %i dir %i,%i\n",
1137//         tri.accel_drawflags,tri.accel_source_x,tri.accel_source_y,tri.accel_dest_x,tri.accel_dest_y,
1138//         tri.accel_dim_x,tri.accel_dim_y,xdir,ydir);
11391137   for(y=ystart;y!=yend;y+=ydir,sy+=ydir)
11401138   {
11411139      sx = tri.accel_source_x;
r32333r32334
11551153
11561154void trident_vga_device::accel_line()
11571155{
1158   UINT8 col = tri.accel_fgcolour & 0xff;
1156   UINT32 col = tri.accel_fgcolour;
11591157//    TGUI_SRC_XY(dmin-dmaj,dmin);
11601158//    TGUI_DEST_XY(x,y);
11611159//    TGUI_DIM_XY(dmin+e,len);
1162   INT16 dx = abs(tri.accel_source_x);
1160   INT16 dx = abs(tri.accel_source_x - tri.accel_source_y);
11631161   INT16 dy = abs(tri.accel_source_y);
1164   INT16 err = tri.accel_dim_x - tri.accel_source_y;
1162   INT16 err = (tri.accel_dim_x - tri.accel_source_y);
11651163   int sx = (tri.accel_drawflags & 0x0200) ? -1 : 1;
11661164   int sy = (tri.accel_drawflags & 0x0100) ? -1 : 1;
11671165   int count = 0;
11681166   INT16 temp;
11691167
1170//   if(LOG_8514) logerror("8514/A: Command (%04x) - Line (Bresenham) - %i,%i  Axial %i, Diagonal %i, Error %i, Major Axis %i, Minor Axis %i\n",ibm8514.current_cmd,
1171//      ibm8514.curr_x,ibm8514.curr_y,ibm8514.line_axial_step,ibm8514.line_diagonal_step,ibm8514.line_errorterm,ibm8514.rect_width,ibm8514.rect_height);
1172
11731168   if(tri.accel_drawflags & 0x0400)
11741169   {
11751170      temp = dx; dx = dy; dy = temp;

Previous 199869 Revisions Next


© 1997-2024 The MAME Team