1 #include "MTLUtils.h" 2 3 #include <jni.h> 4 #include <simd/simd.h> 5 #include "common.h" 6 #include "Trace.h" 7 8 extern void J2dTraceImpl(int level, jboolean cr, const char *string, ...); 9 void J2dTraceTraceVector(simd_float4 pt) { 10 J2dTraceImpl(J2D_TRACE_VERBOSE, JNI_FALSE, "[%lf %lf %lf %lf]", pt.x, pt.y, pt.z, pt.w); 11 } 12 13 void checkTransform(float * position, simd_float4x4 transform4x4) { 14 J2dTraceImpl(J2D_TRACE_VERBOSE, JNI_FALSE, "check transform: "); 15 16 simd_float4 fpt = simd_make_float4(position[0], position[1], position[2], 1.f); 17 simd_float4 fpt_trans = simd_mul(transform4x4, fpt); 18 J2dTraceTraceVector(fpt); 19 J2dTraceImpl(J2D_TRACE_VERBOSE, JNI_FALSE, " ===>>> "); 20 J2dTraceTraceVector(fpt_trans); 21 J2dTraceLn(J2D_TRACE_VERBOSE, " "); 22 } 23 24 static void traceMatrix(simd_float4x4 * mtx) { 25 for (int row = 0; row < 4; ++row) { 26 J2dTraceLn4(J2D_TRACE_VERBOSE, " [%lf %lf %lf %lf]", 27 mtx->columns[0][row], mtx->columns[1][row], mtx->columns[2][row], mtx->columns[3][row]); 28 } 29 } 30 31 void traceRaster(char * p, int width, int height, int stride) { 32 for (int y = 0; y < height; ++y) { 33 for (int x = 0; x < width; ++x) { 34 char pix0 = p[y*stride + x*4]; 35 char pix1 = p[y*stride + x*4 + 1]; 36 char pix2 = p[y*stride + x*4 + 2]; 37 char pix3 = p[y*stride + x*4 + 3]; 38 J2dTrace4(J2D_TRACE_INFO, "[%d,%d,%d,%d], ", pix0, pix1, pix2, pix3); 39 } 40 J2dTraceLn(J2D_TRACE_INFO, ""); 41 } 42 } 43 44 void tracePoints(jint nPoints, jint *xPoints, jint *yPoints) { 45 for (int i = 0; i < nPoints; i++) 46 J2dTraceLn2(J2D_TRACE_INFO, "\t(%d, %d)", *(xPoints++), *(yPoints++)); 47 }