~hikiko/unity/unity.mov-res

« back to all changes in this revision

Viewing changes to plugins/unityshell/src/unityshell.cpp

  • Committer: Eleni Maria Stea
  • Date: 2016-08-10 09:33:06 UTC
  • Revision ID: elenimaria.stea@canonical.com-20160810093306-ft6eaj4nd5ys5rmp
take the decorations/shadows size into account in damage region, in case
that the user enables the shadows in lowgfx

Show diffs side-by-side

added added

removed removed

Lines of Context:
3278
3278
    fc[1] = fillColor[1] * (unsigned long)fc[3] / 65535;
3279
3279
    fc[2] = fillColor[2] * (unsigned long)fc[3] / 65535;
3280
3280
 
3281
 
    streamingBuffer->begin (GL_TRIANGLE_STRIP);
3282
 
    streamingBuffer->addColors (1, fc);
3283
 
    streamingBuffer->addVertices (4, &vertexData[0]);
3284
 
    streamingBuffer->end ();
3285
 
    streamingBuffer->render (sTransform);
 
3281
    streamingBuffer->begin(GL_TRIANGLE_STRIP);
 
3282
    streamingBuffer->addColors(1, fc);
 
3283
    streamingBuffer->addVertices(4, &vertexData[0]);
 
3284
    streamingBuffer->end();
 
3285
    streamingBuffer->render(sTransform);
3286
3286
  }
3287
3287
 
3288
3288
  /* draw outline */
3289
3289
  static const int borderWidth = 2;
3290
 
  glLineWidth (borderWidth);
3291
 
  streamingBuffer->begin (GL_LINES);
3292
 
  streamingBuffer->addColors (1, borderColor);
3293
 
  streamingBuffer->addVertices (8, &vertexData2[0]);
3294
 
  streamingBuffer->end ();
3295
 
  streamingBuffer->render (sTransform);
3296
 
 
3297
 
  CompositeScreen *cScreen = CompositeScreen::get (screen);
3298
 
  CompRect damage (box.x1 - borderWidth,
3299
 
                   box.y1 - borderWidth,
3300
 
                   box.x2 - box.x1 + 2 * borderWidth,
3301
 
                   box.y2 - box.y1 + 2 * borderWidth);
3302
 
  cScreen->damageRegion (damage);
 
3290
 
 
3291
  int radius = deco_win_->IsActive() ? uScreen->optionGetActiveShadowRadius()  : uScreen->optionGetInactiveShadowRadius();
 
3292
  int borderX = uScreen->optionGetShadowXOffset() + 2 * radius;
 
3293
  int borderY = uScreen->optionGetShadowYOffset() + 2 * radius;
 
3294
 
 
3295
  glLineWidth(borderWidth);
 
3296
  streamingBuffer->begin(GL_LINES);
 
3297
  streamingBuffer->addColors(1, borderColor);
 
3298
  streamingBuffer->addVertices(8, &vertexData2[0]);
 
3299
  streamingBuffer->end();
 
3300
  streamingBuffer->render(sTransform);
 
3301
 
 
3302
  CompositeScreen *cScreen = CompositeScreen::get(screen);
 
3303
  CompRect damage(box.x1 - borderWidth - 2 * radius,
 
3304
                   box.y1 - borderWidth - 2 * radius,
 
3305
                   box.x2 - box.x1 + 2 * borderX,
 
3306
                   box.y2 - box.y1 + 2 * borderY);
 
3307
  cScreen->damageRegion(damage);
3303
3308
}
3304
3309
 
3305
3310
bool UnityWindow::damageRect(bool initial, CompRect const& rect)