trunk/src/emu/bus/isa/trident.c
| r32333 | r32334 | |
| 1070 | 1070 | break; |
| 1071 | 1071 | case 0x04: |
| 1072 | 1072 | 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); |
| 1073 | 1074 | accel_line(); |
| 1074 | 1075 | break; |
| 1075 | 1076 | case 0x05: |
| r32333 | r32334 | |
| 1133 | 1134 | } |
| 1134 | 1135 | sy = tri.accel_source_y; |
| 1135 | 1136 | |
| 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); |
| 1139 | 1137 | for(y=ystart;y!=yend;y+=ydir,sy+=ydir) |
| 1140 | 1138 | { |
| 1141 | 1139 | sx = tri.accel_source_x; |
| r32333 | r32334 | |
| 1155 | 1153 | |
| 1156 | 1154 | void trident_vga_device::accel_line() |
| 1157 | 1155 | { |
| 1158 | | UINT8 col = tri.accel_fgcolour & 0xff; |
| 1156 | UINT32 col = tri.accel_fgcolour; |
| 1159 | 1157 | // TGUI_SRC_XY(dmin-dmaj,dmin); |
| 1160 | 1158 | // TGUI_DEST_XY(x,y); |
| 1161 | 1159 | // 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); |
| 1163 | 1161 | 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); |
| 1165 | 1163 | int sx = (tri.accel_drawflags & 0x0200) ? -1 : 1; |
| 1166 | 1164 | int sy = (tri.accel_drawflags & 0x0100) ? -1 : 1; |
| 1167 | 1165 | int count = 0; |
| 1168 | 1166 | INT16 temp; |
| 1169 | 1167 | |
| 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 | | |
| 1173 | 1168 | if(tri.accel_drawflags & 0x0400) |
| 1174 | 1169 | { |
| 1175 | 1170 | temp = dx; dx = dy; dy = temp; |