trunk/src/mame/video/hng64_3d.c
| r249190 | r249191 | |
| 1029 | 1029 | /* vector by 4x4 matrix multiply */ |
| 1030 | 1030 | void hng64_state::vecmatmul4(float *product, const float *a, const float *b) |
| 1031 | 1031 | { |
| 1032 | | const float bi0 = b[0]; |
| 1033 | | const float bi1 = b[1]; |
| 1034 | | const float bi2 = b[2]; |
| 1035 | | const float bi3 = b[3]; |
| 1032 | const float& bi0 = b[0]; |
| 1033 | const float& bi1 = b[1]; |
| 1034 | const float& bi2 = b[2]; |
| 1035 | const float& bi3 = b[3]; |
| 1036 | 1036 | |
| 1037 | 1037 | product[0] = bi0 * a[0] + bi1 * a[4] + bi2 * a[8 ] + bi3 * a[12]; |
| 1038 | 1038 | product[1] = bi0 * a[1] + bi1 * a[5] + bi2 * a[9 ] + bi3 * a[13]; |
| r249190 | r249191 | |
| 1247 | 1247 | { |
| 1248 | 1248 | if (z < *depthBuffer) |
| 1249 | 1249 | { |
| 1250 | | // Translucency currently isn't an issue, so soldier on |
| 1251 | | *depthBuffer = z; |
| 1252 | | |
| 1253 | 1250 | // Multiply back through by w for everything that was interpolated perspective-correctly |
| 1254 | 1251 | const float sCorrect = s / w; |
| 1255 | 1252 | const float tCorrect = t / w; |
| r249190 | r249191 | |
| 1336 | 1333 | color = rgb_t(255, (UINT8)red, (UINT8)green, (UINT8)blue); |
| 1337 | 1334 | |
| 1338 | 1335 | *colorBuffer = color; |
| 1336 | *depthBuffer = z; |
| 1339 | 1337 | } |
| 1340 | 1338 | } |
| 1341 | 1339 | } |