/*
 * Moves the gxPoint in element by delta (measured against the projection vector)
 * along the freedom vector.
 */
void fnt_MovePoint(register fnt_LocalGraphicStateType *gs,
							register fnt_ElementType *element,
							register ArrayIndex gxPoint,
							register F26Dot6 delta)
{
	register shortFrac pfProj = gs->pfProj;
	register shortFrac fx = gs->free.x;
	register shortFrac fy = gs->free.y;

	CHECK_PFPROJ( gs );
	CHECK_POINT( gs, element, gxPoint );

	if ( pfProj != shortFrac1 )
	{	if ( fx )
		{	element->x[gxPoint] += ShortMulDiv( delta, fx, pfProj );
			element->f[gxPoint] |= XMOVED;
		}
		if ( fy )
		{	element->y[gxPoint] += ShortMulDiv( delta, fy, pfProj );
			element->f[gxPoint] |= YMOVED;
		}
	}
	else
	{	if ( fx )
		{	element->x[gxPoint] += ShortFracMul( delta, fx );
			element->f[gxPoint] |= XMOVED;
		}
		if ( fy )
		{	element->y[gxPoint] += ShortFracMul( delta, fy );
			element->f[gxPoint] |= YMOVED;
		}
	}
}
Example #2
0
Bool
qxl_create_desired_modes (qxl_screen_t *qxl)
{
    int i;
    xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR (qxl->pScrn);

    CHECK_POINT ();

    for (i = 0 ; i < config->num_crtc; ++i)
    {
	xf86CrtcPtr crtc = config->crtc[i];
	if (!crtc->enabled)
	    continue;

	if (!crtc_set_mode_major (
		crtc, &crtc->desiredMode, crtc->desiredRotation,
		crtc->desiredX, crtc->desiredY))
	{
	    return FALSE;
	}
    }

    qxl_update_monitors_config(qxl);
    return TRUE;
}
/*
 * For use when the projection and freedom vectors coincide along the y-axis.
 */
void fnt_YMovePoint( fnt_LocalGraphicStateType* gs, register fnt_ElementType *element, ArrayIndex gxPoint, F26Dot6 delta )
{
#ifndef debugging
  /*#pragma unused(gs) */
#endif
	CHECK_POINT( gs, element, gxPoint );
	element->y[gxPoint] += delta;
	element->f[gxPoint] |= YMOVED;
}
Example #4
0
static Bool
qxl_crtc_set_mode_major (xf86CrtcPtr crtc, DisplayModePtr mode,
                         Rotation rotation, int x, int y)
{
    qxl_crtc_private *crtc_private = crtc->driver_private;
    qxl_screen_t *    qxl = crtc_private->qxl;

    CHECK_POINT ();

    if (!crtc_set_mode_major (crtc, mode, rotation, x, y))
	return FALSE;

    qxl_update_monitors_config (qxl);

    return TRUE;
}