+ // If we don't have anything to render, return.
+ if (first_obj_id == last_obj_id) return;
+ // If there are no objects of this type, return.
+ if (m_indexes.empty()) return;
if (m_indexes[i] < first_obj_id) continue;
if (m_indexes[i] >= last_obj_id) continue;
PixelBounds bounds(CPURenderBounds(objects.bounds[m_indexes[i]], view, target));
if (m_indexes[i] < first_obj_id) continue;
if (m_indexes[i] >= last_obj_id) continue;
PixelBounds bounds(CPURenderBounds(objects.bounds[m_indexes[i]], view, target));
//Debug("Centre is %d, %d", centre_x, centre_y);
//Debug("Bounds are %d,%d,%d,%d", bounds.x, bounds.y, bounds.w, bounds.h);
//Debug("Windos is %d,%d", target.w, target.h);
//Debug("Centre is %d, %d", centre_x, centre_y);
//Debug("Bounds are %d,%d,%d,%d", bounds.x, bounds.y, bounds.w, bounds.h);
//Debug("Windos is %d,%d", target.w, target.h);
- 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);
{
target.pixels[index+0] = 0;
target.pixels[index+1] = 0;
target.pixels[index+2] = 0;
target.pixels[index+3] = 255;
{
target.pixels[index+0] = 0;
target.pixels[index+1] = 0;
target.pixels[index+2] = 0;
target.pixels[index+3] = 255;
Real invblen(1); invblen /= blen;
Debug("Using %li lines, inverse %f", blen, Double(invblen));
for (int64_t j = 1; j <= blen; ++j)
Real invblen(1); invblen /= blen;
Debug("Using %li lines, inverse %f", blen, Double(invblen));
for (int64_t j = 1; j <= blen; ++j)
{
GPUBezierCoeffs coeffs = {
Float(bez->x0), Float(bez->y0),
{
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->x1), Float(bez->y1),
+ Float(bez->x2), Float(bez->y2)
if (!m_shader_program.Valid())
Warn("Shader is invalid (objects are of type %d)", m_type);
if (!m_shader_program.Valid())
Warn("Shader is invalid (objects are of type %d)", m_type);
+ // If we don't have anything to render, return.
+ if (first_obj_id == last_obj_id) return;
+ // If there are no objects of this type, return.
+ if (m_indexes.empty()) return;
+