X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=src%2Fobjectrenderer.cpp;h=0770e46424d7b97fd8f1f816cbce19ee42c9a297;hb=29f315953466e71fc76b1b05c79c1231e5c83074;hp=f5202cb591d04dfa754dac4f4efee9985718bf19;hpb=8e97d741cf713296c96b53f4ebb1615e8d443391;p=ipdf%2Fcode.git diff --git a/src/objectrenderer.cpp b/src/objectrenderer.cpp index f5202cb..0770e46 100644 --- a/src/objectrenderer.cpp +++ b/src/objectrenderer.cpp @@ -179,17 +179,16 @@ void CircleFilledRenderer::RenderUsingCPU(const Objects & objects, const View & { for (int64_t y = max(0L, bounds.y); y <= min(bounds.y + bounds.h, target.h-1); ++y) { - double dx = 2.0*(double)(x - centre_x)/(double)(bounds.w); - double dy = 2.0*(double)(y - centre_y)/(double)(bounds.h); + Real dx(2); dx *= Real(x - centre_x)/Real(bounds.w); + Real dy(2); dy *= Real(y - centre_y)/Real(bounds.h); int64_t index = (x+target.w*y)*4; - if (dx*dx + dy*dy <= 1.0) + if (dx*dx + dy*dy <= Real(1)) { target.pixels[index+0] = 0; target.pixels[index+1] = 0; target.pixels[index+2] = 0; target.pixels[index+3] = 255; - } } } @@ -274,12 +273,12 @@ void BezierRenderer::PrepareBezierGPUBuffer(const Objects& objects) m_bezier_coeffs.Resize(objects.beziers.size()*sizeof(GPUBezierCoeffs)); BufferBuilder builder(m_bezier_coeffs.Map(false, true, true), m_bezier_coeffs.GetSize()); - for (auto bez : objects.beziers) + for (auto bez = objects.beziers.begin(); bez != objects.beziers.end(); ++bez) { GPUBezierCoeffs coeffs = { - Float(bez.x0), Float(bez.y0), - Float(bez.x1 - bez.x0), Float(bez.y1 - bez.y0), - Float(bez.x2 - bez.x0), Float(bez.y2 - bez.y0) + Float(bez->x0), Float(bez->y0), + Float(bez->x1 - bez->x0), Float(bez->y1 - bez->y0), + Float(bez->x2 - bez->x0), Float(bez->y2 - bez->y0) }; builder.Add(coeffs); }