- ObjectRenderer::RenderLineOnCPU(pix_bounds.x, pix_bounds.y, pix_bounds.x+pix_bounds.w, pix_bounds.y, target, Colour(1,0,0,1));
- ObjectRenderer::RenderLineOnCPU(pix_bounds.x, pix_bounds.y+pix_bounds.h, pix_bounds.x+pix_bounds.w, pix_bounds.y+pix_bounds.h, target, Colour(0,1,0,1));
- ObjectRenderer::RenderLineOnCPU(pix_bounds.x, pix_bounds.y, pix_bounds.x, pix_bounds.y+pix_bounds.h, target, Colour(1,0,0,1));
- ObjectRenderer::RenderLineOnCPU(pix_bounds.x+pix_bounds.w, pix_bounds.y, pix_bounds.x+pix_bounds.w, pix_bounds.y+pix_bounds.h, target, Colour(0,1,0,1));
- }
- // Draw lines between the control points for debugging
- //ObjectRenderer::RenderLineOnCPU((int64_t)control.x0, (int64_t)control.y0, (int64_t)control.x1, (int64_t)control.y1,target);
- //ObjectRenderer::RenderLineOnCPU((int64_t)control.x1, (int64_t)control.y1, (int64_t)control.x2, (int64_t)control.y2,target);
-
-
-
- Real x[2]; Real y[2];
- control.Evaluate(x[0], y[0], Real(0));
- //Debug("target is (%lu, %lu)", target.w, target.h);
- int64_t blen = min(max((int64_t)2, (int64_t)(target.w/view.GetBounds().w)), (int64_t)100);
-
- Real invblen(1); invblen /= blen;
- //Debug("Using %li lines, inverse %f", blen, Double(invblen));
- for (int64_t j = 1; j <= blen; ++j)
- {
- control.Evaluate(x[j % 2],y[j % 2], invblen*j);
- ObjectRenderer::RenderLineOnCPU((int64_t)Double(x[0]),(int64_t)Double(y[0]), (int64_t)Double(x[1]),(int64_t)Double(y[1]), target, Colour(0,0,0,!view.PerformingShading()));
- }
-
- /*
- Real u(0);
- while (u < Real(1))
- {
- u += Real(1e-6);
- Real x; Real y; control.Evaluate(x,y,u);
- int64_t index = ((int64_t)x + (int64_t)y*target.w)*4;
- if (index >= 0 && index < 4*(target.w*target.h))