MCPcopy Create free account
hub / github.com/davidgiven/fluxengine / viewport

Method viewport

dep/agg/src/agg2d.cpp:394–417  ·  view source on GitHub ↗

------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

392
393//------------------------------------------------------------------------
394void Agg2D::viewport(double worldX1, double worldY1, double worldX2, double worldY2,
395 double screenX1, double screenY1, double screenX2, double screenY2,
396 ViewportOption opt)
397{
398 agg::trans_viewport vp;
399 switch(opt)
400 {
401 case Anisotropic: vp.preserve_aspect_ratio(0.0, 0.0, agg::aspect_ratio_stretch); break;
402 case XMinYMin: vp.preserve_aspect_ratio(0.0, 0.0, agg::aspect_ratio_meet); break;
403 case XMidYMin: vp.preserve_aspect_ratio(0.5, 0.0, agg::aspect_ratio_meet); break;
404 case XMaxYMin: vp.preserve_aspect_ratio(1.0, 0.0, agg::aspect_ratio_meet); break;
405 case XMinYMid: vp.preserve_aspect_ratio(0.0, 0.5, agg::aspect_ratio_meet); break;
406 case XMidYMid: vp.preserve_aspect_ratio(0.5, 0.5, agg::aspect_ratio_meet); break;
407 case XMaxYMid: vp.preserve_aspect_ratio(1.0, 0.5, agg::aspect_ratio_meet); break;
408 case XMinYMax: vp.preserve_aspect_ratio(0.0, 1.0, agg::aspect_ratio_meet); break;
409 case XMidYMax: vp.preserve_aspect_ratio(0.5, 1.0, agg::aspect_ratio_meet); break;
410 case XMaxYMax: vp.preserve_aspect_ratio(1.0, 1.0, agg::aspect_ratio_meet); break;
411 }
412 vp.world_viewport(worldX1, worldY1, worldX2, worldY2);
413 vp.device_viewport(screenX1, screenY1, screenX2, screenY2);
414 m_transform *= vp.to_affine();
415 m_convCurve.approximation_scale(worldToScreen(1.0) * g_approxScale);
416 m_convStroke.approximation_scale(worldToScreen(1.0) * g_approxScale);
417}
418
419
420//------------------------------------------------------------------------

Callers

nothing calls this directly

Calls 5

preserve_aspect_ratioMethod · 0.80
world_viewportMethod · 0.80
device_viewportMethod · 0.80
to_affineMethod · 0.80
approximation_scaleMethod · 0.45

Tested by

no test coverage detected